165 lines
No EOL
4.1 KiB
C#
165 lines
No EOL
4.1 KiB
C#
using System;
|
|
using Server;
|
|
using Server.Targeting;
|
|
using Server.Items;
|
|
using Server.Engines.Harvest;
|
|
using Server.Mobiles;
|
|
|
|
namespace Server.Targets
|
|
{
|
|
public class BladedItemTarget : Target
|
|
{
|
|
private Item m_Item;
|
|
|
|
public BladedItemTarget( Item item ) : base( 2, false, TargetFlags.None )
|
|
{
|
|
m_Item = item;
|
|
}
|
|
|
|
protected override void OnTarget( Mobile from, object targeted )
|
|
{
|
|
if ( m_Item.Deleted )
|
|
return;
|
|
|
|
if ( targeted is ICarvable )
|
|
{
|
|
((ICarvable)targeted).Carve( from, m_Item );
|
|
}
|
|
else
|
|
{
|
|
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.SendLocalizedMessage( 500494 ); // You can't use a bladed item on that!
|
|
}
|
|
else if ( !def.Validate( tileID ) )
|
|
{
|
|
from.SendLocalizedMessage( 500494 ); // 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.SendLocalizedMessage( 500493 ); // There's not enough wood here to harvest.
|
|
}
|
|
else
|
|
{
|
|
bank.Consume( 5, from );
|
|
|
|
if ( tileID == 0x4D96 || tileID == 0x4D9A ) // apples
|
|
{
|
|
Item item = new Apple();
|
|
|
|
if ( from.PlaceInBackpack( item ) )
|
|
{
|
|
from.SendMessage( "You put an apple into your backpack." );
|
|
}
|
|
else
|
|
{
|
|
from.SendMessage( "You can't place any apples into your backpack!" );
|
|
item.Delete();
|
|
}
|
|
}
|
|
else if ( tileID == 0x4DA6 || tileID == 0x4DAA ) // pears
|
|
{
|
|
Item item = new Pear();
|
|
|
|
if ( from.PlaceInBackpack( item ) )
|
|
{
|
|
from.SendMessage( "You put a pear into your backpack." );
|
|
}
|
|
else
|
|
{
|
|
from.SendMessage( "You can't place any pears into your backpack!" );
|
|
item.Delete();
|
|
}
|
|
}
|
|
else if ( tileID == 0x4D9E || tileID == 0x4DA2 ) // peaches
|
|
{
|
|
Item item = new Peach();
|
|
|
|
if ( from.PlaceInBackpack( item ) )
|
|
{
|
|
from.SendMessage( "You put a peach into your backpack." );
|
|
}
|
|
else
|
|
{
|
|
from.SendMessage( "You can't place any peaches into your backpack!" );
|
|
item.Delete();
|
|
}
|
|
}
|
|
else if ( tileID == 0x4CA8 || tileID == 0x4CAA || tileID == 0x4CAB ) // bananas
|
|
{
|
|
Item item = new Banana();
|
|
|
|
if ( from.PlaceInBackpack( item ) )
|
|
{
|
|
from.SendMessage( "You put a banana into your backpack." );
|
|
}
|
|
else
|
|
{
|
|
from.SendMessage( "You can't place any bananas into your backpack!" );
|
|
item.Delete();
|
|
}
|
|
}
|
|
else if ( tileID == 0x4C95 ) // coconut
|
|
{
|
|
Item item = new Coconut();
|
|
|
|
if ( from.PlaceInBackpack( item ) )
|
|
{
|
|
from.SendMessage( "You put a coconut into your backpack." );
|
|
}
|
|
else
|
|
{
|
|
from.SendMessage( "You can't place any coconuts into your backpack!" );
|
|
item.Delete();
|
|
}
|
|
}
|
|
else if ( tileID == 0x4C96 ) // dates
|
|
{
|
|
Item item = new Dates();
|
|
|
|
if ( from.PlaceInBackpack( item ) )
|
|
{
|
|
from.SendMessage( "You put some dates into your backpack." );
|
|
}
|
|
else
|
|
{
|
|
from.SendMessage( "You can't place any dates into your backpack!" );
|
|
item.Delete();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Item item = new Kindling();
|
|
|
|
if ( from.PlaceInBackpack( item ) )
|
|
{
|
|
from.SendLocalizedMessage( 500491 ); // You put some kindling into your backpack.
|
|
from.SendLocalizedMessage( 500492 ); // An axe would probably get you more wood.
|
|
}
|
|
else
|
|
{
|
|
from.SendLocalizedMessage( 500490 ); // You can't place any kindling into your backpack!
|
|
|
|
item.Delete();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |