private void ProcessValidPurchase( int amount, IBuyItemInfo bii, Mobile buyer, Container cont )
{
if ( amount > bii.Amount )
amount = bii.Amount;
if ( amount < 1 )
return;
bii.Amount -= amount;
IEntity o = bii.GetEntity();
if ( o is Item )
{
Item item = (Item)o;
if ( item.Stackable )
{
item.Amount = amount;
if ( cont == null || !cont.TryDropItem( buyer, item, false ) )
item.MoveToWorld( buyer.Location, buyer.Map );
}
else
{
item.Amount = 1;
if ( cont == null || !cont.TryDropItem( buyer, item, false ) )
item.MoveToWorld( buyer.Location, buyer.Map );
for ( int i = 1; i < amount; i++ )
{
item = bii.GetEntity() as Item;
if ( item != null )
{
item.Amount = 1;
if ( cont == null || !cont.TryDropItem( buyer, item, false ) )
item.MoveToWorld( buyer.Location, buyer.Map );
}
}
}
}
else if ( o is Mobile )
{
Mobile m = (Mobile)o;
m.Direction = (Direction)Utility.Random( 8 );
m.MoveToWorld( buyer.Location, buyer.Map );
m.PlaySound( m.GetIdleSound() );
if (m is BaseCreature)
{
((BaseCreature)m).SetControlMaster(buyer);
((BaseCreature)m).ControlOrder = OrderType.Stop;
}
for ( int i = 1; i < amount; ++i )
{
m = bii.GetEntity() as Mobile;
if ( m != null )
{
m.Direction = (Direction)Utility.Random( 8 );
m.MoveToWorld( buyer.Location, buyer.Map );
if (m is BaseCreature)
{
((BaseCreature)m).SetControlMaster(buyer);
((BaseCreature)m).ControlOrder = OrderType.Stop;
}
}
}
}
}