Files
abysmal-isle/Scripts/Items/Tools/SledgeHammer.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

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();
}
}
}