fix: Codegens shields (#1273)

This commit is contained in:
Kamron Batman 2022-11-23 16:42:17 -08:00 committed by GitHub
parent 82637a77cd
commit b75a8f72ec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 434 additions and 652 deletions

View file

@ -1,46 +1,25 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class Aegis : HeaterShield
{
public class Aegis : HeaterShield
[Constructible]
public Aegis()
{
[Constructible]
public Aegis()
{
Hue = 0x47E;
ArmorAttributes.SelfRepair = 5;
Attributes.ReflectPhysical = 15;
Attributes.DefendChance = 15;
Attributes.LowerManaCost = 8;
}
public Aegis(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1061602; // Ægis
public override int ArtifactRarity => 11;
public override int BasePhysicalResistance => 15;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(1);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (version < 1)
{
PhysicalBonus = 0;
}
}
Hue = 0x47E;
ArmorAttributes.SelfRepair = 5;
Attributes.ReflectPhysical = 15;
Attributes.DefendChance = 15;
Attributes.LowerManaCost = 8;
}
public override int LabelNumber => 1061602; // Ægis
public override int ArtifactRarity => 11;
public override int BasePhysicalResistance => 15;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
}

View file

@ -1,45 +1,24 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class ArcaneShield : WoodenKiteShield
{
public class ArcaneShield : WoodenKiteShield
[Constructible]
public ArcaneShield()
{
[Constructible]
public ArcaneShield()
{
ItemID = 0x1B78;
Hue = 0x556;
Attributes.NightSight = 1;
Attributes.SpellChanneling = 1;
Attributes.DefendChance = 15;
Attributes.CastSpeed = 1;
}
public ArcaneShield(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1061101; // Arcane Shield
public override int ArtifactRarity => 11;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (Attributes.NightSight == 0)
{
Attributes.NightSight = 1;
}
}
ItemID = 0x1B78;
Hue = 0x556;
Attributes.NightSight = 1;
Attributes.SpellChanneling = 1;
Attributes.DefendChance = 15;
Attributes.CastSpeed = 1;
}
public override int LabelNumber => 1061101; // Arcane Shield
public override int ArtifactRarity => 11;
public override int InitMinHits => 255;
public override int InitMaxHits => 255;
}

View file

@ -1,176 +1,114 @@
using System;
using ModernUO.Serialization;
using Server.Network;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class BaseShield : BaseArmor
{
public class BaseShield : BaseArmor
public BaseShield(int itemID) : base(itemID)
{
public BaseShield(int itemID) : base(itemID)
}
public override ArmorMaterialType MaterialType => ArmorMaterialType.Plate;
public override double ArmorRating
{
get
{
var m = Parent as Mobile;
var ar = base.ArmorRating;
if (m != null)
{
return m.Skills.Parry.Value * ar / 200.0 + 1.0;
}
return ar;
}
}
public override int OnHit(BaseWeapon weapon, int damage)
{
if (Core.AOS)
{
if (ArmorAttributes.SelfRepair > Utility.Random(10))
{
HitPoints += 2;
}
else
{
var halfArmor = ArmorRating / 2.0;
var absorbed = Math.Max(2, (int)(halfArmor + halfArmor * Utility.RandomDouble()));
TryLowerDurability(weapon.Type == WeaponType.Bashing ? absorbed / 2 : Utility.Random(2));
}
return 0;
}
public BaseShield(Serial serial) : base(serial)
if (Parent is not Mobile owner)
{
}
public override ArmorMaterialType MaterialType => ArmorMaterialType.Plate;
public override double ArmorRating
{
get
{
var m = Parent as Mobile;
var ar = base.ArmorRating;
if (m != null)
{
return m.Skills.Parry.Value * ar / 200.0 + 1.0;
}
return ar;
}
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(1); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (version < 1)
{
if (this is Aegis)
{
return;
}
// The 15 bonus points to resistances are not applied to shields on OSI.
PhysicalBonus = 0;
FireBonus = 0;
ColdBonus = 0;
PoisonBonus = 0;
EnergyBonus = 0;
}
}
public override int OnHit(BaseWeapon weapon, int damage)
{
if (Core.AOS)
{
if (ArmorAttributes.SelfRepair > Utility.Random(10))
{
HitPoints += 2;
}
else
{
var halfArmor = ArmorRating / 2.0;
var absorbed = (int)(halfArmor + halfArmor * Utility.RandomDouble());
if (absorbed < 2)
{
absorbed = 2;
}
var wear = weapon.Type == WeaponType.Bashing ? absorbed / 2 : Utility.Random(2);
if (wear > 0 && MaxHitPoints > 0)
{
if (HitPoints >= wear)
{
HitPoints -= wear;
wear = 0;
}
else
{
wear -= HitPoints;
HitPoints = 0;
}
if (wear > 0)
{
if (MaxHitPoints > wear)
{
MaxHitPoints -= wear;
if (Parent is Mobile mobile)
{
// Your equipment is severely damaged.
mobile.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1061121);
}
}
else
{
Delete();
}
}
}
}
return 0;
}
if (Parent is not Mobile owner)
{
return damage;
}
var ar = ArmorRating;
var chance = (owner.Skills.Parry.Value - ar * 2.0) / 100.0;
if (chance < 0.01)
{
chance = 0.01;
}
if (owner.CheckSkill(SkillName.Parry, chance))
{
damage -= Math.Min(damage, weapon.Skill == SkillName.Archery ? (int)ar : (int)(ar / 2.0));
owner.FixedEffect(0x37B9, 10, 16);
if (Utility.Random(100) < 25) // 25% chance to lower durability
{
var wear = Utility.Random(2);
if (wear > 0 && MaxHitPoints > 0)
{
if (HitPoints >= wear)
{
HitPoints -= wear;
wear = 0;
}
else
{
wear -= HitPoints;
HitPoints = 0;
}
if (wear > 0)
{
if (MaxHitPoints > wear)
{
MaxHitPoints -= wear;
// Your equipment is severely damaged.
((Mobile)Parent).LocalOverheadMessage(MessageType.Regular, 0x3B2, 1061121);
}
else
{
Delete();
}
}
}
}
}
return damage;
}
var ar = ArmorRating;
var chance = (owner.Skills.Parry.Value - ar * 2.0) / 100.0;
if (chance < 0.01)
{
chance = 0.01;
}
if (owner.CheckSkill(SkillName.Parry, chance))
{
damage -= Math.Min(damage, weapon.Skill == SkillName.Archery ? (int)ar : (int)(ar / 2.0));
owner.FixedEffect(0x37B9, 10, 16);
if (Utility.Random(100) < 25) // 25% chance to lower durability
{
TryLowerDurability(Utility.Random(2));
}
}
return damage;
}
private void TryLowerDurability(int wear)
{
if (wear <= 0 || MaxHitPoints <= 0)
{
return;
}
if (HitPoints >= wear)
{
HitPoints -= wear;
wear = 0;
}
else
{
wear -= HitPoints;
HitPoints = 0;
}
if (wear <= 0)
{
return;
}
if (MaxHitPoints > wear)
{
MaxHitPoints -= wear;
// Your equipment is severely damaged.
(Parent as Mobile)?.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1061121);
}
else
{
Delete();
}
}
}

