using System; using Server.Engines.Craft; namespace Server.Items { public class GargishClothArmsArmor : BaseArmor { [Constructable] public GargishClothArmsArmor() : this(0) { } [Constructable] public GargishClothArmsArmor(int hue) : base(0x404) { Hue = hue; Weight = 2.0; } public override bool Scissor(Mobile from, Scissors scissors) { if (!IsChildOf(from.Backpack)) { from.SendLocalizedMessage(502437); // Items you wish to cut must be in your backpack. return false; } if (Ethics.Ethic.IsImbued(this)) { from.SendLocalizedMessage(502440); // Scissors can not be used on that to produce anything. return false; } CraftSystem system = DefTailoring.CraftSystem; CraftItem item = system.CraftItems.SearchFor(GetType()); if (item != null && item.Resources.Count == 1 && item.Resources.GetAt(0).Amount >= 2) { try { Type resourceType = null; CraftResourceInfo info = CraftResources.GetInfo(Resource); if (info != null && info.ResourceTypes.Length > 0) resourceType = info.ResourceTypes[0]; if (resourceType == null) resourceType = item.Resources.GetAt(0).ItemType; Item res = (Item)Activator.CreateInstance(resourceType); ScissorHelper(from, res, PlayerConstructed ? (item.Resources.GetAt(0).Amount / 2) : 1); res.LootType = LootType.Regular; return true; } catch { } } from.SendLocalizedMessage(502440); // Scissors can not be used on that to produce anything. return false; } public override Race RequiredRace { get { return Race.Gargoyle; } } public override bool CanBeWornByGargoyles { get { return true; } } public GargishClothArmsArmor(Serial serial) : base(serial) { } public override int BasePhysicalResistance { get { return 5; } } public override int BaseFireResistance { get { return 7; } } public override int BaseColdResistance { get { return 6; } } public override int BasePoisonResistance { get { return 6; } } public override int BaseEnergyResistance { get { return 6; } } public override int InitMinHits { get { return 40; } } public override int InitMaxHits { get { return 50; } } public override int AosStrReq { get { return 20; } } public override int OldStrReq { get { return 20; } } public override int ArmorBase { get { return 18; } } public override ArmorMaterialType MaterialType { get { return ArmorMaterialType.Leather; } } public override CraftResource DefaultResource { get { return CraftResource.None; } } public override ArmorMeditationAllowance DefMedAllowance { get { return ArmorMeditationAllowance.All; } } public override int OnCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, ITool tool, CraftItem craftItem, int resHue) { return base.OnCraft(quality, makersMark, from, craftSystem, null, tool, craftItem, resHue); } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class FemaleGargishClothArmsArmor : GargishClothArmsArmor { [Constructable] public FemaleGargishClothArmsArmor() : this(0) { } [Constructable] public FemaleGargishClothArmsArmor(int hue) : base(0x403) { Hue = hue; Weight = 2.0; } public FemaleGargishClothArmsArmor(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class GargishClothChestArmor : BaseArmor { [Constructable] public GargishClothChestArmor() : this(0) { } [Constructable] public GargishClothChestArmor(int hue) : base(0x406) { Hue = hue; Weight = 2.0; } public override bool Scissor(Mobile from, Scissors scissors) { if (!IsChildOf(from.Backpack)) { from.SendLocalizedMessage(502437); // Items you wish to cut must be in your backpack. return false; } if (Ethics.Ethic.IsImbued(this)) { from.SendLocalizedMessage(502440); // Scissors can not be used on that to produce anything. return false; } CraftSystem system = DefTailoring.CraftSystem; CraftItem item = system.CraftItems.SearchFor(GetType()); if (item != null && item.Resources.Count == 1 && item.Resources.GetAt(0).Amount >= 2) { try { Type resourceType = null; CraftResourceInfo info = CraftResources.GetInfo(Resource); if (info != null && info.ResourceTypes.Length > 0) resourceType = info.ResourceTypes[0]; if (resourceType == null) resourceType = item.Resources.GetAt(0).ItemType; Item res = (Item)Activator.CreateInstance(resourceType); ScissorHelper(from, res, PlayerConstructed ? (item.Resources.GetAt(0).Amount / 2) : 1); res.LootType = LootType.Regular; return true; } catch { } } from.SendLocalizedMessage(502440); // Scissors can not be used on that to produce anything. return false; } public override Race RequiredRace { get { return Race.Gargoyle; } } public override bool CanBeWornByGargoyles { get { return true; } } public GargishClothChestArmor(Serial serial) : base(serial) { } public override int BasePhysicalResistance { get { return 5; } } public override int BaseFireResistance { get { return 7; } } public override int BaseColdResistance { get { return 6; } } public override int BasePoisonResistance { get { return 6; } } public override int BaseEnergyResistance { get { return 6; } } public override int InitMinHits { get { return 40; } } public override int InitMaxHits { get { return 50; } } public override int AosStrReq { get { return 25; } } public override int OldStrReq { get { return 25; } } public override int ArmorBase { get { return 18; } } public override ArmorMaterialType MaterialType { get { return ArmorMaterialType.Leather; } } public override CraftResource DefaultResource { get { return CraftResource.None; } } public override ArmorMeditationAllowance DefMedAllowance { get { return ArmorMeditationAllowance.All; } } public override int OnCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, ITool tool, CraftItem craftItem, int resHue) { return base.OnCraft(quality, makersMark, from, craftSystem, null, tool, craftItem, resHue); } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class FemaleGargishClothChestArmor : GargishClothChestArmor { [Constructable] public FemaleGargishClothChestArmor() : this(0) { } [Constructable] public FemaleGargishClothChestArmor(int hue) : base(0x405) { Hue = hue; Weight = 2.0; } public FemaleGargishClothChestArmor(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class GargishClothLegsArmor : BaseArmor { [Constructable] public GargishClothLegsArmor() : this(0) { } [Constructable] public GargishClothLegsArmor(int hue) : base(0x40A) { Hue = hue; Weight = 2.0; } public override bool Scissor(Mobile from, Scissors scissors) { if (!IsChildOf(from.Backpack)) { from.SendLocalizedMessage(502437); // Items you wish to cut must be in your backpack. return false; } if (Ethics.Ethic.IsImbued(this)) { from.SendLocalizedMessage(502440); // Scissors can not be used on that to produce anything. return false; } CraftSystem system = DefTailoring.CraftSystem; CraftItem item = system.CraftItems.SearchFor(GetType()); if (item != null && item.Resources.Count == 1 && item.Resources.GetAt(0).Amount >= 2) { try { Type resourceType = null; CraftResourceInfo info = CraftResources.GetInfo(Resource); if (info != null && info.ResourceTypes.Length > 0) resourceType = info.ResourceTypes[0]; if (resourceType == null) resourceType = item.Resources.GetAt(0).ItemType; Item res = (Item)Activator.CreateInstance(resourceType); ScissorHelper(from, res, PlayerConstructed ? (item.Resources.GetAt(0).Amount / 2) : 1); res.LootType = LootType.Regular; return true; } catch { } } from.SendLocalizedMessage(502440); // Scissors can not be used on that to produce anything. return false; } public override Race RequiredRace { get { return Race.Gargoyle; } } public override bool CanBeWornByGargoyles { get { return true; } } public GargishClothLegsArmor(Serial serial) : base(serial) { } public override int BasePhysicalResistance { get { return 5; } } public override int BaseFireResistance { get { return 7; } } public override int BaseColdResistance { get { return 6; } } public override int BasePoisonResistance { get { return 6; } } public override int BaseEnergyResistance { get { return 6; } } public override int InitMinHits { get { return 40; } } public override int InitMaxHits { get { return 50; } } public override int AosStrReq { get { return 20; } } public override int OldStrReq { get { return 20; } } public override int ArmorBase { get { return 18; } } public override ArmorMaterialType MaterialType { get { return ArmorMaterialType.Leather; } } public override CraftResource DefaultResource { get { return CraftResource.None; } } public override ArmorMeditationAllowance DefMedAllowance { get { return ArmorMeditationAllowance.All; } } public override int OnCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, ITool tool, CraftItem craftItem, int resHue) { return base.OnCraft(quality, makersMark, from, craftSystem, null, tool, craftItem, resHue); } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class FemaleGargishClothLegsArmor : GargishClothLegsArmor { [Constructable] public FemaleGargishClothLegsArmor() : this(0) { } [Constructable] public FemaleGargishClothLegsArmor(int hue) : base(0x409) { Hue = hue; Weight = 2.0; } public FemaleGargishClothLegsArmor(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class GargishClothKiltArmor : BaseArmor { [Constructable] public GargishClothKiltArmor() : this(0) { } [Constructable] public GargishClothKiltArmor(int hue) : base(0x408) { Hue = hue; Weight = 2.0; } public override bool Scissor(Mobile from, Scissors scissors) { if (!IsChildOf(from.Backpack)) { from.SendLocalizedMessage(502437); // Items you wish to cut must be in your backpack. return false; } if (Ethics.Ethic.IsImbued(this)) { from.SendLocalizedMessage(502440); // Scissors can not be used on that to produce anything. return false; } CraftSystem system = DefTailoring.CraftSystem; CraftItem item = system.CraftItems.SearchFor(GetType()); if (item != null && item.Resources.Count == 1 && item.Resources.GetAt(0).Amount >= 2) { try { Type resourceType = null; CraftResourceInfo info = CraftResources.GetInfo(Resource); if (info != null && info.ResourceTypes.Length > 0) resourceType = info.ResourceTypes[0]; if (resourceType == null) resourceType = item.Resources.GetAt(0).ItemType; Item res = (Item)Activator.CreateInstance(resourceType); ScissorHelper(from, res, PlayerConstructed ? (item.Resources.GetAt(0).Amount / 2) : 1); res.LootType = LootType.Regular; return true; } catch { } } from.SendLocalizedMessage(502440); // Scissors can not be used on that to produce anything. return false; } public override Race RequiredRace { get { return Race.Gargoyle; } } public override bool CanBeWornByGargoyles { get { return true; } } public override int OnCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, ITool tool, CraftItem craftItem, int resHue) { return base.OnCraft(quality, makersMark, from, craftSystem, null, tool, craftItem, resHue); } public GargishClothKiltArmor(Serial serial) : base(serial) { } public override int BasePhysicalResistance { get { return 5; } } public override int BaseFireResistance { get { return 7; } } public override int BaseColdResistance { get { return 6; } } public override int BasePoisonResistance { get { return 6; } } public override int BaseEnergyResistance { get { return 6; } } public override int InitMinHits { get { return 40; } } public override int InitMaxHits { get { return 50; } } public override int AosStrReq { get { return 20; } } public override int OldStrReq { get { return 20; } } public override int ArmorBase { get { return 18; } } public override ArmorMaterialType MaterialType { get { return ArmorMaterialType.Leather; } } public override CraftResource DefaultResource { get { return CraftResource.None; } } public override ArmorMeditationAllowance DefMedAllowance { get { return ArmorMeditationAllowance.All; } } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class FemaleGargishClothKiltArmor : GargishClothKiltArmor { [Constructable] public FemaleGargishClothKiltArmor() : this(0) { } [Constructable] public FemaleGargishClothKiltArmor(int hue) : base(0x407) { Hue = hue; Weight = 2.0; } public FemaleGargishClothKiltArmor(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } }