public override void OnDoubleClick(Mobile from) { BaseTool m_Tool = this; string IsFrom = "Main"; from.SendMenu(new BowFletchingMenu(from, BowFletchingMenu.Main(from), IsFrom, m_Tool)); }
protected override void OnTarget(Mobile from, object targeted) { if (m_System is Mining && targeted is StaticTarget) { int itemID = ((StaticTarget)targeted).ItemID; // grave if (itemID == 0xED3 || itemID == 0xEDF || itemID == 0xEE0 || itemID == 0xEE1 || itemID == 0xEE2 || itemID == 0xEE8) { PlayerMobile player = from as PlayerMobile; if (player != null) { QuestSystem qs = player.Quest; if (qs is WitchApprenticeQuest) { FindIngredientObjective obj = qs.FindObjective(typeof(FindIngredientObjective)) as FindIngredientObjective; if (obj != null && !obj.Completed && obj.Ingredient == Ingredient.Bones) { player.SendLocalizedMessage(1055037); // You finish your grim work, finding some of the specific bones listed in the Hag's recipe. obj.Complete(); return; } } } } } if (m_System is Lumberjacking && targeted is IChopable) { if (m_Tool.Parent != from) { from.SendAsciiMessage("The axe must be equipped for any serious wood chopping."); //from.SendLocalizedMessage( 500487 ); // The axe must be equipped for any serious wood chopping. return; } else { ((IChopable)targeted).OnChop(from); } } else if (m_System is Lumberjacking && targeted is ICarvable) { from.Animate(32, 5, 1, true, false, 0); ((ICarvable)targeted).Carve(from, m_Tool); } else if (m_System is Lumberjacking && targeted is Log) { BaseTool tools = new FletcherTools(); from.SendMenu(new BowFletchingMenu(from, BowFletchingMenu.Main(from), "Main", tools)); if (tools != null) { tools.Delete(); } } else if (m_System is Lumberjacking && FurnitureAttribute.Check(targeted as Item)) { DestroyFurniture(from, (Item)targeted); } else if (m_System is Mining && targeted is TreasureMap) { ((TreasureMap)targeted).OnBeginDig(from); } else { m_System.StartHarvesting(from, m_Tool, targeted); } }
protected override void OnTarget(Mobile from, object targeted) { if (m_Item.Deleted) { return; } if (targeted is ICarvable) { from.Animate(32, 5, 1, true, false, 0); ((ICarvable)targeted).Carve(from, m_Item); } else if (targeted is Log) { BaseTool tools = new FletcherTools(); from.SendMenu(new BowFletchingMenu(from, BowFletchingMenu.Main(from), "Main", tools)); if (tools != null) { tools.Delete(); } } else if (targeted is SwampDragon && ((SwampDragon)targeted).HasBarding) { SwampDragon pet = (SwampDragon)targeted; if (!pet.Controlled || pet.ControlMaster != from) { from.SendLocalizedMessage(1053022); // You cannot remove barding from a swamp dragon you do not own. } else { pet.HasBarding = false; } } else { if (targeted is StaticTarget) { int itemID = ((StaticTarget)targeted).ItemID; if (itemID == 0xD15 || itemID == 0xD16) // red mushroom { PlayerMobile player = from as PlayerMobile; if (player != null) { QuestSystem qs = player.Quest; if (qs is WitchApprenticeQuest) { FindIngredientObjective obj = qs.FindObjective(typeof(FindIngredientObjective)) as FindIngredientObjective; if (obj != null && !obj.Completed && obj.Ingredient == Ingredient.RedMushrooms) { player.SendLocalizedMessage(1055036); // You slice a red cap mushroom from its stem. obj.Complete(); return; } } } } } HarvestSystem system = Lumberjacking.System; HarvestDefinition def = Lumberjacking.System.Definition; int tileID; Map map; Point3D loc; if (!system.GetHarvestDetails(from, m_Item, targeted, out tileID, out map, out loc)) { from.SendAsciiMessage("You can't use a bladed item on that!"); // You can't use a bladed item on that! } else if (!def.Validate(tileID)) { from.SendAsciiMessage("You can't use a bladed item on that!"); // You can't use a bladed item on that! } else { HarvestBank bank = def.GetBank(map, loc.X, loc.Y); if (bank == null) { return; } if (bank.Current < 5) { from.SendAsciiMessage("There's not enough wood here to harvest."); // There's not enough wood here to harvest. } else { bank.Consume(5, from); Item item = new Kindling(); if (from.PlaceInBackpack(item)) { from.SendAsciiMessage("You put some kindling into your backpack."); // You put some kindling into your backpack. from.SendAsciiMessage("An axe would probably get you more wood."); // An axe would probably get you more wood. } else { from.SendAsciiMessage("You can't place any kindling into your backpack!"); // You can't place any kindling into your backpack! item.Delete(); } } } } }