Implement some Sigil behaviors

This commit is contained in:
2026-06-06 23:32:13 -07:00
parent 72f8b5c050
commit d2a81bb1cf
6 changed files with 182 additions and 168 deletions
+65 -50
View File
@@ -1,6 +1,6 @@
using Godot;
using Zennysoft.Ma;
using Zennysoft.Ma;
using Zennysoft.Ma.Adapter;
using Zennysoft.Ma.Adapter.Entity;
public class SigilComponent : ISigilComponent
{
@@ -14,88 +14,103 @@ public class SigilComponent : ISigilComponent
public partial class NoneSigil : ISigil
{
public double AttackModifier { get; set; }
public double DefenseModifier { get; set; }
public int HealthModifier { get; set; }
public int VTModifier { get; set; }
public double LuckModifier { get; set; }
public double ElementalModifier { get; set; }
public double DamageModifier { get; } = 0;
public double MoveSpeedModifier { get; } = 0;
public bool AutoRevive { get; } = false;
public ElementType ElementType { get; } = ElementType.None;
public ElementalResistanceSet ElementalResistanceSet => ElementalResistanceSet.None;
}
public partial class AeolicSigil : ISigil
{
public double AttackModifier { get; set; }
public double DefenseModifier { get; set; }
public int HealthModifier { get; set; }
public int VTModifier { get; set; }
public double LuckModifier { get; set; }
public double ElementalModifier { get; set; }
public double DamageModifier { get; } = 0;
public double MoveSpeedModifier { get; } = 0.25;
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 partial class IgneousSigil : ISigil
{
public double AttackModifier { get; set; }
public double DefenseModifier { get; set; }
public int HealthModifier { get; set; }
public int VTModifier { get; set; }
public double LuckModifier { get; set; }
public double ElementalModifier { get; set; }
public double DamageModifier { get; } = 0.5;
public double MoveSpeedModifier { 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 partial class TelluricSigil : ISigil
{
public double AttackModifier { get; set; }
public double DefenseModifier { get; set; }
public int HealthModifier { get; set; }
public int VTModifier { get; set; }
public double LuckModifier { get; set; }
public double ElementalModifier { get; set; }
public double DamageModifier { get; } = 0;
public double MoveSpeedModifier { 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 partial class HydricSigil : ISigil
{
public double AttackModifier { get; set; }
public double DefenseModifier { get; set; }
public int HealthModifier { get; set; }
public int VTModifier { get; set; }
public double LuckModifier { get; set; }
public double ElementalModifier { get; set; }
public double DamageModifier { get; } = 0;
public double MoveSpeedModifier { get; } = 0;
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 partial class FerrumSigil : ISigil
{
public double AttackModifier { get; set; }
public double DefenseModifier { get; set; }
public int HealthModifier { get; set; }
public int VTModifier { get; set; }
public double LuckModifier { get; set; }
public double ElementalModifier { get; set; }
public double DamageModifier { get; }
public double MoveSpeedModifier { 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 partial class SanktaSigil : ISigil
{
public double AttackModifier { get; set; }
public double DefenseModifier { get; set; }
public int HealthModifier { get; set; }
public int VTModifier { get; set; }
public double LuckModifier { get; set; }
public double ElementalModifier { get; set; }
public double DamageModifier { get; }
public double MoveSpeedModifier { 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 partial class ShuraSigil : ISigil
{
public double AttackModifier { get; set; }
public double DefenseModifier { get; set; }
public int HealthModifier { get; set; }
public int VTModifier { get; set; }
public double LuckModifier { get; set; }
public double ElementalModifier { get; set; }
public double DamageModifier { get; }
public double MoveSpeedModifier { 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);
}