## https://github.com/simulationcraft/simc/blob/thewarwithin/ActionPriorityLists/default/druid_balance.simc ## Up to date with SimC: April 27 - 603b5f7 actions.precombat+=/mark_of_the_wild actions.precombat+=/moonkin_form actions.precombat+=/variable,name=no_cd_talent,value=!talent.celestial_alignment&!talent.incarnation_chosen_of_elune|druid.no_cds actions.precombat+=/variable,name=on_use_trinket,value=0 ## [Syrif] - Edited the below 2 variables to better match SimC's intention actions.precombat+=/variable,name=on_use_trinket,op=add,if=trinket.1.has_use_buff&!trinket.1.is.ovinaxs_mercurial_egg&!trinket.1.is.spymasters_web,value=1,value_else=0 actions.precombat+=/variable,name=on_use_trinket,op=add,if=trinket.2.has_use_buff&!trinket.2.is.ovinaxs_mercurial_egg&!trinket.2.is.spymasters_web,value=2,value_else=0 ## Regrowth to stack for Keeper of the Grove... actions.precombat+=/regrowth,if=hero_tree.keeper_of_the_grove&!talent.stellar_flare&action.regrowth.time_since<10&active_dot.regrowth=0 # [edited] This handles the wrath opener based on the state of eclipse actions.precombat+=/wrath,if=eclipse.lunar_in actions.precombat+=/starfire,if=!talent.stellar_flare&hero_tree.elunes_chosen actions.precombat+=/stellar_flare actions+=/solar_beam # [Edited] Trigger Lunar Eclipse if we failed to precast Wrath x2 actions+=/wrath,if=time<2&eclipse.lunar_in_1 # VARIABLES actions+=/variable,name=passive_asp,value=6%spell_haste+talent.natures_balance+talent.orbit_breaker*dot.moonfire.ticking*(buff.orbit_breaker.stack>(27-2*buff.solstice.up))*24 actions+=/variable,name=ca_effective_cd,value=cooldown.ca_inc.full_recharge_timecooldown.ca_inc.full_recharge_time+15*talent.control_of_the_dream)&(variable.on_use_trinket=0|(variable.on_use_trinket=1|variable.on_use_trinket=3)&(trinket.1.cooldown.remains>cooldown.ca_inc.full_recharge_time+(15*talent.control_of_the_dream)|!talent.convoke_the_spirits&hero_tree.elunes_chosen&trinket.1.cooldown.remains>cooldown.ca_inc.full_recharge_time-cooldown.ca_inc.duration|talent.convoke_the_spirits&(cooldown.convoke_the_spirits.remains<3&(ceil((fight_remains-10)%cooldown.convoke_the_spirits.duration)>ceil((fight_remains-trinket.1.cooldown.remains-10)%cooldown.convoke_the_spirits.duration))|cooldown.convoke_the_spirits.remains>trinket.1.cooldown.remains&cooldown.ca_inc.full_recharge_time-cooldown.ca_inc.durationfight_remains|trinket.1.cooldown.ready)|variable.on_use_trinket=2&(trinket.2.cooldown.remains>cooldown.ca_inc.full_recharge_time+(15*talent.control_of_the_dream)|!talent.convoke_the_spirits&hero_tree.elunes_chosen&trinket.1.cooldown.remains>cooldown.ca_inc.full_recharge_time-cooldown.ca_inc.duration|talent.convoke_the_spirits&(cooldown.convoke_the_spirits.remains<3&(ceil((fight_remains-10)%cooldown.convoke_the_spirits.duration)>ceil((fight_remains-trinket.2.cooldown.remains-10)%cooldown.convoke_the_spirits.duration))|cooldown.convoke_the_spirits.remains>trinket.2.cooldown.remains&cooldown.ca_inc.full_recharge_time-cooldown.ca_inc.durationfight_remains|trinket.2.cooldown.ready))&cooldown.ca_inc.remains10&(!hero_tree.keeper_of_the_grove|buff.harmony_of_the_grove.up)) actions+=/variable,name=convoke_condition,value=boss&fight_remains<5|(buff.ca_inc.up|cooldown.ca_inc.remains>40)&(!hero_tree.keeper_of_the_grove|buff.harmony_of_the_grove.up|cooldown.force_of_nature.remains>15) # [Syrif] - Variable replaced with eclipse metatable expression ## actions+=/variable,name=eclipse_remains,value=buff.eclipse_lunar.remains3-(talent.umbral_intensity.rank|talent.soul_of_the_forest) actions+=/variable,name=boat_stacks,value=buff.balance_of_all_things_arcane.stack+buff.balance_of_all_things_nature.stack # ITEMS actions+=/use_item,name=spymasters_web,if=variable.cd_condition&(buff.spymasters_report.stack>29|boss&fight_remains4&(dot.moonfire.remains>4|talent.treants_of_the_moon&(cooldown.force_of_nature.remains<3|buff.harmony_of_the_grove.up)&variable.ca_effective_cd<1|boss&fight_remains<20|fight_remains=29)|(cooldown.convoke_the_spirits.remains<2&cooldown.ca_inc.ready&cooldown.force_of_nature.remains<3&buff.spymasters_report.stack<=29|fight_remains<20|fight_remains29&variable.ca_effective_cd>20|variable.on_use_trinket=0 actions+=/use_item,slot=trinket1,if=!trinket.1.is.spymasters_web&!trinket.1.is.imperfect_ascendancy_serum&!trinket.1.is.treacherous_transmitter&!trinket.1.is.soulletting_ruby&(variable.on_use_trinket!=1&variable.on_use_trinket!=3&trinket.2.cooldown.remains>20|boss&fight_remains<(20+20*(trinket.2.has_use&trinket.2.cooldown.remains<25))|variable.generic_trinket_condition) actions+=/use_item,slot=trinket2,if=!trinket.2.is.spymasters_web&!trinket.2.is.imperfect_ascendancy_serum&!trinket.2.is.treacherous_transmitter&!trinket.2.is.soulletting_ruby&(variable.on_use_trinket<2&trinket.1.cooldown.remains>20|variable.on_use_trinket=3&trinket.1.cooldown.remains>20&(!hero_tree.keeper_of_the_grove|buff.harmony_of_the_grove.up|ceil((fight_remains-15)%trinket.2.cooldown.duration)>ceil((fight_remains-cooldown.force_of_nature.remains-15)%trinket.2.cooldown.duration))|boss&fight_remains<(20+20*(trinket.1.has_use&trinket.1.cooldown.remains<25))|variable.generic_trinket_condition) actions+=/use_item,name=bestinslots,if=hero_tree.keeper_of_the_grove&buff.harmony_of_the_grove.up|hero_tree.elunes_chosen&(cooldown.ca_inc.full_recharge_time>20|buff.ca_inc.up) actions+=/use_item,name=neural_synapse_enhancer,if=variable.on_use_trinket=1&!trinket.1.cooldown.ready&(buff.harmony_of_the_grove.up|hero_tree.elunes_chosen)|!trinket.1.has_use_buff&(buff.harmony_of_the_grove.up|hero_tree.elunes_chosen) actions+=/use_item,name=neural_synapse_enhancer,if=variable.on_use_trinket=2&!trinket.2.cooldown.ready&(buff.harmony_of_the_grove.up|hero_tree.elunes_chosen)|!trinket.2.has_use_buff&(buff.harmony_of_the_grove.up|hero_tree.elunes_chosen) actions+=/potion,if=boss&fight_remains<=30 ## PI & RUN APL ## actions+=/invoke_external_buff,name=power_infusion,if=variable.cd_condition actions+=/berserking,if=variable.no_cd_talent|boss&fight_remains<15 actions+=/run_action_list,name=aoe,strict=1,if=spell_targets>1 actions+=/run_action_list,name=st # AOE actions.aoe+=/wrath,if=variable.enter_lunar&eclipse.in_eclipse&eclipse.remains6&(!talent.treants_of_the_moon|spell_targets-active_dot.moonfire_dmg>6|cooldown.force_of_nature.remains>3&!buff.harmony_of_the_grove.up)&!boss actions.aoe+=/sunfire,cycle_targets=1,if=refreshable&(target.time_to_die-remains)>6-(spell_targets%2) actions.aoe+=/moonfire,cycle_targets=1,if=refreshable&(target.time_to_die-remains)>6&(!talent.treants_of_the_moon|spell_targets-active_dot.moonfire_dmg>6|cooldown.force_of_nature.remains>3&!buff.harmony_of_the_grove.up)&boss ## actions.aoe+=/wrath,if=cooldown.ca_inc.remains>cast_time+gcd.max&variable.enter_lunar&(eclipse.in_none|eclipse.remainscast_time+gcd.max&!variable.enter_lunar&(eclipse.in_none|eclipse.remains7+spell_targets)&spell_targets<(11-talent.umbral_intensity.rank-(2*talent.astral_smolder)-talent.lunar_calling) actions.aoe+=/force_of_nature,if=variable.pre_cd_condition|cooldown.ca_inc.full_recharge_time+5+15*talent.control_of_the_dream>cooldown&(!talent.convoke_the_spirits|cooldown.convoke_the_spirits.remains+10+15*talent.control_of_the_dream>cooldown|fight_remains5+15*talent.control_of_the_dream|cooldown.ca_inc.remains>20|trinket.1.cooldown.ready)|variable.on_use_trinket=2&(trinket.2.cooldown.remains>5+15*talent.control_of_the_dream|cooldown.ca_inc.remains>20|trinket.2.cooldown.ready))&(fight_remains>cooldown+5|fight_remainscooldown.force_of_nature.duration-10&fight_remains>cooldown.convoke_the_spirits.remains+6 actions.aoe+=/fury_of_elune,if=eclipse.in_eclipse actions.aoe+=/call_action_list,name=pre_cd actions.aoe+=/celestial_alignment,if=variable.cd_condition actions.aoe+=/incarnation,if=variable.cd_condition actions.aoe+=/warrior_of_elune,if=!talent.lunar_calling&buff.eclipse_solar.remains<7|talent.lunar_calling&!buff.dreamstate.up actions.aoe+=/starfire,if=(!talent.lunar_calling&spell_targets.starfire=1)&(buff.eclipse_solar.up&buff.eclipse_solar.remains40)&(!hero_tree.keeper_of_the_grove|buff.harmony_of_the_grove.up|cooldown.force_of_nature.remains>15)) actions.aoe+=/new_moon actions.aoe+=/half_moon actions.aoe+=/full_moon actions.aoe+=/wild_mushroom,if=!prev_gcd.1.wild_mushroom&!dot.fungal_growth.ticking actions.aoe+=/force_of_nature,if=!hero_tree.keeper_of_the_grove actions.aoe+=/starfire,if=talent.lunar_calling|buff.eclipse_lunar.up&spell_targets.starfire>(3-(talent.umbral_intensity|talent.soul_of_the_forest)) actions.aoe+=/wrath # PRE_CD actions.pre_cd+=/use_item,name=spymasters_web,if=variable.cd_condition&(buff.spymasters_report.stack>29|boss&fight_remains29|!trinket.1.is.spymasters_web|!trinket.2.is.spymasters_web) actions.pre_cd+=/berserking,if=variable.cd_condition actions.pre_cd+=/potion,if=variable.cd_condition actions.pre_cd+=/use_item,slot=trinket1,if=!trinket.1.is.spymasters_web&!trinket.1.is.imperfect_ascendancy_serum&!trinket.1.is.treacherous_transmitter&(variable.on_use_trinket=1|variable.on_use_trinket=3)&variable.cd_condition actions.pre_cd+=/use_item,slot=trinket2,if=!trinket.2.is.spymasters_web&!trinket.2.is.imperfect_ascendancy_serum&!trinket.2.is.treacherous_transmitter&variable.on_use_trinket=2&variable.cd_condition # ST actions.st+=/warrior_of_elune,if=talent.lunar_calling|!talent.lunar_calling&eclipse.remains<=7 actions.st+=/wrath,if=variable.enter_lunar&eclipse.in_eclipse&eclipse.remains3&!buff.harmony_of_the_grove.up) actions.st+=/call_action_list,name=pre_cd actions.st+=/celestial_alignment,if=variable.cd_condition actions.st+=/incarnation,if=variable.cd_condition actions.st+=/wrath,if=variable.enter_lunar&(eclipse.in_none|eclipse.remainsvariable.passive_asp+action.force_of_nature.energize_amount actions.st+=/force_of_nature,if=variable.pre_cd_condition|cooldown.ca_inc.full_recharge_time+5+15*talent.control_of_the_dream>cooldown&(!talent.convoke_the_spirits|cooldown.convoke_the_spirits.remains+10+15*talent.control_of_the_dream>cooldown|fight_remains5+15*talent.control_of_the_dream|cooldown.ca_inc.remains>20|trinket.1.cooldown.ready)|variable.on_use_trinket=2&(trinket.2.cooldown.remains>5+15*talent.control_of_the_dream|cooldown.ca_inc.remains>20|trinket.2.cooldown.ready))&(fight_remains>cooldown+5|fight_remainscooldown.force_of_nature.duration-10&fight_remains>cooldown.convoke_the_spirits.remains+6 actions.st+=/fury_of_elune,if=5+variable.passive_asp3&!buff.harmony_of_the_grove.up) actions.st+=/stellar_flare,cycle_targets=1,if=refreshable&(target.time_to_die-remains-target>7+spell_targets) actions.st+=/starsurge,if=cooldown.convoke_the_spirits.remains4&variable.boat_stacks>=3|fight_remains<4 actions.st+=/new_moon,if=astral_power.deficit>variable.passive_asp+energize_amount|fight_remains<20|cooldown.ca_inc.remains>15 actions.st+=/half_moon,if=astral_power.deficit>variable.passive_asp+energize_amount&(buff.eclipse_lunar.remains>execute_time|buff.eclipse_solar.remains>execute_time)|fight_remains<20|cooldown.ca_inc.remains>15 actions.st+=/full_moon,if=astral_power.deficit>variable.passive_asp+energize_amount&(buff.eclipse_lunar.remains>execute_time|buff.eclipse_solar.remains>execute_time)|fight_remains<20|cooldown.ca_inc.remains>15 actions.st+=/starsurge,if=buff.starweavers_weft.up|buff.touch_the_cosmos_starsurge.up actions.st+=/starfall,if=buff.starweavers_warp.up|buff.touch_the_cosmos_starfall.up actions.st+=/starsurge,if=astral_power.deficit