|  |  | @ -775,6 +775,7 @@ local GrandMelee            = Bastion.SpellBook:GetSpell(193358) | 
			
		
	
		
		
			
				
					
					|  |  |  | local Broadside             = Bastion.SpellBook:GetSpell(193356) |  |  |  | local Broadside             = Bastion.SpellBook:GetSpell(193356) | 
			
		
	
		
		
			
				
					
					|  |  |  | local TrueBearing           = Bastion.SpellBook:GetSpell(193359) |  |  |  | local TrueBearing           = Bastion.SpellBook:GetSpell(193359) | 
			
		
	
		
		
			
				
					
					|  |  |  | local RuthlessPrecision     = Bastion.SpellBook:GetSpell(193357) |  |  |  | local RuthlessPrecision     = Bastion.SpellBook:GetSpell(193357) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | local DeviousStratagem      = Bastion.SpellBook:GetSpell(193531) | 
			
		
	
		
		
			
				
					
					|  |  |  | local SkullAndCrossbones    = Bastion.SpellBook:GetSpell(199603) |  |  |  | local SkullAndCrossbones    = Bastion.SpellBook:GetSpell(199603) | 
			
		
	
		
		
			
				
					
					|  |  |  | local ShadowFocus           = Bastion.SpellBook:GetSpell(108209) |  |  |  | local ShadowFocus           = Bastion.SpellBook:GetSpell(108209) | 
			
		
	
		
		
			
				
					
					|  |  |  | local BuriedTreasure        = Bastion.SpellBook:GetSpell(199600) |  |  |  | local BuriedTreasure        = Bastion.SpellBook:GetSpell(199600) | 
			
		
	
	
		
		
			
				
					|  |  | @ -1109,7 +1110,7 @@ DefaultAPL:AddVariable( | 
			
		
	
		
		
			
				
					
					|  |  |  |     'snd_condition', |  |  |  |     'snd_condition', | 
			
		
	
		
		
			
				
					
					|  |  |  |     function() |  |  |  |     function() | 
			
		
	
		
		
			
				
					
					|  |  |  |         return Player:GetAuras():FindMy(SliceAndDice):IsUp() or |  |  |  |         return Player:GetAuras():FindMy(SliceAndDice):IsUp() or | 
			
		
	
		
		
			
				
					
					|  |  |  |             Player:GetEnemies(10) >= Player:GetComboPointsMax() |  |  |  |             Player:GetEnemies(10) >= ConsumeCPMax() | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     end |  |  |  |     end | 
			
		
	
		
		
			
				
					
					|  |  |  | ) |  |  |  | ) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -1206,7 +1207,7 @@ DefaultAPL:AddAPL( | 
			
		
	
		
		
			
				
					
					|  |  |  | DefaultAPL:AddSpell( |  |  |  | DefaultAPL:AddSpell( | 
			
		
	
		
		
			
				
					
					|  |  |  |     SliceAndDice:CastableIf( |  |  |  |     SliceAndDice:CastableIf( | 
			
		
	
		
		
			
				
					
					|  |  |  |         function(self) |  |  |  |         function(self) | 
			
		
	
		
		
			
				
					
					|  |  |  |             return self:IsKnownAndUsable() and Player:GetEnemies(10) < Player:GetComboPointsMax() and |  |  |  |             return self:IsKnownAndUsable() and Player:GetEnemies(10) < ConsumeCPMax() and | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 Player:GetAuras():FindMy(SliceAndDice):GetRemainingTime() < Player:GetGCD() and |  |  |  |                 Player:GetAuras():FindMy(SliceAndDice):GetRemainingTime() < Player:GetGCD() and | 
			
		
	
		
		
			
				
					
					|  |  |  |                 Player:GetAuras():FindMy(SliceAndDice):GetRemainingTime() > 6 and |  |  |  |                 Player:GetAuras():FindMy(SliceAndDice):GetRemainingTime() > 6 and | 
			
		
	
		
		
			
				
					
					|  |  |  |                 Player:GetComboPoints() >= 4 |  |  |  |                 Player:GetComboPoints() >= 4 | 
			
		
	
	
		
		
			
				
					|  |  | @ -1257,7 +1258,7 @@ DefaultAPL:AddAPL( | 
			
		
	
		
		
			
				
					
					|  |  |  | DefaultAPL:AddAPL( |  |  |  | DefaultAPL:AddAPL( | 
			
		
	
		
		
			
				
					
					|  |  |  |     FinishAPL, |  |  |  |     FinishAPL, | 
			
		
	
		
		
			
				
					
					|  |  |  |     function() |  |  |  |     function() | 
			
		
	
		
		
			
				
					
					|  |  |  |         return DefaultAPL:GetVariable('effective_combo_points') >= Player:GetComboPointsMax() |  |  |  |         return DefaultAPL:GetVariable('effective_combo_points') >= ConsumeCPMax() | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     end |  |  |  |     end | 
			
		
	
		
		
			
				
					
					|  |  |  | ) |  |  |  | ) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -1345,9 +1346,9 @@ BuildAPL:AddSpell( | 
			
		
	
		
		
			
				
					
					|  |  |  | BuildAPL:AddVariable( |  |  |  | BuildAPL:AddVariable( | 
			
		
	
		
		
			
				
					
					|  |  |  |     'anima_helper', |  |  |  |     'anima_helper', | 
			
		
	
		
		
			
				
					
					|  |  |  |     function() |  |  |  |     function() | 
			
		
	
		
		
			
				
					
					|  |  |  |         return not EchoingReprimand:IsKnown() or (not (DefaultAPL:GetVariable('is_next_cp_animacharged') and |  |  |  |         return not EchoingReprimand:IsKnown() or ((not (DefaultAPL:GetVariable('is_next_cp_animacharged') and | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             (Player:GetTimeToShurikenTornado(3) < 0.5 or Player:GetTimeToShurikenTornado(4) < 1) and |  |  |  |             (Player:GetTimeToShurikenTornado(3) < 0.5 or Player:GetTimeToShurikenTornado(4) < 1) and | 
			
		
	
		
		
			
				
					
					|  |  |  |             Player:GetPower() < 60)) |  |  |  |             Player:GetPower() < 60))) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     end |  |  |  |     end | 
			
		
	
		
		
			
				
					
					|  |  |  | ) |  |  |  | ) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -1387,7 +1388,8 @@ CDsAPL:AddSpell( | 
			
		
	
		
		
			
				
					
					|  |  |  | CDsAPL:AddSpell( |  |  |  | CDsAPL:AddSpell( | 
			
		
	
		
		
			
				
					
					|  |  |  |     SymbolsOfDeath:CastableIf( |  |  |  |     SymbolsOfDeath:CastableIf( | 
			
		
	
		
		
			
				
					
					|  |  |  |         function(self) |  |  |  |         function(self) | 
			
		
	
		
		
			
				
					
					|  |  |  |             return self:IsKnownAndUsable() and Player:GetAuras():FindMy(ShurikenTornado):IsUp() and |  |  |  |             return Player:IsAffectingCombat() and self:IsKnownAndUsable() and | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 Player:GetAuras():FindMy(ShurikenTornado):IsUp() and | 
			
		
	
		
		
			
				
					
					|  |  |  |                 Player:GetAuras():FindMy(ShurikenTornado):GetRemainingTime() <= 3.5 |  |  |  |                 Player:GetAuras():FindMy(ShurikenTornado):GetRemainingTime() <= 3.5 | 
			
		
	
		
		
			
				
					
					|  |  |  |         end |  |  |  |         end | 
			
		
	
		
		
			
				
					
					|  |  |  |     ):SetTarget(Player) |  |  |  |     ):SetTarget(Player) | 
			
		
	
	
		
		
			
				
					|  |  | @ -1590,6 +1592,16 @@ FinishAPL:AddVariable( | 
			
		
	
		
		
			
				
					
					|  |  |  |     end |  |  |  |     end | 
			
		
	
		
		
			
				
					
					|  |  |  | ) |  |  |  | ) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | --     return ( cp + 1 ) * p()->buffs.slice_and_dice->data().duration(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | function GetTriggeredDuration() | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     return (Player:GetComboPoints() + 1) * 6 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | end | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | --         return p()->buffs.slice_and_dice->remains() < get_triggered_duration( as<int>( p()->current_effective_cp( false ) ) ) * 0.3; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | function Refreshable(aura, target) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     return target:GetAuras():FindMy(aura):GetRemainingTime() < GetTriggeredDuration() * 0.3 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | end | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | -- actions.finish+=/slice_and_dice,if=!variable.premed_snd_condition&spell_targets.shuriken_storm<6&!buff.shadow_dance.up&buff.slice_and_dice.remains<fight_remains&refreshable |  |  |  | -- actions.finish+=/slice_and_dice,if=!variable.premed_snd_condition&spell_targets.shuriken_storm<6&!buff.shadow_dance.up&buff.slice_and_dice.remains<fight_remains&refreshable | 
			
		
	
		
		
			
				
					
					|  |  |  | FinishAPL:AddSpell( |  |  |  | FinishAPL:AddSpell( | 
			
		
	
		
		
			
				
					
					|  |  |  |     SliceAndDice:CastableIf( |  |  |  |     SliceAndDice:CastableIf( | 
			
		
	
	
		
		
			
				
					|  |  | @ -1598,7 +1610,7 @@ FinishAPL:AddSpell( | 
			
		
	
		
		
			
				
					
					|  |  |  |                 Player:GetEnemies(10) < 6 and |  |  |  |                 Player:GetEnemies(10) < 6 and | 
			
		
	
		
		
			
				
					
					|  |  |  |                 not Player:GetAuras():FindMy(ShadowDanceAura):IsUp() and |  |  |  |                 not Player:GetAuras():FindMy(ShadowDanceAura):IsUp() and | 
			
		
	
		
		
			
				
					
					|  |  |  |                 Player:GetAuras():FindMy(SliceAndDice):GetRemainingTime() < Target:TimeToDie() and |  |  |  |                 Player:GetAuras():FindMy(SliceAndDice):GetRemainingTime() < Target:TimeToDie() and | 
			
		
	
		
		
			
				
					
					|  |  |  |                 Player:GetAuras():FindMy(SliceAndDice):GetRemainingTime() < 6 |  |  |  |                 Refreshable(SliceAndDice, Player) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         end |  |  |  |         end | 
			
		
	
		
		
			
				
					
					|  |  |  |     ):SetTarget(Player) |  |  |  |     ):SetTarget(Player) | 
			
		
	
		
		
			
				
					
					|  |  |  | ) |  |  |  | ) | 
			
		
	
	
		
		
			
				
					|  |  | @ -1637,7 +1649,7 @@ FinishAPL:AddSpell( | 
			
		
	
		
		
			
				
					
					|  |  |  |                 (not DefaultAPL:GetVariable('skip_rupture') or |  |  |  |                 (not DefaultAPL:GetVariable('skip_rupture') or | 
			
		
	
		
		
			
				
					
					|  |  |  |                     DefaultAPL:GetVariable('priority_rotation')) and |  |  |  |                     DefaultAPL:GetVariable('priority_rotation')) and | 
			
		
	
		
		
			
				
					
					|  |  |  |                 Target:TimeToDie() - Target:GetAuras():FindMy(Rupture):GetRemainingTime() > 6 and |  |  |  |                 Target:TimeToDie() - Target:GetAuras():FindMy(Rupture):GetRemainingTime() > 6 and | 
			
		
	
		
		
			
				
					
					|  |  |  |                 Target:GetAuras():FindMy(Rupture):GetRemainingTime() < 6 |  |  |  |                 Refreshable(Rupture, Target) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         end |  |  |  |         end | 
			
		
	
		
		
			
				
					
					|  |  |  |     ):SetTarget(Target) |  |  |  |     ):SetTarget(Target) | 
			
		
	
		
		
			
				
					
					|  |  |  | ) |  |  |  | ) | 
			
		
	
	
		
		
			
				
					|  |  | @ -1694,7 +1706,7 @@ FinishAPL:AddSpell( | 
			
		
	
		
		
			
				
					
					|  |  |  |                 not DefaultAPL:GetVariable('priority_rotation') and |  |  |  |                 not DefaultAPL:GetVariable('priority_rotation') and | 
			
		
	
		
		
			
				
					
					|  |  |  |                 Player:GetEnemies(10) >= 2 and |  |  |  |                 Player:GetEnemies(10) >= 2 and | 
			
		
	
		
		
			
				
					
					|  |  |  |                 RuptureTarget:TimeToDie() >= (2 * Player:GetComboPoints()) and |  |  |  |                 RuptureTarget:TimeToDie() >= (2 * Player:GetComboPoints()) and | 
			
		
	
		
		
			
				
					
					|  |  |  |                 RuptureTarget:GetAuras():FindMy(Rupture):GetRemainingTime() < 6 |  |  |  |                 Refreshable(Rupture, RuptureTarget) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         end |  |  |  |         end | 
			
		
	
		
		
			
				
					
					|  |  |  |     ):SetTarget(RuptureTarget) |  |  |  |     ):SetTarget(RuptureTarget) | 
			
		
	
		
		
			
				
					
					|  |  |  | ) |  |  |  | ) | 
			
		
	
	
		
		
			
				
					|  |  | @ -1901,11 +1913,25 @@ StealthedAPL:AddSpell( | 
			
		
	
		
		
			
				
					
					|  |  |  |     ):SetTarget(Target) |  |  |  |     ):SetTarget(Target) | 
			
		
	
		
		
			
				
					
					|  |  |  | ) |  |  |  | ) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | --[[ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       double consume_cp_max() const | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     return COMBO_POINT_MAX + as<double>( talent.rogue.deeper_stratagem->effectN( 2 ).base_value() + | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                          talent.outlaw.devious_stratagem->effectN( 2 ).base_value() + | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                          talent.subtlety.secret_stratagem->effectN( 2 ).base_value() ); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | ]] | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | function ConsumeCPMax() | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     return 5 + (DeeperStratagem:IsKnownAndUsable() and 1 or 0) + (DeviousStratagem:IsKnownAndUsable() and 1 or 0) + | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         (SecretStratagem:IsKnownAndUsable() and 1 or 0) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | end | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | -- actions.stealthed+=/call_action_list,name=finish,if=variable.effective_combo_points>=cp_max_spend |  |  |  | -- actions.stealthed+=/call_action_list,name=finish,if=variable.effective_combo_points>=cp_max_spend | 
			
		
	
		
		
			
				
					
					|  |  |  | StealthedAPL:AddAPL( |  |  |  | StealthedAPL:AddAPL( | 
			
		
	
		
		
			
				
					
					|  |  |  |     FinishAPL, |  |  |  |     FinishAPL, | 
			
		
	
		
		
			
				
					
					|  |  |  |     function(self) |  |  |  |     function(self) | 
			
		
	
		
		
			
				
					
					|  |  |  |         return DefaultAPL:GetVariable('effective_combo_points') >= Player:GetComboPointsMax() |  |  |  |         return DefaultAPL:GetVariable('effective_combo_points') >= ConsumeCPMax() | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     end |  |  |  |     end | 
			
		
	
		
		
			
				
					
					|  |  |  | ) |  |  |  | ) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | 
 |