189 lines
4.3 KiB
C#
189 lines
4.3 KiB
C#
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();
|
|
}
|
|
}
|
|
} |