actions.precombat+=/fel_domination,if=time>0&!pet.alive&!buff.grimoire_of_sacrifice.up actions.precombat+=/summon_pet,if=!pet.alive&!buff.grimoire_of_sacrifice.up actions.precombat+=/variable,name=tyrant_prep_start,op=set,value=12 actions.precombat+=/variable,name=first_tyrant,op=set,value=14+talent.summon_vilefiend+talent.grimoire_felguard actions.precombat+=/power_siphon,if=buff.wild_imps.stack>1&buff.demonic_core.stack<3 actions.precombat+=/demonbolt,if=soul_shard<5&(boss|cast_time=0) actions.precombat+=/shadow_bolt,if=soul_shard<5 actions+=/axe_toss actions+=/devour_magic actions+=/variable,name=tyrant_padding,op=set,value=action.summon_demonic_tyrant.cast_time*2+1 actions+=/call_action_list,name=tyrant,if=talent.summon_demonic_tyrant&cooldown.summon_demonic_tyrant.remains_expectedcooldown.summon_demonic_tyrant.remains_expected ## actions+=/invoke_external_buff,name=power_infusion,if=!talent.nether_portal&!talent.summon_demonic_tyrant|boss&time_to_die<25 actions+=/implosion,if=boss&time_to_die<2*gcd actions+=/nether_portal,if=!talent.summon_demonic_tyrant&soul_shard>2|boss&time_to_die<30 actions+=/hand_of_guldan,if=buff.nether_portal.up actions+=/call_action_list,name=items actions+=/call_action_list,name=ogcd,if=buff.demonic_power.up|!talent.summon_demonic_tyrant&(buff.nether_portal.up|!talent.nether_portal) actions+=/call_dreadstalkers,if=cooldown.summon_demonic_tyrant.remains_expected>cooldown actions+=/call_dreadstalkers,if=!talent.summon_demonic_tyrant|time_to_die<14 actions+=/grimoire_felguard,if=!talent.summon_demonic_tyrant|boss&time_to_diecooldown+variable.tyrant_prep_start|time_to_die0&buff.tyrant.down&active_enemies>1+(talent.sacrificed_souls.enabled) actions+=/implosion,if=buff.wild_imps.stack>9&buff.tyrant.up&active_enemies>2+(1*talent.sacrificed_souls.enabled)&cooldown.call_dreadstalkers.remains>17&talent.the_expendables actions+=/soul_strike,if=soul_shard<5&active_enemies>1 actions+=/summon_soulkeeper,if=buff.tormented_soul.stack=10&active_enemies>1 actions+=/demonbolt,if=buff.demonic_core.up&soul_shard<4 actions+=/power_siphon,if=buff.demonic_core.stack<1&(buff.dreadstalkers.remains>3|buff.dreadstalkers.down) actions+=/hand_of_guldan,if=soul_shard>2&(!talent.summon_demonic_tyrant|cooldown.summon_demonic_tyrant.remains_expected>variable.tyrant_prep_start+2) actions+=/doom,cycle_targets=1,if=refreshable actions+=/soul_strike,if=soul_shard<5 actions+=/shadow_bolt actions.items=use_item,name=timebreaching_talon,if=buff.demonic_power.up|!talent.summon_demonic_tyrant&(buff.nether_portal.up|!talent.nether_portal) actions.items+=/use_items actions.ogcd=potion actions.ogcd+=/berserking actions.ogcd+=/blood_fury actions.ogcd+=/fireblood actions.tyrant=variable,name=tyrant_window_ends,op=setif,value=cooldown.summon_demonic_tyrant.remains_expected,value_else=variable.first_tyrant-time-variable.tyrant_padding,condition=time>variable.first_tyrant ## These are currently optimal for Patchwerk and HAC in SimC, but can be simplified in the addon using major_demon_remains. ## actions.tyrant+=/variable,name=lowest_demon_remains,op=setif,value=buff.dreadstalkers.remains,value_else=100,condition=buff.dreadstalkers.up ## actions.tyrant+=/variable,name=lowest_demon_remains,op=min,value=buff.vilefiend.remains,if=buff.vilefiend.up&buff.vilefiend.remainsvariable.first_tyrant&variable.lowest_demon_remains<100&variable.lowest_demon_remains-variable.tyrant_padding>variable.tyrant_window_ends actions.tyrant+=/variable,name=tyrant_window_ends,op=set,value=major_demon_remains-variable.tyrant_padding,if=major_demon_remains-variable.tyrant_padding>variable.tyrant_window_ends ## actions.tyrant+=/invoke_external_buff,name=power_infusion,if=(buff.nether_portal.up&buff.nether_portal.remains<8&talent.nether_portal)|(buff.dreadstalkers.up&variable.tyrant_window_ends<=4&!talent.nether_portal) actions.tyrant+=/shadow_bolt,if=time<2&soul_shard<5 actions.tyrant+=/nether_portal actions.tyrant+=/grimoire_felguard actions.tyrant+=/summon_vilefiend actions.tyrant+=/call_dreadstalkers actions.tyrant+=/soulburn,if=buff.nether_portal.up&soul_shard>=2,line_cd=40 ## actions.tyrant+=/hand_of_guldan,if=variable.tyrant_window_ends>cast_time&buff.nether_portal.up ## actions.tyrant+=/hand_of_guldan,if=variable.tyrant_window_ends>cast_time&soul_shard>2 ## actions.tyrant+=/hand_of_guldan,if=variable.tyrant_window_ends>cast_time&talent.soulbound_tyrant&variable.tyrant_window_endscast_time&(buff.nether_portal.up|soul_shard>2&variable.tyrant_window_ends<12|soul_shard=5) actions.tyrant+=/hand_of_guldan,if=talent.soulbound_tyrant&((buff.demonic_core.up|talent.soul_strike&cooldown.soul_strike.remains=0)&variable.tyrant_window_ends<=cast_time+gcd.max|variable.tyrant_window_ends<=cast_time+action.shadow_bolt.cast_time)&(fight_remains<15|buff.dreadstalkers.up|buff.vilefiend.up|buff.grimoire_felguard.up) actions.tyrant+=/demonbolt,if=buff.demonic_core.up actions.tyrant+=/power_siphon,if=buff.wild_imps.stack>1&!buff.nether_portal.up actions.tyrant+=/soul_strike actions.tyrant+=/shadow_bolt