using Zennysoft.Ma; using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter.Entity; public class SigilComponent : ISigilComponent { public ISigil Sigil { get; set; } public void Reset() { Sigil = new NoneSigil(); } } public partial class NoneSigil : ISigil { public double DamageModifier { get; } = 0; public double DefenseModifier { get; } = 0; public double MoveSpeedModifier { get; } = 0; public double HealAmountModifier { get; } = 0; public double VTDrainSpeedModifier { get; } = 0; public bool AutoRevive { get; } = false; public ElementType ElementType { get; } = ElementType.None; public ElementalResistanceSet ElementalResistanceSet => ElementalResistanceSet.None; public SigilTag SigilTag => SigilTag.None; } public partial class AeolicSigil : ISigil { public double DamageModifier { get; } = -0.25; public double DefenseModifier { get; } = 0; public double MoveSpeedModifier { get; } = 0.25; public double HealAmountModifier { get; } = 0; public double VTDrainSpeedModifier { get; } = 0; public bool AutoRevive { get; } = false; public ElementType ElementType { get; } = ElementType.Aeolic; public ElementalResistanceSet ElementalResistanceSet => new ElementalResistanceSet(0.25, 0, -0.25, 0, 0, 0, 0); public SigilTag SigilTag => SigilTag.None; } public partial class IgneousSigil : ISigil { public double DamageModifier { get; } = 0.25; public double DefenseModifier { get; } = -0.25; public double MoveSpeedModifier { get; } = 0; public double HealAmountModifier { get; } = 0; public double VTDrainSpeedModifier { get; } = 0; public bool AutoRevive { get; } = false; public ElementType ElementType { get; } = ElementType.Igneous; public ElementalResistanceSet ElementalResistanceSet => new ElementalResistanceSet(0, -0.25, 0.25, 0, 0, 0, 0); public SigilTag SigilTag => SigilTag.None; } public partial class TelluricSigil : ISigil { public double DamageModifier { get; } = 0; public double DefenseModifier { get; } = 0.25; public double MoveSpeedModifier { get; } = -0.25; public double HealAmountModifier { get; } = 0; public double VTDrainSpeedModifier { get; } = 0; public bool AutoRevive { get; } = false; public ElementType ElementType { get; } = ElementType.Telluric; public ElementalResistanceSet ElementalResistanceSet => new ElementalResistanceSet(-0.25, 0, 0, 0, 0.25, 0, 0); public SigilTag SigilTag => SigilTag.None; } public partial class HydricSigil : ISigil { public double DamageModifier { get; } = 0; public double DefenseModifier { get; } = 0; public double MoveSpeedModifier { get; } = 0; public double HealAmountModifier { get; } = 0.25; public double VTDrainSpeedModifier { get; } = -0.25; public bool AutoRevive { get; } = false; public ElementType ElementType { get; } = ElementType.Hydric; public ElementalResistanceSet ElementalResistanceSet => new ElementalResistanceSet(0, 0.25, 0, 0, -0.25, 0, 0); public SigilTag SigilTag => SigilTag.None; } public partial class FerrumSigil : ISigil { public double DamageModifier { get; } public double DefenseModifier { get; } = 0; public double MoveSpeedModifier { get; } = 0; public double HealAmountModifier { get; } = 0; public double VTDrainSpeedModifier { get; } = 0; public bool AutoRevive { get; } = false; public ElementType ElementType { get; } = ElementType.Ferrum; public ElementalResistanceSet ElementalResistanceSet => new ElementalResistanceSet(-0.25, -0.25, -0.25, 0.25, -0.25, -0.25, -0.25); public SigilTag SigilTag => SigilTag.None; } public partial class SanktaSigil : ISigil { public double DamageModifier { get; } public double DefenseModifier { get; } = 0; public double MoveSpeedModifier { get; } = 0; public double HealAmountModifier { get; } = 0; public double VTDrainSpeedModifier { get; } = 0; public bool AutoRevive { get; } = true; public ElementType ElementType { get; } = ElementType.Sankta; public ElementalResistanceSet ElementalResistanceSet => new ElementalResistanceSet(0, 0, 0, 0, 0, 0.25, -0.25); public SigilTag SigilTag => SigilTag.AutoRevive; } public partial class ShuraSigil : ISigil { public double DamageModifier { get; } public double DefenseModifier { get; } = 0; public double MoveSpeedModifier { get; } = 0; public double HealAmountModifier { get; } = 0; public double VTDrainSpeedModifier { get; } = 0; public bool AutoRevive { get; } = false; public ElementType ElementType { get; } = ElementType.Shura; public ElementalResistanceSet ElementalResistanceSet => new ElementalResistanceSet(0, 0, 0, 0, 0, -0.25, 0.25); public SigilTag SigilTag => SigilTag.HPDrain; }