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=10 actions.precombat+=/variable,name=first_tyrant,op=set,value=14+talent.summon_vilefiend+talent.grimoire_felguard actions.precombat+=/variable,name=shadow_timings,op=set,value=false 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_cd,op=setif,value=cooldown.invoke_power_infusion_0.remains,value_else=cooldown.summon_demonic_tyrant.remains,condition=((((fight_remains+time)%%120<=85&(fight_remains+time)%%120>=25)|time>=210)&variable.shadow_timings)&cooldown.invoke_power_infusion_0.duration>0&!talent.grand_warlocks_design actions+=/variable,name=tyrant_cd,op=set,value=cooldown.summon_demonic_tyrant.remains actions+=/variable,name=pet_expire,op=set,value=(buff.dreadstalkers.remains>?buff.vilefiend.remains)-gcd*0.5,if=buff.vilefiend.up&buff.dreadstalkers.up actions+=/variable,name=pet_expire,op=set,value=(buff.dreadstalkers.remains>?buff.grimoire_felguard.remains)-gcd*0.5,if=!talent.summon_vilefiend&talent.grimoire_felguard&buff.dreadstalkers.up actions+=/variable,name=pet_expire,op=set,value=(buff.dreadstalkers.remains)-gcd*0.5,if=!talent.summon_vilefiend&(!talent.grimoire_felguard|!set_bonus.tier30_2pc)&buff.dreadstalkers.up actions+=/variable,name=pet_expire,op=set,value=0,if=!buff.vilefiend.up&talent.summon_vilefiend|!buff.dreadstalkers.up actions+=/variable,name=np,op=set,value=(!talent.nether_portal|cooldown.nether_portal.remains>30|buff.nether_portal.up) ### Power Infusion is used 6 seconds or less before Demonic Tyrant, without Demonic Tyrant, it will be used 8s before Nether Portal Ends and without both, its used on Cooldown ## actions+=/invoke_external_buff,name=power_infusion,if=(buff.nether_portal.up&buff.nether_portal.remains<8&talent.nether_portal)|fight_remains<20|pet.demonic_tyrant.active&fight_remains<100|fight_remains<25|!talent.nether_portal&(pet.demonic_tyrant.active|!talent.summon_demonic_tyrant&buff.dreadstalkers.up) actions+=/call_action_list,name=fight_end,strict=1,if=boss&fight_remains<30 actions+=/hand_of_guldan,if=time<0.5&(fight_remains%%95>40|fight_remains%%95<15) actions+=/call_action_list,name=tyrant,strict=1,if=cooldown.summon_demonic_tyrant.remains<15&(cooldown.summon_vilefiend.remains90 actions+=/call_action_list,name=racials,if=pet.demonic_tyrant.active&(buff.nether_portal.remains<=2)|fight_remains<22 actions+=/potion,if=pet.demonic_tyrant.active actions+=/call_action_list,name=items,use_off_gcd=1 actions+=/hand_of_guldan,if=buff.nether_portal.remains>cast_time actions+=/demonic_strength,if=buff.nether_portal.remains63&!(fight_remains>cooldown.summon_demonic_tyrant.remains+69)|cooldown.summon_demonic_tyrant.remains>30|variable.shadow_timings|buff.rite_of_ruvaraad.up|!talent.summon_demonic_tyrant|!talent.grimoire_felguard|!set_bonus.tier30_2pc) actions+=/guillotine,if=buff.nether_portal.remains25|variable.tyrant_cd>25|buff.nether_portal.up actions+=/implosion,if=two_cast_imps>0&buff.tyrant.down&active_enemies>1+(talent.sacrificed_souls.enabled)&!prev_gcd.1.implosion 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&!prev_gcd.1.implosion actions+=/soul_strike,if=soul_shard<5&active_enemies>1 actions+=/summon_soulkeeper,if=buff.tormented_soul.stack=10&active_enemies>1 actions+=/power_siphon,if=buff.demonic_core.stack<2&cooldown.summon_demonic_tyrant.remains>38&(buff.dreadstalkers.down|buff.dreadstalkers.remains>gcd.max*5) actions+=/summon_vilefiend,if=cooldown2 actions+=/demonbolt,if=buff.demonic_core.up&soul_shard<4 actions+=/demonbolt,if=fight_remains2&buff.dreadstalkers.up&buff.dreadstalkers.remains38|variable.tyrant_cd>38)&(buff.dreadstalkers.down|buff.dreadstalkers.remains>gcd.max*5) actions+=/demonic_strength,if=(fight_remains>63&!(fight_remains>cooldown.summon_demonic_tyrant.remains+69)|cooldown.summon_demonic_tyrant.remains>30|buff.rite_of_ruvaraad.up|variable.shadow_timings|!talent.summon_demonic_tyrant|!talent.grimoire_felguard|!set_bonus.tier30_2pc) actions+=/hand_of_guldan,if=soul_shard>2&cooldown.summon_demonic_tyrant.remains>15|soul_shard=5 # Updated to allow Soul Shard overcapping when moving. actions+=/demonbolt,if=buff.demonic_core.up&soul_shard<5&(buff.demonic_core.remains2&buff.dreadstalkers.up&buff.dreadstalkers.remains<2*gcd.max)&(cooldown.summon_demonic_tyrant.remains_expected>5|!talent.summon_demonic_tyrant) actions+=/doom,cycle_targets=1,if=refreshable actions+=/soul_strike,if=soul_shard<5 actions+=/shadow_bolt actions.fight_end+=/grimoire_felguard,if=fight_remains<20 actions.fight_end+=/call_dreadstalkers,if=fight_remains<20 actions.fight_end+=/summon_vilefiend,if=fight_remains<20 actions.fight_end+=/nether_portal,if=fight_remains<30 actions.fight_end+=/summon_demonic_tyrant,if=fight_remains<20 actions.fight_end+=/demonic_strength,if=fight_remains<10 actions.fight_end+=/power_siphon,if=buff.demonic_core.stack<3&fight_remains<20 actions.fight_end+=/implosion,if=fight_remains<2*gcd.max actions.items+=/use_item,name=irideus_fragment,if=pet.demonic_tyrant.active&(buff.nether_portal.remains0&variable.pet_expire>0&variable.pet_expiregcd.max+action.summon_demonic_tyrant.cast_time&variable.pet_expire0&variable.pet_expire30&buff.nether_portal.down&buff.demonic_core.down actions.tyrant+=/power_siphon,if=buff.demonic_core.stack<2&soul_shard=5&(!buff.vilefiend.up|!talent.summon_vilefiend&(!buff.dreadstalkers.up))&(buff.nether_portal.down) actions.tyrant+=/shadow_bolt,if=buff.vilefiend.down&buff.nether_portal.down&buff.dreadstalkers.down&soul_shard<5-buff.demonic_core.stack actions.tyrant+=/nether_portal,if=soul_shard=5 actions.tyrant+=/soulburn,if=buff.nether_portal.up&cooldown.call_dreadstalkers.remains>10&soul_shard>1 actions.tyrant+=/summon_vilefiend,if=(soul_shard=5|buff.nether_portal.up)&cooldown.summon_demonic_tyrant.remains<13&variable.np actions.tyrant+=/call_dreadstalkers,if=(buff.vilefiend.up|!talent.summon_vilefiend&(!talent.nether_portal|buff.nether_portal.up|cooldown.nether_portal.remains>30)&(buff.nether_portal.up|buff.grimoire_felguard.up|soul_shard=5))&cooldown.summon_demonic_tyrant.remains<11&variable.np actions.tyrant+=/grimoire_felguard,if=buff.vilefiend.up|!talent.summon_vilefiend&(!talent.nether_portal|buff.nether_portal.up|cooldown.nether_portal.remains>30)&(buff.nether_portal.up|buff.dreadstalkers.up|soul_shard=5)&variable.np actions.tyrant+=/hand_of_guldan,if=soul_shard>2&(buff.vilefiend.up|!talent.summon_vilefiend&buff.dreadstalkers.up)&(soul_shard>2|buff.vilefiend.remainsaction.summon_demonic_tyrant.execute_time+gcd.max*3|variable.pet_expire=0 actions.tyrant+=/soul_strike actions.tyrant+=/shadow_bolt