actions.precombat+=/apply_poison # Default Roll the Bones reroll rule: reroll for any buffs that aren't Buried Treasure, excluding Grand Melee in single target actions.precombat+=/variable,name=rtb_reroll,value=rtb_buffs.will_lose=(rtb_buffs.will_lose.buried_treasure+(rtb_buffs.will_lose.grand_melee&spell_targets.blade_flurry<2&raid_event.adds.in>10)) # Crackshot builds without T31 should reroll for True Bearing (or Broadside without Hidden Opportunity) if we won't lose over 1 buff actions.precombat+=/variable,name=rtb_reroll,if=talent.crackshot&!set_bonus.tier31_4pc,value=(!rtb_buffs.will_lose.true_bearing&talent.hidden_opportunity|!rtb_buffs.will_lose.broadside&!talent.hidden_opportunity)&rtb_buffs.will_lose<=1 # Crackshot builds with T31 should reroll if we won't lose over 1 buff (2 with Loaded Dice) actions.precombat+=/variable,name=rtb_reroll,if=talent.crackshot&set_bonus.tier31_4pc,value=(rtb_buffs.will_lose<=1+buff.loaded_dice.up) # Hidden Opportunity builds without Crackshot should reroll for Skull and Crossbones or any 2 buffs excluding Grand Melee in single target actions.precombat+=/variable,name=rtb_reroll,if=!talent.crackshot&talent.hidden_opportunity,value=!rtb_buffs.will_lose.skull_and_crossbones&(rtb_buffs.will_lose<2+rtb_buffs.will_lose.grand_melee&spell_targets.blade_flurry<2&raid_event.adds.in>10) # Additional reroll rules if all active buffs will not be rolled away, not in stealth, Loaded Dice is active, and we have less than 6 buffs actions.precombat+=/variable,name=rtb_reroll,value=variable.rtb_reroll&rtb_buffs.longer=0|rtb_buffs.normal=0&rtb_buffs.longer>=1&rtb_buffs<6&rtb_buffs.max_remains<=39&!stealthed.all&buff.loaded_dice.up # Avoid rerolls when we will not have time remaining on the fight or add wave to recoup the opportunity cost of the global actions.precombat+=/variable,name=rtb_reroll,op=reset,if=!(raid_event.adds.remains>12|raid_event.adds.up&(raid_event.adds.in-raid_event.adds.remains)<6|target.time_to_die>12)|boss&fight_remains<12 actions.precombat+=/blade_flurry,precombat_seconds=3,if=refreshable&talent.underhanded_upper_hand&!stealthed.mantle actions.precombat+=/stealth actions.precombat+=/adrenaline_rush,precombat_seconds=2,if=settings.use_ld_opener&talent.loaded_dice&(refreshable|buff.roll_the_bones.refreshable&variable.rtb_reroll) actions.precombat+=/roll_the_bones,precombat_seconds=2,if=refreshable&variable.rtb_reroll actions.precombat+=/adrenaline_rush,precombat_seconds=1,if=!settings.use_ld_opener&refreshable&talent.improved_adrenaline_rush actions.precombat+=/slice_and_dice,precombat_seconds=1,if=refreshable # Restealth if possible (no vulnerable enemies in combat) actions+=/stealth # Interrupt on cooldown to allow simming interactions with that actions+=/kick actions+=/shiv,if=debuff.dispellable_enrage.up actions+=/variable,name=ambush_condition,value=(talent.hidden_opportunity|combo_points.deficit>=2+talent.improved_ambush+buff.broadside.up)&energy>=50 # Use finishers if at -1 from max combo points, or -2 in Stealth with Crackshot actions+=/variable,name=finish_condition,value=effective_combo_points>=cp_max_spend-1-(stealthed.all&talent.crackshot) # With multiple targets, this variable is checked to decide whether some CDs should be synced with Blade Flurry actions+=/variable,name=blade_flurry_sync,value=spell_targets.blade_flurry<2&raid_event.adds.in>20|buff.blade_flurry.remains>gcd # Force Roll the Bones to be refreshed when needed if 0 targets are active, as the RTB action in the sublist is not checked actions+=/roll_the_bones,if=rtb_buffs.max_remains<=2&time=0 actions+=/call_action_list,name=cds # High priority stealth list, will fall through if no conditions are met actions+=/call_action_list,name=stealth,strict=1,if=stealthed.all&stealthed.all_remains>settings.stealth_padding actions+=/run_action_list,name=finish,if=variable.finish_condition actions+=/call_action_list,name=build actions+=/arcane_torrent,if=energy.base_deficit>=15+energy.regen actions+=/arcane_pulse actions+=/lights_judgment actions+=/bag_of_tricks # Builders actions.build+=/echoing_reprimand # High priority Ambush for Hidden Opportunity builds actions.build+=/ambush,if=talent.hidden_opportunity&buff.audacity.up # With Audacity + Hidden Opportunity + Fan the Hammer, consume Opportunity to proc Audacity any time Ambush is not available actions.build+=/pistol_shot,if=talent.fan_the_hammer&talent.audacity&talent.hidden_opportunity&buff.opportunity.up&!buff.audacity.up # With Fan the Hammer, consume Opportunity as a higher priority if at max stacks or if it will expire actions.build+=/pistol_shot,if=talent.fan_the_hammer&buff.opportunity.up&(buff.opportunity.stack>=buff.opportunity.max_stack|buff.opportunity.remains<2) # With Fan the Hammer, consume Opportunity if it will not overcap CPs, or with 1 CP at minimum actions.build+=/pistol_shot,if=talent.fan_the_hammer&buff.opportunity.up&(combo_points.deficit>=(1+(talent.quick_draw+buff.broadside.up)*(talent.fan_the_hammer.rank+1))|combo_points<=talent.ruthlessness) # If not using Fan the Hammer, then consume Opportunity based on energy, when it will exactly cap CPs, or when using Quick Draw actions.build+=/pistol_shot,if=!talent.fan_the_hammer&buff.opportunity.up&(energy.base_deficit>energy.regen*1.5|combo_points.deficit<=1+buff.broadside.up|talent.quick_draw.enabled|talent.audacity.enabled&!buff.audacity.up) # Fallback pooling just so Sinister Strike is never casted if Ambush is available for Hidden Opportunity builds actions.build+=/pool_resource,for_next=1 actions.build+=/ambush,if=talent.hidden_opportunity actions.build+=/sinister_strike ## Cooldowns # Use Adrenaline Rush if it is not active and the finisher condition is not met, but Crackshot builds can refresh it with 2cp or lower inside stealth actions.cds+=/adrenaline_rush,if=!buff.adrenaline_rush.up&(!variable.finish_condition|!talent.improved_adrenaline_rush)|stealthed.all&talent.crackshot&talent.improved_adrenaline_rush&combo_points<=2 # Maintain Blade Flurry on 2+ targets, and on single target with Underhanded during Adrenaline Rush actions.cds+=/blade_flurry,if=spell_targets>=2-(talent.underhanded_upper_hand&!stealthed.all&buff.adrenaline_rush.up)&buff.blade_flurry.remains=3&combo_points.deficit=spell_targets+buff.broadside.up|spell_targets>=5) # Use Roll the Bones if reroll conditions are met, or with no buffs, or 2s before buffs expire with T31, or 7s before buffs expire with Vanish/Dance ready actions.cds+=/roll_the_bones,if=variable.rtb_reroll|rtb_buffs=0|rtb_buffs.max_remains<=2&set_bonus.tier31_4pc|rtb_buffs.max_remains<=7&(cooldown.shadow_dance.ready|cooldown.vanish.ready) actions.cds+=/keep_it_rolling,if=!variable.rtb_reroll&rtb_buffs>=3+set_bonus.tier31_4pc&(buff.shadow_dance.down|rtb_buffs>=6) actions.cds+=/ghostly_strike,if=effective_combo_points11&buff.between_the_eyes.up|boss&fight_remains<11 # Manic Grieftorch and Beacon to the Beyond should not be used during stealth and have higher priority than stealth cooldowns actions.cds+=/use_item,name=manic_grieftorch,if=!stealthed.all&buff.between_the_eyes.up|fight_remains<=5 actions.cds+=/use_item,name=beacon_to_the_beyond,if=!stealthed.all&buff.between_the_eyes.up|fight_remains<=5 # Crackshot builds use stealth cooldowns if Between the Eyes is ready actions.cds+=/call_action_list,name=stealth_cds,if=!stealthed.all&(!talent.crackshot|cooldown.between_the_eyes.ready) actions.cds+=/thistle_tea,if=!buff.thistle_tea.up&(energy.base_deficit>=100|fight_remains10|trinket.2.cooldown.remains>10)|cooldown.dragonfire_bomb_dispenser.charges>2|fight_remains<20|!trinket.2.has_cooldown|!trinket.1.has_cooldown) actions.cds+=/use_item,name=stormeaters_boon,if=!stealthed.mantle&(spell_targets.blade_flurry>desired_targets|raid_event.adds.in>60|boss&fight_remains<10) actions.cds+=/use_item,name=windscar_whetstone,if=!stealthed.mantle&(spell_targets.blade_flurry>desired_targets|raid_event.adds.in>60|boss&fight_remains<7) actions.cds+=/trinket1,if=!stealthed.mantle&(buff.between_the_eyes.up|trinket.1.has_stat.any_dps|boss&fight_remains<=20) actions.cds+=/trinket2,if=!stealthed.mantle&(buff.between_the_eyes.up|trinket.2.has_stat.any_dps|boss&fight_remains<=20) actions.cds+=/use_items,if=!stealthed.mantle&(buff.between_the_eyes.up|boss&fight_remains<=20) ## Finishers # Use Between the Eyes to keep the crit buff up, but on cooldown if Improved/Greenskins/T30, and avoid overriding Greenskins actions.finish+=/between_the_eyes,if=!talent.crackshot&(buff.between_the_eyes.remains<4|talent.improved_between_the_eyes|talent.greenskins_wickers|set_bonus.tier30_4pc)&!buff.greenskins_wickers.up # Crackshot builds use Between the Eyes outside of Stealth if we will not enter a Stealth window before the next cast actions.finish+=/between_the_eyes,if=talent.crackshot&cooldown.vanish.true_remains>45&cooldown.shadow_dance.true_remains>12 actions.finish+=/slice_and_dice,if=buff.slice_and_dice.remains=2&buff.blade_flurry.remainsaction.between_the_eyes.cost # 2 Fan the Hammer Crackshot builds can consume Opportunity in stealth with max stacks, Broadside, and low CPs, or with Greenskins active actions.stealth+=/pistol_shot,if=talent.crackshot&talent.fan_the_hammer.rank>=2&buff.opportunity.stack>=6&(buff.broadside.up&combo_points<=1|buff.greenskins_wickers.up)&energy.current>action.between_the_eyes.cost actions.stealth+=/ambush,if=talent.hidden_opportunity&energy.current>action.between_the_eyes.cost # Stealth Cooldowns actions.stealth_cds+=/variable,name=vanish_opportunity_condition,value=!talent.shadow_dance&talent.fan_the_hammer.rank+talent.quick_draw+talent.audacity