rogue="T23_Rogue_Assassination"
source=default
spec=assassination
level=120
race=troll
role=attack
position=back
talents=2310021

# Default consumables
potion=battle_potion_of_agility
flask=currents
food=bountiful_captains_feast
augmentation=battle_scarred

# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
# SimulationCraft is always looking for updates and improvements to the default action lists.

# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=flask
actions.precombat+=/augmentation
actions.precombat+=/food
# Snapshot raid buffed stats before combat begins and pre-potting is done.
actions.precombat+=/snapshot_stats
actions.precombat+=/apply_poison
actions.precombat+=/stealth
actions.precombat+=/potion
actions.precombat+=/marked_for_death,precombat_seconds=5,if=raid_event.adds.in>15

# Executed every time the actor is available.
# Restealth if possible (no vulnerable enemies in combat)
actions=stealth
actions+=/variable,name=energy_regen_combined,value=energy.regen+poisoned_bleeds*7%(2*spell_haste)
actions+=/variable,name=single_target,value=spell_targets.fan_of_knives<2
actions+=/call_action_list,name=stealthed,if=stealthed.rogue
actions+=/call_action_list,name=cds
actions+=/call_action_list,name=dot
actions+=/call_action_list,name=direct
actions+=/arcane_torrent,if=energy.deficit>=15+variable.energy_regen_combined
actions+=/arcane_pulse
actions+=/lights_judgment

# Cooldowns
actions.cds=potion,if=buff.bloodlust.react|debuff.vendetta.up
actions.cds+=/use_item,name=lustrous_golden_plumage,if=debuff.vendetta.up
# Default Trinket usage: Use on cooldown.
actions.cds+=/use_item,name=variable_intensity_gigavolt_oscillating_reactor
actions.cds+=/blood_fury,if=debuff.vendetta.up
actions.cds+=/berserking,if=debuff.vendetta.up
actions.cds+=/fireblood,if=debuff.vendetta.up
actions.cds+=/ancestral_call,if=debuff.vendetta.up
# If adds are up, snipe the one with lowest TTD. Use when dying faster than CP deficit or without any CP.
actions.cds+=/marked_for_death,target_if=min:target.time_to_die,if=raid_event.adds.up&(target.time_to_die<combo_points.deficit*1.5|combo_points.deficit>=cp_max_spend)
# If no adds will die within the next 30s, use MfD on boss without any CP.
actions.cds+=/marked_for_death,if=raid_event.adds.in>30-raid_event.adds.duration&combo_points.deficit>=cp_max_spend
actions.cds+=/vendetta,if=!stealthed.rogue&dot.rupture.ticking&(!talent.subterfuge.enabled|!azerite.shrouded_suffocation.enabled|dot.garrote.pmultiplier>1&(spell_targets.fan_of_knives<6|!cooldown.vanish.up))&(!talent.nightstalker.enabled|!talent.exsanguinate.enabled|cooldown.exsanguinate.remains<5-2*talent.deeper_stratagem.enabled)
# Vanish with Exsg + (Nightstalker, or Subterfuge only on 1T): Maximum CP and Exsg ready for next GCD
actions.cds+=/vanish,if=talent.exsanguinate.enabled&(talent.nightstalker.enabled|talent.subterfuge.enabled&variable.single_target)&combo_points>=cp_max_spend&cooldown.exsanguinate.remains<1&(!talent.subterfuge.enabled|!azerite.shrouded_suffocation.enabled|dot.garrote.pmultiplier<=1)
# Vanish with Nightstalker + No Exsg: Maximum CP and Vendetta up
actions.cds+=/vanish,if=talent.nightstalker.enabled&!talent.exsanguinate.enabled&combo_points>=cp_max_spend&debuff.vendetta.up
# See full comment on https://github.com/Ravenholdt-TC/Rogue/wiki/Assassination-APL-Research.
actions.cds+=/variable,name=ss_vanish_condition,value=azerite.shrouded_suffocation.enabled&(non_ss_buffed_targets>=1|spell_targets.fan_of_knives=3)&(ss_buffed_targets_above_pandemic=0|spell_targets.fan_of_knives>=6)
actions.cds+=/pool_resource,for_next=1,extra_amount=45
actions.cds+=/vanish,if=talent.subterfuge.enabled&!stealthed.rogue&cooldown.garrote.up&(variable.ss_vanish_condition|!azerite.shrouded_suffocation.enabled&dot.garrote.refreshable)&combo_points.deficit>=((1+2*azerite.shrouded_suffocation.enabled)*spell_targets.fan_of_knives)>?4&raid_event.adds.in>12
# Vanish with Master Assasin: No stealth and no active MA buff, Rupture not in refresh range
actions.cds+=/vanish,if=talent.master_assassin.enabled&!stealthed.all&master_assassin_remains<=0&!dot.rupture.refreshable&dot.garrote.remains>3
# Shadowmeld for Shrouded Suffocation
actions.cds+=/shadowmeld,if=!stealthed.all&azerite.shrouded_suffocation.enabled&dot.garrote.refreshable&dot.garrote.pmultiplier<=1&combo_points.deficit>=1
# Exsanguinate when both Rupture and Garrote are up for long enough
actions.cds+=/exsanguinate,if=dot.rupture.remains>4+4*cp_max_spend&!dot.garrote.refreshable
actions.cds+=/toxic_blade,if=dot.rupture.ticking

