Quantcast

Rogue: Add a checkbox to toggle Blade Flurry suggestions for combat.

Johnny C. Lam [12-11-14 - 04:23]
Rogue: Add a checkbox to toggle Blade Flurry suggestions for combat.
Filename
SimulationCraft.lua
scripts/mmo_champion_rogue.lua
scripts/ovale_rogue.lua
scripts/simulationcraft_rogue_combat.lua
diff --git a/SimulationCraft.lua b/SimulationCraft.lua
index f759917..60a38d5 100644
--- a/SimulationCraft.lua
+++ b/SimulationCraft.lua
@@ -1274,6 +1274,9 @@ EmitAction = function(parseNode, nodeList, annotation)
 			else
 				isSpellAction = false
 			end
+		elseif class == "ROGUE" and action == "blade_flurry" then
+			annotation.blade_flurry = class
+			conditionCode = "CheckBoxOn(opt_blade_flurry)"
 		elseif class == "ROGUE" and action == "honor_among_thieves" then
 			if modifier.cooldown then
 				local cooldown = Unparse(modifier.cooldown)
@@ -3449,6 +3452,15 @@ local function InsertSupportingControls(child, annotation)
 		AddSymbol(annotation, "chi_burst")
 		count = count + 1
 	end
+	if annotation.blade_flurry == "ROGUE" then
+		local code = [[
+			AddCheckBox(opt_blade_flurry SpellName(blade_flurry) default)
+		]]
+		local node = OvaleAST:ParseCode("checkbox", code, nodeList, annotation.astAnnotation)
+		tinsert(child, 1, node)
+		AddSymbol(annotation, "blade_flurry")
+		count = count + 1
+	end
 	if annotation.bloodlust == "SHAMAN" then
 		local code = [[
 			AddCheckBox(opt_bloodlust SpellName(bloodlust) default)
diff --git a/scripts/mmo_champion_rogue.lua b/scripts/mmo_champion_rogue.lua
index 0919fc6..cf3af70 100644
--- a/scripts/mmo_champion_rogue.lua
+++ b/scripts/mmo_champion_rogue.lua
@@ -16,6 +16,7 @@ Include(ovale_common)
 Include(ovale_rogue_spells)

 AddCheckBox(opt_potion_agility ItemName(draenic_agility_potion) default)
+AddCheckBox(opt_blade_flurry SpellName(blade_flurry) default)

 AddFunction UsePotionAgility
 {
@@ -73,7 +74,7 @@ AddFunction CombatDefaultShortCdActions
 	# CHANGE: Get within melee range of the target.
 	GetInMeleeRange()
 	#blade_flurry,if=(active_enemies>=2&!buff.blade_flurry.up)|(active_enemies<2&buff.blade_flurry.up)
-	if Enemies() >= 2 and not BuffPresent(blade_flurry_buff) or Enemies() < 2 and BuffPresent(blade_flurry_buff) Spell(blade_flurry)
+	if { Enemies() >= 2 and not BuffPresent(blade_flurry_buff) or Enemies() < 2 and BuffPresent(blade_flurry_buff) } and CheckBoxOn(opt_blade_flurry) Spell(blade_flurry)

 	unless Spell(ambush)
 	{
diff --git a/scripts/ovale_rogue.lua b/scripts/ovale_rogue.lua
index 8ab9444..b79879c 100644
--- a/scripts/ovale_rogue.lua
+++ b/scripts/ovale_rogue.lua
@@ -14,6 +14,7 @@ Define(honor_among_thieves_cooldown_buff 51699)
 	SpellInfo(honor_among_thieves_cooldown_buff duration=2.2)

 AddCheckBox(opt_potion_agility ItemName(draenic_agility_potion) default)
+AddCheckBox(opt_blade_flurry SpellName(blade_flurry) default)

 AddFunction UsePotionAgility
 {
@@ -251,7 +252,7 @@ AddFunction CombatDefaultShortCdActions
 	# CHANGE: Get within melee range of the target.
 	GetInMeleeRange()
 	#blade_flurry,if=(active_enemies>=2&!buff.blade_flurry.up)|(active_enemies<2&buff.blade_flurry.up)
-	if Enemies() >= 2 and not BuffPresent(blade_flurry_buff) or Enemies() < 2 and BuffPresent(blade_flurry_buff) Spell(blade_flurry)
+	if { Enemies() >= 2 and not BuffPresent(blade_flurry_buff) or Enemies() < 2 and BuffPresent(blade_flurry_buff) } and CheckBoxOn(opt_blade_flurry) Spell(blade_flurry)

 	unless Spell(ambush)
 	{
diff --git a/scripts/simulationcraft_rogue_combat.lua b/scripts/simulationcraft_rogue_combat.lua
index 4cc2977..7804583 100644
--- a/scripts/simulationcraft_rogue_combat.lua
+++ b/scripts/simulationcraft_rogue_combat.lua
@@ -15,6 +15,7 @@ Include(ovale_common)
 Include(ovale_rogue_spells)

 AddCheckBox(opt_potion_agility ItemName(draenic_agility_potion) default)
+AddCheckBox(opt_blade_flurry SpellName(blade_flurry) default)

 AddFunction UsePotionAgility
 {
@@ -70,7 +71,7 @@ AddFunction CombatDefaultActions
 	#arcane_torrent,if=energy<60
 	if Energy() < 60 Spell(arcane_torrent_energy)
 	#blade_flurry,if=(active_enemies>=2&!buff.blade_flurry.up)|(active_enemies<2&buff.blade_flurry.up)
-	if Enemies() >= 2 and not BuffPresent(blade_flurry_buff) or Enemies() < 2 and BuffPresent(blade_flurry_buff) Spell(blade_flurry)
+	if { Enemies() >= 2 and not BuffPresent(blade_flurry_buff) or Enemies() < 2 and BuffPresent(blade_flurry_buff) } and CheckBoxOn(opt_blade_flurry) Spell(blade_flurry)
 	#shadow_reflection,if=(cooldown.killing_spree.remains<10&combo_points>3)|buff.adrenaline_rush.up
 	if SpellCooldown(killing_spree) < 10 and ComboPoints() > 3 or BuffPresent(adrenaline_rush_buff) Spell(shadow_reflection)
 	#ambush