actions.precombat+=/devotion_aura,if=buff.paladin_aura.down actions.precombat+=/lights_judgment actions.precombat+=/arcane_torrent actions.precombat+=/consecration # Executed every time the actor is available. actions=rebuke actions+=/cleanse_toxins actions+=/call_action_list,name=cooldowns actions+=/call_action_list,name=mitigation actions+=/call_action_list,name=trinkets actions+=/call_action_list,name=standard # Use Avenger's Shield as first priority before anything else, if t29 2pc is equipped. actions.cooldowns+=/avengers_shield,if=time=0&set_bonus.tier29_2pc actions.cooldowns+=/lights_judgment,if=spell_targets.lights_judgment>=2|!raid_event.adds.exists|raid_event.adds.in>75|raid_event.adds.up actions.cooldowns+=/avenging_wrath actions.cooldowns+=/sentinel actions.cooldowns+=/potion,if=buff.aw_sentinel.up actions.cooldowns+=/moment_of_glory,if=(buff.aw_sentinel.remains<15|(time>10|cooldown.sentinel.remains>15|cooldown.avenging_wrath.remains>15)&(cooldown.avengers_shield.remains&cooldown.judgment.remains&cooldown.hammer_of_wrath.remains)) actions.cooldowns+=/divine_toll,if=spell_targets.shield_of_the_righteous>=3 actions.cooldowns+=/eye_of_tyr,if=talent.inmost_light.enabled&spell_targets.shield_of_the_righteous>=3 actions.cooldowns+=/bastion_of_light,if=buff.aw_sentinel.up actions.mitigation=shield_of_the_righteous,if=tanking&buff.shield_of_the_righteous.down&(holy_power.deficit=0|buff.divine_purpose.up) actions.mitigation+=/word_of_glory,if=health.pctgoak_damage&!(buff.ardent_defender.up|buff.guardian_of_ancient_kings.up|buff.divine_shield.up|buff.potion.up) actions.mitigation+=/divine_shield,if=talent.final_stand.enabled&tanking&incoming_damage_5s>ds_damage&!(buff.ardent_defender.up|buff.guardian_of_ancient_kings.up|buff.divine_shield.up|buff.potion.up) actions.mitigation+=/ardent_defender,if=tanking&incoming_damage_5s>goak_damage&!(buff.ardent_defender.up|buff.guardian_of_ancient_kings.up|buff.divine_shield.up|buff.potion.up) actions.mitigation+=/lay_on_hands,if=health.pct<15 # Use Shield of the Righteous according to Righteous Protector's ICD, but use it asap if it's a free proc (Bugged interaction, this ignores ICD) actions.standard+=/shield_of_the_righteous,if=((!talent.righteous_protector.enabled|buff.righteous_protector_icd.down)&holy_power>2)|buff.bastion_of_light.up|buff.divine_purpose.up # Use Avenger's Shield as First Priority when 2pc buff is missing. actions.standard+=/avengers_shield,if=buff.moment_of_glory.up|(set_bonus.tier29_2pc&(!buff.ally_of_the_light.up|buff.ally_of_the_light.remains20&(!raid_event.adds.exists|raid_event.adds.in>10))|((buff.avenging_wrath.up|!talent.avenging_wrath.enabled)&(buff.moment_of_glory.up|!talent.moment_of_glory.enabled)) actions.standard+=/avengers_shield actions.standard+=/hammer_of_wrath actions.standard+=/judgment,cycle_targets=1 actions.standard+=/consecration,if=!consecration.up actions.standard+=/eye_of_tyr,if=!talent.inmost_light.enabled|raid_event.adds.in>=45 actions.standard+=/blessed_hammer actions.standard+=/hammer_of_the_righteous actions.standard+=/crusader_strike actions.standard+=/word_of_glory,if=buff.shining_light_free.up actions.standard+=/arcane_torrent,if=holy_power<5 actions.standard+=/consecration # Evaluates a trinkets cooldown, divided by moment of glory or avenging wraths's cooldown. If it's value has no remainder return 1, else return 0.5. actions.trinkets+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=trinket.1.has_use_buff&((talent.moment_of_glory.enabled&trinket.1.cooldown.duration%%cooldown.moment_of_glory.duration=0)|(!talent.moment_of_glory.enabled&trinket.1.cooldown.duration%%cooldown.avenging_wrath.duration=0)) actions.trinkets+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=trinket.2.has_use_buff&((talent.moment_of_glory.enabled&trinket.2.cooldown.duration%%cooldown.moment_of_glory.duration=0)|(!talent.moment_of_glory.enabled&trinket.2.cooldown.duration%%cooldown.avenging_wrath.duration=0)) actions.trinkets+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!trinket.1.has_use_buff&trinket.2.has_use_buff|trinket.2.has_use_buff&((trinket.2.cooldown.duration%trinket.2.proc.any_dps.duration)*(1.5+trinket.2.has_buff.strength)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(1.5+trinket.1.has_buff.strength)*(variable.trinket_1_sync)) actions.trinkets+=/variable,name=trinket_1_buffs,value=trinket.1.has_buff.strength|trinket.1.has_buff.mastery|trinket.1.has_buff.versatility|trinket.1.has_buff.haste|trinket.1.has_buff.crit actions.trinkets+=/variable,name=trinket_2_buffs,value=trinket.2.has_buff.strength|trinket.2.has_buff.mastery|trinket.2.has_buff.versatility|trinket.2.has_buff.haste|trinket.2.has_buff.crit actions.trinkets+=/use_item,slot=trinket1,if=(buff.moment_of_glory.up|!talent.moment_of_glory_enabled&buff.aw_sentinel.up)&(!trinket.2.has_cooldown|trinket.2.cooldown.remains|variable.trinket_priority=1)|boss&trinket.1.proc.any_dps.duration>=fight_remains actions.trinkets+=/use_item,slot=trinket2,if=(buff.moment_of_glory.up|!talent.moment_of_glory_enabled&buff.aw_sentinel.up)&(!trinket.1.has_cooldown|trinket.1.cooldown.remains|variable.trinket_priority=2)|boss&trinket.2.proc.any_dps.duration>=fight_remains actions.trinkets+=/use_item,slot=trinket1,if=!variable.trinket_1_buffs&(trinket.2.cooldown.remains|!variable.trinket_2_buffs|(cooldown.moment_of_glory.remains>20|(!talent.moment_of_glory.enabled&(cooldown.sentinel.remains>20|cooldown.avenging_wrath.remains>20)))) actions.trinkets+=/use_item,slot=trinket2,if=!variable.trinket_2_buffs&(trinket.1.cooldown.remains|!variable.trinket_1_buffs|(cooldown.moment_of_glory.remains>20|(!talent.moment_of_glory.enabled&(cooldown.sentinel.remains>20|cooldown.avenging_wrath.remains>20)))) actions.trinkets+=/use_items