|
|
|
|
actions.precombat+=/raise_dead
|
|
|
|
|
actions.precombat+=/army_of_the_dead,precombat_time=1.5*gcd
|
|
|
|
|
actions.precombat+=/fleshcraft
|
|
|
|
|
actions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=trinket.1.has_use_buff&(trinket.1.cooldown.duration%%45=0)
|
|
|
|
|
actions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=trinket.2.has_use_buff&(trinket.2.cooldown.duration%%45=0)
|
|
|
|
|
actions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!trinket.1.has_use_buff&trinket.2.has_use_buff|trinket.2.has_use_buff&((trinket.2.cooldown.duration%trinket.2.proc.any_dps.duration)*(1.5+trinket.2.has_buff.strength)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(1.5+trinket.1.has_buff.strength)*(variable.trinket_1_sync))
|
|
|
|
|
|
|
|
|
|
# Executed every time the actor is available.
|
|
|
|
|
actions+=/mind_freeze
|
|
|
|
|
actions+=/strangulate
|
|
|
|
|
# Variables
|
|
|
|
|
actions+=/variable,name=apoc_timing,op=setif,value=((rune.time_to_3)%((debuff.festering_wound.stack+1)%4))+gcd+(talent.unholy_assault*4),value_else=gcd*3,condition=cooldown.apocalypse.remains<7
|
|
|
|
|
actions+=/variable,name=garg_pooling,op=setif,value=(((cooldown.summon_gargoyle.remains+1)%gcd)%((rune+1)*(runic_power+20)))*100,value_else=gcd*2,condition=runic_power.deficit>60&cooldown.summon_gargoyle.remains<7
|
|
|
|
|
actions+=/variable,name=festermight_tracker,op=setif,value=debuff.festering_wound.stack>=1,value_else=debuff.festering_wound.stack>=4,condition=talent.festermight&(buff.festermight.remains%(4*gcd))>=1&cooldown.apocalypse.remains>variable.apoc_timing
|
|
|
|
|
actions+=/variable,name=build_wounds,value=debuff.festering_wound.stack<4
|
|
|
|
|
actions+=/variable,name=pop_wounds,value=(!talent.apocalypse.enabled|cooldown.apocalypse.remains)&(variable.festermight_tracker|debuff.festering_wound.stack>=1&!talent.apocalypse|debuff.festering_wound.up&cooldown.unholy_assault.remains<30&talent.unholy_assault&variable.st_planning|debuff.festering_wound.stack>4)
|
|
|
|
|
actions+=/variable,name=pooling_runic_power,value=cooldown.summon_gargoyle.remains<variable.garg_pooling&talent.summon_gargoyle|talent.eternal_agony&cooldown.dark_transformation.remains<3&!active_enemies>=3|talent.vile_contagion&cooldown.vile_contagion.remains<3&runic_power<60&!variable.st_planning
|
|
|
|
|
actions+=/variable,name=pooling_runes,value=talent.soul_reaper&rune<2&target.time_to_pct_35<5&fight_remains>(dot.soul_reaper.remains+5)|talent.eternal_agony&talent.ghoulish_frenzy&cooldown.dark_transformation.remains<4
|
|
|
|
|
actions+=/variable,name=st_planning,value=active_enemies<=3&(!raid_event.adds.exists|raid_event.adds.in>15)
|
|
|
|
|
actions+=/variable,name=adds_remain,value=active_enemies>=4&(!raid_event.adds.exists|raid_event.adds.exists&raid_event.adds.remains>6)
|
|
|
|
|
# Prioritize Soul Reaper, Outbreak and Maintaining Plaguebringer
|
|
|
|
|
actions+=/wait,sec=cooldown.soul_reaper.remains,if=talent.soul_reaper&target.time_to_pct_35<5&fight_remains>5&cooldown.soul_reaper.remains<(gcd*0.75)&active_enemies=1
|
|
|
|
|
actions+=/outbreak,cycle_targets=1,if=(dot.virulent_plague.refreshable|talent.superstrain&(dot.frost_fever_superstrain.refreshable|dot.blood_plague_superstrain.refreshable))&(!talent.unholy_blight|talent.unholy_blight&cooldown.unholy_blight.remains>15%((talent.superstrain*3)+(talent.plaguebringer*2)))
|
|
|
|
|
actions+=/wound_spender,if=cooldown.apocalypse.remains>variable.apoc_timing&talent.plaguebringer&talent.superstrain&buff.plaguebringer.remains<gcd
|
|
|
|
|
# Call Action Lists
|
|
|
|
|
actions+=/call_action_list,name=trinkets
|
|
|
|
|
actions+=/call_action_list,name=racials
|
|
|
|
|
actions+=/call_action_list,name=garg_ua_opener,strict=1,if=active_enemies=1&talent.summon_gargoyle&talent.unholy_assault&time<12*gcd.max
|
|
|
|
|
actions+=/call_action_list,name=garg_opener,strict=1,if=active_enemies=1&talent.summon_gargoyle&!talent.unholy_assault&time<12*gcd.max
|
|
|
|
|
actions+=/call_action_list,name=cooldowns
|
|
|
|
|
actions+=/call_action_list,name=covenants
|
|
|
|
|
actions+=/run_action_list,name=aoe,if=active_enemies>=4
|
|
|
|
|
actions+=/run_action_list,name=generic,if=active_enemies<=3
|
|
|
|
|
|
|
|
|
|
## Hackish.
|
|
|
|
|
actions.garg_ua_opener+=/unholy_blight,line_cd=999
|
|
|
|
|
actions.garg_ua_opener+=/festering_strike,line_cd=999
|
|
|
|
|
actions.garg_ua_opener+=/festering_strike,if=prev.1.festering_strike&!prev.2.festering_strike
|
|
|
|
|
actions.garg_ua_opener+=/potion,line_cd=999
|
|
|
|
|
actions.garg_ua_opener+=/dark_transformation,line_cd=999
|
|
|
|
|
actions.garg_ua_opener+=/summon_gargoyle,line_cd=999,if=gcd.remains=0
|
|
|
|
|
actions.garg_ua_opener+=/death_coil,line_cd=999
|
|
|
|
|
actions.garg_ua_opener+=/apocalypse,line_cd=999
|
|
|
|
|
actions.garg_ua_opener+=/death_coil,if=prev.1.apocalypse|!talent.apocalypse&prev.1.death_coil&prev.2.summon_gargoyle
|
|
|
|
|
actions.garg_ua_opener+=/unholy_assault,line_cd=999
|
|
|
|
|
actions.garg_ua_opener+=/empower_rune_weapon,line_cd=999,if=gcd.remains=0
|
|
|
|
|
|
|
|
|
|
## Hackish.
|
|
|
|
|
actions.garg_opener+=/unholy_blight,line_cd=999
|
|
|
|
|
actions.garg_opener+=/festering_strike,line_cd=999
|
|
|
|
|
actions.garg_opener+=/festering_strike,if=prev.1.festering_strike&!prev.2.festering_strike
|
|
|
|
|
actions.garg_opener+=/potion,line_cd=999
|
|
|
|
|
actions.garg_opener+=/dark_transformation,line_cd=999
|
|
|
|
|
actions.garg_opener+=/summon_gargoyle,line_cd=999,if=gcd.remains=0
|
|
|
|
|
actions.garg_opener+=/death_coil,line_cd=999
|
|
|
|
|
actions.garg_opener+=/apocalypse,line_cd=999
|
|
|
|
|
actions.garg_opener+=/death_coil,if=prev.1.apocalypse
|
|
|
|
|
actions.garg_opener+=/death_coil,line_cd=999
|
|
|
|
|
actions.garg_opener+=/empower_rune_weapon,line_cd=999,if=gcd.remains=0
|
|
|
|
|
|
|
|
|
|
# AoE Action List
|
|
|
|
|
actions.aoe=any_dnd,if=!death_and_decay.ticking&(variable.adds_remain&(talent.festermight&buff.festermight.remains<3|!talent.festermight)&(death_knight.fwounded_targets>=cycle_enemies|death_knight.fwounded_targets=8|!talent.bursting_sores&!talent.vile_contagion|raid_event.adds.exists&raid_event.adds.remains<=11&raid_event.adds.remains>5|(cooldown.vile_contagion.remains|!talent.vile_contagion)&buff.dark_transformation.up&talent.infected_claws&(buff.empower_rune_weapon.up|buff.unholy_assault.up))|fight_remains<10)
|
|
|
|
|
actions.aoe+=/abomination_limb,if=rune=0&variable.adds_remain
|
|
|
|
|
actions.aoe+=/apocalypse,cycle_targets=1,if=debuff.festering_wound.up&variable.adds_remain&!death_and_decay.ticking&cooldown.death_and_decay.remains&rune<3|death_and_decay.ticking&rune=0
|
|
|
|
|
actions.aoe+=/festering_strike,cycle_targets=1,if=!death_and_decay.ticking&(active_dot.festering_wound<cycle_enemies|debuff.festering_wound.stack<4)&(cooldown.vile_contagion.remains<5|cooldown.apocalypse.ready&cooldown.any_dnd.remains)
|
|
|
|
|
actions.aoe+=/festering_strike,cycle_targets=1,if=!death_and_decay.ticking&(cooldown.vile_contagion.remains>5|!talent.vile_contagion)
|
|
|
|
|
actions.aoe+=/wound_spender,cycle_targets=1,if=death_and_decay.ticking
|
|
|
|
|
actions.aoe+=/death_coil,if=!variable.pooling_runic_power&(rune<2&active_enemies<2+(talent.improved_death_coil+talent.coil_of_devastation+talent.rotten_touch)|!talent.epidemic)
|
|
|
|
|
actions.aoe+=/epidemic,if=!variable.pooling_runic_power
|
|
|
|
|
actions.aoe+=/wound_spender,cycle_targets=1,if=cooldown.death_and_decay.remains>10
|
|
|
|
|
|
|
|
|
|
# Potion
|
|
|
|
|
actions.cooldowns=potion,if=(30>=pet.gargoyle.remains&pet.gargoyle.active)|(!talent.summon_gargoyle|cooldown.summon_gargoyle.remains>60)&(buff.dark_transformation.up&30>=buff.dark_transformation.remains|pet.army_ghoul.active&pet.army_ghoul.remains<=30|pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=30)|fight_remains<=30
|
|
|
|
|
# Cooldowns
|
|
|
|
|
actions.cooldowns+=/army_of_the_dead,if=talent.commander_of_the_dead&cooldown.dark_transformation.remains_expected<4|!talent.commander_of_the_dead&talent.unholy_assault&cooldown.unholy_assault.remains<10|!talent.unholy_assault&!talent.commander_of_the_dead|fight_remains<=30
|
|
|
|
|
actions.cooldowns+=/vile_contagion,cycle_targets=1,if=active_enemies>=2&debuff.festering_wound.stack>=4&cooldown.any_dnd.remains<3
|
|
|
|
|
actions.cooldowns+=/raise_dead,if=!pet.ghoul.active
|
|
|
|
|
actions.cooldowns+=/summon_gargoyle,if=runic_power.deficit<60&(cooldown.dark_transformation.ready|buff.commander_of_the_dead_window.up|!talent.commander_of_the_dead)
|
|
|
|
|
actions.cooldowns+=/dark_transformation,if=variable.st_planning&(fight_remains<30|!talent.unholy_command|talent.unholy_command&(!talent.unholy_command.rank=2|pet.gargoyle.active|!talent.apocalypse|(pet.apoc_ghoul.active|cooldown.apocalypse.remains<1&debuff.festering_wound.stack>=4)&(!talent.summon_gargoyle|cooldown.summon_gargoyle.remains>4)))
|
|
|
|
|
actions.cooldowns+=/dark_transformation,if=variable.adds_remain&(cooldown.any_dnd.remains<10&talent.infected_claws&((cooldown.vile_contagion.remains|raid_event.adds.exists&raid_event.adds.in>10)&death_knight.fwounded_targets<cycle_enemies|!talent.vile_contagion)&(raid_event.adds.remains>5|!raid_event.adds.exists)|!talent.infected_claws)|fight_remains<25
|
|
|
|
|
actions.cooldowns+=/soul_reaper,if=active_enemies=1&target.time_to_pct_35<5&target.time_to_die>(dot.soul_reaper.remains+5)
|
|
|
|
|
actions.cooldowns+=/soul_reaper,cycle_targets=1,if=target.time_to_pct_35<5&active_enemies>=2&target.time_to_die>(dot.soul_reaper.remains+5)
|
|
|
|
|
actions.cooldowns+=/unholy_blight,if=variable.st_planning&((!talent.apocalypse|cooldown.apocalypse.remains)&talent.morbidity|!talent.morbidity)
|
|
|
|
|
actions.cooldowns+=/unholy_blight,if=variable.adds_remain|fight_remains<21
|
|
|
|
|
actions.cooldowns+=/unholy_assault,if=variable.st_planning&(!talent.apocalypse|cooldown.apocalypse.remains<3&(cooldown.summon_gargoyle.remains&!pet.gargoyle.active&talent.summon_gargoyle|!talent.summon_gargoyle)|(buff.unholy_assault.duration>=pet.gargoyle.remains&pet.gargoyle.active)|(!talent.summon_gargoyle|cooldown.summon_gargoyle.remains>60)&(buff.dark_transformation.up&buff.unholy_assault.duration>=buff.dark_transformation.remains|pet.army_ghoul.active&pet.army_ghoul.remains<=buff.unholy_assault.duration|pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=buff.unholy_assault.duration))|fight_remains<21
|
|
|
|
|
actions.cooldowns+=/unholy_assault,cycle_targets=1,if=active_enemies>=2&debuff.festering_wound.stack<=2&(talent.vile_contagion&cooldown.vile_contagion.remains<gcd&cooldown.any_dnd.remains<3|buff.dark_transformation.up|cooldown.death_and_decay.remains<gcd)
|
|
|
|
|
actions.cooldowns+=/apocalypse,cycle_targets=1,if=active_enemies<=3&debuff.festering_wound.stack>=4&(talent.summon_gargoyle&cooldown.summon_gargoyle.remains|!talent.summon_gargoyle|talent.unholy_assault)|fight_remains<15
|
|
|
|
|
actions.cooldowns+=/empower_rune_weapon,if=variable.st_planning&runic_power.deficit>20&(pet.gargoyle.active&pet.apoc_ghoul.active|!talent.summon_gargoyle&talent.army_of_the_damned&pet.army_ghoul.active&pet.apoc_ghoul.active|!talent.summon_gargoyle&!talent.army_of_the_damned&buff.dark_transformation.up|!talent.summon_gargoyle&!talent.summon_gargoyle&buff.dark_transformation.up)|fight_remains<=21
|
|
|
|
|
actions.cooldowns+=/empower_rune_weapon,if=variable.adds_remain&buff.dark_transformation.up
|
|
|
|
|
actions.cooldowns+=/abomination_limb,if=variable.st_planning&rune<3
|
|
|
|
|
actions.cooldowns+=/sacrificial_pact,if=active_enemies>=2&!buff.dark_transformation.up&cooldown.dark_transformation.remains>6|fight_remains<gcd
|
|
|
|
|
|
|
|
|
|
# Covenant Abilities
|
|
|
|
|
actions.covenants+=/swarming_mist,if=variable.st_planning&runic_power.deficit>16&(cooldown.apocalypse.remains|!talent.army_of_the_damned&cooldown.dark_transformation.remains)|fight_remains<11
|
|
|
|
|
# Set to use after apoc is on CD as to prevent overcapping RP while setting up CD's
|
|
|
|
|
actions.covenants+=/swarming_mist,if=cooldown.apocalypse.remains&(active_enemies>=2&active_enemies<=5&runic_power.deficit>10+(active_enemies*6)&variable.adds_remain|active_enemies>5&runic_power.deficit>40)
|
|
|
|
|
actions.covenants+=/abomination_limb,if=variable.st_planning&!soulbind.lead_by_example&(cooldown.apocalypse.remains|!talent.army_of_the_damned&cooldown.dark_transformation.remains)&rune.time_to_4>buff.runic_corruption.remains|fight_remains<12+(soulbind.kevins_oozeling*28)
|
|
|
|
|
actions.covenants+=/abomination_limb,if=variable.st_planning&soulbind.lead_by_example&(dot.unholy_blight_dot.remains>11|!talent.unholy_blight&cooldown.dark_transformation.remains)
|
|
|
|
|
actions.covenants+=/abomination_limb,if=variable.st_planning&soulbind.kevins_oozeling&(debuff.festering_wound.stack>=4&!runeforge.abominations_frenzy|runeforge.abominations_frenzy&cooldown.apocalypse.remains)
|
|
|
|
|
actions.covenants+=/abomination_limb,if=variable.adds_remain&rune.time_to_4>buff.runic_corruption.remains
|
|
|
|
|
actions.covenants+=/shackle_the_unworthy,if=variable.st_planning&(cooldown.apocalypse.remains>10|!talent.army_of_the_damned&cooldown.dark_transformation.remains)|fight_remains<15
|
|
|
|
|
actions.covenants+=/shackle_the_unworthy,if=variable.adds_remain&(death_and_decay.ticking|raid_event.adds.remains<=14)
|
|
|
|
|
actions.covenants+=/fleshcraft,if=soulbind.pustule_eruption|soulbind.volatile_solvent&!buff.volatile_solvent_humanoid.up,interrupt_immediate=1,interrupt_global=1,interrupt_if=soulbind.volatile_solvent
|
|
|
|
|
|
|
|
|
|
# Generic
|
|
|
|
|
actions.generic=death_coil,if=!variable.pooling_runic_power&(buff.sudden_doom.react|runic_power.deficit<=40|rune<3)|pet.gargoyle.active|fight_remains<(30%gcd)
|
|
|
|
|
actions.generic+=/any_dnd,if=!death_and_decay.ticking&active_enemies>=2&death_knight.fwounded_targets>=cycle_enemies
|
|
|
|
|
actions.generic+=/wound_spender,cycle_targets=1,if=variable.pop_wounds|active_enemies>=2&death_and_decay.ticking
|
|
|
|
|
actions.generic+=/festering_strike,cycle_targets=1,if=debuff.festering_wound.stack<4&cooldown.apocalypse.remains<variable.apoc_timing
|
|
|
|
|
actions.generic+=/festering_strike,cycle_targets=1,if=variable.build_wounds
|
|
|
|
|
|
|
|
|
|
# Racials
|
|
|
|
|
actions.racials=arcane_torrent,if=runic_power.deficit>20&(pet.gargoyle.active|!talent.summon_gargoyle.enabled)
|
|
|
|
|
actions.racials+=/blood_fury,if=(buff.blood_fury.duration>=pet.gargoyle.remains&pet.gargoyle.active)|(!talent.summon_gargoyle|cooldown.summon_gargoyle.remains>60)&(buff.dark_transformation.up&buff.blood_fury.duration>=buff.dark_transformation.remains|pet.army_ghoul.active&pet.army_ghoul.remains<=buff.blood_fury.duration|pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=buff.blood_fury.duration|active_enemies>=2&death_and_decay.ticking)|fight_remains<=buff.blood_fury.duration
|
|
|
|
|
actions.racials+=/berserking,if=(buff.berserking.duration>=pet.gargoyle.remains&pet.gargoyle.active)|(!talent.summon_gargoyle|cooldown.summon_gargoyle.remains>60)&(buff.dark_transformation.up&buff.berserking.duration>=buff.dark_transformation.remains|pet.army_ghoul.active&pet.army_ghoul.remains<=buff.berserking.duration|pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=buff.berserking.duration|active_enemies>=2&death_and_decay.ticking)|fight_remains<=buff.berserking.duration
|
|
|
|
|
actions.racials+=/lights_judgment,if=buff.unholy_strength.up&(!talent.festermight|buff.festermight.remains<target.time_to_die|buff.unholy_strength.remains<target.time_to_die)
|
|
|
|
|
actions.racials+=/ancestral_call,if=(15>=pet.gargoyle.remains&pet.gargoyle.active)|(!talent.summon_gargoyle|cooldown.summon_gargoyle.remains>60)&(buff.dark_transformation.up&15>=buff.dark_transformation.remains|pet.army_ghoul.active&pet.army_ghoul.remains<=15|pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=15|active_enemies>=2&death_and_decay.ticking)|fight_remains<=15
|
|
|
|
|
actions.racials+=/arcane_pulse,if=active_enemies>=2|(rune.deficit>=5&runic_power.deficit>=60)
|
|
|
|
|
actions.racials+=/fireblood,if=(buff.fireblood.duration>=pet.gargoyle.remains&pet.gargoyle.active)|(!talent.summon_gargoyle|cooldown.summon_gargoyle.remains>60)&(buff.dark_transformation.up&buff.fireblood.duration>=buff.dark_transformation.remains|pet.army_ghoul.active&pet.army_ghoul.remains<=buff.fireblood.duration|pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=buff.fireblood.duration|active_enemies>=2&death_and_decay.ticking)|fight_remains<=buff.fireblood.duration
|
|
|
|
|
actions.racials+=/bag_of_tricks,if=active_enemies=1&(buff.unholy_strength.up|fight_remains<5)
|
|
|
|
|
|
|
|
|
|
actions.trinkets=use_item,name=gavel_of_the_first_arbiter
|
|
|
|
|
# Trinkets
|
|
|
|
|
actions.trinkets+=/use_item,slot=trinket1,if=((trinket.1.proc.any_dps.duration<=15&cooldown.apocalypse.remains>20|trinket.1.proc.any_dps.duration>15&(cooldown.unholy_blight.remains>20|cooldown.dark_transformation.remains_expected>20)|active_enemies>=2&buff.dark_transformation.up)&(!trinket.2.has_cooldown|trinket.2.cooldown.remains|variable.trinket_priority=1))|trinket.1.proc.any_dps.duration>=fight_remains
|
|
|
|
|
actions.trinkets+=/use_item,slot=trinket2,if=((trinket.2.proc.any_dps.duration<=15&cooldown.apocalypse.remains>20|trinket.2.proc.any_dps.duration>15&(cooldown.unholy_blight.remains>20|cooldown.dark_transformation.remains_expected>20)|active_enemies>=2&buff.dark_transformation.up)&(!trinket.1.has_cooldown|trinket.1.cooldown.remains|variable.trinket_priority=2))|trinket.2.proc.any_dps.duration>=fight_remains
|
|
|
|
|
actions.trinkets+=/use_item,slot=trinket1,if=!trinket.1.has_use_buff&(trinket.2.cooldown.remains|!trinket.2.has_use_buff)
|
|
|
|
|
actions.trinkets+=/use_item,slot=trinket2,if=!trinket.2.has_use_buff&(trinket.1.cooldown.remains|!trinket.1.has_use_buff)
|