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+=/variable,name=np_condition,op=set,value=cooldown.nether_portal.up|buff.nether_portal.up|pet.pit_lord.active|!talent.nether_portal|cooldown.nether_portal.remains>30 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+=/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+=/hand_of_guldan,if=buff.nether_portal.up 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|boss&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&cooldown.summon_demonic_tyrant.remains_expected>5 actions+=/power_siphon,if=buff.demonic_core.stack<2&(buff.dreadstalkers.remains>gcd*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)&(buff.demonic_calling.up|soul_shard>4|cooldown.call_dreadstalkers.remains>gcd) actions+=/doom,cycle_targets=1,if=refreshable actions+=/soul_strike,if=soul_shard<5 actions+=/shadow_bolt actions.items+=/use_item,name=irideus_fragment,if=buff.demonic_power.up|!talent.summon_demonic_tyrant&(buff.nether_portal.up|!talent.nether_portal)|boss&fight_remains<=21 actions.items+=/use_item,name=timebreaching_talon,if=buff.demonic_power.up|!talent.summon_demonic_tyrant&(buff.nether_portal.up|!talent.nether_portal)|boss&fight_remains<=21 actions.items+=/use_item,name=spoils_of_neltharus,if=buff.demonic_power.up|!talent.summon_demonic_tyrant&(buff.nether_portal.up|!talent.nether_portal)|boss&fight_remains<=21 actions.items+=/use_item,name=voidmenders_shadowgem,if=!variable.shadow_timings|(variable.shadow_timings&(buff.demonic_power.up|!talent.summon_demonic_tyrant&(buff.nether_portal.up|!talent.nether_portal))) actions.items+=/use_item,name=erupting_spear_fragment,if=buff.demonic_power.up|!talent.summon_demonic_tyrant&(buff.nether_portal.up|!talent.nether_portal)|boss&fight_remains<=11 actions.items+=/use_items,if=(buff.demonic_power.up|!talent.summon_demonic_tyrant&(buff.nether_portal.up|!talent.nether_portal))&(!equipped.irideus_fragment&!equipped.timebreaching_talon&!equipped.spoils_of_neltharus&!equipped.erupting_spear_fragment&!equipped.voidmenders_shadowgem) actions.items+=/use_item,name=rotcrusted_voodoo_doll actions.items+=/use_item,name=beacon_to_the_beyond 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+=/variable,name=tyrant_window_ends,op=max,value=cooldown.call_dreadstalkers.remains+action.call_dreadstalkers.cast_time+12-variable.tyrant_padding,if=buff.dreadstalkers.down 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+=/summon_demonic_tyrant,if=variable.tyrant_window_ends<=action.hand_of_guldan.cast_time&buff.dreadstalkers.up actions.tyrant+=/hand_of_guldan,if=variable.tyrant_window_ends>cast_time&(buff.nether_portal.up|soul_shard>2&variable.tyrant_window_ends>0|soul_shard=5)&!cooldown.call_dreadstalkers.up actions.tyrant+=/hand_of_guldan,if=talent.soulbound_tyrant&buff.dreadstalkers.up&variable.tyrant_window_ends1&!buff.nether_portal.up actions.tyrant+=/soul_strike actions.tyrant+=/shadow_bolt