public static async Task <bool> SingleTarget() { if (await S.Cast(SB.ThrowGlaive, C.CombatColor, (!glaiveTossTimer.IsRunning && VS.VengeanceCombatThrowGlaive) || (glaiveTossTimer.IsRunning && VS.VengeanceCombatThrowGlaive && glaiveTossTimer.ElapsedMilliseconds > VS.VengeanceCombatThrowGlaiveSeconds), "ST - GlaiveTimer: " + glaiveTossTimer.ElapsedMilliseconds + "ms")) { glaiveTossTimer.Restart(); return(true); } if (await S.Cast(SB.SoulCleave, C.CombatColor, C.CurrentPower >= VS.VengeanceCombatSoulCleavePain && ((T.VengeanceSpiritBomb && CurrentTarget.HasAura(SB.AuraFrailty) && CurrentTarget.GetAuraById(SB.AuraFrailty).TimeLeft.TotalMilliseconds > 5000) || (!T.VengeanceSpiritBomb)) && CurrentTarget.IsWithinMeleeRangeOf(Me), string.Format($"ST: CP:{C.CurrentPower}>={VS.VengeanceCombatSoulCleavePain}") )) { return(true); } // cast infernal strike in melee only if we have max chargets // it is off of the gcd, so can be cast any time. if (await S.CastGroundOnMe(SB.InfernalStrike, C.CombatColor, VS.VengeanceCombatInfernalStrikeSingleTarget && Me.IsWithinMeleeRangeOf(CurrentTarget) && S.MaxChargesAvailable(SB.InfernalStrike) && CurrentTarget.IsWithinMeleeRangeOf(Me), "ST Max Charges Available")) { return(true); } if (await S.Cast(SB.ImmolationAura, C.CombatColor, CurrentTarget.IsWithinMeleeRangeOf(Me), "ST")) { return(true); } if (await S.Cast(SB.FelBlade, C.CombatColor, T.VengeanceFelblade, "ST")) { return(true); } if (await S.Cast(SB.FelEruption, C.CombatColor, T.VengeanceFelEruption && CurrentTarget.IsWithinMeleeRangeOf(Me), "ST")) { return(true); } if (await S.Cast(SB.SpiritBomb, C.CombatColor, T.VengeanceSpiritBomb && Me.HasAura(SB.AuraSoulFragments) && (!CurrentTarget.HasAura(SB.AuraFrailty) || (CurrentTarget.HasAura(SB.AuraFrailty) && CurrentTarget.GetAuraById(SB.AuraFrailty).TimeLeft.TotalMilliseconds <= 3000)), "ST")) { return(true); } if (await S.Cast(SB.Shear, C.CombatColor, T.VengeanceBladeTurning && Me.HasAura(SB.AuraBladeTurning) && CurrentTarget.IsWithinMeleeRangeOf(Me), "ST")) { return(true); } if (await S.Cast(SB.Fracture, C.CombatColor, T.VengeanceFracture && CurrentTarget.IsWithinMeleeRangeOf(Me), "ST")) { return(true); } if (await S.Cast(SB.SigilOfFlameTalented, C.CombatColor, T.VengeanceConcentratedSigils && CurrentTarget.IsWithinMeleeRangeOf(Me), "ST - Contentrated Sigils")) { return(true); } if (await S.CastGround(SB.SigilOfFlame, C.CombatColor, !T.VengeanceConcentratedSigils && !Me.IsWithinMeleeRangeOf(CurrentTarget), "ST - Not in Melee; Cast on target")) { return(true); } if (await S.CastGroundOnMe(SB.SigilOfFlame, C.CombatColor, !T.VengeanceConcentratedSigils && Me.IsWithinMeleeRangeOf(CurrentTarget), "ST - In Melee; Cast on self")) { return(true); } if (await S.Cast(SB.Shear, C.CombatColor, CurrentTarget.IsWithinMeleeRangeOf(Me), "ST")) { return(true); } return(true); }