From 7dbd6f380017a3c43e30ffd8d7430fa28d17be88 Mon Sep 17 00:00:00 2001 From: Jannick Mueller Date: Fri, 27 Mar 2026 22:35:55 -0700 Subject: [PATCH] [Assassination] Imp Gar Snapshotting Improved Garrotes Snapshot now so we have to do janky things with vanish and garrote timings while we wait for a fix and everything sucks Also fixed some small edge cases for cooldowns that popped up as a result of testing --- engine/class_modules/apl/apl_rogue.cpp | 5 +++-- engine/class_modules/apl/rogue/assassination.simc | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/engine/class_modules/apl/apl_rogue.cpp b/engine/class_modules/apl/apl_rogue.cpp index 0d2c10ea605..f15024a7c7a 100644 --- a/engine/class_modules/apl/apl_rogue.cpp +++ b/engine/class_modules/apl/apl_rogue.cpp @@ -90,13 +90,14 @@ void assassination( player_t* p ) default_->add_action( "call_action_list,name=generate,if=!buff.darkest_night.up&combo_points<5|buff.darkest_night.up&combo_points.deficit>0", "Build combo points until 5, max with darkest night" ); default_->add_action( "call_action_list,name=spend,if=!buff.darkest_night.up&combo_points>=5|buff.darkest_night.up&combo_points.deficit=0", "If combo point threshold is reached, spend them" ); - cds->add_action( "deathmark,if=dot.garrote.ticking&dot.rupture.ticking&cooldown.kingsbane.remains<=2&buff.envenom.up&(target.time_to_die>10|fight_remains<20)", "Cooldown list Deathmark if bleeds are active, kingsbane is ready, and we have envenom" ); + cds->add_action( "deathmark,if=dot.garrote.ticking&dot.rupture.ticking&cooldown.kingsbane.remains<=2&buff.envenom.remains>2&(target.time_to_die>10|fight_remains<20)", "Cooldown list Deathmark if bleeds are active, kingsbane is ready, and we have envenom" ); cds->add_action( "call_action_list,name=items", "Check for on-use trinket usage" ); cds->add_action( "call_action_list,name=misc_cds", "Check for Racial abilties, potions, and any other misc cooldowns" ); cds->add_action( "kingsbane,if=dot.garrote.ticking&dot.rupture.ticking&(dot.deathmark.ticking|cooldown.deathmark.remains>52)&buff.envenom.up&(target.time_to_die>10|fight_remains<20)", "Kingsbane if bleeds are active and Deathmark is either on cooldown or active." ); cds->add_action( "call_action_list,name=vanish,if=!stealthed.rogue", "Vanish conditions for Improved Garrote" ); core_dot->add_action( "garrote,if=(buff.improved_garrote.up|stealthed.rogue)&(pmultiplier<=1|remains<=14+6*talent.razor_wire+4*!variable.single_target)", "DoT list Garrote for improved garrote when applicable" ); + core_dot->add_action( "garrote,if=(buff.improved_garrote.up|stealthed.rogue)&(dot.deathmark.ticking&cooldown.vanish.remains>115&dot.garrote.remains<22)", "Hacky line for ImpGar Snapshotting while the bug exists" ); core_dot->add_action( "garrote,if=combo_points.deficit>=1&(pmultiplier<=1|!variable.single_target)&refreshable&target.time_to_die-remains>12", "Normal Garrote Maintanence" ); core_dot->add_action( "garrote,cycle_targets=1,if=!talent.crimson_tempest&combo_points.deficit>=1&(pmultiplier<=1|!variable.single_target)&refreshable&target.time_to_die-remains>12", "Cycle Garrote without Crimson Tempest" ); core_dot->add_action( "rupture,if=combo_points>=5&refreshable&target.time_to_die-remains>12&(!buff.darkest_night.up|!dot.rupture.ticking)", "Normal Rupture Maintanence, making sure to not waste Darkest Night" ); @@ -123,7 +124,7 @@ void assassination( player_t* p ) spend->add_action( "envenom,if=buff.implacable_tracker.stack<4", "Spend List Envenom if we are not at max stacks of the Apex talent" ); spend->add_action( "envenom,if=energy.pct>70|fight_remains<15", "Envenom if we are going to overcap on energy" ); - vanish->add_action( "vanish,if=variable.single_target&talent.improved_garrote&dot.garrote.pmultiplier<=1&(cooldown.deathmark.remains<5|cooldown.deathmark.remains>target.time_to_die-10)&!raid_event.adds.in<=30", "Vanish list Single Target vanish check to line up improved garrote with Deathmark, making sure there are no adds soon" ); + vanish->add_action( "vanish,if=variable.single_target&talent.improved_garrote&dot.garrote.pmultiplier<=1&(dot.deathmark.ticking|cooldown.deathmark.remains>target.time_to_die-10)&!raid_event.adds.in<=30", "Vanish list Single Target vanish check to line up improved garrote with Deathmark, making sure there are no adds soon. TODO Check after ImpGar fixes" ); vanish->add_action( "vanish,if=!variable.single_target&talent.improved_garrote&dot.garrote.pmultiplier<=1&(raid_event.adds.remains>=10|!raid_event.adds.in<=30)", "AoE vanish check to spread improved garrote in multitarget" ); } //assassination_apl_end diff --git a/engine/class_modules/apl/rogue/assassination.simc b/engine/class_modules/apl/rogue/assassination.simc index 3bd94358857..8862e7e5ff6 100644 --- a/engine/class_modules/apl/rogue/assassination.simc +++ b/engine/class_modules/apl/rogue/assassination.simc @@ -29,7 +29,7 @@ actions+=/call_action_list,name=generate,if=!buff.darkest_night.up&combo_points< actions+=/call_action_list,name=spend,if=!buff.darkest_night.up&combo_points>=5|buff.darkest_night.up&combo_points.deficit=0 # Cooldown list Deathmark if bleeds are active, kingsbane is ready, and we have envenom -actions.cds=deathmark,if=dot.garrote.ticking&dot.rupture.ticking&cooldown.kingsbane.remains<=2&buff.envenom.up&(target.time_to_die>10|fight_remains<20) +actions.cds=deathmark,if=dot.garrote.ticking&dot.rupture.ticking&cooldown.kingsbane.remains<=2&buff.envenom.remains>2&(target.time_to_die>10|fight_remains<20) # Check for on-use trinket usage actions.cds+=/call_action_list,name=items # Check for Racial abilties, potions, and any other misc cooldowns @@ -41,6 +41,8 @@ actions.cds+=/call_action_list,name=vanish,if=!stealthed.rogue # DoT list Garrote for improved garrote when applicable actions.core_dot=garrote,if=(buff.improved_garrote.up|stealthed.rogue)&(pmultiplier<=1|remains<=14+6*talent.razor_wire+4*!variable.single_target) +# Hacky line for ImpGar Snapshotting while the bug exists +actions.core_dot+=/garrote,if=(buff.improved_garrote.up|stealthed.rogue)&(dot.deathmark.ticking&cooldown.vanish.remains>115&dot.garrote.remains<22) # Normal Garrote Maintanence actions.core_dot+=/garrote,if=combo_points.deficit>=1&(pmultiplier<=1|!variable.single_target)&refreshable&target.time_to_die-remains>12 # Cycle Garrote without Crimson Tempest @@ -81,7 +83,7 @@ actions.spend=envenom,if=buff.implacable_tracker.stack<4 # Envenom if we are going to overcap on energy actions.spend+=/envenom,if=energy.pct>70|fight_remains<15 -# Vanish list Single Target vanish check to line up improved garrote with Deathmark, making sure there are no adds soon -actions.vanish=vanish,if=variable.single_target&talent.improved_garrote&dot.garrote.pmultiplier<=1&(cooldown.deathmark.remains<5|cooldown.deathmark.remains>target.time_to_die-10)&!raid_event.adds.in<=30 +# Vanish list Single Target vanish check to line up improved garrote with Deathmark, making sure there are no adds soon. TODO Check after ImpGar fixes +actions.vanish=vanish,if=variable.single_target&talent.improved_garrote&dot.garrote.pmultiplier<=1&(dot.deathmark.ticking|cooldown.deathmark.remains>target.time_to_die-10)&!raid_event.adds.in<=30 # AoE vanish check to spread improved garrote in multitarget actions.vanish+=/vanish,if=!variable.single_target&talent.improved_garrote&dot.garrote.pmultiplier<=1&(raid_event.adds.remains>=10|!raid_event.adds.in<=30) \ No newline at end of file