# Direct damage abilities
# Envenom at 4+ (5+ with DS) CP. Immediately on 2+ targets, with Vendetta, or with TB; otherwise wait for some energy. Also wait if Exsg combo is coming up.
actions.direct=envenom,if=combo_points>=4+talent.deeper_stratagem.enabled&(debuff.vendetta.up|debuff.toxic_blade.up|energy.deficit<=25+variable.energy_regen_combined|!variable.single_target)&(!talent.exsanguinate.enabled|cooldown.exsanguinate.remains>2)
actions.direct+=/variable,name=use_filler,value=combo_points.deficit>1|energy.deficit<=25+variable.energy_regen_combined|!variable.single_target
# With Echoing Blades, Fan of Knives at 2+ targets.
actions.direct+=/fan_of_knives,if=variable.use_filler&azerite.echoing_blades.enabled&spell_targets.fan_of_knives>=2
# Fan of Knives at 19+ stacks of Hidden Blades or against 4+ (5+ with Double Dose) targets.
actions.direct+=/fan_of_knives,if=variable.use_filler&(buff.hidden_blades.stack>=19|spell_targets.fan_of_knives>=4+(azerite.double_dose.rank>2)+stealthed.rogue)
# Fan of Knives to apply Deadly Poison if inactive on any target at 3 targets.
actions.direct+=/fan_of_knives,target_if=!dot.deadly_poison_dot.ticking,if=variable.use_filler&spell_targets.fan_of_knives>=3
actions.direct+=/blindside,if=variable.use_filler&(buff.blindside.up|!talent.venom_rush.enabled&!azerite.double_dose.enabled)
# Tab-Mutilate to apply Deadly Poison at 2 targets
actions.direct+=/mutilate,target_if=!dot.deadly_poison_dot.ticking,if=variable.use_filler&spell_targets.fan_of_knives=2
actions.direct+=/mutilate,if=variable.use_filler

# Damage over time abilities
# Special Rupture setup for Exsg
actions.dot=rupture,if=talent.exsanguinate.enabled&((combo_points>=cp_max_spend&cooldown.exsanguinate.remains<1)|(!ticking&(time>10|combo_points>=2)))
# Garrote upkeep, also tries to use it as a special generator for the last CP before a finisher
actions.dot+=/pool_resource,for_next=1
actions.dot+=/garrote,cycle_targets=1,if=(!talent.subterfuge.enabled|!(cooldown.vanish.up&cooldown.vendetta.remains<=4))&combo_points.deficit>=1+3*(azerite.shrouded_suffocation.enabled&cooldown.vanish.up)&refreshable&(pmultiplier<=1|remains<=tick_time&spell_targets.fan_of_knives>=3+azerite.shrouded_suffocation.enabled)&(!exsanguinated|remains<=tick_time*2&spell_targets.fan_of_knives>=3+azerite.shrouded_suffocation.enabled)&!ss_buffed&(target.time_to_die-remains>4&spell_targets.fan_of_knives<=1|target.time_to_die-remains>12)&(master_assassin_remains=0|!ticking)
# Crimson Tempest only on multiple targets at 4+ CP when running out in 2s (up to 4 targets) or 3s (5+ targets)
actions.dot+=/crimson_tempest,if=spell_targets>=2&remains<2+(spell_targets>=5)&combo_points>=4
# Keep up Rupture at 4+ on all targets (when living long enough and not snapshot)
actions.dot+=/rupture,cycle_targets=1,if=combo_points>=4&refreshable&(pmultiplier<=1|remains<=tick_time&spell_targets.fan_of_knives>=3+azerite.shrouded_suffocation.enabled)&(!exsanguinated|remains<=tick_time*2&spell_targets.fan_of_knives>=3+azerite.shrouded_suffocation.enabled)&target.time_to_die-remains>4

