fix(codegen): Codegens Weapons (#698)

This commit is contained in:
Michael Dijkstra 2021-08-20 02:12:24 +10:00 committed by GitHub
parent 3293ffcf06
commit 3fc2b76468
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
267 changed files with 873 additions and 2705 deletions

View file

@ -3,7 +3,8 @@ using Server.Engines.ConPVP;
namespace Server.Items
{
public class Fists : BaseMeleeWeapon
[Serializable(0, false)]
public partial class Fists : BaseMeleeWeapon
{
public Fists() : base(0)
{
@ -12,10 +13,6 @@ namespace Server.Items
Quality = WeaponQuality.Regular;
}
public Fists(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.Disarm;
public override WeaponAbility SecondaryAbility => WeaponAbility.ParalyzingBlow;
@ -175,19 +172,9 @@ namespace Server.Items
base.PlaySwingAnimation( attacker );
}*/
public override void Serialize(IGenericWriter writer)
[AfterDeserialization]
private void OnAfterDeserialization()
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
Delete();
}

View file

@ -2,16 +2,13 @@ using Server.Targets;
namespace Server.Items
{
public abstract class BaseKnife : BaseMeleeWeapon
[Serializable(0, false)]
public abstract partial class BaseKnife : BaseMeleeWeapon
{
public BaseKnife(int itemID) : base(itemID)
{
}
public BaseKnife(Serial serial) : base(serial)
{
}
public override int DefHitSound => 0x23B;
public override int DefMissSound => 0x238;
@ -19,20 +16,6 @@ namespace Server.Items
public override WeaponType DefType => WeaponType.Slashing;
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();
}
public override void OnDoubleClick(Mobile from)
{
from.SendLocalizedMessage(1010018); // What do you want to use this item on?

View file

@ -1,15 +1,12 @@
namespace Server.Items
{
[Flippable(0x13F6, 0x13F7)]
public class ButcherKnife : BaseKnife
[Serializable(0, false)]
public partial class ButcherKnife : BaseKnife
{
[Constructible]
public ButcherKnife() : base(0x13F6) => Weight = 1.0;
public ButcherKnife(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.InfectiousStrike;
public override WeaponAbility SecondaryAbility => WeaponAbility.Disarm;
@ -26,19 +23,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 40;
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
{
[Flippable(0xEC3, 0xEC2)]
public class Cleaver : BaseKnife
[Serializable(0, false)]
public partial class Cleaver : BaseKnife
{
[Constructible]
public Cleaver() : base(0xEC3) => Weight = 2.0;
public Cleaver(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.BleedAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.InfectiousStrike;
@ -26,24 +23,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 50;
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();
if (Weight == 1.0)
{
Weight = 2.0;
}
}
}
}

View file

@ -1,15 +1,12 @@
namespace Server.Items
{
[Flippable(0xF52, 0xF51)]
public class Dagger : BaseKnife
[Serializable(0, false)]
public partial class Dagger : BaseKnife
{
[Constructible]
public Dagger() : base(0xF52) => Weight = 1.0;
public Dagger(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.InfectiousStrike;
public override WeaponAbility SecondaryAbility => WeaponAbility.ShadowStrike;
@ -30,19 +27,5 @@ namespace Server.Items
public override SkillName DefSkill => SkillName.Fencing;
public override WeaponType DefType => WeaponType.Piercing;
public override WeaponAnimation DefAnimation => WeaponAnimation.Pierce1H;
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
{
[Flippable(0xEC4, 0xEC5)]
public class SkinningKnife : BaseKnife
[Serializable(0, false)]
public partial class SkinningKnife : BaseKnife
{
[Constructible]
public SkinningKnife() : base(0xEC4) => Weight = 1.0;
public SkinningKnife(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ShadowStrike;
public override WeaponAbility SecondaryAbility => WeaponAbility.Disarm;
@ -26,19 +23,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 40;
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

@ -4,7 +4,8 @@ using Server.Targeting;
namespace Server.Items
{
[Flippable(0xF52, 0xF51)]
public class ThrowingDagger : Item
[Serializable(0, false)]
public partial class ThrowingDagger : Item
{
[Constructible]
public ThrowingDagger() : base(0xF52)
@ -13,26 +14,8 @@ namespace Server.Items
Layer = Layer.OneHanded;
}
public ThrowingDagger(Serial serial) : base(serial)
{
}
public override string DefaultName => "a throwing dagger";
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();
}
public override void OnDoubleClick(Mobile from)
{
if (from.Items.Contains(this))

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class BlightGrippedLongbow : ElvenCompositeLongbow
[Serializable(0)]
public partial class BlightGrippedLongbow : ElvenCompositeLongbow
{
[Constructible]
public BlightGrippedLongbow()
@ -14,24 +15,6 @@ namespace Server.Items
Attributes.WeaponDamage = 35;
}
public BlightGrippedLongbow(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1072907; // Blight Gripped Longbow
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,6 +1,7 @@
namespace Server.Items
{
public class ColdForgedBlade : ElvenSpellblade
[Serializable(0)]
public partial class ColdForgedBlade : ElvenSpellblade
{
[Constructible]
public ColdForgedBlade()
@ -14,10 +15,6 @@ namespace Server.Items
Hue = GetElementalDamageHue();
}
public ColdForgedBlade(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1072916; // Cold Forged Blade
public override void GetDamageTypes(
@ -28,19 +25,5 @@ namespace Server.Items
phys = fire = pois = nrgy = chaos = direct = 0;
cold = 100;
}
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,6 +1,7 @@
namespace Server.Items
{
public class LuminousRuneBlade : RuneBlade
[Serializable(0)]
public partial class LuminousRuneBlade : RuneBlade
{
[Constructible]
public LuminousRuneBlade()
@ -14,10 +15,6 @@ namespace Server.Items
Hue = GetElementalDamageHue();
}
public LuminousRuneBlade(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1072922; // Luminous Rune Blade
public override void GetDamageTypes(
@ -28,19 +25,5 @@ namespace Server.Items
phys = fire = cold = pois = chaos = direct = 0;
nrgy = 100;
}
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,6 +1,7 @@
namespace Server.Items
{
public class OverseerSunderedBlade : RadiantScimitar
[Serializable(0)]
public partial class OverseerSunderedBlade : RadiantScimitar
{
[Constructible]
public OverseerSunderedBlade()
@ -16,10 +17,6 @@ namespace Server.Items
Hue = GetElementalDamageHue();
}
public OverseerSunderedBlade(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1072920; // Overseer Sundered Blade
public override void GetDamageTypes(
@ -30,19 +27,5 @@ namespace Server.Items
phys = cold = pois = nrgy = chaos = direct = 0;
fire = 100;
}
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,6 +1,7 @@
namespace Server.Items
{
public class PhantomStaff : WildStaff
[Serializable(0)]
public partial class PhantomStaff : WildStaff
{
[Constructible]
public PhantomStaff()
@ -12,10 +13,6 @@ namespace Server.Items
Attributes.WeaponDamage = 60;
}
public PhantomStaff(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1072919; // Phantom Staff
public override void GetDamageTypes(
@ -26,19 +23,5 @@ namespace Server.Items
phys = fire = nrgy = chaos = direct = 0;
cold = pois = 50;
}
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,6 +1,7 @@
namespace Server.Items
{
public class RuneCarvingKnife : AssassinSpike
[Serializable(0)]
public partial class RuneCarvingKnife : AssassinSpike
{
[Constructible]
public RuneCarvingKnife()
@ -14,24 +15,6 @@ namespace Server.Items
Attributes.WeaponDamage = 30;
}
public RuneCarvingKnife(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1072915; // Rune Carving Knife
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,6 +1,7 @@
namespace Server.Items
{
public class ShardThrasher : DiamondMace
[Serializable(0)]
public partial class ShardThrasher : DiamondMace
{
[Constructible]
public ShardThrasher()
@ -14,24 +15,6 @@ namespace Server.Items
Attributes.WeaponDamage = 40;
}
public ShardThrasher(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1072918; // Shard Thrasher
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,6 +1,7 @@
namespace Server.Items
{
public class SilvanisFeywoodBow : ElvenCompositeLongbow
[Serializable(0)]
public partial class SilvanisFeywoodBow : ElvenCompositeLongbow
{
[Constructible]
public SilvanisFeywoodBow()
@ -13,10 +14,6 @@ namespace Server.Items
Attributes.WeaponDamage = 35;
}
public SilvanisFeywoodBow(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1072955; // Silvani's Feywood Bow
public override void GetDamageTypes(
@ -27,19 +24,5 @@ namespace Server.Items
phys = fire = cold = pois = chaos = direct = 0;
nrgy = 100;
}
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,6 +1,7 @@
namespace Server.Items
{
public class TheNightReaper : RepeatingCrossbow
[Serializable(0, false)]
public partial class TheNightReaper : RepeatingCrossbow
{
[Constructible]
public TheNightReaper()
@ -14,24 +15,6 @@ namespace Server.Items
Attributes.WeaponDamage = 55;
}
public TheNightReaper(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1072912; // The Night Reaper
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
{
[Flippable(0x2D21, 0x2D2D)]
public class AssassinSpike : BaseKnife
[Serializable(0)]
public partial class AssassinSpike : BaseKnife
{
[Constructible]
public AssassinSpike() : base(0x2D21) => Weight = 4.0;
public AssassinSpike(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.InfectiousStrike;
public override WeaponAbility SecondaryAbility => WeaponAbility.ShadowStrike;
@ -29,19 +26,5 @@ namespace Server.Items
public override int InitMinHits => 30; // TODO
public override int InitMaxHits => 60; // TODO
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,16 +1,13 @@
namespace Server.Items
{
public class ButchersWarCleaver : WarCleaver
[Serializable(0)]
public partial class ButchersWarCleaver : WarCleaver
{
[Constructible]
public ButchersWarCleaver()
{
}
public ButchersWarCleaver(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073526; // butcher's war cleaver
public override void AppendChildNameProperties(ObjectPropertyList list)
@ -19,19 +16,5 @@ namespace Server.Items
list.Add(1072512); // Bovine Slayer
}
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
{
[Flippable(0x2D24, 0x2D30)]
public class DiamondMace : BaseBashing
[Serializable(0)]
public partial class DiamondMace : BaseBashing
{
[Constructible]
public DiamondMace() : base(0x2D24) => Weight = 10.0;
public DiamondMace(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ConcussionBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.CrushingBlow;
@ -26,19 +23,5 @@ namespace Server.Items
public override int InitMinHits => 30; // TODO
public override int InitMaxHits => 60; // TODO
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

@ -3,15 +3,12 @@ using System;
namespace Server.Items
{
[Flippable(0x2D1E, 0x2D2A)]
public class ElvenCompositeLongbow : BaseRanged
[Serializable(0)]
public partial class ElvenCompositeLongbow : BaseRanged
{
[Constructible]
public ElvenCompositeLongbow() : base(0x2D1E) => Weight = 8.0;
public ElvenCompositeLongbow(Serial serial) : base(serial)
{
}
public override int EffectID => 0xF42;
public override Type AmmoType => typeof(Arrow);
public override Item Ammo => new Arrow();
@ -36,19 +33,5 @@ namespace Server.Items
public override int InitMaxHits => 90;
public override WeaponAnimation DefAnimation => WeaponAnimation.ShootBow;
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
{
[Flippable(0x2D35, 0x2D29)]
public class ElvenMachete : BaseSword
[Serializable(0)]
public partial class ElvenMachete : BaseSword
{
[Constructible]
public ElvenMachete() : base(0x2D35) => Weight = 6.0;
public ElvenMachete(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.DefenseMastery;
public override WeaponAbility SecondaryAbility => WeaponAbility.Bladeweave;
@ -29,19 +26,5 @@ namespace Server.Items
public override int InitMinHits => 30;
public override int InitMaxHits => 60;
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,7 +1,8 @@
namespace Server.Items
{
[Flippable(0x2D20, 0x2D2C)]
public class ElvenSpellblade : BaseKnife
[Serializable(0)]
public partial class ElvenSpellblade : BaseKnife
{
[Constructible]
public ElvenSpellblade() : base(0x2D20)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public ElvenSpellblade(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.PsychicAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.BleedAttack;
@ -32,19 +29,5 @@ namespace Server.Items
public override int InitMinHits => 30; // TODO
public override int InitMaxHits => 60; // TODO
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
{
[Flippable(0x2D22, 0x2D2E)]
public class Leafblade : BaseKnife
[Serializable(0)]
public partial class Leafblade : BaseKnife
{
[Constructible]
public Leafblade() : base(0x2D22) => Weight = 8.0;
public Leafblade(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.Feint;
public override WeaponAbility SecondaryAbility => WeaponAbility.ArmorIgnore;
@ -29,19 +26,5 @@ namespace Server.Items
public override int InitMinHits => 30; // TODO
public override int InitMaxHits => 60; // TODO
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

@ -3,15 +3,12 @@ using System;
namespace Server.Items
{
[Flippable(0x2D2B, 0x2D1F)]
public class MagicalShortbow : BaseRanged
[Serializable(0)]
public partial class MagicalShortbow : BaseRanged
{
[Constructible]
public MagicalShortbow() : base(0x2D2B) => Weight = 6.0;
public MagicalShortbow(Serial serial) : base(serial)
{
}
public override int EffectID => 0xF42;
public override Type AmmoType => typeof(Arrow);
public override Item Ammo => new Arrow();
@ -34,19 +31,5 @@ namespace Server.Items
public override int InitMinHits => 41;
public override int InitMaxHits => 90;
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,7 +1,8 @@
namespace Server.Items
{
[Flippable(0x2D28, 0x2D34)]
public class OrnateAxe : BaseAxe
[Serializable(0)]
public partial class OrnateAxe : BaseAxe
{
[Constructible]
public OrnateAxe() : base(0x2D28)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public OrnateAxe(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.Disarm;
public override WeaponAbility SecondaryAbility => WeaponAbility.CrushingBlow;
@ -32,19 +29,5 @@ namespace Server.Items
public override int InitMinHits => 30;
public override int InitMaxHits => 60;
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
{
[Flippable(0x2D33, 0x2D27)]
public class RadiantScimitar : BaseSword
[Serializable(0)]
public partial class RadiantScimitar : BaseSword
{
[Constructible]
public RadiantScimitar() : base(0x2D33) => Weight = 9.0;
public RadiantScimitar(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.WhirlwindAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.Bladeweave;
@ -29,19 +26,5 @@ namespace Server.Items
public override int InitMinHits => 30;
public override int InitMaxHits => 60;
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,7 +1,8 @@
namespace Server.Items
{
[Flippable(0x2D32, 0x2D26)]
public class RuneBlade : BaseSword
[Serializable(0)]
public partial class RuneBlade : BaseSword
{
[Constructible]
public RuneBlade() : base(0x2D32)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public RuneBlade(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.Disarm;
public override WeaponAbility SecondaryAbility => WeaponAbility.Bladeweave;
@ -33,19 +30,5 @@ namespace Server.Items
public override int InitMinHits => 30;
public override int InitMaxHits => 60;
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
{
[Flippable(0x2D2F, 0x2D23)]
public class WarCleaver : BaseKnife
[Serializable(0)]
public partial class WarCleaver : BaseKnife
{
[Constructible]
public WarCleaver() : base(0x2D2F) => Weight = 10.0;
public WarCleaver(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.Disarm;
public override WeaponAbility SecondaryAbility => WeaponAbility.Bladeweave;
@ -33,19 +30,5 @@ namespace Server.Items
public override SkillName DefSkill => SkillName.Fencing;
public override WeaponType DefType => WeaponType.Piercing;
public override WeaponAnimation DefAnimation => WeaponAnimation.Pierce1H;
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
{
[Flippable(0x2D25, 0x2D31)]
public class WildStaff : BaseStaff
[Serializable(0)]
public partial class WildStaff : BaseStaff
{
[Constructible]
public WildStaff() : base(0x2D25) => Weight = 8.0;
public WildStaff(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.Block;
public override WeaponAbility SecondaryAbility => WeaponAbility.ForceOfNature;
@ -26,19 +23,5 @@ namespace Server.Items
public override int InitMinHits => 30;
public override int InitMaxHits => 60;
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

@ -2,16 +2,13 @@ using Server.Engines.ConPVP;
namespace Server.Items
{
public abstract class BaseBashing : BaseMeleeWeapon
[Serializable(0, false)]
public abstract partial class BaseBashing : BaseMeleeWeapon
{
public BaseBashing(int itemID) : base(itemID)
{
}
public BaseBashing(Serial serial) : base(serial)
{
}
public override int DefHitSound => 0x233;
public override int DefMissSound => 0x239;
@ -19,20 +16,6 @@ namespace Server.Items
public override WeaponType DefType => WeaponType.Bashing;
public override WeaponAnimation DefAnimation => WeaponAnimation.Bash1H;
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();
}
public override void OnHit(Mobile attacker, Mobile defender, double damageBonus = 1)
{
base.OnHit(attacker, defender, damageBonus);

View file

@ -1,15 +1,12 @@
namespace Server.Items
{
[Flippable(0x13b4, 0x13b3)]
public class Club : BaseBashing
[Serializable(0, false)]
public partial class Club : BaseBashing
{
[Constructible]
public Club() : base(0x13B4) => Weight = 9.0;
public Club(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ShadowStrike;
public override WeaponAbility SecondaryAbility => WeaponAbility.Dismount;
@ -26,19 +23,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 40;
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 EmeraldMace : DiamondMace
[Serializable(0)]
public partial class EmeraldMace : DiamondMace
{
[Constructible]
public EmeraldMace() => WeaponAttributes.ResistPoisonBonus = 5;
public EmeraldMace(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073530; // emerald mace
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

@ -2,39 +2,28 @@ using System;
namespace Server.Items
{
public class FireworksWand : MagicWand
[Serializable(0, false)]
public partial class FireworksWand : MagicWand
{
private int m_Charges;
[SerializableField(0)]
[InvalidateProperties]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private int _charges;
[Constructible]
public FireworksWand(int charges = 100)
{
m_Charges = charges;
Charges = charges;
LootType = LootType.Blessed;
}
public FireworksWand(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1041424; // a fireworks wand
[CommandProperty(AccessLevel.GameMaster)]
public int Charges
{
get => m_Charges;
set
{
m_Charges = value;
InvalidateProperties();
}
}
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
list.Add(1060741, m_Charges.ToString()); // charges: ~1_val~
list.Add(1060741, _charges.ToString()); // charges: ~1_val~
}
public override void OnDoubleClick(Mobile from)
@ -108,30 +97,5 @@ namespace Server.Items
Effects.PlaySound(endLoc, map, Utility.Random(0x11B, 4));
Effects.SendLocationEffect(endLoc, map, 0x373A + 0x10 * Utility.Random(4), 16, 10, hue, renderMode);
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_Charges);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
switch (version)
{
case 0:
{
m_Charges = reader.ReadInt();
break;
}
}
}
}
}

View file

@ -1,7 +1,8 @@
namespace Server.Items
{
[Flippable(0x143D, 0x143C)]
public class HammerPick : BaseBashing
[Serializable(0, false)]
public partial class HammerPick : BaseBashing
{
[Constructible]
public HammerPick() : base(0x143D)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.OneHanded;
}
public HammerPick(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ArmorIgnore;
public override WeaponAbility SecondaryAbility => WeaponAbility.MortalStrike;
@ -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
{
[Flippable(0xF5C, 0xF5D)]
public class Mace : BaseBashing
[Serializable(0, false)]
public partial class Mace : BaseBashing
{
[Constructible]
public Mace() : base(0xF5C) => Weight = 14.0;
public Mace(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ConcussionBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.Disarm;
@ -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,14 +1,11 @@
namespace Server.Items
{
public class MagicWand : BaseBashing
[Serializable(0, false)]
public partial class MagicWand : BaseBashing
{
[Constructible]
public MagicWand() : base(0xDF2) => Weight = 1.0;
public MagicWand(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.Dismount;
public override WeaponAbility SecondaryAbility => WeaponAbility.Disarm;
@ -25,19 +22,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
{
[Flippable(0x143B, 0x143A)]
public class Maul : BaseBashing
[Serializable(0, false)]
public partial class Maul : BaseBashing
{
[Constructible]
public Maul() : base(0x143B) => Weight = 10.0;
public Maul(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.CrushingBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.ConcussionBlow;
@ -26,24 +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();
if (Weight == 14.0)
{
Weight = 10.0;
}
}
}
}

View file

@ -1,28 +1,11 @@
namespace Server.Items
{
public class RubyMace : DiamondMace
[Serializable(0)]
public partial class RubyMace : DiamondMace
{
[Constructible]
public RubyMace() => Attributes.WeaponDamage = 5;
public RubyMace(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073529; // ruby mace
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 SapphireMace : DiamondMace
[Serializable(0)]
public partial class SapphireMace : DiamondMace
{
[Constructible]
public SapphireMace() => WeaponAttributes.ResistEnergyBonus = 5;
public SapphireMace(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073531; // sapphire mace
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
{
[Flippable(0x26BC, 0x26C6)]
public class Scepter : BaseBashing
[Serializable(0, false)]
public partial class Scepter : BaseBashing
{
[Constructible]
public Scepter() : base(0x26BC) => Weight = 8.0;
public Scepter(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.CrushingBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.MortalStrike;
@ -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,28 +1,11 @@
namespace Server.Items
{
public class SilverEtchedMace : DiamondMace
[Serializable(0)]
public partial class SilverEtchedMace : DiamondMace
{
[Constructible]
public SilverEtchedMace() => Slayer = SlayerName.Exorcism;
public SilverEtchedMace(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073532; // silver-etched mace
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,7 +1,8 @@
namespace Server.Items
{
[Flippable(0x1439, 0x1438)]
public class WarHammer : BaseBashing
[Serializable(0, false)]
public partial class WarHammer : BaseBashing
{
[Constructible]
public WarHammer() : base(0x1439)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public WarHammer(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.WhirlwindAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.CrushingBlow;
@ -32,19 +29,5 @@ namespace Server.Items
public override int InitMaxHits => 110;
public override WeaponAnimation DefAnimation => WeaponAnimation.Bash2H;
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
{
[Flippable(0x1407, 0x1406)]
public class WarMace : BaseBashing
[Serializable(0, false)]
public partial class WarMace : BaseBashing
{
[Constructible]
public WarMace() : base(0x1407) => Weight = 17.0;
public WarMace(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.CrushingBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.MortalStrike;
@ -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
{
[Flippable(0xF4D, 0xF4E)]
public class Bardiche : BasePoleArm
[Serializable(0, false)]
public partial class Bardiche : BasePoleArm
{
[Constructible]
public Bardiche() : base(0xF4D) => Weight = 7.0;
public Bardiche(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ParalyzingBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.Dismount;
@ -26,19 +23,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 100;
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

@ -6,17 +6,20 @@ using Server.Engines.Harvest;
namespace Server.Items
{
public abstract class BasePoleArm : BaseMeleeWeapon, IUsesRemaining
[Serializable(0, false)]
public abstract partial class BasePoleArm : BaseMeleeWeapon, IUsesRemaining
{
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 BasePoleArm(int itemID) : base(itemID) => m_UsesRemaining = 150;
public BasePoleArm(Serial serial) : base(serial)
{
}
public BasePoleArm(int itemID) : base(itemID) => _usesRemaining = 150;
public override int DefHitSound => 0x237;
public override int DefMissSound => 0x238;
@ -27,28 +30,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 override void OnDoubleClick(Mobile from)
{
if (HarvestSystem == null)
@ -76,47 +57,6 @@ namespace Server.Items
}
}
public override void Serialize(IGenericWriter writer)
{
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)
{
base.OnHit(attacker, defender, damageBonus);

View file

@ -1,15 +1,12 @@
namespace Server.Items
{
[Flippable(0x143E, 0x143F)]
public class Halberd : BasePoleArm
[Serializable(0, false)]
public partial class Halberd : BasePoleArm
{
[Constructible]
public Halberd() : base(0x143E) => Weight = 16.0;
public Halberd(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.WhirlwindAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.ConcussionBlow;
@ -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

@ -3,15 +3,12 @@ using Server.Engines.Harvest;
namespace Server.Items
{
[Flippable(0x26BA, 0x26C4)]
public class Scythe : BasePoleArm
[Serializable(0, false)]
public partial class Scythe : BasePoleArm
{
[Constructible]
public Scythe() : base(0x26BA) => Weight = 5.0;
public Scythe(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.BleedAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.ParalyzingBlow;
@ -30,24 +27,5 @@ namespace Server.Items
public override int InitMaxHits => 100;
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();
if (Weight == 15.0)
{
Weight = 5.0;
}
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class AssassinsShortbow : MagicalShortbow
[Serializable(0)]
public partial class AssassinsShortbow : MagicalShortbow
{
[Constructible]
public AssassinsShortbow()
@ -9,24 +10,6 @@ namespace Server.Items
Attributes.WeaponDamage = 4;
}
public AssassinsShortbow(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073512; // assassin's shortbow
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 BarbedLongbow : ElvenCompositeLongbow
[Serializable(0)]
public partial class BarbedLongbow : ElvenCompositeLongbow
{
[Constructible]
public BarbedLongbow() => Attributes.ReflectPhysical = 12;
public BarbedLongbow(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073505; // barbed longbow
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

@ -5,21 +5,25 @@ using Server.Spells;
namespace Server.Items
{
public abstract class BaseRanged : BaseMeleeWeapon
[Serializable(0, false)]
public abstract partial class BaseRanged : BaseMeleeWeapon
{
private bool m_Balanced;
[SerializableField(0)]
[InvalidateProperties]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private bool _balanced;
[SerializableField(1)]
[InvalidateProperties]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private int _velocity;
private TimerExecutionToken _recoveryTimerToken;
private int m_Velocity;
public BaseRanged(int itemID) : base(itemID)
{
}
public BaseRanged(Serial serial) : base(serial)
{
}
public abstract int EffectID { get; }
public abstract Type AmmoType { get; }
public abstract Item Ammo { get; }
@ -33,28 +37,6 @@ namespace Server.Items
public override SkillName AccuracySkill => SkillName.Archery;
[CommandProperty(AccessLevel.GameMaster)]
public bool Balanced
{
get => m_Balanced;
set
{
m_Balanced = value;
InvalidateProperties();
}
}
[CommandProperty(AccessLevel.GameMaster)]
public int Velocity
{
get => m_Velocity;
set
{
m_Velocity = value;
InvalidateProperties();
}
}
public override TimeSpan OnSwing(Mobile attacker, Mobile defender)
{
// WeaponAbility a = WeaponAbility.GetCurrentAbility( attacker );
@ -116,11 +98,11 @@ namespace Server.Items
defender.AddToBackpack(Ammo);
}
if (Core.ML && m_Velocity > 0)
if (Core.ML && _velocity > 0)
{
var bonus = (int)attacker.GetDistanceToSqrt(defender);
if (bonus > 0 && m_Velocity > Utility.Random(100))
if (bonus > 0 && _velocity > Utility.Random(100))
{
AOS.Damage(defender, attacker, bonus * 3, 100, 0, 0, 0, 0);
@ -214,50 +196,5 @@ namespace Server.Items
return true;
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(3); // version
writer.Write(m_Balanced);
writer.Write(m_Velocity);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
switch (version)
{
case 3:
{
m_Balanced = reader.ReadBool();
m_Velocity = reader.ReadInt();
goto case 2;
}
case 2:
case 1:
{
break;
}
case 0:
{
/*m_EffectID =*/
reader.ReadInt();
break;
}
}
if (version < 2)
{
WeaponAttributes.MageWeapon = 0;
WeaponAttributes.UseBestSkill = 0;
}
}
}
}

View file

@ -3,7 +3,8 @@ using System;
namespace Server.Items
{
[Flippable(0x13B2, 0x13B1)]
public class Bow : BaseRanged
[Serializable(0, false)]
public partial class Bow : BaseRanged
{
[Constructible]
public Bow() : base(0x13B2)
@ -12,10 +13,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public Bow(Serial serial) : base(serial)
{
}
public override int EffectID => 0xF42;
public override Type AmmoType => typeof(Arrow);
public override Item Ammo => new Arrow();
@ -40,24 +37,5 @@ namespace Server.Items
public override int InitMaxHits => 60;
public override WeaponAnimation DefAnimation => WeaponAnimation.ShootBow;
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();
if (Weight == 7.0)
{
Weight = 6.0;
}
}
}
}

View file

@ -3,15 +3,12 @@ using System;
namespace Server.Items
{
[Flippable(0x26C2, 0x26CC)]
public class CompositeBow : BaseRanged
[Serializable(0, false)]
public partial class CompositeBow : BaseRanged
{
[Constructible]
public CompositeBow() : base(0x26C2) => Weight = 5.0;
public CompositeBow(Serial serial) : base(serial)
{
}
public override int EffectID => 0xF42;
public override Type AmmoType => typeof(Arrow);
public override Item Ammo => new Arrow();
@ -36,19 +33,5 @@ namespace Server.Items
public override int InitMaxHits => 70;
public override WeaponAnimation DefAnimation => WeaponAnimation.ShootBow;
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

@ -3,7 +3,8 @@ using System;
namespace Server.Items
{
[Flippable(0xF50, 0xF4F)]
public class Crossbow : BaseRanged
[Serializable(0, false)]
public partial class Crossbow : BaseRanged
{
[Constructible]
public Crossbow() : base(0xF50)
@ -12,10 +13,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public Crossbow(Serial serial) : base(serial)
{
}
public override int EffectID => 0x1BFE;
public override Type AmmoType => typeof(Bolt);
public override Item Ammo => new Bolt();
@ -38,19 +35,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,6 +1,7 @@
namespace Server.Items
{
public class FrozenLongbow : ElvenCompositeLongbow
[Serializable(0)]
public partial class FrozenLongbow : ElvenCompositeLongbow
{
[Constructible]
public FrozenLongbow()
@ -9,24 +10,6 @@ namespace Server.Items
Attributes.DefendChance = 10;
}
public FrozenLongbow(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073507; // frozen longbow
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

@ -3,7 +3,8 @@ using System;
namespace Server.Items
{
[Flippable(0x13FD, 0x13FC)]
public class HeavyCrossbow : BaseRanged
[Serializable(0, false)]
public partial class HeavyCrossbow : BaseRanged
{
[Constructible]
public HeavyCrossbow() : base(0x13FD)
@ -12,10 +13,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public HeavyCrossbow(Serial serial) : base(serial)
{
}
public override int EffectID => 0x1BFE;
public override Type AmmoType => typeof(Bolt);
public override Item Ammo => new Bolt();
@ -38,19 +35,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 100;
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

@ -3,17 +3,14 @@ using Server.Targeting;
namespace Server.Items
{
[Flippable(0x13B2, 0x13B1)]
public class JukaBow : Bow
[Serializable(0, false)]
public partial class JukaBow : Bow
{
[Constructible]
public JukaBow()
{
}
public JukaBow(Serial serial) : base(serial)
{
}
public override int AosStrengthReq => 80;
public override int AosDexterityReq => 80;
@ -74,19 +71,5 @@ namespace Server.Items
from.SendMessage("You modify it.");
}
}
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 LightweightShortbow : MagicalShortbow
[Serializable(0)]
public partial class LightweightShortbow : MagicalShortbow
{
[Constructible]
public LightweightShortbow() => Balanced = true;
public LightweightShortbow(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073510; // lightweight shortbow
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 LongbowOfMight : ElvenCompositeLongbow
[Serializable(0)]
public partial class LongbowOfMight : ElvenCompositeLongbow
{
[Constructible]
public LongbowOfMight() => Attributes.WeaponDamage = 5;
public LongbowOfMight(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073508; // longbow of might
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,6 +1,7 @@
namespace Server.Items
{
public class MysticalShortbow : MagicalShortbow
[Serializable(0)]
public partial class MysticalShortbow : MagicalShortbow
{
[Constructible]
public MysticalShortbow()
@ -9,24 +10,6 @@ namespace Server.Items
Attributes.CastSpeed = -1;
}
public MysticalShortbow(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073511; // mystical shortbow
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 RangersShortbow : MagicalShortbow
[Serializable(0)]
public partial class RangersShortbow : MagicalShortbow
{
[Constructible]
public RangersShortbow() => Attributes.WeaponSpeed = 5;
public RangersShortbow(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073509; // ranger's shortbow
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

@ -3,15 +3,12 @@ using System;
namespace Server.Items
{
[Flippable(0x26C3, 0x26CD)]
public class RepeatingCrossbow : BaseRanged
[Serializable(0, false)]
public partial class RepeatingCrossbow : BaseRanged
{
[Constructible]
public RepeatingCrossbow() : base(0x26C3) => Weight = 6.0;
public RepeatingCrossbow(Serial serial) : base(serial)
{
}
public override int EffectID => 0x1BFE;
public override Type AmmoType => typeof(Bolt);
public override Item Ammo => new Bolt();
@ -34,19 +31,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 SlayerLongbow : ElvenCompositeLongbow
[Serializable(0)]
public partial class SlayerLongbow : ElvenCompositeLongbow
{
[Constructible]
public SlayerLongbow() => Slayer2 = (SlayerName)Utility.RandomMinMax(1, 27);
public SlayerLongbow(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073506; // slayer longbow
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
{
[Flippable(0x27A8, 0x27F3)]
public class Bokuto : BaseSword
[Serializable(0, false)]
public partial class Bokuto : BaseSword
{
[Constructible]
public Bokuto() : base(0x27A8) => Weight = 7.0;
public Bokuto(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.Feint;
public override WeaponAbility SecondaryAbility => WeaponAbility.NerveStrike;
@ -29,19 +26,5 @@ namespace Server.Items
public override int InitMinHits => 25;
public override int InitMaxHits => 50;
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,7 +1,8 @@
namespace Server.Items
{
[Flippable(0x27A9, 0x27F4)]
public class Daisho : BaseSword
[Serializable(0, false)]
public partial class Daisho : BaseSword
{
[Constructible]
public Daisho() : base(0x27A9)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public Daisho(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.Feint;
public override WeaponAbility SecondaryAbility => WeaponAbility.DoubleStrike;
@ -33,19 +30,5 @@ namespace Server.Items
public override int InitMinHits => 45;
public override int InitMaxHits => 65;
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,7 +1,8 @@
namespace Server.Items
{
[Flippable(0x27AD, 0x27F8)]
public class Kama : BaseKnife
[Serializable(0, false)]
public partial class Kama : BaseKnife
{
[Constructible]
public Kama() : base(0x27AD)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public Kama(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.WhirlwindAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.DefenseMastery;
@ -37,19 +34,5 @@ namespace Server.Items
public override SkillName DefSkill => SkillName.Fencing;
public override WeaponType DefType => WeaponType.Piercing;
public override WeaponAnimation DefAnimation => WeaponAnimation.Pierce1H;
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,7 +1,8 @@
namespace Server.Items
{
[Flippable(0x27A7, 0x27F2)]
public class Lajatang : BaseKnife
[Serializable(0, false)]
public partial class Lajatang : BaseKnife
{
[Constructible]
public Lajatang() : base(0x27A7)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public Lajatang(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.DefenseMastery;
public override WeaponAbility SecondaryAbility => WeaponAbility.FrenziedWhirlwind;
@ -37,19 +34,5 @@ namespace Server.Items
public override SkillName DefSkill => SkillName.Fencing;
public override WeaponType DefType => WeaponType.Piercing;
public override WeaponAnimation DefAnimation => WeaponAnimation.Pierce1H;
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,7 +1,8 @@
namespace Server.Items
{
[Flippable(0x27A2, 0x27ED)]
public class NoDachi : BaseSword
[Serializable(0, false)]
public partial class NoDachi : BaseSword
{
[Constructible]
public NoDachi() : base(0x27A2)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public NoDachi(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.CrushingBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.RidingSwipe;
@ -33,19 +30,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

@ -1,15 +1,12 @@
namespace Server.Items
{
[Flippable(0x27AE, 0x27F9)]
public class Nunchaku : BaseBashing
[Serializable(0, false)]
public partial class Nunchaku : BaseBashing
{
[Constructible]
public Nunchaku() : base(0x27AE) => Weight = 5.0;
public Nunchaku(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.Block;
public override WeaponAbility SecondaryAbility => WeaponAbility.Feint;
@ -29,19 +26,5 @@ namespace Server.Items
public override int InitMinHits => 40;
public override int InitMaxHits => 55;
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,7 +1,8 @@
namespace Server.Items
{
[Flippable(0x27AF, 0x27FA)]
public class Sai : BaseKnife
[Serializable(0, false)]
public partial class Sai : BaseKnife
{
[Constructible]
public Sai() : base(0x27AF)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public Sai(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.Block;
public override WeaponAbility SecondaryAbility => WeaponAbility.ArmorPierce;
@ -37,19 +34,5 @@ namespace Server.Items
public override SkillName DefSkill => SkillName.Fencing;
public override WeaponType DefType => WeaponType.Piercing;
public override WeaponAnimation DefAnimation => WeaponAnimation.Pierce1H;
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,7 +1,8 @@
namespace Server.Items
{
[Flippable(0x27Ab, 0x27F6)]
public class Tekagi : BaseKnife
[Serializable(0, false)]
public partial class Tekagi : BaseKnife
{
[Constructible]
public Tekagi() : base(0x27AB)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public Tekagi(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.DualWield;
public override WeaponAbility SecondaryAbility => WeaponAbility.TalonStrike;
@ -37,19 +34,5 @@ namespace Server.Items
public override SkillName DefSkill => SkillName.Fencing;
public override WeaponType DefType => WeaponType.Piercing;
public override WeaponAnimation DefAnimation => WeaponAnimation.Pierce1H;
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,7 +1,8 @@
namespace Server.Items
{
[Flippable(0x27A3, 0x27EE)]
public class Tessen : BaseBashing
[Serializable(0, false)]
public partial class Tessen : BaseBashing
{
[Constructible]
public Tessen() : base(0x27A3)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public Tessen(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.Feint;
public override WeaponAbility SecondaryAbility => WeaponAbility.Block;
@ -35,19 +32,5 @@ namespace Server.Items
public override int InitMaxHits => 60;
public override WeaponAnimation DefAnimation => WeaponAnimation.Bash2H;
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,7 +1,8 @@
namespace Server.Items
{
[Flippable(0x27A6, 0x27F1)]
public class Tetsubo : BaseBashing
[Serializable(0, false)]
public partial class Tetsubo : BaseBashing
{
[Constructible]
public Tetsubo() : base(0x27A6)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public Tetsubo(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.FrenziedWhirlwind;
public override WeaponAbility SecondaryAbility => WeaponAbility.CrushingBlow;
@ -35,19 +32,5 @@ namespace Server.Items
public override int InitMaxHits => 65;
public override WeaponAnimation DefAnimation => WeaponAnimation.Bash2H;
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,7 +1,8 @@
namespace Server.Items
{
[Flippable(0x27A4, 0x27EF)]
public class Wakizashi : BaseSword
[Serializable(0, false)]
public partial class Wakizashi : BaseSword
{
[Constructible]
public Wakizashi() : base(0x27A4)
@ -10,10 +11,6 @@ namespace Server.Items
Layer = Layer.OneHanded;
}
public Wakizashi(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.FrenziedWhirlwind;
public override WeaponAbility SecondaryAbility => WeaponAbility.DoubleStrike;
@ -33,19 +30,5 @@ namespace Server.Items
public override int InitMinHits => 45;
public override int InitMaxHits => 50;
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

@ -3,7 +3,8 @@ using System;
namespace Server.Items
{
[Flippable(0x27A5, 0x27F0)]
public class Yumi : BaseRanged
[Serializable(0, false)]
public partial class Yumi : BaseRanged
{
[Constructible]
public Yumi() : base(0x27A5)
@ -12,10 +13,6 @@ namespace Server.Items
Layer = Layer.TwoHanded;
}
public Yumi(Serial serial) : base(serial)
{
}
public override int EffectID => 0xF42;
public override Type AmmoType => typeof(Arrow);
public override Item Ammo => new Arrow();
@ -40,24 +37,5 @@ namespace Server.Items
public override int InitMaxHits => 60;
public override WeaponAnimation DefAnimation => WeaponAnimation.ShootBow;
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();
if (Weight == 7.0)
{
Weight = 6.0;
}
}
}
}

View file

@ -3,16 +3,13 @@ using Server.Engines.ConPVP;
namespace Server.Items
{
public abstract class BaseSpear : BaseMeleeWeapon
[Serializable(0, false)]
public abstract partial class BaseSpear : BaseMeleeWeapon
{
public BaseSpear(int itemID) : base(itemID)
{
}
public BaseSpear(Serial serial) : base(serial)
{
}
public override int DefHitSound => 0x23C;
public override int DefMissSound => 0x238;
@ -20,20 +17,6 @@ namespace Server.Items
public override WeaponType DefType => WeaponType.Piercing;
public override WeaponAnimation DefAnimation => WeaponAnimation.Pierce2H;
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();
}
public override void OnHit(Mobile attacker, Mobile defender, double damageBonus = 1)
{
base.OnHit(attacker, defender, damageBonus);

View file

@ -1,15 +1,12 @@
namespace Server.Items
{
[Flippable(0x26BD, 0x26C7)]
public class BladedStaff : BaseSpear
[Serializable(0, false)]
public partial class BladedStaff : BaseSpear
{
[Constructible]
public BladedStaff() : base(0x26BD) => Weight = 4.0;
public BladedStaff(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ArmorIgnore;
public override WeaponAbility SecondaryAbility => WeaponAbility.Dismount;
@ -28,19 +25,5 @@ namespace Server.Items
public override int InitMaxHits => 110;
public override SkillName DefSkill => SkillName.Swords;
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
{
[Flippable(0x26BF, 0x26C9)]
public class DoubleBladedStaff : BaseSpear
[Serializable(0, false)]
public partial class DoubleBladedStaff : BaseSpear
{
[Constructible]
public DoubleBladedStaff() : base(0x26BF) => Weight = 2.0;
public DoubleBladedStaff(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.DoubleStrike;
public override WeaponAbility SecondaryAbility => WeaponAbility.InfectiousStrike;
@ -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,15 +1,12 @@
namespace Server.Items
{
[Flippable(0x26BE, 0x26C8)]
public class Pike : BaseSpear
[Serializable(0, false)]
public partial class Pike : BaseSpear
{
[Constructible]
public Pike() : base(0x26BE) => Weight = 8.0;
public Pike(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ParalyzingBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.InfectiousStrike;
@ -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
{
[Flippable(0xE87, 0xE88)]
public class Pitchfork : BaseSpear
[Serializable(0, false)]
public partial class Pitchfork : BaseSpear
{
[Constructible]
public Pitchfork() : base(0xE87) => Weight = 11.0;
public Pitchfork(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.BleedAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.Dismount;
@ -26,24 +23,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 60;
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();
if (Weight == 10.0)
{
Weight = 11.0;
}
}
}
}

View file

@ -1,15 +1,12 @@
namespace Server.Items
{
[Flippable(0x1403, 0x1402)]
public class ShortSpear : BaseSpear
[Serializable(0, false)]
public partial class ShortSpear : BaseSpear
{
[Constructible]
public ShortSpear() : base(0x1403) => Weight = 4.0;
public ShortSpear(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ShadowStrike;
public override WeaponAbility SecondaryAbility => WeaponAbility.MortalStrike;
@ -28,19 +25,5 @@ namespace Server.Items
public override int InitMaxHits => 70;
public override WeaponAnimation DefAnimation => WeaponAnimation.Pierce1H;
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
{
[Flippable(0xF62, 0xF63)]
public class Spear : BaseSpear
[Serializable(0, false)]
public partial class Spear : BaseSpear
{
[Constructible]
public Spear() : base(0xF62) => Weight = 7.0;
public Spear(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ArmorIgnore;
public override WeaponAbility SecondaryAbility => WeaponAbility.ParalyzingBlow;
@ -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,7 +1,8 @@
namespace Server.Items
{
[Flippable(0xF62, 0xF63)]
public class TribalSpear : BaseSpear
[Serializable(0, false)]
public partial class TribalSpear : BaseSpear
{
[Constructible]
public TribalSpear() : base(0xF62)
@ -10,10 +11,6 @@ namespace Server.Items
Hue = 837;
}
public TribalSpear(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ArmorIgnore;
public override WeaponAbility SecondaryAbility => WeaponAbility.ParalyzingBlow;
@ -34,19 +31,5 @@ namespace Server.Items
public override int VirtualDamageBonus => 25;
public override string DefaultName => "a tribal spear";
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
{
[Flippable(0x1405, 0x1404)]
public class WarFork : BaseSpear
[Serializable(0, false)]
public partial class WarFork : BaseSpear
{
[Constructible]
public WarFork() : base(0x1405) => Weight = 9.0;
public WarFork(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.BleedAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.Disarm;
@ -31,19 +28,5 @@ namespace Server.Items
public override int InitMaxHits => 110;
public override WeaponAnimation DefAnimation => WeaponAnimation.Pierce1H;
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
{
public abstract class BaseStaff : BaseMeleeWeapon
[Serializable(0, false)]
public abstract partial class BaseStaff : BaseMeleeWeapon
{
public BaseStaff(int itemID) : base(itemID)
{
}
public BaseStaff(Serial serial) : base(serial)
{
}
public override int DefHitSound => 0x233;
public override int DefMissSound => 0x239;
@ -17,20 +14,6 @@ namespace Server.Items
public override WeaponType DefType => WeaponType.Staff;
public override WeaponAnimation DefAnimation => WeaponAnimation.Bash2H;
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();
}
public override void OnHit(Mobile attacker, Mobile defender, double damageBonus = 1)
{
base.OnHit(attacker, defender, damageBonus);

View file

@ -1,15 +1,12 @@
namespace Server.Items
{
[Flippable(0xDF1, 0xDF0)]
public class BlackStaff : BaseStaff
[Serializable(0, false)]
public partial class BlackStaff : BaseStaff
{
[Constructible]
public BlackStaff() : base(0xDF0) => Weight = 6.0;
public BlackStaff(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.WhirlwindAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.ParalyzingBlow;
@ -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 GlacialStaff : BlackStaff
[Serializable(0, false)]
public partial class GlacialStaff : BlackStaff
{
[Constructible]
public GlacialStaff()
@ -12,25 +13,7 @@ namespace Server.Items
AosElementDamages[AosElementAttribute.Cold] = 20 + 5 * Utility.RandomMinMax(0, 6);
}
public GlacialStaff(Serial serial) : base(serial)
{
}
// TODO: Pre-AoS stuff
public override int LabelNumber => 1017413; // Glacial Staff
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
{
[Flippable(0x13F8, 0x13F9)]
public class GnarledStaff : BaseStaff
[Serializable(0, false)]
public partial class GnarledStaff : BaseStaff
{
[Constructible]
public GnarledStaff() : base(0x13F8) => Weight = 3.0;
public GnarledStaff(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ConcussionBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.ParalyzingBlow;
@ -26,19 +23,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 50;
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
{
[Flippable(0xE89, 0xE8a)]
public class QuarterStaff : BaseStaff
[Serializable(0, false)]
public partial class QuarterStaff : BaseStaff
{
[Constructible]
public QuarterStaff() : base(0xE89) => Weight = 4.0;
public QuarterStaff(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.DoubleStrike;
public override WeaponAbility SecondaryAbility => WeaponAbility.ConcussionBlow;
@ -26,19 +23,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 60;
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

@ -7,15 +7,12 @@ using Server.Targeting;
namespace Server.Items
{
[Flippable(0xE81, 0xE82)]
public class ShepherdsCrook : BaseStaff
[Serializable(0, false)]
public partial class ShepherdsCrook : BaseStaff
{
[Constructible]
public ShepherdsCrook() : base(0xE81) => Weight = 4.0;
public ShepherdsCrook(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.CrushingBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.Disarm;
@ -33,25 +30,6 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 50;
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();
if (Weight == 2.0)
{
Weight = 4.0;
}
}
public override void OnDoubleClick(Mobile from)
{
from.SendLocalizedMessage(502464); // Target the animal you wish to herd.

View file

@ -1,28 +1,11 @@
namespace Server.Items
{
public class AdventurersMachete : ElvenMachete
[Serializable(0)]
public partial class AdventurersMachete : ElvenMachete
{
[Constructible]
public AdventurersMachete() => Attributes.Luck = 20;
public AdventurersMachete(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073533; // adventurer's machete
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

@ -2,34 +2,17 @@ using Server.Targets;
namespace Server.Items
{
public abstract class BaseSword : BaseMeleeWeapon
[Serializable(0, false)]
public abstract partial class BaseSword : BaseMeleeWeapon
{
public BaseSword(int itemID) : base(itemID)
{
}
public BaseSword(Serial serial) : base(serial)
{
}
public override SkillName DefSkill => SkillName.Swords;
public override WeaponType DefType => WeaponType.Slashing;
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();
}
public override void OnDoubleClick(Mobile from)
{
from.SendLocalizedMessage(1010018); // What do you want to use this item on?

View file

@ -1,15 +1,12 @@
namespace Server.Items
{
[Flippable(0x26BB, 0x26C5)]
public class BoneHarvester : BaseSword
[Serializable(0, false)]
public partial class BoneHarvester : BaseSword
{
[Constructible]
public BoneHarvester() : base(0x26BB) => Weight = 3.0;
public BoneHarvester(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.ParalyzingBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.MortalStrike;
@ -29,19 +26,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,16 +2,12 @@ using Server.Engines.MLQuests.Items;
namespace Server.Items
{
public class BoneMachete : ElvenMachete, ITicket
[Serializable(0)]
public partial class BoneMachete : ElvenMachete, ITicket
{
[Constructible]
public BoneMachete() => ItemID = 0x20E;
public BoneMachete(Serial serial)
: base(serial)
{
}
public override WeaponAbility PrimaryAbility => null;
public override WeaponAbility SecondaryAbility => null;
@ -40,19 +36,5 @@ namespace Server.Items
); // Your bone handled machete has grown dull but you still manage to force your way past the venomous branches.
}
}
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
{
[Flippable(0xF5E, 0xF5F)]
public class Broadsword : BaseSword
[Serializable(0, false)]
public partial class Broadsword : BaseSword
{
[Constructible]
public Broadsword() : base(0xF5E) => Weight = 6.0;
public Broadsword(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.CrushingBlow;
public override WeaponAbility SecondaryAbility => WeaponAbility.ArmorIgnore;
@ -29,19 +26,5 @@ namespace Server.Items
public override int InitMinHits => 31;
public override int InitMaxHits => 100;
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 ChargedAssassinSpike : AssassinSpike
[Serializable(0)]
public partial class ChargedAssassinSpike : AssassinSpike
{
[Constructible]
public ChargedAssassinSpike() => WeaponAttributes.HitLightning = 10;
public ChargedAssassinSpike(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073518; // charged assassin spike
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,6 +1,7 @@
namespace Server.Items
{
public class CorruptedRuneBlade : RuneBlade
[Serializable(0)]
public partial class CorruptedRuneBlade : RuneBlade
{
[Constructible]
public CorruptedRuneBlade()
@ -9,24 +10,6 @@ namespace Server.Items
WeaponAttributes.ResistPoisonBonus = 12;
}
public CorruptedRuneBlade(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073540; // Corrupted Rune Blade
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
{
[Flippable(0x26C1, 0x26CB)]
public class CrescentBlade : BaseSword
[Serializable(0, false)]
public partial class CrescentBlade : BaseSword
{
[Constructible]
public CrescentBlade() : base(0x26C1) => Weight = 1.0;
public CrescentBlade(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.DoubleStrike;
public override WeaponAbility SecondaryAbility => WeaponAbility.MortalStrike;
@ -29,19 +26,5 @@ namespace Server.Items
public override int InitMinHits => 51;
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,15 +1,12 @@
namespace Server.Items
{
[Flippable(0x1441, 0x1440)]
public class Cutlass : BaseSword
[Serializable(0, false)]
public partial class Cutlass : BaseSword
{
[Constructible]
public Cutlass() : base(0x1441) => Weight = 8.0;
public Cutlass(Serial serial) : base(serial)
{
}
public override WeaponAbility PrimaryAbility => WeaponAbility.BleedAttack;
public override WeaponAbility SecondaryAbility => WeaponAbility.ShadowStrike;
@ -29,19 +26,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,28 +1,11 @@
namespace Server.Items
{
public class DarkglowScimitar : RadiantScimitar
[Serializable(0)]
public partial class DarkglowScimitar : RadiantScimitar
{
[Constructible]
public DarkglowScimitar() => WeaponAttributes.HitDispel = 10;
public DarkglowScimitar(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073542; // darkglow scimitar
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 DiseasedMachete : ElvenMachete
[Serializable(0)]
public partial class DiseasedMachete : ElvenMachete
{
[Constructible]
public DiseasedMachete() => WeaponAttributes.HitPoisonArea = 25;
public DiseasedMachete(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073536; // Diseased Machete
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();
}
}
}

Some files were not shown because too many files have changed in this diff Show more