fix(codegen): Code gens axes (#690)

This commit is contained in:
Michael Dijkstra 2021-08-18 13:37:53 +10:00 committed by GitHub
parent c8a2605c0d
commit 488f1044fa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 119 additions and 318 deletions

View file

@ -1,15 +1,12 @@
namespace Server.Items
{
[Flippable(0xF49, 0xF4a)]
public class Axe : BaseAxe
[Serializable(0, false)]
public partial class Axe : BaseAxe
{
[Constructible]
public Axe() : base(0xF49) => Weight = 4.0;
public Axe(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.CrushingBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.Dismount;
@ -26,19 +23,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 110;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -12,17 +12,20 @@ namespace Server.Items
bool Axe(Mobile from, BaseAxe axe);
}
public abstract class BaseAxe : BaseMeleeWeapon
[Serializable(0, false)]
public abstract partial class BaseAxe : BaseMeleeWeapon
{
private bool m_ShowUsesRemaining;
[SerializableField(0)]
[InvalidateProperties]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private bool _showUsesRemaining;
private int m_UsesRemaining;
[SerializableField(1)]
[InvalidateProperties]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private int _usesRemaining;
public BaseAxe(int itemID) : base(itemID) => m_UsesRemaining = 150;
public BaseAxe(Serial serial) : base(serial)
{
}
public BaseAxe(int itemID) : base(itemID) => _usesRemaining = 150;
public override int DefHitSound => 0x232;
public override int DefMissSound => 0x23A;
@ -33,28 +36,6 @@ namespace Server.Items
public virtual HarvestSystem HarvestSystem => Lumberjacking.System;
[CommandProperty(AccessLevel.GameMaster)]
public int UsesRemaining
{
get => m_UsesRemaining;
set
{
m_UsesRemaining = value;
InvalidateProperties();
}
}
[CommandProperty(AccessLevel.GameMaster)]
public bool ShowUsesRemaining
{
get => m_ShowUsesRemaining;
set
{
m_ShowUsesRemaining = value;
InvalidateProperties();
}
}
public virtual int GetUsesScalar()
{
if (Quality == WeaponQuality.Exceptional)
@ -71,7 +52,7 @@ namespace Server.Items
var scale = GetUsesScalar();
m_UsesRemaining = (m_UsesRemaining * 100 + (scale - 1)) / scale;
UsesRemaining = (_usesRemaining * 100 + (scale - 1)) / scale;
InvalidateProperties();
}
@ -81,7 +62,7 @@ namespace Server.Items
var scale = GetUsesScalar();
m_UsesRemaining = (m_UsesRemaining * scale + 99) / 100;
UsesRemaining = (_usesRemaining * scale + 99) / 100;
InvalidateProperties();
}
@ -124,45 +105,8 @@ namespace Server.Items
}
}
public override void Serialize(IGenericWriter writer)
private void Deserialize(IGenericReader reader, int version)
{
base.Serialize(writer);
writer.Write(2); // version
writer.Write(m_ShowUsesRemaining);
writer.Write(m_UsesRemaining);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
switch (version)
{
case 2:
{
m_ShowUsesRemaining = reader.ReadBool();
goto case 1;
}
case 1:
{
m_UsesRemaining = reader.ReadInt();
goto case 0;
}
case 0:
{
if (m_UsesRemaining < 1)
{
m_UsesRemaining = 150;
}
break;
}
}
}
public override void OnHit(Mobile attacker, Mobile defender, double damageBonus = 1)

View file

@ -1,7 +1,8 @@
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0xF47, 0xF48)]
public class BattleAxe : BaseAxe
public partial class BattleAxe : BaseAxe
{
[Constructible]
public BattleAxe() : base(0xF47)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public BattleAxe(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.BleedAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.ConcussionBlow;
@ -30,19 +27,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 70;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,15 +1,12 @@
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0xf4b, 0xf4c)]
public class DoubleAxe : BaseAxe
public partial class DoubleAxe : BaseAxe
{
[Constructible]
public DoubleAxe() : base(0xF4B) => Weight = 8.0;
public DoubleAxe(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.DoubleStrike;
public override WeaponAbility SecondaryAbility => WeaponAbility.WhirlwindAttack;
@ -26,19 +23,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 110;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,15 +1,12 @@
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0xf45, 0xf46)]
public class ExecutionersAxe : BaseAxe
public partial class ExecutionersAxe : BaseAxe
{
[Constructible]
public ExecutionersAxe() : base(0xF45) => Weight = 8.0;
public ExecutionersAxe(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.BleedAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.MortalStrike;
@ -26,19 +23,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 70;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class GuardianAxe : OrnateAxe
[Serializable(0)]
public partial class GuardianAxe : OrnateAxe
{
[Constructible]
public GuardianAxe()
@ -9,24 +10,6 @@ namespace Server.Items
Attributes.RegenHits = 1;
}
public GuardianAxe(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073545; // guardian axe
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
}

View file

@ -1,15 +1,12 @@
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0xF43, 0xF44)]
public class Hatchet : BaseAxe
public partial class Hatchet : BaseAxe
{
[Constructible]
public Hatchet() : base(0xF43) => Weight = 4.0;
public Hatchet(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ArmorIgnore;
public override WeaponAbility SecondaryAbility => WeaponAbility.Disarm;
@ -26,19 +23,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 80;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,28 +1,11 @@
namespace Server.Items
{
public class HeavyOrnateAxe : OrnateAxe
[Serializable(0)]
public partial class HeavyOrnateAxe : OrnateAxe
{
[Constructible]
public HeavyOrnateAxe() => Attributes.WeaponDamage = 8;
public HeavyOrnateAxe(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073548; // heavy ornate axe
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
}

View file

@ -1,15 +1,12 @@
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0x13FB, 0x13FA)]
public class LargeBattleAxe : BaseAxe
public partial class LargeBattleAxe : BaseAxe
{
[Constructible]
public LargeBattleAxe() : base(0x13FB) => Weight = 6.0;
public LargeBattleAxe(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.WhirlwindAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.BleedAttack;
@ -26,19 +23,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 70;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -2,8 +2,9 @@ using Server.Engines.Harvest;
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0xE86, 0xE85)]
public class Pickaxe : BaseAxe, IUsesRemaining
public partial class Pickaxe : BaseAxe, IUsesRemaining
{
[Constructible]
public Pickaxe() : base(0xE86)
@ -13,10 +14,6 @@ namespace Server.Items
ShowUsesRemaining = true;
}
public Pickaxe(Serial serial) : base(serial)
{
}
public override HarvestSystem HarvestSystem => Mining.System;
public override WeaponAbility PrimaryAbility => WeaponAbility.DoubleStrike;
@ -37,20 +34,5 @@ namespace Server.Items
public override int InitMaxHits => 60;
public override WeaponAnimation DefAnimation => WeaponAnimation.Slash1H;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
ShowUsesRemaining = true;
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class SingingAxe : OrnateAxe
[Serializable(0)]
public partial class SingingAxe : OrnateAxe
{
[Constructible]
public SingingAxe()
@ -8,24 +9,6 @@ namespace Server.Items
SkillBonuses.SetValues(0, SkillName.Musicianship, 5);
}
public SingingAxe(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073546; // singing axe
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
}

View file

@ -1,28 +1,11 @@
namespace Server.Items
{
public class ThunderingAxe : OrnateAxe
[Serializable(0)]
public partial class ThunderingAxe : OrnateAxe
{
[Constructible]
public ThunderingAxe() => WeaponAttributes.HitLightning = 10;
public ThunderingAxe(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073547; // thundering axe
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
}

View file

@ -1,15 +1,12 @@
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0x1443, 0x1442)]
public class TwoHandedAxe : BaseAxe
public partial class TwoHandedAxe : BaseAxe
{
[Constructible]
public TwoHandedAxe() : base(0x1443) => Weight = 8.0;
public TwoHandedAxe(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.DoubleStrike;
public override WeaponAbility SecondaryAbility => WeaponAbility.ShadowStrike;
@ -26,19 +23,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 90;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -2,16 +2,13 @@ using Server.Engines.Harvest;
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0x13B0, 0x13AF)]
public class WarAxe : BaseAxe
public partial class WarAxe : BaseAxe
{
[Constructible]
public WarAxe() : base(0x13B0) => Weight = 8.0;
public WarAxe(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ArmorIgnore;
public override WeaponAbility SecondaryAbility => WeaponAbility.BleedAttack;
@ -37,19 +34,5 @@ namespace Server.Items
public override WeaponAnimation DefAnimation => WeaponAnimation.Bash1H;
public override HarvestSystem HarvestSystem => null;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.Axe"
}

View file

@ -0,0 +1,22 @@
{
"version": 0,
"type": "Server.Items.BaseAxe",
"properties": [
{
"name": "ShowUsesRemaining",
"type": "bool",
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "UsesRemaining",
"type": "int",
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.BaseMeleeWeapon",
"properties": []
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BattleAxe"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DoubleAxe"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.ExecutionersAxe"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.GuardianAxe"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.Hatchet"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.HeavyOrnateAxe"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.LargeBattleAxe"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.Pickaxe"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.SingingAxe"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.ThunderingAxe"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.TwoHandedAxe"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.WarAxe"
}