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.

79 lines
7.0 KiB

actions.precombat+=/power_word_fortitude
# Always use HF if we have empyreal blaze (dot extension) or harmonious apparatus (cd reduction) or if it's not currently ticking. Otherwise, only use when refreshable to be sure we get the longest duration possible. It's worth it to cast even when the target will die soon based on just the initial hit damage. We also don't want to cast immediately once empyreal blaze is up when we are prepping divine word
actions+=/holy_fire,cycle_targets=1,if=(talent.empyreal_blaze|talent.harmonious_apparatus|!ticking|refreshable)&!(buff.empyreal_blaze.up&(cooldown.divine_word.up|buff.divine_word.up)&cooldown.holy_word_chastise.up)
# Don't cast SW:P during apotheosis or divine favor: chastise. We also don't cycle targets because it isn't worth the GCDs, since Smite deals slightly more damage than a full SW:P.
actions+=/shadow_word_pain,if=(refreshable|!ticking)&(target.time_to_die>=dot.shadow_word_pain.duration)&!buff.divine_favor_chastise.up&!buff.apotheosis.up
# Prepare to enter divine favor: chastise
actions+=/call_action_list,name=divine_favor_chastise_prep,if=talent.divine_word&talent.holy_word_chastise&buff.divine_favor_chastise.down
# Enter Divine Favor rotation with divine favor: chastise buff up
actions+=/run_action_list,name=divine_favor_chastise_active,strict=1,if=buff.divine_favor_chastise.up
# Run divine favor fillers rotation with buff down
actions+=/run_action_list,name=divine_favor_filler,if=talent.divine_word&talent.holy_word_chastise&buff.divine_favor_chastise.down
# Run divine image rotation with divine image talented
actions+=/run_action_list,name=divine_image,strict=1,if=talent.divine_image
# Otherwise generic rotation
actions+=/run_action_list,name=generic
actions.divine_favor_chastise_prep+=/variable,name=empyreal_exec_time,op=set,value=0
# apotheosis_exec_time: Store how long Apotheosis will take to execute
actions.divine_favor_chastise_prep+=/variable,name=apotheosis_exec_time,op=setif,condition=talent.apotheosis,value=action.apotheosis.execute_time,value_else=0
# Use apotheosis to get Chastise back if its on cooldown and Divine Word will be up soon. We can use Apotheosis (2min CD) to reset Chastise for every other Divine Word (1min CD).
actions.divine_favor_chastise_prep+=/apotheosis,if=(cooldown.holy_word_chastise.remains>cooldown.divine_word.remains)&(cooldown.divine_word.remains<=(variable.empyreal_exec_time+variable.apotheosis_exec_time))
# Divine Word only if we can sync with Chastise and (if talented) Empyreal Blaze
actions.divine_favor_chastise_prep+=/divine_word,if=cooldown.holy_word_chastise.up&(!talent.empyreal_blaze|buff.empyreal_blaze.up)
# Holy word chastise to trigger divine favor: chastise
actions.divine_favor_chastise_prep+=/holy_word_chastise,if=!talent.empyreal_blaze&buff.divine_word.up|talent.empyreal_blaze&buff.empyreal_blaze.down
actions.divine_favor_chastise_active+=/halo,if=spell_targets.halo>=2
actions.divine_favor_chastise_active+=/divine_star,if=spell_targets.divine_star>=2
# There are particular breakpoints combinations of rhapsody and spell targets beyond which holy nova beats everything else we can do
actions.divine_favor_chastise_active+=/holy_nova,if=(spell_targets.holy_nova>=2&buff.rhapsody.stack>=18)|(spell_targets.holy_nova>=3&buff.rhapsody.stack>=9)|(spell_targets.holy_nova>=4&buff.rhapsody.stack>=4)|spell_targets.holy_nova>=5
actions.divine_favor_chastise_active+=/mindgames
actions.divine_favor_chastise_active+=/shadow_word_death,if=target.health.pct<20
actions.divine_favor_chastise_active+=/holy_word_chastise
# We want to cycle smite to different targets to spread holy fire dots in AOE situations, this will buff holy nova's damage
actions.divine_favor_chastise_active+=/smite,cycle_targets=1,if=spell_targets.holy_nova>=2
actions.divine_favor_chastise_active+=/smite
actions.divine_favor_filler+=/halo,if=spell_targets.halo>=2
actions.divine_favor_filler+=/divine_star,if=spell_targets.divine_star>=2
# There are particular breakpoints combinations of rhapsody and spell targets beyond which holy nova beats everything else we can do
actions.divine_favor_filler+=/holy_nova,if=(spell_targets.holy_nova>=2&buff.rhapsody.stack>=18)|(spell_targets.holy_nova>=3&buff.rhapsody.stack>=9)|(spell_targets.holy_nova>=4&buff.rhapsody.stack>=4)|spell_targets.holy_nova>=5
actions.divine_favor_filler+=/mindgames
actions.divine_favor_filler+=/shadow_word_death,if=target.health.pct<20
# We can use chastise for damage as long as we will have apotheosis available before the next divine word, otherwise only use it when it will be back up at the same time as divine word
actions.divine_favor_filler+=/holy_word_chastise,if=(cooldown.apotheosis.remains<cooldown.divine_word.remains)|(cooldown.holy_word_chastise.duration_expected<=cooldown.divine_word.remains)
actions.divine_favor_filler+=/smite
actions.divine_image+=/apotheosis,if=buff.answered_prayers.down&!(cooldown.holy_word_sanctify.up|cooldown.holy_word_serenity.up|cooldown.holy_word_chastise.up)
# line_cd prevents re-casting sanctify and serenity right away, wasting GCDs that could be used to proc divine image damage. In testing, the sweet spot balance between adding more divine images, triggering apotheosis, and casting damage CDs was to let the image from each healing holy word expire before re-casting
actions.divine_image+=/holy_word_sanctify,line_cd=9
actions.divine_image+=/holy_word_serenity,line_cd=9
actions.divine_image+=/holy_word_chastise
actions.divine_image+=/halo,if=spell_targets.halo>=2
actions.divine_image+=/divine_star,if=spell_targets.divine_star>=2
# There are particular breakpoints combinations of rhapsody and spell targets beyond which holy nova beats everything else we can do
actions.divine_image+=/holy_nova,if=(spell_targets.holy_nova>=2&buff.rhapsody.stack>=18)|(spell_targets.holy_nova>=3&buff.rhapsody.stack>=9)|(spell_targets.holy_nova>=4&buff.rhapsody.stack>=4)|spell_targets.holy_nova>=5
actions.divine_image+=/mindgames
actions.divine_image+=/shadow_word_death,if=target.health.pct<20
actions.divine_image+=/smite
actions.generic+=/holy_word_chastise
# Hold Apotheosis if chastise will be up soon
actions.generic+=/apotheosis,if=cooldown.holy_word_chastise.remains>(gcd.max*3)
actions.generic+=/halo,if=spell_targets.halo>=2
actions.generic+=/divine_star,if=spell_targets.divine_star>=2
# There are particular breakpoints combinations of rhapsody and spell targets beyond which holy nova beats everything else we can do
actions.generic+=/holy_nova,if=(spell_targets.holy_nova>=2&buff.rhapsody.stack>=18)|(spell_targets.holy_nova>=3&buff.rhapsody.stack>=9)|(spell_targets.holy_nova>=4&buff.rhapsody.stack>=4)|spell_targets.holy_nova>=5
actions.generic+=/mindgames
actions.generic+=/shadow_word_death,if=target.health.pct<20
actions.generic+=/smite
actions.cooldowns+=/shadowfiend
# Sync PI with divine favor: chastise if we took divine word
actions.cooldowns+=/power_infusion,if=(!talent.divine_word|(cooldown.divine_word.up&cooldown.holy_word_chastise.up))
# Only potion in sync with power infusion
actions.cooldowns+=/potion,if=buff.power_infusion.up
# hold trinkets to use with PI
actions.cooldowns+=/use_items,if=buff.power_infusion.up