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