using System; using Server.Custom.CraftMenu; using Server.Engines.Craft; using Server.Targeting; namespace Server.Items { public class SewingKit : BaseTool { // public override CraftSystem CraftSystem { get { return DefTailoring.CraftSystem; } } [Constructable] public SewingKit() : base(0xF9D) { Weight = 2.0; } [Constructable] public SewingKit(int uses) : base(uses, 0xF9D) { Weight = 2.0; } public SewingKit(Serial serial) : base(serial) { } public override CraftSystem CraftSystem { get { return DefTailoring.CraftSystem; } } public override void OnDoubleClick(Mobile from) { from.Target = new SewingKitTarget(this, this.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 SewingKitTarget : Target { private BaseTool m_Tool; private CraftSystem m_CraftSystem; public SewingKitTarget(BaseTool tool, CraftSystem craftSystem) : base(4, true, TargetFlags.None) { m_Tool = tool; m_CraftSystem = craftSystem; } protected override void OnTarget(Mobile from, object targeted) { if (targeted is Cloth && m_Tool is BaseTool || targeted is BoltOfCloth && m_Tool is BaseTool) { CraftSubRes subRes = CustomCraftMenu.GetSubRes( DefTailoring.CraftSystem, targeted.GetType(), null ); if (!CustomCraftMenu.ResourceInfoList.ContainsKey(subRes)) { from.SendAsciiMessage("You can't use that."); return; } from.SendMenu( new CustomCraftMenu( from, DefTailoring.CraftSystem, ( (BaseTool)m_Tool ), -1, targeted.GetType(), CustomCraftMenu.ResourceInfoList[subRes].ResourceIndex ) ); } else from.SendAsciiMessage("You cant use this on that!"); } } } }