From 979879f0fe91df1425bc10d57a860c8acd85a196 Mon Sep 17 00:00:00 2001 From: Eleem Date: Wed, 24 Sep 2025 03:37:58 +0200 Subject: [PATCH] [Subtlety] Aoe APL adjustments - Make the sim function without selecting Flagellation - Adjust Rupture, Shadowstrike and Tornado usage in AoE - Update default profile to use Forge instead of Antenna --- engine/class_modules/apl/apl_rogue.cpp | 38 +++++++++---------- engine/class_modules/apl/rogue/subtlety.simc | 32 ++++++++-------- profiles/TWW3/TWW3_Rogue_Subtlety.simc | 2 +- .../generators/TWW3/TWW3_Generate_Rogue.simc | 2 +- 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/engine/class_modules/apl/apl_rogue.cpp b/engine/class_modules/apl/apl_rogue.cpp index 490ddd7ed06..326b0991e4c 100644 --- a/engine/class_modules/apl/apl_rogue.cpp +++ b/engine/class_modules/apl/apl_rogue.cpp @@ -233,8 +233,8 @@ void outlaw( player_t* p ) build->add_action( "ambush,if=talent.hidden_opportunity" ); build->add_action( "sinister_strike" ); - cds->add_action( "adrenaline_rush,if=!buff.adrenaline_rush.up&(!variable.finish_condition|!talent.improved_adrenaline_rush)|buff.adrenaline_rush.up&talent.improved_adrenaline_rush&combo_points<=2&(cooldown.vanish.charges=0|buff.double_jeopardy.up|!set_bonus.tww3_fatebound_2pc)|fight_remains<2", "Cooldowns Maintain Adrenaline Rush. With Improved AR, recast at low CPs even if already active. With TWW3 Fatebound, attempt to send AR alongside Vanish if there is a Vanish charge available." ); - cds->add_action( "ghostly_strike,if=hero_tree.fatebound&(buff.double_jeopardy.up|fight_remains<2|cooldown.vanish.charges=0|!set_bonus.tww3_fatebound_2pc)|hero_tree.trickster&(combo_points1)", "High priority Ghostly Strike as it is off-gcd. Trickster builds with 1 point in Fan the Hammer prefer not to use it at max CPs." ); + cds->add_action( "adrenaline_rush,if=!buff.adrenaline_rush.up&(!variable.finish_condition|!talent.improved_adrenaline_rush)|buff.adrenaline_rush.up&talent.improved_adrenaline_rush&combo_points<=2&(cooldown.vanish.charges=0|buff.double_jeopardy.up|!set_bonus.tww3_fatebound_2pc)|fight_remains<2", "Cooldowns Maintain Adrenaline Rush. With Improved AR, recast at low CPs even if already active. TWW3 Fatebound attempts to send AR alongside Vanish if there is a charge available." ); + cds->add_action( "ghostly_strike,if=hero_tree.fatebound&(buff.double_jeopardy.up|fight_remains<2|cooldown.vanish.charges=0|!set_bonus.tww3_fatebound_2pc)|hero_tree.trickster&(combo_points1)", "High priority Ghostly Strike as it is off-gcd. Trickster 1FTH builds don't use at max CPs. TWW3 Fatebound attempts to send alongside Vanish if there is a charge available." ); cds->add_action( "sprint,if=(trinket.1.is.scroll_of_momentum|trinket.2.is.scroll_of_momentum)&buff.full_momentum.up", "Use Sprint to further benefit from the Scroll of Momentum trinket." ); cds->add_action( "blade_flurry,if=spell_targets>=2&buff.blade_flurry.remainsadd_action( "keep_it_rolling,if=rtb_buffs>=4&rtb_buffs.normal<=2|rtb_buffs.normal>=5&rtb_buffs=6", "Use Keep it Rolling immediately with any 4 RTB buffs. If a natural 5 buff is rolled, then wait until the final 6th buff is obtained from Count the Odds." ); @@ -281,7 +281,7 @@ void outlaw( player_t* p ) stealth->add_action( "ambush,if=talent.hidden_opportunity" ); vanish->add_action( "vanish,if=set_bonus.tww3_fatebound_2pc&cooldown.ghostly_strike.ready&talent.ghostly_strike", "Vanish usage for standard builds TWW3 Fatebound always attempts to align Vanish with Ghostly Strike." ); - vanish->add_action( "vanish,if=(hero_tree.fatebound|!talent.killing_spree)&(!cooldown.between_the_eyes.ready&buff.ruthless_precision.remains>4|buff.supercharge_1.up)&(!set_bonus.tww3_fatebound_2pc|!talent.ghostly_strike)", "Fatebound without TWW3, or builds without Killing Spree attempt to hold Vanish for when BtE is on cooldown and Ruthless Precision is active." ); + vanish->add_action( "vanish,if=(hero_tree.fatebound|!talent.killing_spree)&(!cooldown.between_the_eyes.ready&buff.ruthless_precision.remains>4|buff.supercharge_1.up)&(!set_bonus.tww3_fatebound_2pc|!talent.ghostly_strike)", "Fatebound without TWW3, or builds without Killing Spree attempt to hold Vanish for when BtE is on cooldown and Ruthless Precision is active, or Supercharger becomes active." ); vanish->add_action( "vanish,if=hero_tree.trickster&talent.killing_spree&cooldown.killing_spree.remains>30&(time-action.coup_de_grace.last_used<=10|!set_bonus.tww3_trickster_4pc)", "Trickster builds with Killing Spree should Vanish if Killing Spree is not up soon. With TWW3 Trickster, attempt to align Vanish with a recently used Coup de Grace." ); vanish->add_action( "vanish,if=cooldown.vanish.full_recharge_time<15&(!set_bonus.tww3_fatebound_2pc|!talent.ghostly_strike)|fight_remainsadd_action( "stealth" ); default_->add_action( "variable,name=stealth,value=buff.shadow_dance.up|buff.stealth.up|buff.vanish.up", "Variables" ); default_->add_action( "variable,name=targets,value=spell_targets.shuriken_storm" ); - default_->add_action( "variable,name=skip_rupture,value=buff.shadow_dance.up|buff.darkest_night.up|variable.targets>=4&(!talent.replicating_shadows&talent.unseen_blade|raid_event.adds.up)" ); + default_->add_action( "variable,name=skip_rupture,value=buff.shadow_dance.up|buff.darkest_night.up|variable.targets>=4&(!talent.replicating_shadows&talent.unseen_blade|raid_event.adds.up|buff.flagellation_buff.up&(fight_remains%%90<30|!talent.shuriken_tornado))" ); default_->add_action( "variable,name=maintenance,value=(dot.rupture.ticking|variable.skip_rupture)&(buff.slice_and_dice.up|variable.targets<=2)" ); default_->add_action( "variable,name=secret,value=buff.shadow_dance.up&!buff.darkest_night.up|(cooldown.flagellation.remains<60&cooldown.flagellation.remains>30&talent.death_perception&talent.unseen_blade)" ); default_->add_action( "variable,name=racial_sync,value=(buff.shadow_blades.up&buff.shadow_dance.up)|!talent.shadow_blades&buff.symbols_of_death.up|fight_remains<20" ); @@ -323,8 +323,8 @@ void subtlety( player_t* p ) default_->add_action( "call_action_list,name=build", "Combo Point Builder" ); default_->add_action( "call_action_list,name=fill,if=!variable.stealth", "Filler, Spells used if you can use nothing else." ); - cds->add_action( "cold_blood,if=cooldown.secret_technique.up&buff.shadow_dance.up&combo_points>=6&variable.secret&(buff.flagellation_persist.up|buff.flagellation_buff.remains<=3)", "Cooldowns" ); - cds->add_action( "potion,if=buff.bloodlust.react|fight_remains<30|buff.flagellation_buff.up" ); + cds->add_action( "cold_blood,if=cooldown.secret_technique.up&buff.shadow_dance.up&combo_points>=6&variable.secret&(buff.flagellation_persist.up|buff.flagellation_buff.remains<=3|!talent.flagellation)", "Cooldowns" ); + cds->add_action( "potion,if=buff.bloodlust.react|fight_remains<30|buff.shadow_blades.up" ); cds->add_action( "symbols_of_death,if=(buff.symbols_of_death.remains<=3.5&variable.maintenance&(variable.targets>1|raid_event.adds.up|!buff.flagellation_buff.up|dot.rupture.remains>=30)&(!talent.flagellation|cooldown.flagellation.remains>=30-15*!talent.death_perception&cooldown.secret_technique.remains<8|!talent.death_perception)|fight_remains<=15)" ); cds->add_action( "shadow_blades,if=variable.maintenance&variable.shd_cp&buff.shadow_dance.up&!buff.premeditation.up" ); cds->add_action( "thistle_tea,if=buff.shadow_dance.remains>4&!buff.thistle_tea.up" ); @@ -339,33 +339,33 @@ void subtlety( player_t* p ) item->add_action( "use_item,name=treacherous_transmitter,if=cooldown.flagellation.remains<=2|fight_remains<=15", "Trinket and Items" ); item->add_action( "do_treacherous_transmitter_task,if=buff.shadow_dance.up|fight_remains<=15" ); item->add_action( "use_item,name=imperfect_ascendancy_serum,use_off_gcd=1,if=dot.rupture.ticking&buff.flagellation_buff.up" ); - item->add_action( "use_item,name=cursed_stone_idol,use_off_gcd=1,if=dot.rupture.remains>=25&buff.flagellation_buff.up|fight_remains<=20" ); - item->add_action( "use_item,name=unyielding_netherprism,use_off_gcd=1,if=buff.shadow_blades.up&(buff.latent_energy.stack>=8+8*(trinket.arazs_ritual_forge.cooldown.ready|!equipped.arazs_ritual_forge)|!equipped.arazs_ritual_forge&fight_remains<=90)|fight_remains<=20" ); item->add_action( "use_item,name=mad_queens_mandate,if=(!talent.lingering_darkness|buff.lingering_darkness.up|equipped.treacherous_transmitter)&(!equipped.treacherous_transmitter|trinket.treacherous_transmitter.cooldown.remains>20)|fight_remains<=15" ); - item->add_action( "use_items,slots=trinket1,if=(variable.trinket_sync_slot=1&(buff.shadow_blades.up|fight_remains<=20)|(variable.trinket_sync_slot=2&(!trinket.2.cooldown.ready&cooldown.shadow_blades.remains>20))|!variable.trinket_sync_slot)" ); - item->add_action( "use_items,slots=trinket2,if=(variable.trinket_sync_slot=2&(buff.shadow_blades.up|fight_remains<=20)|(variable.trinket_sync_slot=1&(!trinket.1.cooldown.ready&cooldown.shadow_blades.remains>20))|!variable.trinket_sync_slot)" ); + item->add_action( "use_item,name=cursed_stone_idol,use_off_gcd=1,if=dot.rupture.remains>=30&(buff.flagellation_buff.up|!talent.flagellation)&buff.latent_energy.stack<=16|fight_remains<=20" ); + item->add_action( "use_item,name=unyielding_netherprism,use_off_gcd=1,if=buff.shadow_blades.up&(buff.latent_energy.stack>=8+8*(trinket.arazs_ritual_forge.cooldown.ready|!equipped.arazs_ritual_forge)|!equipped.arazs_ritual_forge&fight_remains<=90)|fight_remains<=20" ); + item->add_action( "use_items,slots=trinket1,if=(variable.trinket_sync_slot=1&(buff.shadow_blades.up|fight_remains<=20+equipped.unyielding_netherprism*20)|(variable.trinket_sync_slot=2&(!trinket.2.cooldown.ready&cooldown.shadow_blades.remains>20))|!variable.trinket_sync_slot)" ); + item->add_action( "use_items,slots=trinket2,if=(variable.trinket_sync_slot=2&(buff.shadow_blades.up|fight_remains<=20+equipped.unyielding_netherprism*20)|(variable.trinket_sync_slot=1&(!trinket.1.cooldown.ready&cooldown.shadow_blades.remains>20))|!variable.trinket_sync_slot)" ); stealth_cds->add_action( "shadow_dance,if=(variable.shd_cp|!talent.premeditation)&variable.maintenance&(cooldown.secret_technique.remains<=24|talent.the_first_dance&buff.shadow_blades.up)&(buff.symbols_of_death.remains>=6|buff.shadow_blades.remains>=6)|fight_remains<=10", "Shadow Dance, Vanish, Shadowmeld" ); stealth_cds->add_action( "vanish,if=energy>=40&!buff.subterfuge.up&effective_combo_points<=3" ); stealth_cds->add_action( "shadowmeld,if=energy>=40&combo_points.deficit>=3" ); finish->add_action( "secret_technique,if=variable.secret" ); - finish->add_action( "rupture,if=!variable.skip_rupture&(!dot.rupture.ticking|refreshable|buff.flagellation_buff.up&!buff.symbols_of_death.up&variable.targets<=2)&target.time_to_die-remains>6&cooldown.flagellation.remains>=10", "Maintenance Finisher" ); + finish->add_action( "rupture,if=!variable.skip_rupture&(!dot.rupture.ticking|refreshable&cooldown.shadow_blades.remains>=12|buff.flagellation_buff.up&!buff.symbols_of_death.up&variable.targets<=2)&target.time_to_die-remains>6", "Maintenance Finisher" ); finish->add_action( "rupture,cycle_targets=1,if=!variable.skip_rupture&!variable.priority_rotation&target.time_to_die>=(2*combo_points)&refreshable&variable.targets>=2" ); - finish->add_action( "coup_de_grace,if=debuff.fazed.up&cooldown.flagellation.remains>=20|fight_remains<=10", "Direct Damage Finisher" ); + finish->add_action( "coup_de_grace,if=debuff.fazed.up&(cooldown.flagellation.remains>=20|!talent.flagellation)|fight_remains<=10", "Direct Damage Finisher" ); finish->add_action( "black_powder,if=!variable.priority_rotation&variable.maintenance&(((variable.targets>=2&talent.deathstalkers_mark&(!buff.darkest_night.up|buff.shadow_dance.up&variable.targets>=5))|talent.unseen_blade&variable.targets>=4)|action.coup_de_grace.ready&variable.targets>=3)" ); - finish->add_action( "eviscerate,if=cooldown.flagellation.remains>=10|variable.targets>=3" ); + finish->add_action( "eviscerate,if=cooldown.flagellation.remains>=10|!talent.flagellation|variable.targets>=3" ); - build->add_action( "backstab,if=(talent.unseen_blade|variable.targets<=2)&(buff.shadow_dance.up&(buff.premeditation.up|buff.shadow_blades.up)&!used_for_danse|!variable.stealth&buff.shadow_blades.up)" ); - build->add_action( "gloomblade,if=buff.shadow_dance.up&!used_for_danse|!variable.stealth&buff.shadow_blades.up" ); - build->add_action( "shadowstrike,cycle_targets=1,if=debuff.find_weakness.remains<=2&variable.targets=2&talent.unseen_blade|!used_for_danse&!talent.premeditation" ); + build->add_action( "shuriken_tornado,if=(buff.tww3_trickster_4pc.up|buff.escalating_blade.stack=4)&(variable.targets>=4|!buff.shadow_blades.up)" ); + build->add_action( "shuriken_storm,if=(buff.tww3_trickster_4pc.up|buff.escalating_blade.stack=4)&!used_for_danse&(buff.shadow_blades.up|variable.targets>=4)" ); + build->add_action( "backstab,if=(talent.unseen_blade|variable.targets<=2)&(buff.shadow_dance.remains>7&(buff.premeditation.up|buff.shadow_blades.up)&!used_for_danse|!variable.stealth&buff.shadow_blades.up)" ); + build->add_action( "gloomblade,if=(talent.unseen_blade|variable.targets<=2)&(buff.shadow_dance.remains>7&(buff.premeditation.up|buff.shadow_blades.up)&!used_for_danse|!variable.stealth&buff.shadow_blades.up)" ); build->add_action( "shuriken_tornado,if=buff.lingering_darkness.up|talent.deathstalkers_mark&cooldown.shadow_blades.remains>=32&variable.targets>=3" ); - build->add_action( "shuriken_tornado,if=talent.unseen_blade&!buff.stealth.up&((buff.shadow_dance.up&!talent.shadowcraft&variable.targets>=3)|(talent.shadowcraft&variable.targets>=3)|!variable.stealth&variable.targets<=2)&(buff.symbols_of_death.up|!raid_event.adds.up)" ); build->add_action( "shuriken_storm,if=buff.clear_the_witnesses.up&(variable.targets>=2|!buff.symbols_of_death.up)" ); + build->add_action( "shadowstrike,cycle_targets=1,if=debuff.find_weakness.remains<=2&variable.targets>=2&talent.unseen_blade&!variable.priority_rotation" ); build->add_action( "shadowstrike,cycle_targets=1,if=talent.deathstalkers_mark&!debuff.deathstalkers_mark.up&variable.targets>=3&(buff.shadow_blades.up|buff.premeditation.up|talent.the_rotten)" ); build->add_action( "shuriken_storm,if=talent.deathstalkers_mark&variable.targets>=(2+3*buff.shadow_dance.up)" ); - build->add_action( "shuriken_storm,if=talent.unseen_blade&(buff.flawless_form.up&variable.targets>=3&!variable.stealth|buff.silent_storm.up&variable.targets>=5&buff.shadow_dance.up)" ); - build->add_action( "shuriken_storm,if=(buff.tww3_trickster_4pc.up|buff.escalating_blade.stack=4)&!used_for_danse&(buff.shadow_blades.up|variable.targets>=4)" ); + build->add_action( "shuriken_storm,if=talent.unseen_blade&buff.flawless_form.up&variable.targets>=3&!variable.stealth" ); build->add_action( "shadowstrike" ); build->add_action( "goremaws_bite,if=combo_points.deficit>=3" ); build->add_action( "gloomblade" ); diff --git a/engine/class_modules/apl/rogue/subtlety.simc b/engine/class_modules/apl/rogue/subtlety.simc index a783fc172cb..27561517a5c 100644 --- a/engine/class_modules/apl/rogue/subtlety.simc +++ b/engine/class_modules/apl/rogue/subtlety.simc @@ -12,7 +12,7 @@ actions=stealth # Variables actions+=/variable,name=stealth,value=buff.shadow_dance.up|buff.stealth.up|buff.vanish.up actions+=/variable,name=targets,value=spell_targets.shuriken_storm -actions+=/variable,name=skip_rupture,value=buff.shadow_dance.up|buff.darkest_night.up|variable.targets>=4&(!talent.replicating_shadows&talent.unseen_blade|raid_event.adds.up) +actions+=/variable,name=skip_rupture,value=buff.shadow_dance.up|buff.darkest_night.up|variable.targets>=4&(!talent.replicating_shadows&talent.unseen_blade|raid_event.adds.up|buff.flagellation_buff.up&(fight_remains%%90<30|!talent.shuriken_tornado)) actions+=/variable,name=maintenance,value=(dot.rupture.ticking|variable.skip_rupture)&(buff.slice_and_dice.up|variable.targets<=2) actions+=/variable,name=secret,value=buff.shadow_dance.up&!buff.darkest_night.up|(cooldown.flagellation.remains<60&cooldown.flagellation.remains>30&talent.death_perception&talent.unseen_blade) actions+=/variable,name=racial_sync,value=(buff.shadow_blades.up&buff.shadow_dance.up)|!talent.shadow_blades&buff.symbols_of_death.up|fight_remains<20 @@ -33,8 +33,8 @@ actions+=/call_action_list,name=build actions+=/call_action_list,name=fill,if=!variable.stealth # Cooldowns -actions.cds=cold_blood,if=cooldown.secret_technique.up&buff.shadow_dance.up&combo_points>=6&variable.secret&(buff.flagellation_persist.up|buff.flagellation_buff.remains<=3) -actions.cds+=/potion,if=buff.bloodlust.react|fight_remains<30|buff.flagellation_buff.up +actions.cds=cold_blood,if=cooldown.secret_technique.up&buff.shadow_dance.up&combo_points>=6&variable.secret&(buff.flagellation_persist.up|buff.flagellation_buff.remains<=3|!talent.flagellation) +actions.cds+=/potion,if=buff.bloodlust.react|fight_remains<30|buff.shadow_blades.up actions.cds+=/symbols_of_death,if=(buff.symbols_of_death.remains<=3.5&variable.maintenance&(variable.targets>1|raid_event.adds.up|!buff.flagellation_buff.up|dot.rupture.remains>=30)&(!talent.flagellation|cooldown.flagellation.remains>=30-15*!talent.death_perception&cooldown.secret_technique.remains<8|!talent.death_perception)|fight_remains<=15) actions.cds+=/shadow_blades,if=variable.maintenance&variable.shd_cp&buff.shadow_dance.up&!buff.premeditation.up actions.cds+=/thistle_tea,if=buff.shadow_dance.remains>4&!buff.thistle_tea.up @@ -51,11 +51,11 @@ actions.race+=/invoke_external_buff,name=power_infusion,if=buff.shadow_dance.up actions.item=use_item,name=treacherous_transmitter,if=cooldown.flagellation.remains<=2|fight_remains<=15 actions.item+=/do_treacherous_transmitter_task,if=buff.shadow_dance.up|fight_remains<=15 actions.item+=/use_item,name=imperfect_ascendancy_serum,use_off_gcd=1,if=dot.rupture.ticking&buff.flagellation_buff.up -actions.item+=/use_item,name=cursed_stone_idol,use_off_gcd=1,if=dot.rupture.remains>=25&buff.flagellation_buff.up|fight_remains<=20 -actions.item+=/use_item,name=unyielding_netherprism,use_off_gcd=1,if=buff.shadow_blades.up&(buff.latent_energy.stack>=8+8*(trinket.arazs_ritual_forge.cooldown.ready|!equipped.arazs_ritual_forge)|!equipped.arazs_ritual_forge&fight_remains<=90)|fight_remains<=20 actions.item+=/use_item,name=mad_queens_mandate,if=(!talent.lingering_darkness|buff.lingering_darkness.up|equipped.treacherous_transmitter)&(!equipped.treacherous_transmitter|trinket.treacherous_transmitter.cooldown.remains>20)|fight_remains<=15 -actions.item+=/use_items,slots=trinket1,if=(variable.trinket_sync_slot=1&(buff.shadow_blades.up|fight_remains<=20)|(variable.trinket_sync_slot=2&(!trinket.2.cooldown.ready&cooldown.shadow_blades.remains>20))|!variable.trinket_sync_slot) -actions.item+=/use_items,slots=trinket2,if=(variable.trinket_sync_slot=2&(buff.shadow_blades.up|fight_remains<=20)|(variable.trinket_sync_slot=1&(!trinket.1.cooldown.ready&cooldown.shadow_blades.remains>20))|!variable.trinket_sync_slot) +actions.item+=/use_item,name=cursed_stone_idol,use_off_gcd=1,if=dot.rupture.remains>=30&(buff.flagellation_buff.up|!talent.flagellation)&buff.latent_energy.stack<=16|fight_remains<=20 +actions.item+=/use_item,name=unyielding_netherprism,use_off_gcd=1,if=buff.shadow_blades.up&(buff.latent_energy.stack>=8+8*(trinket.arazs_ritual_forge.cooldown.ready|!equipped.arazs_ritual_forge)|!equipped.arazs_ritual_forge&fight_remains<=90)|fight_remains<=20 +actions.item+=/use_items,slots=trinket1,if=(variable.trinket_sync_slot=1&(buff.shadow_blades.up|fight_remains<=20+equipped.unyielding_netherprism*20)|(variable.trinket_sync_slot=2&(!trinket.2.cooldown.ready&cooldown.shadow_blades.remains>20))|!variable.trinket_sync_slot) +actions.item+=/use_items,slots=trinket2,if=(variable.trinket_sync_slot=2&(buff.shadow_blades.up|fight_remains<=20+equipped.unyielding_netherprism*20)|(variable.trinket_sync_slot=1&(!trinket.1.cooldown.ready&cooldown.shadow_blades.remains>20))|!variable.trinket_sync_slot) # Shadow Dance, Vanish, Shadowmeld actions.stealth_cds=shadow_dance,if=(variable.shd_cp|!talent.premeditation)&variable.maintenance&(cooldown.secret_technique.remains<=24|talent.the_first_dance&buff.shadow_blades.up)&(buff.symbols_of_death.remains>=6|buff.shadow_blades.remains>=6)|fight_remains<=10 @@ -64,23 +64,23 @@ actions.stealth_cds+=/shadowmeld,if=energy>=40&combo_points.deficit>=3 actions.finish=secret_technique,if=variable.secret # Maintenance Finisher -actions.finish+=/rupture,if=!variable.skip_rupture&(!dot.rupture.ticking|refreshable|buff.flagellation_buff.up&!buff.symbols_of_death.up&variable.targets<=2)&target.time_to_die-remains>6&cooldown.flagellation.remains>=10 +actions.finish+=/rupture,if=!variable.skip_rupture&(!dot.rupture.ticking|refreshable&cooldown.shadow_blades.remains>=12|buff.flagellation_buff.up&!buff.symbols_of_death.up&variable.targets<=2)&target.time_to_die-remains>6 actions.finish+=/rupture,cycle_targets=1,if=!variable.skip_rupture&!variable.priority_rotation&target.time_to_die>=(2*combo_points)&refreshable&variable.targets>=2 # Direct Damage Finisher -actions.finish+=/coup_de_grace,if=debuff.fazed.up&cooldown.flagellation.remains>=20|fight_remains<=10 +actions.finish+=/coup_de_grace,if=debuff.fazed.up&(cooldown.flagellation.remains>=20|!talent.flagellation)|fight_remains<=10 actions.finish+=/black_powder,if=!variable.priority_rotation&variable.maintenance&(((variable.targets>=2&talent.deathstalkers_mark&(!buff.darkest_night.up|buff.shadow_dance.up&variable.targets>=5))|talent.unseen_blade&variable.targets>=4)|action.coup_de_grace.ready&variable.targets>=3) -actions.finish+=/eviscerate,if=cooldown.flagellation.remains>=10|variable.targets>=3 +actions.finish+=/eviscerate,if=cooldown.flagellation.remains>=10|!talent.flagellation|variable.targets>=3 -actions.build=backstab,if=(talent.unseen_blade|variable.targets<=2)&(buff.shadow_dance.up&(buff.premeditation.up|buff.shadow_blades.up)&!used_for_danse|!variable.stealth&buff.shadow_blades.up) -actions.build+=/gloomblade,if=buff.shadow_dance.up&!used_for_danse|!variable.stealth&buff.shadow_blades.up -actions.build+=/shadowstrike,cycle_targets=1,if=debuff.find_weakness.remains<=2&variable.targets=2&talent.unseen_blade|!used_for_danse&!talent.premeditation +actions.build=shuriken_tornado,if=(buff.tww3_trickster_4pc.up|buff.escalating_blade.stack=4)&(variable.targets>=4|!buff.shadow_blades.up) +actions.build+=/shuriken_storm,if=(buff.tww3_trickster_4pc.up|buff.escalating_blade.stack=4)&!used_for_danse&(buff.shadow_blades.up|variable.targets>=4) +actions.build+=/backstab,if=(talent.unseen_blade|variable.targets<=2)&(buff.shadow_dance.remains>7&(buff.premeditation.up|buff.shadow_blades.up)&!used_for_danse|!variable.stealth&buff.shadow_blades.up) +actions.build+=/gloomblade,if=(talent.unseen_blade|variable.targets<=2)&(buff.shadow_dance.remains>7&(buff.premeditation.up|buff.shadow_blades.up)&!used_for_danse|!variable.stealth&buff.shadow_blades.up) actions.build+=/shuriken_tornado,if=buff.lingering_darkness.up|talent.deathstalkers_mark&cooldown.shadow_blades.remains>=32&variable.targets>=3 -actions.build+=/shuriken_tornado,if=talent.unseen_blade&!buff.stealth.up&((buff.shadow_dance.up&!talent.shadowcraft&variable.targets>=3)|(talent.shadowcraft&variable.targets>=3)|!variable.stealth&variable.targets<=2)&(buff.symbols_of_death.up|!raid_event.adds.up) actions.build+=/shuriken_storm,if=buff.clear_the_witnesses.up&(variable.targets>=2|!buff.symbols_of_death.up) +actions.build+=/shadowstrike,cycle_targets=1,if=debuff.find_weakness.remains<=2&variable.targets>=2&talent.unseen_blade&!variable.priority_rotation actions.build+=/shadowstrike,cycle_targets=1,if=talent.deathstalkers_mark&!debuff.deathstalkers_mark.up&variable.targets>=3&(buff.shadow_blades.up|buff.premeditation.up|talent.the_rotten) actions.build+=/shuriken_storm,if=talent.deathstalkers_mark&variable.targets>=(2+3*buff.shadow_dance.up) -actions.build+=/shuriken_storm,if=talent.unseen_blade&(buff.flawless_form.up&variable.targets>=3&!variable.stealth|buff.silent_storm.up&variable.targets>=5&buff.shadow_dance.up) -actions.build+=/shuriken_storm,if=(buff.tww3_trickster_4pc.up|buff.escalating_blade.stack=4)&!used_for_danse&(buff.shadow_blades.up|variable.targets>=4) +actions.build+=/shuriken_storm,if=talent.unseen_blade&buff.flawless_form.up&variable.targets>=3&!variable.stealth actions.build+=/shadowstrike actions.build+=/goremaws_bite,if=combo_points.deficit>=3 actions.build+=/gloomblade diff --git a/profiles/TWW3/TWW3_Rogue_Subtlety.simc b/profiles/TWW3/TWW3_Rogue_Subtlety.simc index 62a72c15605..eb4ba0e15ec 100644 --- a/profiles/TWW3/TWW3_Rogue_Subtlety.simc +++ b/profiles/TWW3/TWW3_Rogue_Subtlety.simc @@ -126,7 +126,7 @@ legs=pants_of_the_sudden_eclipse,id=237663,bonus_id=12676/1533/12361,enchant=sto feet=interlopers_reinforced_sandals,id=243306,bonus_id=1533/12361/12239/13504 finger1=high_nerubian_signet,id=221141,bonus_id=3215/12361/12239/8781,gem_id=213497/213497,enchant=radiant_versatility_3 finger2=logic_gate_alpha,id=237567,bonus_id=1533/12361/12239/8781,gem_id=213497/213497,enchant=radiant_versatility_3 -trinket1=astral_antenna,id=242395,bonus_id=1533/12361/12239 +trinket1=arazs_ritual_forge,id=242402,bonus_id=1533/12361/12239 trinket2=unyielding_netherprism,id=242396,bonus_id=1533/12361/12239 main_hand=vengeful_netherspike,id=237740,bonus_id=1533/12361/12239,enchant=stonebound_artistry_3 off_hand=prodigious_gene_splicer,id=237729,bonus_id=1533/12361/12239,enchant=oathsworns_tenacity_3 diff --git a/profiles/generators/TWW3/TWW3_Generate_Rogue.simc b/profiles/generators/TWW3/TWW3_Generate_Rogue.simc index 6d203b0fede..6fd41dffbfe 100644 --- a/profiles/generators/TWW3/TWW3_Generate_Rogue.simc +++ b/profiles/generators/TWW3/TWW3_Generate_Rogue.simc @@ -104,7 +104,7 @@ legs=,id=237663,bonus_id=12676/1533/12361,enchant=stormbound_armor_kit_3 feet=,id=243306,bonus_id=1533/12361/12239/13504 finger1=,id=221141,bonus_id=3215/12361/12239/8781,enchant=radiant_versatility_3,gem_id=213497/213497 finger2=,id=237567,bonus_id=1533/12361/12239/8781,enchant=radiant_versatility_3,gem_id=213497/213497 -trinket1=,id=242395,bonus_id=1533/12361/12239 +trinket1=,id=242402,bonus_id=1533/12361/12239 trinket2=,id=242396,bonus_id=1533/12361/12239 main_hand=,id=237740,bonus_id=1533/12361/12239,enchant=stonebound_artistry_3 off_hand=,id=237729,bonus_id=1533/12361/12239,enchant=oathsworns_tenacity_3