181 lines
4.6 KiB
C#
181 lines
4.6 KiB
C#
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;
|
|
}
|