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); }
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); }
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); }
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); }