public static void DoOnTarget(Mobile from, object o, Squire squire)
        {
            ArrayList items = new ArrayList();
            bool rejected = false;
            bool lootAdded = false;
            if (o is Item)
            {
                Item item = (Item)o;

                if (squire.InRange(item, 2))
                {
                    if (item.Movable)
                    {
                        items.Add(item);
                        if (squire.m_SquireBeQuiet == false)
                            squire.Emote("*Picks the item off of the ground.*");
                    }
                    else if (item is Corpse)
                    {
                        if (squire.m_SquireBeQuiet == false)
                        {
                            SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCantLiftCorpse, null, null);
                        }
                    }
                    foreach (Item i in items)
                    {
                        if (!squire.Backpack.CheckHold(squire, i, false, true))
                            rejected = true;
                        else
                        {
                            bool isRejected;
                            LRReason reason;

                            squire.NextActionTime = 5;
                            squire.Lift(i, i.Amount, out isRejected, out reason);

                            if (!isRejected)
                            {
                                squire.Drop(squire, Point3D.Zero);
                                lootAdded = true;
                            }
                            else
                            {
                                rejected = true;
                            }
                        }
                    }
                    if (lootAdded)
                    {
                        squire.PlaySound(0x2E6); //drop gold sound
                    }
                    if (rejected)
                    {
                        if (squire.m_SquireBeQuiet == false)
                        {
                            SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCantLiftItem, null, null);
                        }
                    }
                }
                else
                {
                    if (squire.m_SquireBeQuiet == false)
                    {
                        SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCantReach, null, null);
                    }
                }
            }
            else
            {
                if (squire.m_SquireBeQuiet == false)
                {
                    SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCantLiftNotItem, null, null);
                }
            }
        }
 public static void DoOnTarget(Mobile from, object o, Squire squire)
 {
     if (o is Mobile)
     {
         if (!squire.InRange(((Mobile)o), 2))
         {
             from.SendLocalizedMessage(1060178); // You are too far away to perform that action!
         }
         else if (((Mobile)o) is BaseCreature && ((BaseCreature)o).IsAnimatedDead)
         {
             from.SendLocalizedMessage(1061654); // You cannot heal that which is not alive.
         }
         else if (((Mobile)o) is BaseCreature && ((BaseCreature)o).IsDeadBondedPet)
         {
             from.SendLocalizedMessage(1060177); // You cannot heal a creature that is already dead!
         }
         else if (((Mobile)o).Hits >= ((Mobile)o).HitsMax)
         {
             from.SendLocalizedMessage(500955); // That being is not damaged!
         }
         else if (((Mobile)o).Poisoned || Server.Items.MortalStrike.IsWounded(((Mobile)o)))
         {
             from.LocalOverheadMessage(MessageType.Regular, 0x3B2, (from == ((Mobile)o)) ? 1005000 : 1010398);
         }
         else
         {
             if (squire.Target != null) // Added 1.9.6.3
             {
                 squire.Target.Invoke(squire, o);
             }
         }
     }
     else
     {
         from.SendMessage("This cannot have its wounds closed.");
     }
 }
            public static void DoOnTarget(Mobile from, object o, Squire squire)
            {
                if (DateTime.Now > squire.m_Delay)
                {
                    if (o is BaseCreature)
                    {
                        BaseCreature wounded = ((BaseCreature)o);

                        if (wounded.Hidden == false)
                        {
                            if (squire.InRange(wounded, Bandage.Range)) //Changed 1.8, from a range of 2 to call upon Bandage's Range for friendliness with PreAOS servers.
                            {
                                if (wounded.Alive == true && wounded.Poisoned)
                                {
                                    Item item = squire.Backpack.FindItemByType(typeof(Bandage));

                                    if (wounded.Body == 0x191 || wounded.Body == 0x190 || wounded.Body == 0x25D || wounded.Body == 0x25E)
                                    {
                                        if (squire.Skills.Healing.Value >= 60.0 && squire.Skills.Anatomy.Value >= 60.0 && null != item && null != BandageContext.BeginHeal(squire, wounded))
                                        {
                                            item.Consume(1);
                                            squire.RevealingAction();
                                            if (squire.m_SquireBeQuiet == false)
                                            {
                                                SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCuresHumanoid, wounded, null);
                                            }

                                            squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(4);
                                        }
                                    }
                                    else
                                    {
                                        if (squire.Skills.Veterinary.Value >= 60.0 && squire.Skills.AnimalLore.Value >= 60.0 && null != item && null != BandageContext.BeginHeal(squire, wounded))
                                        {
                                            item.Consume(1);
                                            squire.RevealingAction();
                                            if (squire.m_SquireBeQuiet == false)
                                            {
                                                SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCuresAnimal, wounded, null);
                                            }

                                            squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(4);
                                        }
                                    }
                                }
                                else if (wounded.Alive == true && wounded.Hits < wounded.HitsMax - 5)
                                {
                                    Item item = squire.Backpack.FindItemByType(typeof(Bandage));

                                    if (null != item && null != BandageContext.BeginHeal(squire, wounded))
                                    {
                                        item.Consume(1);
                                        squire.RevealingAction();
                                        if (squire.m_SquireBeQuiet == false)
                                        {
                                            SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireHealsWounded, wounded, null);
                                        }

                                        squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(4);
                                    }
                                }
                                else if (wounded.Alive == false)
                                {
                                    Item item = squire.Backpack.FindItemByType(typeof(Bandage));

                                    if (wounded.Body == 0x191 || wounded.Body == 0x190 || wounded.Body == 0x25D || wounded.Body == 0x25E)
                                    {
                                        if (squire.Skills.Healing.Value >= 80.0 && squire.Skills.Anatomy.Value >= 80.0 && null != item && null != BandageContext.BeginHeal(squire, wounded))
                                        {
                                            item.Consume(1);
                                            squire.RevealingAction();
                                            if (squire.m_SquireBeQuiet == false)
                                            {
                                                SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireRezsHumanoid, wounded, null);
                                            }

                                            squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(9);
                                        }
                                    }
                                    else
                                    {
                                        if (squire.Skills.Veterinary.Value >= 80.0 && squire.Skills.AnimalLore.Value >= 80.0 && null != item && null != BandageContext.BeginHeal(squire, wounded))
                                        {
                                            item.Consume(1);
                                            squire.RevealingAction();
                                            if (squire.m_SquireBeQuiet == false)
                                            {
                                                SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireRezsAnimal, wounded, null);
                                            }

                                            squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(9);
                                        }
                                    }
                                }
                                else if (wounded.Alive == false && squire.Skills.Healing.Value >= 79.9 && squire.Skills.Anatomy.Value <= 79.9)
                                {
                                    if (squire.m_SquireBeQuiet == false)
                                    {
                                        SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCantRez, wounded, null);
                                    }
                                }
                                else
                                {
                                    if (squire.m_SquireBeQuiet == false)
                                    {
                                        SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedIsNotHurtEnough, wounded, null);
                                    }
                                }
                            }
                            else
                            {
                                if (squire.m_SquireBeQuiet == false)
                                {
                                    SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedOutOfRange, wounded, null);
                                }
                            }
                        }
                        else
                        {
                            if (squire.m_SquireBeQuiet == false)
                            {
                                SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedInvisible, null, null);
                            }
                        }
                    }
                    else if (o is PlayerMobile)
                    {
                        PlayerMobile wounded = ((PlayerMobile)o);

                        if (wounded == squire.ControlMaster && squire.Controlled == true && squire.ControlMaster != null)
                        {
                            if (wounded.Hidden == false)
                            {
                                if (squire.InRange(wounded, Bandage.Range))
                                {
                                    if (wounded.Alive == true && wounded.Poisoned)
                                    {
                                        Item item = squire.Backpack.FindItemByType(typeof(Bandage));

                                        if (squire.Skills.Healing.Value >= 60.0 && squire.Skills.Anatomy.Value >= 60.0 && null != item && null != BandageContext.BeginHeal(squire, wounded))
                                        {
                                            item.Consume(1);
                                            squire.RevealingAction();
                                            if (squire.m_SquireBeQuiet == false)
                                            {
                                                SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCuresMaster, null, null);
                                            }

                                            squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(4);
                                        }
                                    }
                                    else if (wounded.Alive == true && wounded.Hits < wounded.HitsMax - 5)
                                    {
                                        Item item = squire.Backpack.FindItemByType(typeof(Bandage));

                                        if (null != item && null != BandageContext.BeginHeal(squire, wounded))
                                        {
                                            item.Consume(1);
                                            squire.RevealingAction();
                                            if (squire.m_SquireBeQuiet == false)
                                            {
                                                SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireHealsMaster, null, null);
                                            }

                                            squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(4);
                                        }
                                    }
                                    else if (wounded.Alive == false)
                                    {
                                        Item item = squire.Backpack.FindItemByType(typeof(Bandage));

                                        if (squire.Skills.Healing.Value >= 80.0 && squire.Skills.Anatomy.Value >= 80.0 && null != item && null != BandageContext.BeginHeal(squire, wounded))
                                        {
                                            item.Consume(1);
                                            squire.RevealingAction();
                                            if (squire.m_SquireBeQuiet == false)
                                            {
                                                SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireRezsMaster, null, null);
                                            }

                                            squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(9);
                                        }
                                    }
                                    else if (wounded.Alive == false && squire.Skills.Healing.Value >= 79.9 && squire.Skills.Anatomy.Value <= 79.9)
                                    {
                                        if (squire.m_SquireBeQuiet == false)
                                        {
                                            SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCantRezPlayer, null, wounded);
                                        }
                                    }
                                    else
                                    {
                                        if (squire.m_SquireBeQuiet == false)
                                        {
                                            SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedPlayerIsNotHurtEnough, null, wounded);
                                        }
                                    }
                                }
                                else
                                {
                                    if (squire.m_SquireBeQuiet == false)
                                    {
                                        SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedPlayerOutOfRange, null, wounded);
                                    }
                                }
                            }
                            else
                            {
                                if (squire.m_SquireBeQuiet == false)
                                {
                                    SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedInvisible, null, null);
                                }
                            }
                        }
                        else if (wounded.Hidden == false)
                        {
                            if (squire.InRange(wounded, Bandage.Range))
                            {
                                if (wounded.Alive == true && wounded.Poisoned)
                                {
                                    Item item = squire.Backpack.FindItemByType(typeof(Bandage));

                                    if (squire.Skills.Healing.Value >= 60.0 && squire.Skills.Anatomy.Value >= 60.0 && null != item && null != BandageContext.BeginHeal(squire, wounded))
                                    {
                                        item.Consume(1);
                                        squire.RevealingAction();
                                        if (squire.m_SquireBeQuiet == false)
                                        {
                                            SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCuresPlayer, null, wounded);
                                        }

                                        squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(4);
                                    }
                                }
                                else if (wounded.Alive == true && wounded.Hits < wounded.HitsMax - 5)
                                {
                                    Item item = squire.Backpack.FindItemByType(typeof(Bandage));

                                    if (null != item && null != BandageContext.BeginHeal(squire, wounded))
                                    {
                                        item.Consume(1);
                                        squire.RevealingAction();
                                        if (squire.m_SquireBeQuiet == false)
                                        {
                                            SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireHealsPlayer, null, wounded);
                                        }

                                        squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(4);
                                    }
                                }
                                else if (wounded.Alive == false)
                                {
                                    Item item = squire.Backpack.FindItemByType(typeof(Bandage));

                                    if (squire.Skills.Healing.Value >= 80.0 && squire.Skills.Anatomy.Value >= 80.0 && null != item && null != BandageContext.BeginHeal(squire, wounded))
                                    {
                                        item.Consume(1);
                                        squire.RevealingAction();
                                        if (squire.m_SquireBeQuiet == false)
                                        {
                                            SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireRezsPlayer, null, wounded);
                                        }

                                        squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(9);
                                    }
                                }
                                else if (wounded.Alive == false && squire.Skills.Healing.Value >= 79.9 && squire.Skills.Anatomy.Value <= 79.9)
                                {
                                    if (squire.m_SquireBeQuiet == false)
                                    {
                                        SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCantRezPlayer, null, wounded);
                                    }
                                }
                                else
                                {
                                    if (squire.m_SquireBeQuiet == false)
                                    {
                                        SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedPlayerIsNotHurtEnough, null, wounded);
                                    }
                                }
                            }
                            else
                            {
                                if (squire.m_SquireBeQuiet == false)
                                {
                                    SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedPlayerOutOfRange, null, wounded);
                                }
                            }
                        }
                        else
                        {
                            if (squire.m_SquireBeQuiet == false)
                            {
                                SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedInvisible, null, wounded);
                            }
                        }
                    }
                    else
                    {
                        if (squire.m_SquireBeQuiet == false)
                        {
                            SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.HealingTargetNotCreature, null, null);
                        }
                    }
                }
                else
                {
                    if (squire.m_SquireBeQuiet == false)
                    {
                        squire.Say("Sorry, I'm still finishing healing my current target...");
                    }
                }
            }
                public static void DoOnTarget( Mobile from, object o, Squire squire )
                {
                    ArrayList items = new ArrayList();
                    ArrayList myitems = new ArrayList(); // Added 1.9.1
                    bool rejected = false;
                    bool lootAdded = false;
                    if ( o is Item )
                    {
                        Item item = ( Item )o;

                        if ( squire.InRange( item, 2 ) )
                        {
                            if ( item.Movable )
                            {
                                if( squire.m_SquireBeQuiet == false )
                                {
                                    SquireDialog.DoSquireDialog( from, squire, SquireDialogTree.ItemIsNotCorpse, null, null );
                                }
                            }
                            else if ( item is Corpse )
                            {
                                if( ((Corpse)item).Owner != null && ((Corpse)item).Owner.Player ) // Added check for non-null to avoid crashing. 1.9.1
                                {
                                    if( squire.m_SquireBeQuiet == false )
                                    {
                                        SquireDialog.DoSquireDialog( from, squire, SquireDialogTree.RefusesToLootPlayers, null, null );
                                    }
                                }
                                else if ( ((Corpse)item).Owner != null && ((Corpse)item).Owner == squire ) // Added 1.9.1
                                {
                                    if( squire.m_SquireBeQuiet == false )
                                    {
                                        squire.Emote( "*Rummages through items in a corpse.*" );
                                    }
                                    foreach ( Item corpseItem in ((Corpse)item).Items )
                                        myitems.Add( corpseItem );
                                }
                                else
                                {
                                    if( squire.m_SquireBeQuiet == false )
                                    {
                                        squire.Emote( "*Rummages through items in a corpse.*" );
                                    }

                                    foreach ( Item corpseItem in ((Corpse)item).Items )
                                    {
                                        items.Add( corpseItem );
                                    }
                                }
                            }
                            foreach ( Item i in items )
                            {
                                if ( !squire.Backpack.CheckHold( squire, i, false, true ) )
                                    rejected = true;
                                else
                                {
                                    bool isRejected;
                                    LRReason reason;

                                    squire.NextActionTime = 5;
                                    squire.Lift( i, i.Amount, out isRejected, out reason );

                                    if ( !isRejected )
                                    {
                                        if ( squire.AutoEquipLoot == false )
                                        {
                                      //      squire.Drop( squire.Backpack, new Point3D ( Utility.Random( 29, 108 ), Utility.Random( 34, 94 ), 0 ) ); byte gridloc; //Randomly set them in their pack.
                                        }
                                        else
                                        {
                                            squire.Drop( squire, Point3D.Zero );
                                        }
                                        lootAdded = true;
                                    }
                                    else
                                    {
                                        rejected = true;
                                    }
                                }
                            }
                            foreach ( Item myitem in myitems ) // Added 1.9.1
                            {
                                if ( !squire.Backpack.CheckHold( squire, myitem, false, true ) )
                                    rejected = true;
                                else
                                {
                                    bool isRejected;
                                    LRReason reason;

                                    squire.NextActionTime = 5;
                                    squire.Lift( myitem, myitem.Amount, out isRejected, out reason );

                                    if ( !isRejected )
                                    {
                                        squire.Drop( squire, Point3D.Zero );
                                        lootAdded = true;
                                    }
                                    else
                                    {
                                        rejected = true;
                                    }
                                }
                            }
                            if ( lootAdded )
                            {
                                squire.PlaySound( 0x2E6 ); //drop gold sound
                            }
                            if ( rejected )
                            {
                                if( squire.m_SquireBeQuiet == false )
                                {
                                    SquireDialog.DoSquireDialog( from, squire, SquireDialogTree.SquireCantLootAllItems, null, null );
                                }
                            }
                        }
                        else
                        {
                            if( squire.m_SquireBeQuiet == false )
                            {
                                SquireDialog.DoSquireDialog( from, squire, SquireDialogTree.SquireCantReach, null, null );
                            }
                        }
                    }
                    else
                    {
                        if( squire.m_SquireBeQuiet == false )
                        {
                            SquireDialog.DoSquireDialog( from, squire, SquireDialogTree.SquireCantLootNotCorpse, null, null );
                        }
                    }
                }