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.
141 lines
15 KiB
141 lines
15 KiB
actions.precombat+=/shadowform,if=!buff.shadowform.up
|
|
actions.precombat+=/arcane_torrent
|
|
actions.precombat+=/variable,name=mind_sear_cutoff,op=set,value=2
|
|
actions.precombat+=/variable,name=pool_amount,op=set,value=60
|
|
actions.precombat+=/shadow_crash,if=raid_event.adds.in>=25&spell_targets.shadow_crash<=8&boss&(spell_targets.shadow_crash>1|talent.mental_decay)
|
|
actions.precombat+=/vampiric_touch,if=refreshable&(!talent.shadow_crash.enabled|spell_targets.shadow_crash>8|spell_targets.shadow_crash=1&!talent.mental_decay|!boss)
|
|
|
|
actions+=/silence
|
|
actions+=/variable,name=holding_crash,op=set,value=talent.shadow_crash&!action.shadow_crash.disabled&raid_event.adds.in<15
|
|
actions+=/variable,name=dots_up,op=set,value=(dot.shadow_word_pain.ticking&dot.vampiric_touch.ticking)|action.shadow_crash.in_flight&talent.whispering_shadows
|
|
actions+=/variable,name=all_dots_up,op=set,value=target.time_to_die<8|(dot.shadow_word_pain.ticking&dot.vampiric_touch.ticking|action.shadow_crash.in_flight)&dot.devouring_plague.ticking
|
|
actions+=/variable,name=pool_for_cds,op=set,value=(cooldown.void_eruption.remains<=gcd.max*3&talent.void_eruption|cooldown.dark_ascension.up&talent.dark_ascension)|talent.void_torrent&talent.psychic_link&cooldown.void_torrent.remains<=4&(!raid_event.adds.exists&spell_targets.vampiric_touch>1|raid_event.adds.in<=5|raid_event.adds.remains>=6&!variable.holding_crash)&!buff.voidform.up
|
|
# Set vts_applied for single-target to support Mindbender entry in cds action list.
|
|
actions+=/variable,name=vts_applied,op=set,value=dot.vampiric_touch.ticking
|
|
actions+=/run_action_list,name=aoe,strict=1,if=active_enemies>2|spell_targets.vampiric_touch>3
|
|
actions+=/run_action_list,name=main
|
|
|
|
actions.aoe+=/variable,name=max_vts,op=set,default=12,value=spell_targets.vampiric_touch>?12
|
|
actions.aoe+=/variable,name=is_vt_possible,op=set,value=true,value_else=false,condition=dot.vampiric_touch.refreshable|active_dot.vampiric_touch<cycle_enemies&fight_remains>8
|
|
## actions.aoe_variables+=/variable,name=is_vt_possible,op=set,value=1,target_if=max(target.time_to_die*dot.vampiric_touch.refreshable),if=target.time_to_die>=18
|
|
# TODO: Revamp to fix undesired behaviour with unstacked fights
|
|
actions.aoe+=/variable,name=vts_applied,op=set,value=(active_dot.vampiric_touch+8*action.shadow_crash.in_flight&talent.whispering_shadows)>=variable.max_vts|!variable.is_vt_possible
|
|
actions.aoe+=/variable,name=holding_crash,op=set,value=(variable.max_vts-active_dot.vampiric_touch)<4|raid_event.adds.in<10&raid_event.adds.count>(variable.max_vts-active_dot.vampiric_touch),if=variable.holding_crash&talent.whispering_shadows
|
|
actions.aoe+=/variable,name=manual_vts_applied,op=set,value=(active_dot.vampiric_touch+8*!variable.holding_crash)>=variable.max_vts|!variable.is_vt_possible
|
|
# High Priority action to put out Vampiric Touch on enemies that will live at least 18 seconds, up to 12 targets manually while prepping AoE
|
|
actions.aoe+=/vampiric_touch,cycle_targets=1,if=refreshable&target.time_to_die>=18&(dot.vampiric_touch.ticking|!variable.vts_applied)&(variable.max_vts>0&!variable.manual_vts_applied&!action.shadow_crash.in_flight|!talent.whispering_shadows)
|
|
# Use Shadow Crash to apply Vampiric Touch to as many adds as possible while being efficient with Vampiric Touch refresh windows
|
|
actions.aoe+=/shadow_crash,cycle_targets=1,if=!variable.holding_crash&(dot.vampiric_touch.refreshable|dot.vampiric_touch.remains<=target.time_to_die&!buff.voidform.up&(raid_event.adds.in-dot.vampiric_touch.remains)<15)
|
|
actions.aoe+=/call_action_list,name=cds,if=fight_remains<30|target.time_to_die>15&(!variable.holding_crash|active_enemies>2)
|
|
# Use Shadowfiend or Mindbender on cooldown if DoTs are active and sync with Dark Ascension
|
|
actions.aoe+=/mindbender,if=(dot.shadow_word_pain.ticking&variable.vts_applied|action.shadow_crash.in_flight&talent.whispering_shadows)&(fight_remains<30|target.time_to_die>15)&(!talent.dark_ascension|cooldown.dark_ascension.remains<gcd.max|fight_remains<15)
|
|
# Use Mind Blast when capped on charges and talented into Mind Devourer to fish for the buff or if Inescapable Torment is talented with Mindbender active. Only use when facing 3-7 targets.
|
|
actions.aoe+=/mind_blast,if=(cooldown.mind_blast.full_recharge_time<=gcd.max+cast_time|pet.fiend.remains<=cast_time+gcd.max)&pet.fiend.active&talent.inescapable_torment&pet.fiend.remains>cast_time&active_enemies<=7&!buff.mind_devourer.up
|
|
# High Priority Shadow Word: Death is Mindbender is expiring in less than 2 seconds
|
|
actions.aoe+=/shadow_word_death,if=pet.fiend.remains<=2&pet.fiend.active&talent.inescapable_torment&active_enemies<=7
|
|
actions.aoe+=/void_bolt
|
|
# Use Devouring Plague to maximize uptime. Short circuit if you are capping on Insanity within 20 or to get out an extra Void Bolt by extending Voidform. With Distorted Reality can maintain more than one at a time in multi-target.
|
|
actions.aoe+=/devouring_plague,cycle_targets=1,if=(remains<=gcd.max|!talent.distorted_reality)&(remains<=gcd.max&!variable.pool_for_cds|insanity.deficit<=20|buff.voidform.up&cooldown.void_bolt.remains>buff.voidform.remains&cooldown.void_bolt.remains<=buff.voidform.remains+2)
|
|
actions.aoe+=/vampiric_touch,cycle_targets=1,if=refreshable&target.time_to_die>=18&(dot.vampiric_touch.ticking|!variable.vts_applied)&(variable.max_vts>0&(cooldown.shadow_crash.remains>=dot.vampiric_touch.remains|variable.holding_crash)&!action.shadow_crash.in_flight|!talent.whispering_shadows)
|
|
# Use Shadow Word: Death with Inescapable Torment and Mindbender active and not talented into Insidious Ire and Yogg or Deathspeaker is active
|
|
actions.aoe+=/shadow_word_death,if=variable.vts_applied&talent.inescapable_torment&pet.fiend.active&((!talent.insidious_ire&!talent.idol_of_yoggsaron)|buff.deathspeaker.up)
|
|
# High Priority Mind Spike: Insanity to fish for C'Thun procs when Mind Blast is not capped and Void Torrent is not available and Mindbender is not active
|
|
actions.aoe+=/mind_spike_insanity,if=variable.dots_up&cooldown.mind_blast.full_recharge_time>=gcd*3&talent.idol_of_cthun&(!cooldown.void_torrent.up|!talent.void_torrent)
|
|
# High Priority Mind Flay: Insanity to fish for C'Thun procs when Mind Blast is not capped and Void Torrent is not available and Mindbender is not active
|
|
actions.aoe+=/mind_flay,if=buff.mind_flay_insanity.up&variable.dots_up&cooldown.mind_blast.full_recharge_time>=gcd*3&talent.idol_of_cthun&(!cooldown.void_torrent.up|!talent.void_torrent)
|
|
# # Use all charges of Mind Blast if Vampiric Touch and Shadow Word: Pain are active and Mind Devourer is not active or you are prepping Void Eruption
|
|
actions.aoe+=/mind_blast,if=variable.vts_applied&(!buff.mind_devourer.up|cooldown.void_eruption.up&talent.void_eruption)
|
|
# Void Torrent action list for AoE
|
|
actions.aoe+=/call_action_list,name=pl_torrent,if=talent.void_torrent&talent.psychic_link&cooldown.void_torrent.remains<=3&(!variable.holding_crash|raid_event.adds.count%(active_dot.vampiric_touch+raid_event.adds.count)<1.5)&((insanity>=50|dot.devouring_plague.ticking|buff.dark_reveries.up)|buff.voidform.up|buff.dark_ascension.up)
|
|
actions.aoe+=/void_torrent,cycle_targets=1,if=!talent.psychic_link&variable.dots_up
|
|
# High priority action for Mind Flay: Insanity to fish for Idol of C'Thun procs, cancel as soon as something else is more important and most of the channel has completed
|
|
actions.aoe+=/mind_flay,if=buff.mind_flay_insanity.up&talent.idol_of_cthun,interrupt_if=ticks>=2,interrupt_immediate=1
|
|
actions.aoe+=/call_action_list,name=filler
|
|
|
|
# TODO: Check VE/DA enter conditions based on dots
|
|
actions.cds+=/potion,if=buff.voidform.up|buff.power_infusion.up|buff.dark_ascension.up&(fight_remains<=cooldown.power_infusion.remains+15)|boss&fight_remains<=30
|
|
actions.cds+=/fireblood,if=buff.power_infusion.up|boss&fight_remains<=8
|
|
actions.cds+=/berserking,if=buff.power_infusion.up|boss&fight_remains<=12
|
|
actions.cds+=/blood_fury,if=buff.power_infusion.up|boss&fight_remains<=15
|
|
actions.cds+=/ancestral_call,if=buff.power_infusion.up|boss&fight_remains<=15
|
|
# Sync Power Infusion with Voidform or Dark Ascension
|
|
actions.cds+=/power_infusion,if=(buff.voidform.up|buff.dark_ascension.up)
|
|
# Make sure Mindbender is active before popping Void Eruption and dump charges of Mind Blast before casting
|
|
actions.cds+=/void_eruption,if=!cooldown.fiend.up&(pet.fiend.active&cooldown.fiend.remains>=4|!talent.mindbender|active_enemies>2&!talent.inescapable_torment.rank)&(cooldown.mind_blast.charges=0|time>15)
|
|
# Make sure Mindbender is active before popping Dark Ascension unless you have insignificant talent points or too many targets
|
|
actions.cds+=/dark_ascension,if=pet.fiend.active&cooldown.fiend.remains>=4|!talent.mindbender&!cooldown.fiend.up|active_enemies>2&!talent.inescapable_torment
|
|
actions.cds+=/call_action_list,name=trinkets
|
|
actions.cds+=/mindbender,if=(dot.shadow_word_pain.ticking&variable.vts_applied|action.shadow_crash.in_flight)
|
|
# Use Desperate Prayer to heal up should Shadow Word: Death or other damage bring you below 75%
|
|
actions.cds+=/desperate_prayer,if=health.pct<=75
|
|
|
|
# Cast Vampiric Touch to consume Unfurling Darkness, prefering the target with the lowest DoT duration active
|
|
actions.filler+=/vampiric_touch,cycle_targets=1,if=buff.unfurling_darkness.up
|
|
actions.filler+=/shadow_word_death,cycle_targets=1,if=target.health.pct<20|buff.deathspeaker.up
|
|
actions.filler+=/mind_spike_insanity
|
|
actions.filler+=/mind_flay,if=buff.mind_flay_insanity.up
|
|
actions.filler+=/mindgames
|
|
actions.filler+=/shadow_word_death,cycle_targets=1,if=talent.inescapable_torment&pet.fiend.active
|
|
# Save up to 20s if adds are coming soon.
|
|
actions.filler+=/halo,if=raid_event.adds.in>20
|
|
# Save up to 10s if adds are coming soon.
|
|
actions.filler+=/devouring_plague,if=buff.voidform.up
|
|
actions.filler+=/mind_spike
|
|
actions.filler+=/mind_flay,chain=1,interrupt_immediate=1,interrupt_if=ticks>=2
|
|
# Use Shadow Crash while moving as a low-priority action when adds will not come in 20 seconds.
|
|
actions.filler+=/shadow_crash,if=raid_event.adds.in>20
|
|
# Use Shadow Word: Death while moving as a low-priority action in execute
|
|
actions.filler+=/shadow_word_death,cycle_targets=1,if=target.health.pct<20
|
|
# Use Divine Star while moving as a low-priority action
|
|
actions.filler+=/divine_star
|
|
# Use Shadow Word: Death while moving as a low-priority action
|
|
actions.filler+=/shadow_word_death
|
|
# Use Shadow Word: Pain while moving as a low-priority action
|
|
actions.filler+=/shadow_word_pain,cycle_targets=1
|
|
|
|
actions.main+=/call_action_list,name=cds,if=fight_remains<30|target.time_to_die>15&(!variable.holding_crash|active_enemies>2)
|
|
# Use Shadowfiend and Mindbender on cooldown as long as Vampiric Touch and Shadow Word: Pain are active and sync with Dark Ascension
|
|
actions.main+=/mindbender,if=variable.dots_up&(fight_remains<30|target.time_to_die>15)&(!talent.dark_ascension|cooldown.dark_ascension.remains<gcd.max|fight_remains<15)
|
|
# High priority Mind Blast action when using Inescapable Torment
|
|
actions.main+=/mind_blast,cycle_targets=1,if=(dot.devouring_plague.remains>execute_time&(cooldown.mind_blast.full_recharge_time<=gcd.max+execute_time)|pet.fiend.remains<=execute_time+gcd.max)&pet.fiend.active&talent.inescapable_torment&pet.fiend.remains>execute_time&active_enemies<=7
|
|
# High Priority Shadow Word: Death is Mindbender is expiring in less than 2 seconds
|
|
actions.main+=/shadow_word_death,cycle_targets=1,if=dot.devouring_plague.ticking&pet.fiend.remains<=2&pet.fiend.active&talent.inescapable_torment&active_enemies<=7
|
|
actions.main+=/void_bolt,if=variable.dots_up
|
|
# Spend your Insanity on Devouring Plague at will if the fight will end in less than 10s
|
|
actions.main+=/devouring_plague,if=fight_remains<=duration+4
|
|
# Use Devouring Plague to maximize uptime. Short circuit if you are capping on Insanity within 20 or to get out an extra Void Bolt by extending Voidform. With Distorted Reality can maintain more than one at a time in multi-target.
|
|
actions.main+=/devouring_plague,cycle_targets=1,if=(!talent.distorted_reality|active_enemies=1|remains<=gcd.max)&((remains<=gcd.max|remains<3&cooldown.void_torrent.up)|insanity.deficit<=20|buff.voidform.up&cooldown.void_bolt.remains>buff.voidform.remains&cooldown.void_bolt.remains<=buff.voidform.remains+2|buff.mind_devourer.up&pmultiplier<1.2)
|
|
# Use Shadow Crash as long as you are not holding for adds and Vampiric Touch is within pandemic range
|
|
actions.main+=/shadow_crash,if=!variable.holding_crash&dot.vampiric_touch.refreshable
|
|
# Use Shadow Word: Death with Inescapable Torment and Mindbender active and not talented into Insidious Ire and Yogg or Deathspeaker is active
|
|
actions.main+=/shadow_word_death,if=variable.dots_up&talent.inescapable_torment&pet.fiend.active&((!talent.insidious_ire&!talent.idol_of_yoggsaron)|buff.deathspeaker.up)
|
|
# Put out Vampiric Touch on enemies that will live at least 12s and Shadow Crash is not available soon
|
|
actions.main+=/vampiric_touch,cycle_targets=1,if=refreshable&target.time_to_die>=12&(cooldown.shadow_crash.remains>=dot.vampiric_touch.remains&!action.shadow_crash.in_flight|variable.holding_crash|!talent.whispering_shadows)
|
|
# High Priority Mind Spike: Insanity to fish for C'Thun procs when Mind Blast is not capped and Void Torrent is not available
|
|
actions.main+=/mind_spike_insanity,if=variable.dots_up&cooldown.mind_blast.full_recharge_time>=gcd*3&talent.idol_of_cthun&(!cooldown.void_torrent.up|!talent.void_torrent)
|
|
# High Priority Mind Flay: Insanity to fish for C'Thun procs when Mind Blast is not capped and Void Torrent is not available
|
|
actions.main+=/mind_flay,if=buff.mind_flay_insanity.up&variable.dots_up&cooldown.mind_blast.full_recharge_time>=gcd*3&talent.idol_of_cthun&(!cooldown.void_torrent.up|!talent.void_torrent)
|
|
# Use all charges of Mind Blast if Vampiric Touch and Shadow Word: Pain are active and Mind Devourer is not active or you are prepping Void Eruption
|
|
actions.main+=/mind_blast,if=variable.dots_up&(!buff.mind_devourer.up|cooldown.void_eruption.up&talent.void_eruption)
|
|
# Void Torrent if you are not holding Shadow Crash for an add pack coming, prefer the target with the most DoTs active. Only cast if Devouring Plague is on that target and will last at least 2 seconds
|
|
actions.main+=/void_torrent,cycle_targets=1,if=!variable.holding_crash&variable.all_dots_up&dot.devouring_plague.remains>=2.5
|
|
# Cast Mindgames if all DoTs will be active by the time the cast finishes
|
|
actions.main+=/call_action_list,name=filler
|
|
|
|
actions.pl_torrent+=/void_bolt
|
|
actions.pl_torrent+=/vampiric_touch,if=remains<=6&cooldown.void_torrent.remains<gcd*2
|
|
# Use Devouring Plague before Void Torrent cast
|
|
actions.pl_torrent+=/devouring_plague,if=remains<=4&cooldown.void_torrent.remains<gcd*2
|
|
actions.pl_torrent+=/mind_blast,if=!prev_gcd.1.mind_blast
|
|
actions.pl_torrent+=/void_torrent,if=dot.vampiric_touch.ticking&dot.shadow_word_pain.ticking|buff.voidform.up
|
|
|
|
actions.trinkets+=/use_item,name=voidmenders_shadowgem,if=buff.power_infusion.up|boss&fight_remains<20
|
|
actions.trinkets+=/use_item,name=darkmoon_deck_box_inferno
|
|
actions.trinkets+=/use_item,name=darkmoon_deck_box_rime
|
|
actions.trinkets+=/use_item,name=darkmoon_deck_box_dance
|
|
# Use Erupting Spear Fragment with cooldowns, adds are currently active, or the fight will end in less than 20 seconds
|
|
actions.trinkets+=/use_item,name=erupting_spear_fragment,if=buff.power_infusion.up|raid_event.adds.up|boss&fight_remains<20
|
|
# Use Beacon to the Beyond on cooldown except to hold for incoming adds or if already facing 5 or more targets
|
|
actions.trinkets+=/use_item,name=beacon_to_the_beyond,if=!raid_event.adds.exists|raid_event.adds.up|spell_targets.beacon_to_the_beyond>=5|boss&fight_remains<20
|
|
actions.trinkets+=/use_items,if=buff.voidform.up|buff.power_infusion.up|buff.dark_ascension.up|(cooldown.void_eruption.remains>10&trinket.cooldown.duration<=60)|boss&fight_remains<20
|
|
actions.trinkets+=/use_item,name=desperate_invokers_codex
|