View file

@ -1,39 +1,23 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class BronzeShield : BaseShield
{
public class BronzeShield : BaseShield
{
[Constructible]
public BronzeShield() : base(0x1B72) => Weight = 6.0;
[Constructible]
public BronzeShield() : base(0x1B72) => Weight = 6.0;
public BronzeShield(Serial serial) : base(serial)
{
}
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 1;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 0;
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 1;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 0;
public override int InitMinHits => 25;
public override int InitMaxHits => 30;
public override int InitMinHits => 25;
public override int InitMaxHits => 30;
public override int AosStrReq => 35;
public override int AosStrReq => 35;
public override int ArmorBase => 10;
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
}
public override int ArmorBase => 10;
}

View file

@ -1,39 +1,23 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class Buckler : BaseShield
{
public class Buckler : BaseShield
{
[Constructible]
public Buckler() : base(0x1B73) => Weight = 5.0;
[Constructible]
public Buckler() : base(0x1B73) => Weight = 5.0;
public Buckler(Serial serial) : base(serial)
{
}
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 1;
public override int BaseEnergyResistance => 0;
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 1;
public override int BaseEnergyResistance => 0;
public override int InitMinHits => 40;
public override int InitMaxHits => 50;
public override int InitMinHits => 40;
public override int InitMaxHits => 50;
public override int AosStrReq => 20;
public override int AosStrReq => 20;
public override int ArmorBase => 7;
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
}
public override int ArmorBase => 7;
}

View file

@ -1,77 +1,60 @@
using ModernUO.Serialization;
using Server.Guilds;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class ChaosShield : BaseShield
{
public class ChaosShield : BaseShield
[Constructible]
public ChaosShield() : base(0x1BC3)
{
[Constructible]
public ChaosShield() : base(0x1BC3)
if (!Core.AOS)
{
if (!Core.AOS)
{
LootType = LootType.Newbied;
}
Weight = 5.0;
LootType = LootType.Newbied;
}
public ChaosShield(Serial serial) : base(serial)
Weight = 5.0;
}
public override int BasePhysicalResistance => 1;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 0;
public override int InitMinHits => 100;
public override int InitMaxHits => 125;
public override int AosStrReq => 95;
public override int ArmorBase => 32;
public override bool OnEquip(Mobile from) => Validate(from) && base.OnEquip(from);
public override void OnSingleClick(Mobile from)
{
if (Validate(Parent as Mobile))
{
}
public override int BasePhysicalResistance => 1;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 0;
public override int InitMinHits => 100;
public override int InitMaxHits => 125;
public override int AosStrReq => 95;
public override int ArmorBase => 32;
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override bool OnEquip(Mobile from) => Validate(from) && base.OnEquip(from);
public override void OnSingleClick(Mobile from)
{
if (Validate(Parent as Mobile))
{
base.OnSingleClick(from);
}
}
public virtual bool Validate(Mobile m)
{
if (m?.Player != true || m.AccessLevel != AccessLevel.Player || Core.AOS)
{
return true;
}
if (m.Guild is not Guild g || g.Type != GuildType.Chaos)
{
m.FixedEffect(0x3728, 10, 13);
Delete();
return false;
}
return true;
base.OnSingleClick(from);
}
}
public virtual bool Validate(Mobile m)
{
if (Core.AOS || m is not { Player: true, AccessLevel: AccessLevel.Player })
{
return true;
}
if (m.Guild is not Guild { Type: GuildType.Chaos })
{
m.FixedEffect(0x3728, 10, 13);
Delete();
return false;
}
return true;
}
}

View file

@ -1,23 +1,22 @@
using ModernUO.Serialization;
namespace Server.Items
namespace Server.Items;
[Flippable(0x4200, 0x4207)]
[SerializationGenerator(0)]
public partial class GargishWoodenShield : BaseShield
{
[Flippable(0x4200, 0x4207)]
[SerializationGenerator(0)]
public partial class GargishWoodenShield : BaseShield
{
[Constructible]
public GargishWoodenShield() : base(0x4200) => Weight = 5.0;
[Constructible]
public GargishWoodenShield() : base(0x4200) => Weight = 5.0;
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 1;
public override int InitMinHits => 20;
public override int InitMaxHits => 25;
public override int AosStrReq => 20;
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 1;
public override int InitMinHits => 20;
public override int InitMaxHits => 25;
public override int AosStrReq => 20;
public override int RequiredRaces => Race.AllowGargoylesOnly;
}
}
public override int RequiredRaces => Race.AllowGargoylesOnly;
}

View file

@ -1,39 +1,23 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class HeaterShield : BaseShield
{
public class HeaterShield : BaseShield
{
[Constructible]
public HeaterShield() : base(0x1B76) => Weight = 8.0;
[Constructible]
public HeaterShield() : base(0x1B76) => Weight = 8.0;
public HeaterShield(Serial serial) : base(serial)
{
}
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 1;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 0;
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 1;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 0;
public override int InitMinHits => 50;
public override int InitMaxHits => 65;
public override int InitMinHits => 50;
public override int InitMaxHits => 65;
public override int AosStrReq => 90;
public override int AosStrReq => 90;
public override int ArmorBase => 23;
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
}
public override int ArmorBase => 23;
}

View file

