public static async Task <bool> MultipleTarget() { if (await S.Cast(SB.ThrowGlaive, C.CombatColor, !glaiveTossTimer.IsRunning && VS.VengeanceCombatThrowGlaive || (glaiveTossTimer.IsRunning && VS.VengeanceCombatThrowGlaive && glaiveTossTimer.ElapsedMilliseconds > VS.VengeanceCombatThrowGlaiveSeconds), "AoE - GlaiveTimer: " + glaiveTossTimer.ElapsedMilliseconds + "ms")) { glaiveTossTimer.Restart(); return(true); } if (await S.Cast(SB.SoulCleave, C.CombatColor, C.CurrentPower >= VS.VengeanceCombatSoulCleavePain, string.Format($"AoE: CP:{C.CurrentPower}>={VS.VengeanceCombatSoulCleavePain}") )) { return(true); } if (await S.CastGroundOnMe(SB.InfernalStrike, C.CombatColor, VS.VengeanceCombatInfernalStrikeAoE && Me.IsWithinMeleeRangeOf(CurrentTarget) && S.MaxChargesAvailable(SB.InfernalStrike), "AoE Max Charges Available")) { return(true); } if (await S.Cast(SB.FelDevastation, C.CombatColor, T.VengeanceFelDevastation, addLog: "AoE Fel Devastation")) { return(true); } if (await S.Cast(SB.ImmolationAura, C.CombatColor, addLog: "AoE")) { return(true); } if (await S.Cast(SB.SpiritBomb, C.CombatColor, T.VengeanceSpiritBomb && !CurrentTarget.HasAura(SB.AuraFrailty), "AoE")) { return(true); } if (await S.Cast(SB.FelBlade, C.CombatColor, T.VengeanceFelblade, "AoE")) { 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.SigilOfFlameTalented, C.CombatColor, CurrentTarget.IsWithinMeleeRangeOf(Me) && T.VengeanceConcentratedSigils, "AoE - Contentrated Sigils")) { return(true); } if (await S.CastGround(SB.SigilOfFlame, C.CombatColor, !T.VengeanceConcentratedSigils && !Me.IsWithinMeleeRangeOf(CurrentTarget), "AoE - Not in Melee; Cast on target")) { return(true); } if (await S.CastGroundOnMe(SB.SigilOfFlame, C.CombatColor, !T.VengeanceConcentratedSigils && Me.IsWithinMeleeRangeOf(CurrentTarget), "AoE - In Melee; Cast on self")) { return(true); } if (await S.CastGround(SB.SigilOfChains, C.CombatColor, T.VengeanceSigilOfChains && VS.VengeanceCombatSigilOfChains && CurrentTarget.NearbyTargets()?.Count() >= VS.VengeanceCombatSigilOfChainsUnits)) { if (await S.Cast(SB.FieryBrand, C.CombatColor, T.VengeanceBurningAlive, addLog: "AoE has Burning Alive Talent")) { return(true); } } if (await S.Cast(SB.Shear, C.CombatColor, addLog: "AoE")) { return(true); } return(false); }
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); }