public void Update()
{
if ( !m_Valid )
return;
if ( m_From.Accepted && m_To.Accepted )
{
List<Item> list = m_From.Container.Items;
bool allowed = true;
for ( int i = list.Count - 1; allowed && i >= 0; --i )
{
if ( i < list.Count )
{
Item item = list[i];
if ( !item.AllowSecureTrade( m_From.Mobile, m_To.Mobile, m_To.Mobile, true ) )
allowed = false;
}
}
list = m_To.Container.Items;
for ( int i = list.Count - 1; allowed && i >= 0; --i )
{
if ( i < list.Count )
{
Item item = list[i];
if ( !item.AllowSecureTrade( m_To.Mobile, m_From.Mobile, m_From.Mobile, true ) )
allowed = false;
}
}
if ( !allowed )
{
m_From.Accepted = false;
m_To.Accepted = false;
m_From.Mobile.Send( new UpdateSecureTrade( m_From.Container, m_From.Accepted, m_To.Accepted ) );
m_To.Mobile.Send( new UpdateSecureTrade( m_To.Container, m_To.Accepted, m_From.Accepted ) );
return;
}
list = m_From.Container.Items;
for ( int i = list.Count - 1; i >= 0; --i )
{
if ( i < list.Count )
{
Item item = list[i];
item.OnSecureTrade( m_From.Mobile, m_To.Mobile, m_To.Mobile, true );
if ( !item.Deleted )
m_To.Mobile.AddToBackpack( item );
}
}
list = m_To.Container.Items;
for ( int i = list.Count - 1; i >= 0; --i )
{
if ( i < list.Count )
{
Item item = list[i];
item.OnSecureTrade( m_To.Mobile, m_From.Mobile, m_From.Mobile, true );
if ( !item.Deleted )
m_From.Mobile.AddToBackpack( item );
}
}
Close();
}
else
{
m_From.Mobile.Send( new UpdateSecureTrade( m_From.Container, m_From.Accepted, m_To.Accepted ) );
m_To.Mobile.Send( new UpdateSecureTrade( m_To.Container, m_To.Accepted, m_From.Accepted ) );
}
}