@ -1,56 +1,35 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class MetalKiteShield : BaseShield, IDyable
{
public class MetalKiteShield : BaseShield, IDyable
[Constructible]
public MetalKiteShield() : base(0x1B74) => Weight = 7.0;
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 1;
public override int InitMinHits => 45;
public override int InitMaxHits => 60;
public override int AosStrReq => 45;
public override int ArmorBase => 16;
public bool Dye(Mobile from, DyeTub sender)
{
[Constructible]
public MetalKiteShield() : base(0x1B74) => Weight = 7.0;
public MetalKiteShield(Serial serial) : base(serial)
if (Deleted)
{
return false;
}
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 1;
Hue = sender.DyedHue;
public override int InitMinHits => 45;
public override int InitMaxHits => 60;
public override int AosStrReq => 45;
public override int ArmorBase => 16;
public bool Dye(Mobile from, DyeTub sender)
{
if (Deleted)
{
return false;
}
Hue = sender.DyedHue;
return true;
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (Weight == 5.0)
{
Weight = 7.0;
}
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
return true;
}
}

View file

@ -1,39 +1,23 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class MetalShield : BaseShield
{
public class MetalShield : BaseShield
{
[Constructible]
public MetalShield() : base(0x1B7B) => Weight = 6.0;
[Constructible]
public MetalShield() : base(0x1B7B) => Weight = 6.0;
public MetalShield(Serial serial) : base(serial)
{
}
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 1;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 0;
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 1;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 0;
public override int InitMinHits => 50;
public override int InitMaxHits => 65;
public override int InitMinHits => 50;
public override int InitMaxHits => 65;
public override int AosStrReq => 45;
public override int AosStrReq => 45;
public override int ArmorBase => 11;
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
}
public override int ArmorBase => 11;
}

View file

@ -1,82 +1,60 @@
using ModernUO.Serialization;
using Server.Guilds;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class OrderShield : BaseShield
{
public class OrderShield : BaseShield
[Constructible]
public OrderShield() : base(0x1BC4)
{
[Constructible]
public OrderShield() : base(0x1BC4)
if (!Core.AOS)
{
if (!Core.AOS)
{
LootType = LootType.Newbied;
}
Weight = 7.0;
LootType = LootType.Newbied;
}
public OrderShield(Serial serial) : base(serial)
Weight = 7.0;
}
public override int BasePhysicalResistance => 1;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 0;
public override int InitMinHits => 100;
public override int InitMaxHits => 125;
public override int AosStrReq => 95;
public override int ArmorBase => 30;
public override bool OnEquip(Mobile from) => Validate(from) && base.OnEquip(from);
public override void OnSingleClick(Mobile from)
{
if (Validate(Parent as Mobile))
{
}
public override int BasePhysicalResistance => 1;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 0;
public override int InitMinHits => 100;
public override int InitMaxHits => 125;
public override int AosStrReq => 95;
public override int ArmorBase => 30;
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (Weight == 6.0)
{
Weight = 7.0;
}
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override bool OnEquip(Mobile from) => Validate(from) && base.OnEquip(from);
public override void OnSingleClick(Mobile from)
{
if (Validate(Parent as Mobile))
{
base.OnSingleClick(from);
}
}
public virtual bool Validate(Mobile m)
{
if (Core.AOS || m?.Player != true || m.AccessLevel != AccessLevel.Player)
{
return true;
}
if (m.Guild is not Guild g || g.Type != GuildType.Order)
{
m.FixedEffect(0x3728, 10, 13);
Delete();
return false;
}
return true;
base.OnSingleClick(from);
}
}
public virtual bool Validate(Mobile m)
{
if (Core.AOS || m is not { Player: true, AccessLevel: AccessLevel.Player })
{
return true;
}
if (m.Guild is not Guild { Type: GuildType.Order })
{
m.FixedEffect(0x3728, 10, 13);
Delete();
return false;
}
return true;
}
}

View file

@ -1,44 +1,23 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class WoodenKiteShield : BaseShield
{
public class WoodenKiteShield : BaseShield
{
[Constructible]
public WoodenKiteShield() : base(0x1B79) => Weight = 5.0;
[Constructible]
public WoodenKiteShield() : base(0x1B79) => Weight = 5.0;
public WoodenKiteShield(Serial serial) : base(serial)
{
}
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 1;
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 1;
public override int InitMinHits => 50;
public override int InitMaxHits => 65;
public override int InitMinHits => 50;
public override int InitMaxHits => 65;
public override int AosStrReq => 20;
public override int AosStrReq => 20;
public override int ArmorBase => 12;
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (Weight == 7.0)
{
Weight = 5.0;
}
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
}
public override int ArmorBase => 12;
}

View file

@ -1,39 +1,23 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class WoodenShield : BaseShield
{
public class WoodenShield : BaseShield
{
[Constructible]
public WoodenShield() : base(0x1B7A) => Weight = 5.0;
[Constructible]
public WoodenShield() : base(0x1B7A) => Weight = 5.0;
public WoodenShield(Serial serial) : base(serial)
{
}
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 1;
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 0;
public override int BaseColdResistance => 0;
public override int BasePoisonResistance => 0;
public override int BaseEnergyResistance => 1;
public override int InitMinHits => 20;
public override int InitMaxHits => 25;
public override int InitMinHits => 20;
public override int InitMaxHits => 25;
public override int AosStrReq => 20;
public override int AosStrReq => 20;
public override int ArmorBase => 8;
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
}
public override int ArmorBase => 8;
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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