protected override void OnTarget(Mobile from, object target)
{
//from.RevealingAction();
Item stolen = null;
object root = null;
bool caught = false;
if (target is Item)
{
root = ((Item)target).RootParent;
stolen = TryStealItem((Item)target, ref caught);
}
else if (target is Mobile)
{
Container pack = ((Mobile)target).Backpack;
if (pack != null && pack.Items.Count > 0)
{
int randomIndex = Utility.Random(pack.Items.Count);
root = target;
stolen = TryStealItem(pack.Items[randomIndex], ref caught);
}
}
else
{
m_Thief.SendLocalizedMessage(502710); // You can't steal that!
}
if (stolen != null)
{
from.AddToBackpack(stolen);
StolenItem.Add(stolen, m_Thief, root as Mobile);
}
if (caught)
{
if (root is Mobile)
{
Mobile mobRoot = (Mobile)root;
string message = String.Format("Vous appercevez un personnage tenter d'en voler un autre.");
from.RevealingAction();
from.NonlocalOverheadMessage(MessageType.Emote, 0, true, message);
/*foreach ( NetState ns in m_Thief.GetClientsInRange( 8 ) )
* {
* if ( ns.Mobile != m_Thief )
* ns.Mobile.SendMessage( message );
* }*/
}
}
CommandLogging.WriteLine(from, "{4} {2} à voler {0} appartenant à {1} en étant {3}",
target, root, stolen != null ? "réussit" : "échoue", from.Hidden ? "caché" : "à découvert", from);
}