public bool Tick() { if (Bot.Player.IsMounted) { // dont summon pets while on mount, they despawn when mounted LastTimeMounted = DateTime.UtcNow; return(false); } if (LastTimeMounted + TimeSpan.FromSeconds(1) > DateTime.UtcNow) { // only do stuff 1sec after we dismounted // pets need a few ms to spawn return(false); } if (Bot.Objects.Pet != null) { if (CastCallPet != null && ((Bot.Objects.Pet.Guid == 0 && CastCallPet.Invoke()) || (CastRevivePet != null && Bot.Objects.Pet != null && (Bot.Objects.Pet.Health == 0 || Bot.Objects.Pet.IsDead) && CastRevivePet()))) { return(true); } if (Bot.Objects.Pet == null || Bot.Objects.Pet.Health == 0 || Bot.Objects.Pet.IsDead) { return(true); } if (CastMendPet != null && DateTime.UtcNow - LastMendPetUsed > HealPetCooldown && Bot.Objects.Pet.HealthPercentage < 80.0 && CastMendPet.Invoke()) { LastMendPetUsed = DateTime.UtcNow; return(true); } } else if (CastCallPet != null && CallPetEvent.Run() && !Bot.Player.IsCasting) { if (CallReviveToggle) { CastRevivePet(); } else { CastCallPet.Invoke(); } CallReviveToggle = !CallReviveToggle; } return(false); }
public bool Tick() { if (WowInterface.ObjectManager.Pet != null) { if (CastCallPet != null && ((WowInterface.ObjectManager.Pet.Guid == 0 && CastCallPet.Invoke()) || CastRevivePet != null && WowInterface.ObjectManager.Pet != null && (WowInterface.ObjectManager.Pet.Health == 0 || WowInterface.ObjectManager.Pet.IsDead) && CastRevivePet())) { return(true); } if (WowInterface.ObjectManager.Pet == null || WowInterface.ObjectManager.Pet.Health == 0 || WowInterface.ObjectManager.Pet.IsDead) { return(true); } if (CastMendPet != null && DateTime.Now - LastMendPetUsed > HealPetCooldown && WowInterface.ObjectManager.Pet.HealthPercentage < 80 && CastMendPet.Invoke()) { LastMendPetUsed = DateTime.Now; return(true); } } else if (CastCallPet != null && CallPetEvent.Run() && !WowInterface.ObjectManager.Player.IsCasting) { if (CallReviveToggle) { CastRevivePet(); } else { CastCallPet.Invoke(); } CallReviveToggle = !CallReviveToggle; } return(false); }