Add Warrior Wings & Cape (12/242-247)
Some checks failed
.NET Core / build (push) Has been cancelled

Six high-tier imported wings, one per class line: Wizard (242, Soul Master),
Magic (243, Duel Master), Elf (244, High Elf), Summoner (245, Dimension Master),
Warrior Cape (246, Lord Emperor + Fist Master) and Knight (247, Blade Master).
Each: base defense + defense-per-level, 3rd Wing Options, damage increase and
fast flight. Applied via update v99 (AddWarriorWingsUpdateSeason6), reusing the
shared "3rd Wing Options" option set to avoid Guid collisions.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Acentech Dev
2026-07-19 23:27:22 +03:00
parent 1cadaa08ab
commit 3d5d40b753
3 changed files with 96 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
// <copyright file="AddWarriorWingsUpdateSeason6.cs" company="MUnique">
// Licensed under the MIT License. See LICENSE file in the project root for full license information.
// </copyright>
namespace MUnique.OpenMU.Persistence.Initialization.Updates;
using System.Runtime.InteropServices;
using MUnique.OpenMU.DataModel.Configuration;
using MUnique.OpenMU.Persistence.Initialization.VersionSeasonSix.Items;
using MUnique.OpenMU.PlugIns;
/// <summary>
/// Adds six imported high-tier "Warrior" wings at free item slots (12/242-247), one per class line:
/// Wizard (Soul Master), Magic (Duel Master), Elf (High Elf), Summoner (Dimension Master),
/// Warrior Cape (Lord Emperor + Fist Master) and Knight (Blade Master). Each carries base defense,
/// class restriction, 3rd Wing Options, damage increase and fast flight.
/// </summary>
[PlugIn]
[Display(Name = PlugInName, Description = PlugInDescription)]
[Guid("8F5B3D74-AC2E-4F9B-B6D7-2E4F9A3C5B18")]
public class AddWarriorWingsUpdateSeason6 : UpdatePlugInBase
{
internal const string PlugInName = "Add Warrior Wings & Cape (12/242-247)";
internal const string PlugInDescription = "Adds six high-tier Warrior wings (12/242-247): Wizard, Magic, Elf, Summoner, Warrior Cape (DL+RF) and Knight, each with defense, 3rd Wing Options, damage increase and fast flight.";
/// <inheritdoc />
public override UpdateVersion Version => UpdateVersion.AddWarriorWingsSeason6;
/// <inheritdoc />
public override string DataInitializationKey => VersionSeasonSix.DataInitialization.Id;
/// <inheritdoc />
public override string Name => PlugInName;
/// <inheritdoc />
public override string Description => PlugInDescription;
/// <inheritdoc />
public override bool IsMandatory => true;
/// <inheritdoc />
public override DateTime CreatedAt => new(2026, 07, 19, 20, 0, 0, DateTimeKind.Utc);
/// <inheritdoc />
#pragma warning disable CS1998
protected override async ValueTask ApplyAsync(IContext context, GameConfiguration gameConfiguration)
#pragma warning restore CS1998
{
// Idempotency guard: skip if the first Warrior wing (12/242) already exists.
if (gameConfiguration.Items.Any(i => i.Group == 12 && i.Number == 242))
{
return;
}
new Wings(context, gameConfiguration).CreateWarriorWings();
}
}

View File

@@ -499,4 +499,9 @@ public enum UpdateVersion
/// The version of the <see cref="AddPoisonWingsUpdateSeason6"/> (Poison Wing 12/240, Poison Cape 12/241).
/// </summary>
AddPoisonWingsSeason6 = 98,
/// <summary>
/// The version of the <see cref="AddWarriorWingsUpdateSeason6"/> (Warrior Wings/Cape 12/242-247).
/// </summary>
AddWarriorWingsSeason6 = 99,
}