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.
161 lines
20 KiB
161 lines
20 KiB
## Death Knight Unholy
|
|
## May 23, 2022
|
|
|
|
## Changes:
|
|
## - Adjustments to DnD/Defile/Deaths Due to only count targets who are expected to live long enough to matter (aoe_setup #1).
|
|
## - Disabled Sacrificial Pact because dead ghouls make for sad DKs.
|
|
## - Using Wound Spender abilities more flexibly (at 4+ stacks instead of 5+); DPS neutral and may prevent some no-rec situations.
|
|
## - Using Festering Strike in AOE if you have nothing else to do and won't overcap wounds is DPS neutral.
|
|
## - Changed many 'fight_remains' conditionals to apply in boss fights only (less CD waste on trash).
|
|
## - Added another Outbreak entry to set up stronger Epidemics.
|
|
## - Relax ST vs. AOE logic since it relies on confabulated raid_events.
|
|
## - TODO: Factor Strength procs into trinket logic.
|
|
|
|
actions.precombat+=/potion
|
|
actions.precombat+=/raise_dead
|
|
actions.precombat+=/fleshcraft
|
|
actions.precombat+=/army_of_the_dead,precombat_time=4,if=!talent.summon_gargoyle&!covenant.night_fae
|
|
actions.precombat+=/army_of_the_dead,precombat_time=3,if=!talent.summon_gargoyle&covenant.night_fae
|
|
# Evaluates a trinkets cooldown, divided by 45. This was chosen as unholy works on 45 second burst cycles, but has too many cdr effects to give a cooldown.x.duration divisor instead. If it's value has no remainder return 1, else return 0.5.
|
|
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)
|
|
# Estimates a trinkets value by comparing the cooldown of the trinket, divided by the duration of the buff it provides. Has a strength modifier to give a higher priority to strength trinkets, as well as a modifier for if a trinket will or will not sync with cooldowns.
|
|
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.buff_duration>?0.01))*(1.5+trinket.2.has_buff)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%(trinket.1.buff_duration>?0.01))*(1.5+trinket.1.has_buff)*(variable.trinket_1_sync))
|
|
# Evaluates current setup for the quantity of Apocalypse CDR effects
|
|
actions.precombat+=/variable,name=full_cdr,value=talent.army_of_the_damned&conduit.convocation_of_the_dead
|
|
actions.precombat+=/variable,name=dc_rt,value=runeforge.deaths_certainty&runeforge.rampant_transference
|
|
|
|
## Executed every time the actor is available.
|
|
actions=mind_freeze
|
|
# Prevent specified trinkets being used with automatic lines
|
|
actions+=/variable,name=specified_trinket,value=(equipped.inscrutable_quantum_device|equipped.the_first_sigil|equipped.overwhelming_power_crystal)&(cooldown.inscrutable_quantum_device.ready|cooldown.the_first_sigil.remains|cooldown.overwhelming_power_crystal.remains)|(equipped.the_first_sigil|equipped.overwhelming_power_crystal)&equipped.inscrutable_quantum_device
|
|
## Variables
|
|
actions+=/variable,name=pooling_runic_power,value=cooldown.summon_gargoyle.remains<5&talent.summon_gargoyle&(talent.unholy_blight&cooldown.unholy_blight.remains<13&cooldown.dark_transformation.remains_expected<13|!talent.unholy_blight)
|
|
actions+=/variable,name=pooling_runes,value=talent.soul_reaper&rune<2&target.time_to_pct_35<5&fight_remains>(dot.soul_reaper.remains+5)|covenant.night_fae&talent.defile&cooldown.defile.remains<rune.time_to_2
|
|
actions+=/variable,name=st_planning,value=active_enemies=1&(!raid_event.adds.exists|raid_event.adds.in>15)
|
|
actions+=/variable,name=adds_remain,value=active_enemies>=2&(!raid_event.adds.exists|raid_event.adds.exists&(raid_event.adds.remains>5|fight_remains>10))
|
|
actions+=/variable,name=major_cooldowns_active,value=(talent.summon_gargoyle&!pet.gargoyle.active&cooldown.summon_gargoyle.remains|!talent.summon_gargoyle)&(buff.unholy_assault.up|talent.army_of_the_damned&pet.apoc_ghoul.active|buff.dark_transformation.up&buff.dark_transformation.remains>5|active_enemies>=2&death_and_decay.ticking)
|
|
actions+=/variable,name=dump_wounds,value=cooldown.apocalypse.remains_expected>15&(covenant.night_fae&death_and_decay.ticking&buff.deaths_due.stack<4|buff.marrowed_gemstone_enhancement.up|buff.thrill_seeker.up|buff.frenzied_monstrosity.up|buff.lead_by_example.up|buff.chaos_bane.up|cooldown.unholy_assault.remains<5)
|
|
# Maintaining Virulent Plague is a priority
|
|
actions+=/outbreak,if=dot.virulent_plague.refreshable&!talent.unholy_blight&!raid_event.adds.exists
|
|
actions+=/outbreak,cycle_targets=1,if=dot.virulent_plague.refreshable&active_enemies>=2&(!talent.unholy_blight|talent.unholy_blight&(cooldown.unholy_blight.remains>(15%active_enemies+dot.virulent_plague.remains)|active_enemies>=3))
|
|
# If there are enemies missing VP, apply it (but no more than once per 6 seconds).
|
|
actions+=/outbreak,line_cd=6,if=active_dot.virulent_plague<active_enemies&active_enemies>=2&(!talent.unholy_blight|cooldown.unholy_blight.remains&buff.unholy_blight_buff.down)
|
|
actions+=/outbreak,if=runeforge.superstrain&(dot.frost_fever.refreshable|dot.blood_plague.refreshable)
|
|
# Refreshes Deaths Due's buff just before deaths due ends
|
|
actions+=/wound_spender,if=covenant.night_fae&death_and_decay.ticking&(death_and_decay.active_remains<(gcd*1.5)|buff.deaths_due.remains<gcd)
|
|
actions+=/wait,sec=cooldown.soul_reaper.remains,if=talent.soul_reaper&target.time_to_pct_35<5&target.time_to_die>5&cooldown.soul_reaper.remains<(gcd*0.75)&active_enemies=1
|
|
# Wait for Death's Due/Defile if Night Fae to get strength buff back asap
|
|
actions+=/wait,sec=cooldown.deaths_due.remains,if=covenant.night_fae&cooldown.deaths_due.remains<gcd&active_enemies=1
|
|
actions+=/wait,sec=cooldown.defile.remains,if=covenant.night_fae&cooldown.defile.remains<gcd&active_enemies=1
|
|
# Action Lists and Openers (Openers/Sequences unsupported in addon.)
|
|
actions+=/call_action_list,name=trinkets
|
|
actions+=/call_action_list,name=covenants
|
|
actions+=/call_action_list,name=racials
|
|
## actions+=/sequence,if=active_enemies=1&!death_knight.disable_aotd&talent.summon_gargoyle,name=garg_opener:outbreak:festering_strike:festering_strike:summon_gargoyle:army_of_the_dead:death_coil,if=buff.sudden_doom.up:death_coil:death_coil:scourge_strike,if=debuff.festering_wound.stack>4:scourge_strike,if=debuff.festering_wound.stack>4:festering_strike
|
|
## actions+=/sequence,if=active_enemies=1&!death_knight.disable_aotd&!talent.summon_gargoyle,name=opener:festering_strike:festering_strike:potion:unholy_blight:dark_transformation:apocalypse
|
|
actions+=/call_action_list,name=cooldowns
|
|
actions+=/run_action_list,name=aoe_setup,if=variable.adds_remain&(cooldown.death_and_decay.remains<10&!talent.defile|cooldown.defile.remains<10&talent.defile|covenant.night_fae&cooldown.deaths_due.remains<10)&!death_and_decay.ticking
|
|
actions+=/run_action_list,name=aoe_burst,strict=1,if=active_enemies>=2&death_and_decay.ticking
|
|
actions+=/run_action_list,name=generic_aoe,if=active_enemies>=2&!death_and_decay.ticking&(!variable.adds_remain|cooldown.death_and_decay.remains>10&!talent.defile|cooldown.defile.remains>10&talent.defile|covenant.night_fae&cooldown.deaths_due.remains>10)
|
|
actions+=/call_action_list,name=generic,if=active_enemies=1
|
|
|
|
## AoE Burst
|
|
actions.aoe_burst=clawing_shadows,if=active_enemies<=5
|
|
actions.aoe_burst+=/clawing_shadows,if=active_enemies=6&death_knight.fwounded_targets>=3
|
|
actions.aoe_burst+=/wound_spender,if=talent.bursting_sores&(death_knight.fwounded_targets=active_enemies|death_knight.fwounded_targets>=3)|talent.bursting_sores&talent.clawing_shadows&death_knight.fwounded_targets>=1
|
|
actions.aoe_burst+=/death_coil,if=(buff.sudden_doom.react|!variable.pooling_runic_power)&(buff.dark_transformation.up&runeforge.deadliest_coil&active_enemies<=3|active_enemies=2)
|
|
actions.aoe_burst+=/epidemic,if=runic_power.deficit<(10+death_knight.fwounded_targets*3)&death_knight.fwounded_targets<6&!variable.pooling_runic_power|buff.swarming_mist.up
|
|
actions.aoe_burst+=/epidemic,if=runic_power.deficit<25&death_knight.fwounded_targets>5&!variable.pooling_runic_power
|
|
actions.aoe_burst+=/epidemic,if=!death_knight.fwounded_targets&!variable.pooling_runic_power|fight_remains<5|raid_event.adds.exists&raid_event.adds.remains<5
|
|
actions.aoe_burst+=/wound_spender
|
|
actions.aoe_burst+=/epidemic,if=!variable.pooling_runic_power
|
|
|
|
## AoE Setup
|
|
actions.aoe_setup=any_dnd,if=death_knight.fwounded_targets=cycle_enemies|death_knight.fwounded_targets>=5|!talent.bursting_sores|talent.defile&conduit.withering_ground|raid_event.adds.exists&raid_event.adds.remains<=11|boss&fight_remains<=11
|
|
actions.aoe_setup+=/death_coil,if=!variable.pooling_runic_power&(buff.dark_transformation.up&runeforge.deadliest_coil&active_enemies<=3|active_enemies=2)
|
|
actions.aoe_setup+=/epidemic,if=!variable.pooling_runic_power
|
|
actions.aoe_setup+=/festering_strike,cycle_targets=1,if=debuff.festering_wound.stack<=3&cooldown.apocalypse.remains<3
|
|
actions.aoe_setup+=/festering_strike,cycle_targets=1,if=debuff.festering_wound.stack<1
|
|
actions.aoe_setup+=/festering_strike,cycle_targets=1,if=rune.time_to_4<(cooldown.death_and_decay.remains&!talent.defile|cooldown.defile.remains&talent.defile|covenant.night_fae&cooldown.deaths_due.remains)
|
|
# When target swaps are disabled, this will let you spend runes/wounds instead of waiting for DnD/Defile/Death's Due.
|
|
actions.aoe_setup+=/wound_spender,if=(!settings.cycle|death_knight.fwounded_targets>=cycle_enemies)&debuff.festering_wound.stack>3&rune.time_to_3<cooldown.any_dnd.remains
|
|
|
|
## Potion
|
|
actions.cooldowns=potion,if=variable.major_cooldowns_active|pet.gargoyle.active&pet.gargoyle.remains<=26|boss&fight_remains<26
|
|
## Cooldowns
|
|
actions.cooldowns+=/army_of_the_dead,if=cooldown.dark_transformation.remains_expected<8&(equipped.gavel_of_the_first_arbiter&cooldown.twisted_judgment_367953.remains<8|!equipped.gavel_of_the_first_arbiter|equipped.gavel_of_the_first_arbiter&fight_remains<cooldown.twisted_judgment_367953.remains+30)&(cooldown.unholy_blight.remains<8&talent.unholy_blight|!talent.unholy_blight)&(set_bonus.tier28_4pc&target.time_to_pct_35<4|!set_bonus.tier28_4pc|fight_remains>200)&(covenant.necrolord&cooldown.abomination_limb.remains<18&(runeforge.abominations_frenzy|soulbind.kevins_oozeling)|!runeforge.abominations_frenzy&!soulbind.kevins_oozeling|fight_remains<cooldown.abomination_limb.remains+30|!covenant.necrolord)
|
|
actions.cooldowns+=/army_of_the_dead,if=boss&fight_remains<30+gcd
|
|
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)&(active_enemies<=3|set_bonus.tier28_4pc&active_enemies<=5&(buff.dark_transformation.up|runeforge.reanimated_shambler)&(!death_and_decay.ticking|covenant.night_fae))
|
|
# Holds Blight for up to 5 seconds to sync with Apocalypse, Otherwise, use with Dark Transformation.
|
|
actions.cooldowns+=/unholy_blight,if=variable.st_planning&(cooldown.apocalypse.remains_expected<7|cooldown.apocalypse.remains_expected>15)&(cooldown.dark_transformation.remains<gcd|buff.dark_transformation.up)
|
|
actions.cooldowns+=/unholy_blight,if=variable.adds_remain|boss&fight_remains<21
|
|
actions.cooldowns+=/dark_transformation,if=variable.st_planning&(dot.unholy_blight_dot.remains|!talent.unholy_blight)
|
|
actions.cooldowns+=/dark_transformation,if=variable.adds_remain|boss&fight_remains<19+(runeforge.deadliest_coil*9)
|
|
actions.cooldowns+=/apocalypse,if=active_enemies=1&debuff.festering_wound.stack>=4&(!variable.full_cdr|variable.full_cdr&(cooldown.unholy_blight.remains>20|cooldown.dark_transformation.remains_expected>20&!talent.unholy_blight|!talent.unholy_blight&!talent.unholy_pact))|boss&fight_remains<16
|
|
actions.cooldowns+=/apocalypse,cycle_targets=1,if=active_enemies>=2&debuff.festering_wound.stack>=4&!death_and_decay.ticking
|
|
actions.cooldowns+=/summon_gargoyle,if=runic_power.deficit<14&cooldown.unholy_blight.remains<13&cooldown.dark_transformation.remains_expected<13
|
|
actions.cooldowns+=/unholy_assault,if=variable.st_planning&debuff.festering_wound.stack<2&(pet.apoc_ghoul.active|buff.dark_transformation.up&cooldown.apocalypse.remains>10|cooldown.apocalypse.remains>10&cooldown.dark_transformation.remains>10)|boss&fight_remains<13
|
|
actions.cooldowns+=/unholy_assault,cycle_targets=1,if=active_enemies>=2&debuff.festering_wound.stack<2&(pet.apoc_ghoul.active|buff.dark_transformation.up|cooldown.death_and_decay.remains<gcd)
|
|
actions.cooldowns+=/raise_dead,if=!pet.ghoul.active
|
|
## Disabled, just not really normal behavior that's worth pursuing in-game.
|
|
## 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)|boss&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|boss&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)|boss&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
|
|
|
|
## Single Target
|
|
actions.generic=death_coil,if=!variable.pooling_runic_power&(buff.sudden_doom.react|runic_power.deficit<=20+(runeforge.rampant_transference*5+death_knight.runeforge.hysteria*5))|pet.gargoyle.active&rune<=3|fight_remains<10&!debuff.festering_wound.up|talent.army_of_the_damned&talent.unholy_blight&rune<3&(cooldown.unholy_blight.remains+gcd*3)<cooldown.apocalypse.remains_expected
|
|
actions.generic+=/any_dnd,if=(talent.defile.enabled|covenant.night_fae|runeforge.phearomones)&((!variable.pooling_runes|talent.defile&conduit.withering_ground)|fight_remains<5)
|
|
actions.generic+=/festering_strike,if=debuff.festering_wound.stack<4&cooldown.apocalypse.remains<gcd*2
|
|
actions.generic+=/wound_spender,if=variable.dump_wounds&debuff.festering_wound.stack>=1&cooldown.apocalypse.remains_expected>15-(runeforge.deadliest_coil)&!variable.pooling_runes
|
|
actions.generic+=/wound_spender,if=debuff.festering_wound.stack>3&!variable.pooling_runes|debuff.festering_wound.up&fight_remains<(debuff.festering_wound.stack*gcd)|debuff.festering_wound.stack>4&cooldown.apocalypse.remains_expected>cooldown.unholy_blight.remains&conduit.convocation_of_the_dead
|
|
actions.generic+=/festering_strike,if=debuff.festering_wound.stack<4&!variable.pooling_runes
|
|
actions.generic+=/death_coil,if=!variable.pooling_runic_power
|
|
actions.generic+=/wound_spender,if=debuff.festering_wound.stack>=1&rune<2&!variable.pooling_runes&cooldown.apocalypse.remains_expected>12
|
|
|
|
## Generic AoE Priority
|
|
actions.generic_aoe=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<=3
|
|
actions.generic_aoe+=/death_coil,if=(!variable.pooling_runic_power|buff.sudden_doom.react)&(buff.dark_transformation.up&runeforge.deadliest_coil&active_enemies<=3|active_enemies=2)
|
|
actions.generic_aoe+=/epidemic,if=buff.sudden_doom.react|!variable.pooling_runic_power
|
|
# If target cycling is disabled, switch back to the single-target generic list instead.
|
|
actions.generic_aoe+=/run_action_list,name=generic,strict=1,if=cycle_enemies=1
|
|
actions.generic_aoe+=/wound_spender,cycle_targets=1,if=(cooldown.apocalypse.remains>15&debuff.festering_wound.up|debuff.festering_wound.stack>4)&(fight_remains<cooldown.death_and_decay.remains+10|fight_remains>cooldown.apocalypse.remains)
|
|
actions.generic_aoe+=/festering_strike,cycle_targets=1,if=debuff.festering_wound.stack<=3&cooldown.apocalypse.remains<5|debuff.festering_wound.stack<1
|
|
actions.generic_aoe+=/festering_strike,cycle_targets=1,if=cooldown.apocalypse.remains>5&debuff.festering_wound.stack<1
|
|
# This is effectively filler which sims DPS neutral, but should prevent a scenario where the addon has nothing to recommend.
|
|
actions.generic_aoe+=/festering_strike,if=active_dot.festering_wound>=cycle_enemies&debuff.festering_wound.stack<4
|
|
|
|
# Racials
|
|
actions.racials=arcane_torrent,if=runic_power.deficit>65&(pet.gargoyle.active|!talent.summon_gargoyle.enabled)&rune.deficit>=5
|
|
actions.racials+=/blood_fury,if=variable.major_cooldowns_active|pet.gargoyle.active&pet.gargoyle.remains<=buff.blood_fury.duration|boss&fight_remains<=buff.blood_fury.duration
|
|
actions.racials+=/berserking,if=variable.major_cooldowns_active&pet.army_ghoul.active|pet.gargoyle.active&pet.gargoyle.remains<=buff.berserking.duration|fight_remains<=buff.berserking.duration
|
|
actions.racials+=/lights_judgment,if=buff.unholy_strength.up
|
|
# Ancestral Call can trigger 4 potential buffs, each lasting 15 seconds. Utilized hard coded time as a trigger to keep it readable.
|
|
actions.racials+=/ancestral_call,if=variable.major_cooldowns_active|pet.gargoyle.active&pet.gargoyle.remains<=15|boss&fight_remains<=15
|
|
actions.racials+=/arcane_pulse,if=active_enemies>=2|(rune.deficit>=5&runic_power.deficit>=60)
|
|
actions.racials+=/fireblood,if=variable.major_cooldowns_active|pet.gargoyle.active&pet.gargoyle.remains<=buff.fireblood.duration|boss&fight_remains<=buff.fireblood.duration
|
|
actions.racials+=/bag_of_tricks,if=active_enemies=1&(buff.unholy_strength.up|boss&fight_remains<5)
|
|
|
|
## Trinkets
|
|
actions.trinkets=use_item,name=inscrutable_quantum_device,if=(cooldown.unholy_blight.remains>20|cooldown.dark_transformation.remains_expected>20)&(active_enemies>=2|pet.army_ghoul.active|pet.apoc_ghoul.active&(talent.unholy_assault|death_knight.disable_aotd)|pet.gargoyle.active)|boss&fight_remains<21|death_knight.disable_iqd_execute=0&target.time_to_pct_20<5
|
|
actions.trinkets+=/use_item,name=gavel_of_the_first_arbiter
|
|
actions.trinkets+=/use_item,name=scars_of_fraternal_strife
|
|
actions.trinkets+=/use_item,name=the_first_sigil,if=variable.major_cooldowns_active&(time>30|!equipped.inscrutable_quantum_device)
|
|
actions.trinkets+=/use_item,name=overwhelming_power_crystal,if=variable.major_cooldowns_active&(time>30|!equipped.inscrutable_quantum_device&!equipped.the_first_sigil)
|
|
# The trinket with the highest estimated value, will be used first and paired with Apocalypse (if buff is 15 seconds or less) or Blight/DT (if greater than 15 seconds)
|
|
actions.trinkets+=/trinket1,if=!variable.specified_trinket&((trinket.1.buff_duration<=15&cooldown.apocalypse.remains>20|trinket.1.buff_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))|boss&trinket.1.buff_duration>=fight_remains
|
|
actions.trinkets+=/trinket2,if=!variable.specified_trinket&((trinket.2.buff_duration<=15&cooldown.apocalypse.remains>20|trinket.2.buff_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))|boss&trinket.2.buff_duration>=fight_remains
|
|
# If only one on use trinket provides a buff, use the other on cooldown. Or if neither trinket provides a buff, use both on cooldown.
|
|
actions.trinkets+=/use_item,slot=trinket1,if=!variable.specified_trinket&!trinket.1.has_use_buff&(trinket.2.cooldown.remains|!trinket.2.has_use_buff)
|
|
actions.trinkets+=/use_item,slot=trinket2,if=!variable.specified_trinket&!trinket.2.has_use_buff&(trinket.1.cooldown.remains|!trinket.1.has_use_buff)
|