Example #1
0
        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);
        }
Example #2
0
        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);
        }