# Stealthed Actions
# Nighstalker, or Subt+Exsg on 1T: Snapshot Rupture
actions.stealthed=rupture,if=combo_points>=4&(talent.nightstalker.enabled|talent.subterfuge.enabled&(talent.exsanguinate.enabled&cooldown.exsanguinate.remains<=2|!ticking)&variable.single_target)&target.time_to_die-remains>6
# Subterfuge + Shrouded Suffocation: Ensure we use one global to apply Garrote to the main target if it is not snapshot yet, so all other main target abilities profit.
actions.stealthed+=/pool_resource,for_next=1
actions.stealthed+=/garrote,if=azerite.shrouded_suffocation.enabled&buff.subterfuge.up&buff.subterfuge.remains<1.3&!ss_buffed
# Subterfuge: Apply or Refresh with buffed Garrotes
actions.stealthed+=/pool_resource,for_next=1
actions.stealthed+=/garrote,target_if=min:remains,if=talent.subterfuge.enabled&(remains<12|pmultiplier<=1)&target.time_to_die-remains>2
# Subterfuge + Shrouded Suffocation in ST: Apply early Rupture that will be refreshed for pandemic
actions.stealthed+=/rupture,if=talent.subterfuge.enabled&azerite.shrouded_suffocation.enabled&!dot.rupture.ticking&variable.single_target
# Subterfuge w/ Shrouded Suffocation: Reapply for bonus CP and/or extended snapshot duration, excepton with EB on 2T.
actions.stealthed+=/pool_resource,for_next=1
actions.stealthed+=/garrote,target_if=min:remains,if=talent.subterfuge.enabled&azerite.shrouded_suffocation.enabled&target.time_to_die>remains&(remains<18|!ss_buffed)
# Subterfuge + Exsg: Even override a snapshot Garrote right after Rupture before Exsanguination
actions.stealthed+=/pool_resource,for_next=1
actions.stealthed+=/garrote,if=talent.subterfuge.enabled&talent.exsanguinate.enabled&cooldown.exsanguinate.remains<1&prev_gcd.1.rupture&dot.rupture.remains>5+4*cp_max_spend

head=cowl_of_righteous_resolve,id=165519,bonus_id=4824/1537/4775,azerite_powers=136/249/30/13
neck=heart_of_azeroth,id=158075,bonus_id=4929/5814/4936/1566,azerite_level=48
shoulders=gorak_tuls_mantle,id=159339,bonus_id=1587/4819/4775,azerite_powers=136/193/30/13
back=loa_exultants_shroud,id=165512,bonus_id=4800/1537
chest=cephalohide_jacket,id=159314,bonus_id=1587/4819/4775,azerite_powers=136/181/30/13
wrists=amethyststudded_bindings,id=165524,bonus_id=4800/1537
hands=gloves_of_spiritual_grace,id=165514,bonus_id=4800/1537
waist=stretched_sinew_waistcord,id=165525,bonus_id=4800/1537
legs=kelplaced_greaves,id=165528,bonus_id=4800/1537
feet=embossed_deckwalkers,id=165527,bonus_id=4800/1537
finger1=seal_of_the_zandalari_empire,id=165567,bonus_id=4800/1537,enchant=pact_of_haste
finger2=lord_admirals_signet,id=165566,bonus_id=4800/1537,enchant=pact_of_haste
trinket1=lustrous_golden_plumage,id=159617,bonus_id=1572/4780
trinket2=variable_intensity_gigavolt_oscillating_reactor,id=165572,bonus_id=4800/1537
main_hand=greeds_folly,id=165593,bonus_id=4800/1537,enchant=galeforce_striking
off_hand=greeds_folly,id=165593,bonus_id=4800/1537,enchant=quick_navigation

# Gear Summary
# gear_ilvl=415.88
# gear_agility=5767
# gear_stamina=9969
# gear_crit_rating=708
# gear_haste_rating=1398
# gear_mastery_rating=1077
# gear_versatility_rating=214
# gear_armor=2363
# set_bonus=gift_of_the_loa_2pc=1
