public virtual bool DoOrderFriend()
{
Mobile from = m_Mobile.ControlMaster;
Mobile to = m_Mobile.ControlTarget;
if (from == null || to == null || from == to || from.Deleted || to.Deleted || !to.Player)
{
m_Mobile.PublicOverheadMessage(MessageType.Regular, 0x3B2, 502039); // *looks confused*
}
else
{
if (from.CanBeBeneficial(to, true))
{
NetState fromState = from.NetState, toState = to.NetState;
if (fromState != null && toState != null)
{
if (from.HasTrade)
{
from.SendLocalizedMessage(1070947); // You cannot friend a pet with a trade pending
}
else if (to.HasTrade)
{
to.SendLocalizedMessage(1070947); // You cannot friend a pet with a trade pending
}
else if (m_Mobile.IsPetFriend(to))
{
from.SendLocalizedMessage(1049691); // That person is already a friend.
}
else if (!m_Mobile.AllowNewPetFriend)
{
from.SendLocalizedMessage(1005482); // Your pet does not seem to be interested in making new friends right now.
}
else
{
// ~1_NAME~ will now accept movement commands from ~2_NAME~.
from.SendLocalizedMessage(1049676, String.Format("{0}\t{1}", m_Mobile.Name, to.Name));
/* ~1_NAME~ has granted you the ability to give orders to their pet ~2_PET_NAME~.
* This creature will now consider you as a friend.
*/
to.SendLocalizedMessage(1043246, String.Format("{0}\t{1}", from.Name, m_Mobile.Name));
m_Mobile.AddPetFriend(to);
m_Mobile.ControlTarget = to;
m_Mobile.ControlOrder = OrderType.Follow;
return true;
}
}
}
}
m_Mobile.ControlTarget = from;
m_Mobile.ControlOrder = OrderType.Follow;
return true;
}