public static async Task <bool> CheckCommonCoroutines() { if (ObjectCacheManager.ShouldUpdateObjectCollection) { ObjectCacheManager.UpdateCache(); } if (StyxWoW.Me.IsDead || StyxWoW.Me.IsGhost) { await DeathBehavior.ExecuteCoroutine(); return(true); } if (await CombatBehavior.ExecuteBehavior()) { return(true); } if (await VendoringBehavior()) { return(true); } if (await LootBehavior.ExecuteBehavior()) { return(true); } return(false); }
private static bool ValidateCombatObject() { if (ObjectCacheManager.ShouldUpdateObjectCollection) { ObjectCacheManager.UpdateCache(); } if (!TargetManager.ShouldKill) { ResetCombat(); return(false); } if (TargetManager.CombatObject == null) { TargetManager.UpdateCombatTarget(); if (TargetManager.CombatObject == null) { ResetCombat(); return(false); } } if (!TargetManager.CombatObject.ValidForCombat) { GarrisonBase.Debug("EngageObject no longer valid for combat!"); TargetManager.UpdateCombatTarget(); //Clear and update lootable object TargetManager.LootableObject = null; LootBehavior.ResetLoot(); TargetManager.UpdateLootableTarget(); ResetCombat(); return(false); } if (TargetManager.CombatObject.IsEvadeRunningBack) { GarrisonBase.Debug("EngageObject is evading!"); TargetManager.CombatObject.IgnoredTimer = WaitTimer.TenSeconds; TargetManager.CombatObject.IgnoredTimer.Reset(); return(false); } return(true); }
private static bool ValidateLootObject() { if (ObjectCacheManager.ShouldUpdateObjectCollection) { ObjectCacheManager.UpdateCache(); } if (!TargetManager.ShouldLoot) { return(false); } if (TargetManager.LootableObject == null || !TargetManager.LootableObject.IsValid) { if (TargetManager.LootableObject != null) { TargetManager.LootableObject.ShouldLoot = false; } TargetManager.UpdateLootableTarget(); if (TargetManager.LootableObject == null) { ResetLoot(); return(false); } } if (!TargetManager.LootableObject.ValidForLooting) { GarrisonBase.Debug("LootObject no longer valid for looting {0}", TargetManager.LootableObject.Name); IgnoreLootableObject(); TargetManager.UpdateLootableTarget(); ResetLoot(); return(false); } return(true); }