Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- ============================ HEADER ============================
- --- ======= LOCALIZE =======
- -- Addon
- local addonName, addonTable = ...
- -- HeroLib
- local HL = HeroLib
- local Cache = HeroCache
- local Unit = HL.Unit
- local Player = Unit.Player
- local Target = Unit.Target
- local Pet = Unit.Pet
- local Spell = HL.Spell
- local Item = HL.Item
- -- HeroRotation
- local HR = HeroRotation
- --- ============================ CONTENT ===========================
- --- ======= APL LOCALS =======
- -- luacheck: max_line_length 9999
- -- Spells
- if not Spell.Druid then Spell.Druid = {} end
- Spell.Druid.Balance = {
- StreakingStars = Spell(272871),
- ArcanicPulsar = Spell(287773),
- StarlordBuff = Spell(279709),
- Starlord = Spell(202345),
- TwinMoons = Spell(279620),
- MoonkinForm = Spell(24858),
- MoonkinFormBuff = Spell(24858),
- SolarWrath = Spell(190984),
- CaIncBuff = Spell(102560),
- BloodFury = Spell(20572),
- Berserking = Spell(26297),
- ArcaneTorrent = Spell(50613),
- LightsJudgment = Spell(255647),
- Fireblood = Spell(265221),
- AncestralCall = Spell(274738),
- CaInc = Spell(102560),
- WarriorofElune = Spell(202425),
- Innervate = Spell(29166),
- LivelySpirit = Spell(29166),
- Incarnation = Spell(102560),
- CelestialAlignment = Spell(194223),
- SunfireDebuff = Spell(164815),
- MoonfireDebuff = Spell(164812),
- StellarFlareDebuff = Spell(202347),
- StellarFlare = Spell(202347),
- LivelySpiritBuff = Spell(279646),
- FuryofElune = Spell(202770),
- ForceofNature = Spell(205636),
- Starfall = Spell(191034),
- Starsurge = Spell(78674),
- ArcanicPulsarBuff = Spell(287773),
- LunarEmpowermentBuff = Spell(164547),
- SolarEmpowermentBuff = Spell(164545),
- Sunfire = Spell(93402),
- Moonfire = Spell(8921),
- NewMoon = Spell(274281),
- HalfMoon = Spell(274282),
- FullMoon = Spell(274283),
- LunarStrike = Spell(194153),
- WarriorofEluneBuff = Spell(202425)
- };
- local S = Spell.Druid.Balance;
- -- Items
- if not Item.Druid then Item.Druid = {} end
- Item.Druid.Balance = {
- ProlongedPower = Item(142117),
- BalefireBranch = Item(00000),
- Item159630 = Item(159630),
- DreadGladiatorsBadge = Item(00000),
- Item161902 = Item(161902),
- AzurethosSingedPlumage = Item(00000),
- Item161377 = Item(161377),
- TidestormCodex = Item(000000),
- Item165576 = Item(165576)
- };
- local I = Item.Druid.Balance;
- -- Rotation Var
- local ShouldReturn; -- Used to get the return string
- -- GUI Settings
- local Everyone = HR.Commons.Everyone;
- local Settings = {
- General = HR.GUISettings.General,
- Commons = HR.GUISettings.APL.Druid.Commons,
- Balance = HR.GUISettings.APL.Druid.Balance
- };
- -- Variables
- local VarAzSs = 0;
- local VarAzAp = 0;
- local VarSfTargets = 0;
- HL:RegisterForEvent(function()
- VarAzSs = 0
- VarAzAp = 0
- VarSfTargets = 0
- end, "PLAYER_REGEN_ENABLED")
- local EnemyRanges = {40,20,15}
- local function UpdateRanges()
- for _, i in ipairs(EnemyRanges) do
- HL.GetEnemies(i);
- end
- end
- local function num(val)
- if val then return 1 else return 0 end
- end
- local function bool(val)
- return val ~= 0
- end
- local function FutureAstralPower()
- local AstralPower=Player:AstralPower()
- if not Player:IsCasting() then
- return AstralPower
- else
- if Player:IsCasting(S.NewnMoon) then
- return AstralPower + 10
- elseif Player:IsCasting(S.HalfMoon) then
- return AstralPower + 20
- elseif Player:IsCasting(S.FullMoon) then
- return AstralPower + 40
- elseif Player:IsCasting(S.StellarFlare) then
- return AstralPower + 8
- elseif Player:IsCasting(S.SolarWrath) then
- return AstralPower + 8
- elseif Player:IsCasting(S.LunarStrike) then
- return AstralPower + 12
- else
- return AstralPower
- end
- end
- end
- local function EvaluateCycleSunfire244(TargetUnit)
- return (TargetUnit:DebuffRefreshableCP(S.SunfireDebuff)) and (bool(ap_check) and math.floor (TargetUnit:TimeToDie() / (2 * Player:SpellHaste())) * Cache.EnemiesCount[40] >= math.ceil (math.floor (2 / Cache.EnemiesCount[40]) * 1.5) + 2 * Cache.EnemiesCount[40] and (Cache.EnemiesCount[40] > 1 + num(S.TwinMoons:IsAvailable()) or TargetUnit:DebuffP(S.MoonfireDebuff)) and (not bool(VarAzSs) or not Player:BuffP(S.CaIncBuff) or not Player:PrevGCDP(1, S.Sunfire)) and (Player:BuffRemainsP(S.CaIncBuff) > TargetUnit:DebuffRemainsP(S.SunfireDebuff) or not Player:BuffP(S.CaIncBuff)))
- end
- local function EvaluateCycleMoonfire307(TargetUnit)
- return (TargetUnit:DebuffRefreshableCP(S.MoonfireDebuff)) and (bool(ap_check) and math.floor (TargetUnit:TimeToDie() / (2 * Player:SpellHaste())) * Cache.EnemiesCount[40] >= 6 and (not bool(VarAzSs) or not Player:BuffP(S.CaIncBuff) or not Player:PrevGCDP(1, S.Moonfire)) and (Player:BuffRemainsP(S.CaIncBuff) > TargetUnit:DebuffRemainsP(S.MoonfireDebuff) or not Player:BuffP(S.CaIncBuff)))
- end
- local function EvaluateCycleStellarFlare342(TargetUnit)
- return (TargetUnit:DebuffRefreshableCP(S.StellarFlareDebuff)) and (bool(ap_check) and math.floor (TargetUnit:TimeToDie() / (2 * Player:SpellHaste())) >= 5 and (not bool(VarAzSs) or not Player:BuffP(S.CaIncBuff) or not bool(prev.stellar_flare)))
- end
- --- ======= ACTION LISTS =======
- local function APL()
- local Precombat
- UpdateRanges()
- Everyone.AoEToggleEnemiesUpdate()
- Precombat = function()
- -- flask
- -- food
- -- augmentation
- -- variable,name=az_ss,value=azerite.streaking_stars.rank
- -- variable,name=az_ap,value=azerite.arcanic_pulsar.rank
- --if (true) then
- --VarAzAp = S.ArcanicPulsar:AzeriteRank()
- --end
- -- variable,name=sf_targets,value=4
- if (true) then
- VarSfTargets = 5
- end
- -- variable,name=sf_targets,op=add,value=1,if=azerite.arcanic_pulsar.enabled
- --if (S.ArcanicPulsar:AzeriteEnabled()) then
- --VarSfTargets = VarSfTargets + 1
- --end
- -- variable,name=sf_targets,op=add,value=1,if=talent.starlord.enabled
- --if (S.Starlord:IsAvailable()) then
- --VarSfTargets = VarSfTargets + 1
- --end
- -- variable,name=sf_targets,op=add,value=1,if=azerite.streaking_stars.rank>2&azerite.arcanic_pulsar.enabled
- --if (S.StreakingStars:AzeriteEnabled() and S.ArcanicPulsar:AzeriteEnabled()) then
- -- VarSfTargets = VarSfTargets + 1
- --end
- -- variable,name=sf_targets,op=sub,value=1,if=!talent.twin_moons.enabled
- --if (not S.TwinMoons:IsAvailable()) then
- --VarSfTargets = VarSfTargets - 1
- --end
- -- moonkin_form
- if S.MoonkinForm:IsCastableP() and not Player:Buff(S.MoonkinFormBuff) then
- if HR.Cast(S.MoonkinForm) then return "moonkin_form 33"; end
- end
- -- snapshot_stats
- -- potion
- if I.ProlongedPower:IsReady() and Settings.Commons.UsePotions then
- if HR.CastSuggested(I.ProlongedPower) then return "prolonged_power 36"; end
- end
- -- solar_wrath
- if S.SolarWrath:IsCastableP() and not Player:IsMoving() and Everyone.TargetIsValid() then
- if HR.Cast(S.SolarWrath) then return "solar_wrath 38"; end
- end
- end
- CD = function()
- -- innervate,if=azerite.lively_spirit.enabled&(cooldown.incarnation.remains<2|cooldown.celestial_alignment.remains<12)
- if S.Innervate:IsCastableP() and (S.LivelySpirit:AzeriteEnabled() and (S.Incarnation:CooldownRemainsP() < 2 or S.CelestialAlignment:CooldownRemainsP() < 12)) then
- if HR.Cast(S.Innervate) then return "innervate 104"; end
- end
- -- incarnation,if=dot.sunfire.remains>8&dot.moonfire.remains>12&(dot.stellar_flare.remains>6|!talent.stellar_flare.enabled)&ap_check&!buff.ca_inc.up
- if HR.CDsON() and S.Incarnation:IsCastableP() and (Target:DebuffRemainsP(S.SunfireDebuff) > 8 and Target:DebuffRemainsP(S.MoonfireDebuff) > 12 and (Target:DebuffRemainsP(S.StellarFlareDebuff) > 6 or not S.StellarFlare:IsAvailable()) and bool(ap_check) and not Player:BuffP(S.CaIncBuff)) then
- if HR.Cast(S.Incarnation) then return "incarnation 112"; end
- end
- -- celestial_alignment,if=astral_power>=40&!buff.ca_inc.up&ap_check&(!azerite.lively_spirit.enabled|buff.lively_spirit.up)&(dot.sunfire.remains>2&dot.moonfire.ticking&(dot.stellar_flare.ticking|!talent.stellar_flare.enabled))
- if HR.CDsON() and S.CelestialAlignment:IsCastableP() and (FutureAstralPower() >= 40 and not Player:BuffP(S.CaIncBuff) and bool(ap_check) and (not S.LivelySpirit:AzeriteEnabled() or Player:BuffP(S.LivelySpiritBuff)) and (Target:DebuffRemainsP(S.SunfireDebuff) > 2 and Target:DebuffP(S.MoonfireDebuff) and (Target:DebuffP(S.StellarFlareDebuff) or not S.StellarFlare:IsAvailable()))) then
- if HR.Cast(S.CelestialAlignment) then return "celestial_alignment 124"; end
- end
- -- fury_of_elune,if=(buff.ca_inc.up|cooldown.ca_inc.remains>30)&solar_wrath.ap_check
- if HR.CDsON() and S.FuryofElune:IsCastableP() and ((Player:BuffP(S.CaIncBuff) or S.CaInc:CooldownRemainsP() > 30) and Player:AstralPowerDeficit() > 8 ) then
- if HR.Cast(S.FuryofElune) then return "fury_of_elune 140"; end
- end
- end
- Dot = function()
- -- sunfire,if=buff.ca_inc.up&buff.ca_inc.remains<gcd.max&variable.az_ss&dot.moonfire.remains>remains
- if S.Sunfire:IsCastableP() and (Player:BuffP(S.CaIncBuff) and Player:BuffRemainsP(S.CaIncBuff) < Player:GCD() and Target:DebuffRemainsP(S.MoonfireDebuff) > Target:DebuffRemainsP(S.SunfireDebuff)) then
- if HR.Cast(S.Sunfire) then return "sunfire 216"; end
- end
- -- moonfire,if=buff.ca_inc.up&buff.ca_inc.remains<gcd.max&variable.az_ss
- if S.Moonfire:IsCastableP() and (Player:BuffP(S.CaIncBuff) and Player:BuffRemainsP(S.CaIncBuff) < Player:GCD() and S.StreakingStars:AzeriteEnabled()) then
- if HR.Cast(S.Moonfire) then return "moonfire 232"; end
- end
- -- sunfire,target_if=refreshable,if=ap_check&floor(target.time_to_die%(2*spell_haste))*spell_targets>=ceil(floor(2%spell_targets)*1.5)+2*spell_targets&(spell_targets>1+talent.twin_moons.enabled|dot.moonfire.ticking)&(!variable.az_ss|!buff.ca_inc.up|!prev.sunfire)&(buff.ca_inc.remains>remains|!buff.ca_inc.up)
- if S.Sunfire:IsCastableP() then
- if HR.CastCycle(S.Sunfire, 40, EvaluateCycleSunfire244) then return "sunfire 302" end
- end
- -- moonfire,target_if=refreshable,if=ap_check&floor(target.time_to_die%(2*spell_haste))*spell_targets>=6&(!variable.az_ss|!buff.ca_inc.up|!prev.moonfire)&(buff.ca_inc.remains>remains|!buff.ca_inc.up)
- if S.Moonfire:IsCastableP() then
- if HR.CastCycle(S.Moonfire, 40, EvaluateCycleMoonfire307) then return "moonfire 337" end
- end
- -- stellar_flare,target_if=refreshable,if=ap_check&floor(target.time_to_die%(2*spell_haste))>=5&(!variable.az_ss|!buff.ca_inc.up|!prev.stellar_flare)
- if S.StellarFlare:IsCastableP() then
- if HR.CastCycle(S.StellarFlare, 40, EvaluateCycleStellarFlare342) then return "stellar_flare 354" end
- end
- end
- Aoe = function()
- if S.Starfall:IsCastableP() and FutureAstralPower() > S.Starfall:Cost() and (Cache.EnemiesCount[20] >=7 and (Target:TimeToDie() + 1) * Cache.EnemiesCount[20] > S.Starfall:Cost() / 2.5) then
- if HR.Cast(S.Starfall) then return "starfall 158"; end
- end
- if S.Starsurge:IsCastableP() and Cache.EnemiesCount[15] < 7 and FutureAstralPower() >= S.Starsurge:Cost() and Player:BuffStackP(S.SolarEmpowermentBuff) < 3 and Player:BuffStackP(S.LunarEmpowermentBuff) < 3 then
- if HR.Cast(S.Starsurge) then return "starsurge 182"; end
- end
- if S.LunarStrike:IsCastableP() and not Player:IsMoving() and Player:BuffStackP(S.LunarEmpowermentBuff) >= 1 and Player:BuffStackP(S.SolarEmpowermentBuff) <= 2 then
- if HR.Cast(S.LunarStrike) then return ""; end
- end
- if S.SolarWrath:IsCastableP() and not Player:IsMoving() and Player:BuffStackP(S.SolarEmpowermentBuff) >= 1 and Player:BuffStackP(S.LunarEmpowermentBuff) < 3 then
- if HR.Cast(S.SolarWrath) then return ""; end
- end
- if S.LunarStrike:IsCastableP() and not Player:IsMoving()and Cache.EnemiesCount[15] >=3 and not Player:IsMoving() then
- if HR.Cast(S.LunarStrike) then return ""; end
- end
- if S.SolarWrath:IsCastableP() and not Player:IsMoving() then
- if HR.Cast(S.SolarWrath) then return ""; end
- end
- -- sunfire
- if S.Sunfire:IsCastableP() then
- if HR.Cast(S.Sunfire) then return "sunfire 393"; end
- end
- end
- local function EmpowermentCapCheck ()
- -- TODO(mrdmnd) - add conditions on azerite traits
- --actions+=/lunar_strike,
- -- if=astral_power.deficit>=16&
- -- (buff.lunar_empowerment.stack=3|(spell_targets<3 & astral_power>=40 & (buff.lunar_empowerment.stack=2&buff.solar_empowerment.stack=2)))&
- -- !(variable.az_hn=3&active_enemies=1)&
- -- !(spell_targets.moonfire>=2&variable.az_potm=3&active_enemies=2)
- --actions+=/solar_wrath,
- -- if=astral_power.deficit>=12&
- -- (buff.solar_empowerment.stack=3|(variable.az_sb>1&spell_targets.starfall<3&astral_power>=32&!buff.sunblaze.up))&
- -- !(variable.az_hn=3&active_enemies=1)&
- -- !(spell_targets.moonfire>=2&active_enemies<=4&variable.az_potm=3)
- if S.LunarStrike:IsCastableP() and not Player:IsMoving() and Player:AstralPowerDeficit() >= 16 and (Player:BuffStackP(S.LunarEmpowermentBuff) == 3 or (Cache.EnemiesCount[15] < 3 and Player:AstralPower() >= 40 and Player:BuffStackP(S.LunarEmpowermentBuff) == 2 and Player:BuffStack(S.SolarEmpowermentBuff) == 2)) then
- if HR.Cast(S.LunarStrike) then return "Lunar Strike at Cap"; end
- end
- if S.SolarWrath:IsCastableP() and not Player:IsMoving() and Player:AstralPowerDeficit() >= 12 and (Player:BuffStackP(S.SolarEmpowermentBuff) == 3) then
- if HR.Cast(S.SolarWrath) then return "Solar Wrath at Cap"; end
- end
- end
- local function CoreRotation ()
- -- TODO(mrdmnd): Implement conditionals on azerite traits. For now, assume all vairable.az_WHATEVER evaluates to zero.
- -- actions+=/starsurge,if=(spell_targets.starfall<3&(!buff.starlord.up|buff.starlord.remains>=4)|execute_time*(astral_power%40)>target.time_to_die)&(!buff.celestial_alignment.up&!buff.incarnation.up|variable.az_streak<2|!prev_gcd.1.starsurge)
- -- actions+=/starfall,if=spell_targets.starfall>=3&(!buff.starlord.up|buff.starlord.remains>=4)
- -- actions+=/new_moon,if=astral_power.deficit>10+execute_time%1.5
- -- actions+=/half_moon,if=astral_power.deficit>20+execute_time%1.5
- -- actions+=/full_moon,if=astral_power.deficit>40+execute_time%1.5
- -- actions+=/lunar_strike,if=((buff.warrior_of_elune.up|buff.lunar_empowerment.up|spell_targets>=3&!buff.solar_empowerment.up)&(!buff.celestial_alignment.up&!buff.incarnation.up|variable.az_streak<2|!prev_gcd.1.lunar_strike)|(variable.az_ds&!buff.dawning_sun.up))&!(spell_targets.moonfire>=2&active_enemies<=4&(variable.az_potm=3|variable.az_potm=2&active_enemies=2))
- -- actions+=/solar_wrath,if=(!buff.celestial_alignment.up&!buff.incarnation.up|variable.az_streak<2|!prev_gcd.1.solar_wrath)&!(spell_targets.moonfire>=2&active_enemies<=4&(variable.az_potm=3|variable.az_potm=2&active_enemies=2))
- -- actions+=/sunfire,if=(!buff.celestial_alignment.up&!buff.incarnation.up|!variable.az_streak|!prev_gcd.1.sunfire)&!(variable.az_potm>=2&spell_targets.moonfire>=2)
- -- actions+=/moonfire
- if HR.AoEON() and S.Starfall:IsCastableP() and FutureAstralPower() > S.Starfall:Cost() and (Cache.EnemiesCount[20] > 6 and (Target:TimeToDie() + 1) * Cache.EnemiesCount[20] > S.Starfall:Cost() / 2.5) then
- if HR.Cast(S.Starfall) then return "starfall 158"; end
- end
- if S.Starsurge:IsCastableP() and (not Player:BuffP(S.StarlordBuff) or Player:BuffRemainsP(S.StarlordBuff) >= 4 or (Player:GCD() * (FutureAstralPower() / 40)) > Target:TimeToDie()) and FutureAstralPower() >= 40 then
- if HR.Cast(S.Starsurge) then return ""; end
- end
- -- don't suggest an empowered cast if we're casting the last empowered stack
- -- bad assumption: detects cleave targets based on 15yds from caster, centered. cannot do clump detection, i am not clever enough yet
- if (Cache.EnemiesCount[15] >= 2) then
- -- Cleave situation: prioritize lunar strike empower > solar wrath empower > lunar strike
- if S.LunarStrike:IsCastableP() and not Player:IsMoving() and Player:BuffP(S.LunarEmpowermentBuff) and not (Player:BuffStackP(S.LunarEmpowermentBuff) == 1 and Player:IsCasting(S.LunarStrike)) then
- if HR.Cast(S.LunarStrike) then return ""; end
- end
- if S.SolarWrath:IsCastableP() and not Player:IsMoving() and Player:BuffP(S.SolarEmpowermentBuff) and not (Player:BuffStackP(S.SolarEmpowermentBuff) == 1 and Player:IsCasting(S.SolarWrath)) then
- if HR.Cast(S.SolarWrath) then return ""; end
- end
- if S.LunarStrike:IsCastableP() and not Player:IsMoving() and (true) then
- if HR.Cast(S.LunarStrike) then return ""; end
- end
- else
- -- ST situation: prioritize solar wrath empower > lunar strike empower > solar wrath
- if S.SolarWrath:IsCastableP() and not Player:IsMoving() and Player:BuffP(S.SolarEmpowermentBuff) and not (Player:BuffStackP(S.SolarEmpowermentBuff) == 1 and Player:IsCasting(S.SolarWrath)) then
- if HR.Cast(S.SolarWrath) then return ""; end
- end
- if S.LunarStrike:IsCastableP() and not Player:IsMoving() and Player:BuffP(S.LunarEmpowermentBuff) and not (Player:BuffStackP(S.LunarEmpowermentBuff) == 1 and Player:IsCasting(S.LunarStrike)) then
- if HR.Cast(S.LunarStrike) then return ""; end
- end
- if S.SolarWrath:IsCastableP() and not Player:IsMoving() and (true) then
- if HR.Cast(S.SolarWrath) then return ""; end
- end
- end
- if S.Moonfire:IsCastableP() and (true) then
- if HR.Cast(S.Moonfire) then return ""; end
- end
- end
- Streak = function()
- -- starsurge,if=(talent.starlord.enabled&(buff.starlord.stack<3|buff.starlord.remains>=8&buff.arcanic_pulsar.stack<8)|!talent.starlord.enabled&(buff.arcanic_pulsar.stack<8|buff.ca_inc.up))&spell_targets.starfall<variable.sf_targets&buff.lunar_empowerment.stack+buff.solar_empowerment.stack<4&buff.solar_empowerment.stack<3&buff.lunar_empowerment.stack<3&(!variable.az_ss|!buff.ca_inc.up|!prev.starsurge)|target.time_to_die<=execute_time*astral_power%40|!solar_wrath.ap_check
- if S.Starsurge:IsCastableP() and FutureAstralPower() >= S.Starsurge:Cost() and (Player:BuffStackP(S.SolarEmpowermentBuff) < 3 and Player:BuffStackP(S.LunarEmpowermentBuff) < 3 and not Player:PrevGCDP(1, S.Starsurge) ) then
- if HR.Cast(S.Starsurge) then return "starsurge 182"; end
- end
- -- lunar_strike,if=buff.solar_empowerment.stack<3&(ap_check|buff.lunar_empowerment.stack=3)&((buff.warrior_of_elune.up|buff.lunar_empowerment.up|spell_targets>=2&!buff.solar_empowerment.up)&(!variable.az_ss|!buff.ca_inc.up)|variable.az_ss&buff.ca_inc.up&prev.solar_wrath)
- if S.LunarStrike:IsCastableP() and not Player:IsMoving() and not Player:IsCasting(S.LunarStrike) and Player:BuffP(S.CaIncBuff) and Player:BuffStackP(S.SolarEmpowermentBuff) < 3 and not Player:PrevGCDP(1, S.LunarStrike) or Player:PrevGCDP(1, S.SolarWrath) then
- if HR.Cast(S.LunarStrike) then return "lunar_strike 361"; end
- end
- -- solar_wrath,if=variable.az_ss<3|!buff.ca_inc.up|!prev.solar_wrath
- if S.SolarWrath:IsCastableP() and not Player:IsMoving() and not Player:IsCasting(S.SolarWrath) and Player:BuffP(S.CaIncBuff) and not Player:PrevGCDP(1, S.SolarWrath) then
- if HR.Cast(S.SolarWrath) then return "solar_wrath 387"; end
- end
- end
- -- call precombat
- if Everyone.TargetIsValid() then
- if not Player:AffectingCombat() then
- local ShouldReturn = Precombat(); if ShouldReturn then return ShouldReturn; end
- end
- if Player:AffectingCombat() then
- if S.MoonkinForm:IsCastableP() and not Player:Buff(S.MoonkinFormBuff) and not Player:IsMoving() then
- if HR.Cast(S.MoonkinForm) then return "moonkin_form 33"; end
- end
- end
- if (true) then
- local ShouldReturn = Dot(); if ShouldReturn then return ShouldReturn; end
- end
- if (true) then
- local ShouldReturn = CD(); if ShouldReturn then return ShouldReturn; end
- end
- --if HR.AoEON() and Cache.EnemiesCount[15] >= 7 then
- --local ShouldReturn = Aoe(); if ShouldReturn then return ShouldReturn; end
- --end
- if Player:Buff(S.CaInc) then
- local ShouldReturn = Streak(); if ShouldReturn then return ShouldReturn; end
- end
- if not Player:Buff(S.CaInc) then
- local ShouldReturn = EmpowermentCapCheck(); if ShouldReturn then return ShouldReturn; end
- end
- if not Player:Buff(S.CaInc) then
- local ShouldReturn = CoreRotation(); if ShouldReturn then return ShouldReturn; end
- end
- if S.Moonfire:IsCastableP() and (true) then
- if HR.Cast(S.Moonfire) then return ""; end
- end
- --if Player:BuffP(S.CaIncBuff) then
- --local ShouldReturn = Streak(); if ShouldReturn then return ShouldReturn; end
- --end
- end
- end
- HR.SetAPL(102, APL)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement