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.

76 lines
7.3 KiB

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_expected<variable.tyrant_prep_start&(boss|fight_remains>cooldown.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.remains>cast_time
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_die<cooldown.summon_demonic_tyrant.remains_expected
actions+=/summon_vilefiend,if=!talent.summon_demonic_tyrant|cooldown.summon_demonic_tyrant.remains_expected>cooldown|boss&time_to_die<cooldown.summon_demonic_tyrant.remains_expected
actions+=/guillotine,if=cooldown.demonic_strength.remains|!talent.demonic_strength
actions+=/demonic_strength
actions+=/bilescourge_bombers,if=!pet.demonic_tyrant.active
actions+=/shadow_bolt,if=soul_shard<5&talent.fel_covenant&buff.fel_covenant.remains<5
actions+=/implosion,if=two_cast_imps>0&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
# Updated to allow Soul Shard overcapping when moving.
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+=/demonbolt,if=buff.demonic_core.up&soul_shard<5&(buff.demonic_core.remains<buff.demonic_core.stack*gcd.max|moving|buff.demonic_core.stack>2&buff.dreadstalkers.up&buff.dreadstalkers.remains<2*gcd.max)&cooldown.summon_demonic_tyrant.remains_expected>5
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.remains<variable.lowest_demon_remains
## actions.tyrant+=/variable,name=lowest_demon_remains,op=min,value=buff.grimoire_felguard.remains,if=buff.grimoire_felguard.up&buff.grimoire_felguard.remains<variable.lowest_demon_remains
## actions.tyrant+=/variable,name=lowest_demon_remains,op=min,value=buff.nether_portal.remains,if=buff.nether_portal.up&buff.nether_portal.remains<variable.lowest_demon_remains
## actions.tyrant+=/variable,name=tyrant_window_ends,op=set,value=variable.lowest_demon_remains-variable.tyrant_padding,if=time>variable.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_ends<action.shadow_bolt.cast_time
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