public void AddStrongBox( Mobile from )
{
if ( !IsCoOwner( from ) )
return;
if ( from == Owner )
{
from.SendLocalizedMessage( 502109 ); // Owners don't get a strong box
return;
}
if ((LockDownCount + 1) > m_MaxLockDowns)
{
from.SendLocalizedMessage( 1005379 );//That would exceed the maximum lock down limit for this house
return;
}
/*
foreach ( SecureInfo info in m_Secures )
{
Container c = info.Item;
if ( !c.Deleted && c is StrongBox && ((StrongBox)c).Owner == from )
{
from.SendLocalizedMessage( 502112 );//You already have a strong box
return;
}
}
*/
for ( int i = 0; m_Doors != null && i < m_Doors.Count; ++i )
{
BaseDoor door = m_Doors[i] as BaseDoor;
Point3D p = door.Location;
if ( door.Open )
p = new Point3D( p.X - door.Offset.X, p.Y - door.Offset.Y, p.Z - door.Offset.Z );
if ( (from.Z + 16) >= p.Z && (p.Z + 16) >= from.Z )
{
if ( from.InRange( p, 1 ) )
{
from.SendLocalizedMessage( 502113 ); // You cannot place a strongbox near a door or near steps.
return;
}
}
}
StrongBox sb = new StrongBox( from, this );
sb.Movable = false;
sb.IsLockedDown = false;
sb.IsSecure = true;
// m_Secures.Add( new SecureInfo( sb, SecureLevel.CoOwners ) );
sb.MoveToWorld( from.Location, from.Map );
}