Server.Mobiles.BaseVendor.ProcessValidPurchase C# (CSharp) Méthode

ProcessValidPurchase() private méthode

private ProcessValidPurchase ( int amount, IBuyItemInfo bii, Mobile buyer, Container cont ) : void
amount int
bii IBuyItemInfo
buyer Mobile
cont Container
Résultat void
        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;
                        }
                    }
                }
            }
        }