You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
16 KiB

## 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_time<?cooldown.force_of_nature.remains
actions+=/variable,name=last_ca_inc,value=boss&fight_remains<cooldown.ca_inc.duration+variable.ca_effective_cd
actions+=/variable,name=pre_cd_condition,value=(!talent.whirling_stars|!talent.convoke_the_spirits|cooldown.convoke_the_spirits.remains<gcd.max*2|fight_remains<cooldown.convoke_the_spirits.remains+3|cooldown.convoke_the_spirits.remains>cooldown.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.duration<trinket.1.cooldown.remains+15)|trinket.1.cooldown.remains+6>fight_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.duration<trinket.2.cooldown.remains+15)|trinket.2.cooldown.remains+6>fight_remains|trinket.2.cooldown.ready))&cooldown.ca_inc.remains<gcd.max&!buff.ca_inc.up
actions+=/variable,name=cd_condition,value=variable.pre_cd_condition&(fight_remains<(15+5*talent.incarnation_chosen_of_elune)*(1-talent.whirling_stars*0.2)|target.time_to_die>10&(!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.remains<?buff.eclipse_solar.remains
actions+=/variable,name=enter_lunar,value=talent.lunar_calling|spell_targets.starfire>3-(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_remains<cooldown.ca_inc.duration)|boss&fight_remains<20
actions+=/use_item,name=imperfect_ascendancy_serum,if=dot.sunfire.remains>4&(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<variable.ca_effective_cd&(buff.harmony_of_the_grove.up|cooldown.convoke_the_spirits.ready))&buff.spymasters_report.stack<=29
actions+=/use_item,name=treacherous_transmitter,if=((cooldown.force_of_nature.remains<3&(trinket.1.is.spymasters_web|trinket.2.is.spymasters_web)&buff.spymasters_report.stack>=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_remains<variable.ca_effective_cd&(buff.harmony_of_the_grove.up|cooldown.convoke_the_spirits.ready)))
actions+=/variable,name=generic_trinket_condition,value=variable.no_cd_talent|boss&fight_remains<variable.ca_effective_cd&(buff.harmony_of_the_grove.up|cooldown.convoke_the_spirits.ready)|(buff.spymasters_report.stack+variable.ca_effective_cd%6)>29&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.remains<cast_time&!variable.cd_condition
actions.aoe+=/starfire,if=!variable.enter_lunar&eclipse.in_eclipse&eclipse.remains<cast_time&!variable.cd_condition
actions.aoe+=/starfall,if=astral_power.deficit<=variable.passive_asp+6
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+=/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.remains<cast_time)
## actions.aoe+=/starfire,if=cooldown.ca_inc.remains>cast_time+gcd.max&!variable.enter_lunar&(eclipse.in_none|eclipse.remains<cast_time)
actions.aoe+=/wrath,if=variable.enter_lunar&(eclipse.in_none|eclipse.remains<cast_time)&!variable.pre_cd_condition
actions.aoe+=/starfire,if=!variable.enter_lunar&(eclipse.in_none|eclipse.remains<cast_time)
actions.aoe+=/stellar_flare,cycle_targets=1,if=refreshable&(target.time_to_die-remains-target>7+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_remains<cooldown.convoke_the_spirits.remains+cooldown.convoke_the_spirits.duration+5)&(variable.on_use_trinket=0|(variable.on_use_trinket=1|variable.on_use_trinket=3)&(trinket.1.cooldown.remains>5+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_remains<cooldown.ca_inc.remains+7)|talent.whirling_stars&talent.convoke_the_spirits&cooldown.convoke_the_spirits.remains>cooldown.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.remains<action.starfire.cast_time|eclipse.in_none)
actions.aoe+=/starfall,if=buff.starweavers_warp.up|buff.touch_the_cosmos_starfall.up
actions.aoe+=/starsurge,if=buff.starweavers_weft.up
actions.aoe+=/starfall
actions.aoe+=/convoke_the_spirits,if=(!buff.dreamstate.up&!buff.umbral_embrace.up&spell_targets.starfire<7|spell_targets.starfire=1)&(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))
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_remains<cooldown.ca_inc.duration)
## actions.pre_cd+=/do_treacherous_transmitter_task,if=variable.cd_condition|buff.harmony_of_the_grove.up&(buff.spymasters_report.stack>29|!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.remains<cast_time&!variable.cd_condition
actions.st+=/starfire,if=!variable.enter_lunar&eclipse.in_eclipse&eclipse.remains<cast_time&!variable.cd_condition
actions.st+=/sunfire,cycle_targets=1,if=remains<3|refreshable&(hero_tree.keeper_of_the_grove&cooldown.force_of_nature.ready|!hero_tree.keeper_of_the_grove&variable.cd_condition)
actions.st+=/moonfire,cycle_targets=1,if=refreshable&remains<3&(!talent.treants_of_the_moon|cooldown.force_of_nature.remains>3&!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.remains<cast_time)
actions.st+=/starfire,if=!variable.enter_lunar&(eclipse.in_none|eclipse.remains<cast_time)
actions.st+=/starsurge,if=variable.cd_condition&astral_power.deficit>variable.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_remains<cooldown.convoke_the_spirits.remains+cooldown.convoke_the_spirits.duration+5)&(variable.on_use_trinket=0|(variable.on_use_trinket=1|variable.on_use_trinket=3)&(trinket.1.cooldown.remains>5+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_remains<cooldown.ca_inc.remains+7)|talent.whirling_stars&talent.convoke_the_spirits&cooldown.convoke_the_spirits.remains>cooldown.force_of_nature.duration-10&fight_remains>cooldown.convoke_the_spirits.remains+6
actions.st+=/fury_of_elune,if=5+variable.passive_asp<astral_power.deficit
actions.st+=/starsurge,if=talent.starlord&buff.starlord.stack<3
actions.st+=/sunfire,cycle_targets=1,if=refreshable
actions.st+=/moonfire,cycle_targets=1,if=refreshable&(!talent.treants_of_the_moon|cooldown.force_of_nature.remains>3&!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.remains<gcd.max*2&variable.convoke_condition
actions.st+=/convoke_the_spirits,if=variable.convoke_condition
actions.st+=/starsurge,if=buff.starlord.remains>4&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<variable.passive_asp+action.wrath.energize_amount+(action.starfire.energize_amount+variable.passive_asp)*(buff.eclipse_solar.remains<(gcd.max*3))
actions.st+=/force_of_nature,if=!hero_tree.keeper_of_the_grove
actions.st+=/starfire,if=talent.lunar_calling
actions.st+=/wrath