public override void OnResponse( NetState state, RelayInfo info )
{
Mobile from = state.Mobile;
if ( !m_Vendor.CanInteractWith( from, false ) )
return;
if ( m_Vendor.IsOwner( from ) )
{
m_Vendor.SayTo( from, 503212 ); // You own this shop, just take what you want.
return;
}
if ( info.ButtonID == 1 )
{
m_Vendor.Say( from.Name );
if ( !m_VI.Valid || !m_VI.Item.IsChildOf( m_Vendor.Backpack ) )
{
m_Vendor.SayTo( from, 503216 ); // You can't buy that.
return;
}
int totalGold = 0;
if ( from.Backpack != null )
totalGold += from.Backpack.GetAmount( typeof( Gold ) );
totalGold += Banker.GetBalance( from );
if ( totalGold < m_VI.Price )
{
m_Vendor.SayTo( from, 503205 ); // You cannot afford this item.
}
else if ( !from.PlaceInBackpack( m_VI.Item ) )
{
m_Vendor.SayTo( from, 503204 ); // You do not have room in your backpack for this.
}
else
{
int leftPrice = m_VI.Price;
if ( from.Backpack != null )
leftPrice -= from.Backpack.ConsumeUpTo( typeof( Gold ), leftPrice );
if ( leftPrice > 0 )
Banker.Withdraw( from, leftPrice );
m_Vendor.HoldGold += m_VI.Price;
from.SendLocalizedMessage( 503201 ); // You take the item.
}
}
else
{
from.SendLocalizedMessage( 503207 ); // Cancelled purchase.
}
}
}