feat(items): add Poison Wing (12/240) and Poison Cape (12/241)
Basic wings via the simple CreateWing overload (base defense, class restriction, CanFly; no options). Poison Wing=Dark Knight, Poison Cape=Dark Lord+Rage Fighter. Update-plugin v98 + fresh-seed via Wings.Initialize().
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
// <copyright file="AddPoisonWingsUpdateSeason6.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 two imported wings at free item slots: Poison Wing (12/240, Dark Knight) and
|
||||
/// Poison Cape (12/241, Dark Lord + Rage Fighter). Basic wings: base defense, class
|
||||
/// restriction, CanFly; no wing options.
|
||||
/// </summary>
|
||||
[PlugIn]
|
||||
[Display(Name = PlugInName, Description = PlugInDescription)]
|
||||
[Guid("7E4A2C63-9B1D-4F8A-A5C6-1D3E8F2B4A07")]
|
||||
public class AddPoisonWingsUpdateSeason6 : UpdatePlugInBase
|
||||
{
|
||||
internal const string PlugInName = "Add Poison Wing & Poison Cape (12/240, 12/241)";
|
||||
internal const string PlugInDescription = "Adds Poison Wing (12/240, Dark Knight) and Poison Cape (12/241, Dark Lord + Rage Fighter) as basic wings.";
|
||||
|
||||
/// <inheritdoc />
|
||||
public override UpdateVersion Version => UpdateVersion.AddPoisonWingsSeason6;
|
||||
|
||||
/// <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, 17, 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 Poison Wing (12/240) already exists.
|
||||
if (gameConfiguration.Items.Any(i => i.Group == 12 && i.Number == 240))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
new Wings(context, gameConfiguration).CreatePoisonWings();
|
||||
}
|
||||
}
|
||||
@@ -494,4 +494,9 @@ public enum UpdateVersion
|
||||
/// The version of the <see cref="AddImportedMapsUpdateSeason6"/> (Acheron, Debenter, Uruk, Ferea).
|
||||
/// </summary>
|
||||
AddImportedMapsSeason6 = 97,
|
||||
|
||||
/// <summary>
|
||||
/// The version of the <see cref="AddPoisonWingsUpdateSeason6"/> (Poison Wing 12/240, Poison Cape 12/241).
|
||||
/// </summary>
|
||||
AddPoisonWingsSeason6 = 98,
|
||||
}
|
||||
@@ -102,6 +102,18 @@ public class Wings : WingsInitializerBase
|
||||
this.CreateWing(40, 2, 3, "Cape of Emperor", 150, 45, 220, 400, 0, 0, 0, 0, 3, 0, 0, this.BuildOptions((0b00, OptionType.HealthRecover), (0b11, OptionType.PhysDamage), (0b10, OptionType.Defense)), 39, 24, this._damageIncreaseByLevelTable, thirdWingOptions);
|
||||
this.CreateWing(43, 4, 3, "Wing of Dimension", 150, 45, 220, 400, 0, 0, 0, 0, 0, 3, 0, this.BuildOptions((0b00, OptionType.HealthRecover), (0b11, OptionType.WizDamage), (0b10, OptionType.CurseDamage)), 39, 39, this._damageIncreaseByLevelTable, thirdWingOptions);
|
||||
this.CreateWing(50, 2, 3, "Cape of Overrule", 150, 45, 220, 400, 0, 0, 0, 0, 0, 0, 3, this.BuildOptions((0b00, OptionType.HealthRecover), (0b11, OptionType.PhysDamage), (0b10, OptionType.Defense)), 39, 39, this._damageIncreaseByLevelTable, thirdWingOptions);
|
||||
|
||||
this.CreatePoisonWings();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ADAMU-CUSTOM: two imported wings (basic: base defense + class restriction, no wing options).
|
||||
/// Poison Wing (12/240, Dark Knight), Poison Cape (12/241, Dark Lord + Rage Fighter).
|
||||
/// </summary>
|
||||
public void CreatePoisonWings()
|
||||
{
|
||||
this.CreateWing(240, 5, 3, "Poison Wing", 100, 30, 200, 180, 0, 1, 0, 0, 0, 0, 0);
|
||||
this.CreateWing(241, 5, 3, "Poison Cape", 100, 30, 200, 180, 0, 0, 0, 0, 1, 0, 1);
|
||||
}
|
||||
|
||||
private void CreateFeather()
|
||||
|
||||
Reference in New Issue
Block a user