Quantcast

Improve Bandit's Guile tracking in rogue scripts.

Johnny C. Lam [05-11-14 - 08:10]
Improve Bandit's Guile tracking in rogue scripts.

git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1422 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Filename
OvaleBanditsGuile.lua
scripts/ovale_rogue_spells.lua
diff --git a/OvaleBanditsGuile.lua b/OvaleBanditsGuile.lua
index 555ea69..6c63a28 100644
--- a/OvaleBanditsGuile.lua
+++ b/OvaleBanditsGuile.lua
@@ -38,6 +38,7 @@ Ovale.OvaleBanditsGuile = OvaleBanditsGuile
 --<private-static-properties>
 -- Forward declarations for module dependencies.
 local OvaleAura = nil
+local OvaleSpellBook = nil

 local API_GetTime = GetTime
 local API_UnitClass = UnitClass
@@ -52,6 +53,8 @@ local self_guid = nil
 local SHALLOW_INSIGHT = 84745
 local MODERATE_INSIGHT = 84746
 local DEEP_INSIGHT = 84747
+-- Bandit's Guile spell ID.
+local BANDITS_GUILE = 84654
 -- Spell IDs for abilities that proc Bandit's Guile.
 local BANDITS_GUILE_ATTACK = {
 	[ 1752] = "Sinister Strike",
@@ -62,7 +65,7 @@ local BANDITS_GUILE_ATTACK = {
 --<public-static-properties>
 OvaleBanditsGuile.name = "Bandit's Guile"
 -- Bandit's Guile spell ID from spellbook; re-used as the aura ID of the hidden, stacking buff.
-OvaleBanditsGuile.spellId = 84654
+OvaleBanditsGuile.spellId = BANDITS_GUILE
 OvaleBanditsGuile.start = 0
 OvaleBanditsGuile.ending = math.huge
 OvaleBanditsGuile.duration = 15
@@ -73,6 +76,7 @@ OvaleBanditsGuile.stacks = 0
 function OvaleBanditsGuile:OnInitialize()
 	-- Resolve module dependencies.
 	OvaleAura = Ovale.OvaleAura
+	OvaleSpellBook = Ovale.OvaleSpellBook
 end

 function OvaleBanditsGuile:OnEnable()
@@ -89,7 +93,8 @@ function OvaleBanditsGuile:OnDisable()
 end

 function OvaleBanditsGuile:Ovale_SpecializationChanged(event, specialization, previousSpecialization)
-	if specialization == "combat" then
+	-- This misses the corner case of if you're leveling and just acquire the spell.
+	if specialization == "combat" and OvaleSpellBook:IsKnownSpell(BANDITS_GUILE) then
 		self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
 		self:RegisterMessage("Ovale_AuraAdded")
 		self:RegisterMessage("Ovale_AuraChanged")
diff --git a/scripts/ovale_rogue_spells.lua b/scripts/ovale_rogue_spells.lua
index b459c4e..e9c5534 100644
--- a/scripts/ovale_rogue_spells.lua
+++ b/scripts/ovale_rogue_spells.lua
@@ -30,8 +30,9 @@ Define(backstab 53)
 	SpellInfo(backstab buff_combo=shadow_blades_buff if_spell=shadow_blades)
 	SpellInfo(backstab buff_energy_less15=shadow_blades_buff if_spell=shadow_blades itemset=T15_melee itemcount=4)
 	SpellInfo(backstab buff_energy_less75=stealth_buff if_spell=shadow_focus)
-Define(bandits_guile_buff 84654)
-	SpellInfo(bandits_guile_buff duration=15)
+Define(bandits_guile 84654)
+Define(bandits_guile_buff 84654)	# OvaleBanditsGuile
+	SpellInfo(bandits_guile_buff duration=15 maxstacks=12)
 Define(blade_flurry 13877)
 	SpellInfo(blade_flurry cd=10)
 Define(blade_flurry_buff 13877)
@@ -158,6 +159,7 @@ Define(revealing_strike 84617)
 	SpellInfo(revealing_strike buff_combo=shadow_blades_buff if_spell=shadow_blades)
 	SpellInfo(revealing_strike buff_energy_less15=shadow_blades_buff if_spell=shadow_blades itemset=T15_melee itemcount=4)
 	SpellInfo(revealing_strike buff_energy_less75=stealth_buff if_spell=shadow_focus)
+	SpellAddBuff(revealing_strike bandits_guile_buff=1 if_spell=bandits_guile)
 	SpellAddTargetDebuff(revealing_strike revealing_strike_debuff=1)
 Define(revealing_strike_debuff 84617)
 	SpellInfo(revealing_strike_debuff duration=24 tick=3)
@@ -195,6 +197,7 @@ Define(sinister_strike 1752)
 	SpellInfo(sinister_strike buff_combo=shadow_blades_buff if_spell=shadow_blades)
 	SpellInfo(sinister_strike buff_energy_less15=shadow_blades_buff if_spell=shadow_blades itemset=T15_melee itemcount=4)
 	SpellInfo(sinister_strike buff_energy_less75=stealth_buff if_spell=shadow_focus)
+	SpellAddBuff(sinister_strike bandits_guile_buff=1 if_spell=bandits_guile)
 Define(sleight_of_hand_buff 145211)
 	SpellInfo(sleight_of_hand_buff duration=10)
 Define(slice_and_dice 5171)