public static bool CanDoWanderHealSelfPotionHealSelf(BaseCreature creature, int percent) { switch (percent) { case 100: if (creature.DictWanderAction[WanderAction.PotionHealSelf100] > 0) { if (AIHeal.DoesTargetNeedHealing(creature, 100)) { return(true); } } break; case 50: if (creature.DictWanderAction[WanderAction.PotionHealSelf50] > 0) { if (AIHeal.DoesTargetNeedHealing(creature, 50)) { return(true); } } break; } return(false); }
public static bool CanDoWanderHealSelfSpellHealSelf(BaseCreature creature, int percent) { if (DateTime.UtcNow < creature.NextSpellTime) { return(false); } switch (percent) { case 100: if (creature.DictWanderAction[WanderAction.SpellHealSelf100] > 0) { if (AIHeal.DoesTargetNeedHealing(creature, 100) && creature.Mana >= 11) { return(true); } } break; case 50: if (creature.DictWanderAction[WanderAction.SpellHealSelf50] > 0) { if (AIHeal.DoesTargetNeedHealing(creature, 50) && creature.Mana >= 11) { return(true); } } break; } 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 CanDoCombatHealSelfBandageHealSelf(BaseCreature creature, int percent) { if (creature.NextCombatHealActionAllowed > DateTime.UtcNow) { return(false); } if (creature.DoingBandage) { return(false); } switch (percent) { case 100: if (creature.DictCombatHealSelf[CombatHealSelf.BandageHealSelf100] > 0) { if (AIHeal.DoesTargetNeedHealing(creature, 100)) { return(true); } } break; case 75: if (creature.DictCombatHealSelf[CombatHealSelf.BandageHealSelf75] > 0) { if (AIHeal.DoesTargetNeedHealing(creature, 75)) { return(true); } } break; case 50: if (creature.DictCombatHealSelf[CombatHealSelf.BandageHealSelf50] > 0) { if (AIHeal.DoesTargetNeedHealing(creature, 50)) { return(true); } } break; case 25: if (creature.DictCombatHealSelf[CombatHealSelf.BandageHealSelf25] > 0) { if (AIHeal.DoesTargetNeedHealing(creature, 25)) { return(true); } } break; } 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); }