Exemplo n.º 1
0
        public static bool CanDoWanderHealOtherBandageCureOther(BaseCreature creature)
        {
            if (creature.DoingBandage)
            {
                return(false);
            }

            if (creature.DictWanderAction[WanderAction.BandageCureOther] <= 0)
            {
                return(false);
            }

            IPooledEnumerable eable = creature.Map.GetMobilesInRange(creature.Location, creature.RangePerception);

            foreach (Mobile target in eable)
            {
                if (!AIHeal.IsTargetValidHealTarget(creature, target, true))
                {
                    continue;
                }

                if (target.Poison != null)
                {
                    eable.Free();
                    return(true);
                }
            }

            eable.Free();

            return(false);
        }
Exemplo n.º 2
0
        public static bool CanDoCombatHealOtherBandageHealOther(BaseCreature creature, int percent)
        {
            if (creature.NextCombatHealActionAllowed > DateTime.UtcNow)
            {
                return(false);
            }

            if (creature.DoingBandage)
            {
                return(false);
            }

            switch (percent)
            {
            case 100: if (creature.DictCombatHealOther[CombatHealOther.BandageHealOther100] <= 0)
                {
                    return(false);
                }
                break;

            case 75: if (creature.DictCombatHealOther[CombatHealOther.BandageHealOther75] <= 0)
                {
                    return(false);
                }
                break;

            case 50: if (creature.DictCombatHealOther[CombatHealOther.BandageHealOther50] <= 0)
                {
                    return(false);
                }
                break;

            case 25: if (creature.DictCombatHealOther[CombatHealOther.BandageHealOther25] <= 0)
                {
                    return(false);
                }
                break;
            }

            IPooledEnumerable eable = creature.Map.GetMobilesInRange(creature.Location, creature.RangePerception);

            foreach (Mobile target in eable)
            {
                if (!AIHeal.IsTargetValidHealTarget(creature, target, true))
                {
                    continue;
                }

                if (AIHeal.DoesTargetNeedHealing(target, percent))
                {
                    eable.Free();
                    return(true);
                }
            }

            eable.Free();

            return(false);
        }
Exemplo n.º 3
0
        public static bool CanDoWanderHealOtherSpellHealOther(BaseCreature creature, int percent)
        {
            if (creature.Mana < 11)
            {
                return(false);
            }

            if (DateTime.UtcNow < creature.NextSpellTime)
            {
                return(false);
            }

            switch (percent)
            {
            case 100:
                if (creature.DictWanderAction[WanderAction.SpellHealOther100] <= 0)
                {
                    return(false);
                }
                break;

            case 50:
                if (creature.DictWanderAction[WanderAction.SpellHealOther50] <= 0)
                {
                    return(false);
                }
                break;
            }

            IPooledEnumerable eable = creature.Map.GetMobilesInRange(creature.Location, creature.RangePerception);

            foreach (Mobile target in eable)
            {
                if (!AIHeal.IsTargetValidHealTarget(creature, target, true))
                {
                    continue;
                }

                if (AIHeal.DoesTargetNeedHealing(target, percent))
                {
                    eable.Free();
                    return(true);
                }
            }

            eable.Free();

            return(false);
        }
Exemplo n.º 4
0
        public static bool CanDoCombatHealOtherSpellCureOther(BaseCreature creature)
        {
            if (creature.NextCombatHealActionAllowed > DateTime.UtcNow)
            {
                return(false);
            }

            if (DateTime.UtcNow < creature.NextSpellTime)
            {
                return(false);
            }

            if (creature.Mana < 6)
            {
                return(false);
            }

            if (creature.DictCombatHealOther[CombatHealOther.SpellCureOther] <= 0)
            {
                return(false);
            }

            IPooledEnumerable eable = creature.Map.GetMobilesInRange(creature.Location, creature.RangePerception);

            foreach (Mobile target in eable)
            {
                if (!AIHeal.IsTargetValidHealTarget(creature, target, true))
                {
                    continue;
                }

                if (target.Poison != null)
                {
                    eable.Free();
                    return(true);
                }
            }

            eable.Free();

            return(false);
        }