using System; using Server.Engines.Craft; namespace Server.Items { [FlipableAttribute(0xFB5, 0xFB4)] public class SledgeHammer : BaseTool { [Constructable] public SledgeHammer() : base(0xFB5) { Layer = Layer.OneHanded; } [Constructable] public SledgeHammer(int uses) : base(uses, 0xFB5) { Layer = Layer.OneHanded; } public SledgeHammer(Serial serial) : base(serial) { } public override CraftSystem CraftSystem { get { return DefBlacksmithy.CraftSystem; } } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class SledgeHammerWeapon : BaseBashing, ITool { [Constructable] public SledgeHammerWeapon() : base(0xFB5) { Layer = Layer.OneHanded; ShowUsesRemaining = true; } #region ITool Members public CraftSystem CraftSystem { get { return DefBlacksmithy.CraftSystem; } } public bool BreakOnDepletion { get { return true; } } public bool CheckAccessible(Mobile m, ref int num) { if (!IsChildOf(m) && Parent != m) { num = 1044263; return false; } return true; } #endregion public SledgeHammerWeapon(Serial serial) : base(serial) { } public override WeaponAbility PrimaryAbility { get { return WeaponAbility.CrushingBlow; } } public override WeaponAbility SecondaryAbility { get { return WeaponAbility.ParalyzingBlow; } } public override int AosStrengthReq { get { return 40; } } public override int AosMinDamage { get { return 13; } } public override int AosMaxDamage { get { return 17; } } public override int AosSpeed { get { return 40; } } public override float MlSpeed { get { return 3.25f; } } public override int OldStrengthReq { get { return 40; } } public override int InitMinHits { get { return 31; } } public override int InitMaxHits { get { return 70; } } public override void OnDoubleClick(Mobile from) { if (CraftSystem != null && (IsChildOf(from.Backpack) || Parent == from)) { int num = CraftSystem.CanCraft(from, this, null); if (num > 0 && (num != 1044267 || !Core.SE)) // Blacksmithing shows the gump regardless of proximity of an anvil and forge after SE { from.SendLocalizedMessage(num); } else { CraftContext context = CraftSystem.GetContext(from); from.SendGump(new CraftGump(from, CraftSystem, this, null)); } } else { from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it. } } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } }