private static async Task <bool> SubtletyRotationTwoToFourTargets() { if (HotKeyManager.NoAoe) { return(await SubtletySingleRotation()); } //Make sure to refresh Findweakness if (Me.AuraRemainingTime(SpellBook.AuraShadowDance).TotalSeconds < 1.2) { if (await Abilities.Cast <Ambush>(MyCurrentTarget)) { return(true); } } // if (await Abilities.Cast<VanishOffensive>(Me)) return true; // if (await Abilities.Cast<Preperation>(Me)) return true; if (SRtimer.IsRunning && !ruptureRefreshed) { if (await Abilities.Cast <RefreshRupture>(MyCurrentTarget)) { ruptureRefreshed = true; return(true); } } if (SRtimer.ElapsedMilliseconds > 16000) { SRtimer.Reset(); ruptureRefreshed = false; } if (HotKeyManager.CooldownsOn) { if (await Abilities.Cast <ShadowReflection>(MyCurrentTarget)) { SRtimer.Restart(); return(true); } if (await Abilities.Cast <ShadowDance>(Me)) { return(true); } if (await Abilities.Cast <VanishOffensive>(MyCurrentTarget)) { return(true); } if (await Abilities.Cast <Preperation>(Me)) { return(true); } } //Finisher if (await Abilities.Cast <SliceNDiceAbility>(MyCurrentTarget)) { return(true); } if (await Abilities.Cast <Rupture>(UnitManager.Instance.LastKnownNonBleedingEnemies.FirstOrDefault())) { return(true); } if (await Abilities.Cast <Rupture>(UnitManager.Instance.LastKnownBleedingEnemies.FirstOrDefault())) { return(true); } if (Me.CurrentTarget.AuraExists(SpellBook.AuraFindWeakness) && UnitManager.Instance.LastKnownSurroundingEnemies.Count < 3) { if (await Abilities.Cast <EviscerateAbility>(MyCurrentTarget)) { return(true); } } if (MyCurrentTarget.AuraRemainingTime(SpellBook.AuraCrimsonTempest).TotalSeconds < 2) { if (await Abilities.Cast <CrimsonTempest>(MyCurrentTarget)) { return(true); } } if (await Abilities.Cast <EviscerateAbility>(MyCurrentTarget)) { return(true); } //Generator if (!Me.AuraExists(SpellBook.AuraShadowDance) || UnitManager.Instance.LastKnownSurroundingEnemies.Count >= 5) { if (await Abilities.Cast <FanOfKnives>(MyCurrentTarget)) { return(true); } } if (await Abilities.Cast <Ambush>(MyCurrentTarget)) { return(true); } return(false); }
private static async Task <bool> SubtletySingleRotation() { if ((Me.CurrentTarget != null && !Me.CurrentTarget.HasAura(SpellBook.AuraFindWeakness) && !Me.AuraExists(SpellBook.AuraSubterfuge) && !Me.AuraExists(SpellBook.AuraVanish) && !Me.AuraExists(SpellBook.AuraShadowDance)) // && (WoWSpell.FromId(SpellBook.CastVanish).CooldownTimeLeft.TotalSeconds < 10 // || !WoWSpell.FromId(SpellBook.CastVanish).IsOnCooldown() // || WoWSpell.FromId(SpellBook.AuraShadowDance).CooldownTimeLeft.TotalSeconds < 10) && StyxWoW.Me.AuraStacks(SpellBook.AuraAnticipation) < 3 && Me.CurrentEnergy <= 90) { return(await PoolRotation()); } /* * if ((Me.CurrentTarget != null && !Me.CurrentTarget.HasAura(SpellBook.AuraFindWeakness)) && Me.AuraStacks(SpellBook.AuraAnticipation) < 3 && Me.CurrentEnergy <= 90) * { * return await PoolRotation(); * } * */ //Make sure to refresh Findweakness if (Me.AuraRemainingTime(SpellBook.AuraShadowDance).TotalSeconds < 1.2 || Me.AuraRemainingTime(SpellBook.AuraSubterfuge).TotalSeconds < 1.2) { if (await Abilities.Cast <Ambush>(MyCurrentTarget)) { return(true); } } //Cast another rupture regardless of it being already up when you use SReflection if (SRtimer.IsRunning && !ruptureRefreshed) { if (await Abilities.Cast <RefreshRupture>(MyCurrentTarget)) { ruptureRefreshed = true; return(true); } } if (SRtimer.ElapsedMilliseconds > 16000) { SRtimer.Reset(); ruptureRefreshed = false; } if (HotKeyManager.CooldownsOn) { if (await CombatBuff.UseTrinketsToBurst()) { return(true); } if (await Abilities.Cast <ShadowReflection>(MyCurrentTarget)) { SRtimer.Restart(); return(false); } if (await Abilities.Cast <ShadowDance>(Me)) { return(false); } if (await Abilities.Cast <VanishOffensive>(MyCurrentTarget)) { return(true); } if (await Abilities.Cast <Premed>(MyCurrentTarget)) { return(true); } if (await Abilities.Cast <Preperation>(Me)) { return(true); } } if (await Abilities.Cast <SliceNDiceAbility>(MyCurrentTarget)) { return(true); } if (await Abilities.Cast <Rupture>(MyCurrentTarget)) { return(true); } if (await Abilities.Cast <EviscerateAbility>(MyCurrentTarget)) { return(true); } if (await Abilities.Cast <Ambush>(MyCurrentTarget)) { return(true); } if (await Abilities.Cast <Backstab>(MyCurrentTarget)) { return(true); } if (await Abilities.Cast <Hemorrhage>(MyCurrentTarget)) { return(true); } return(false); }