auto-stance: reduce clicks needed to switch stance
This commit is contained in:
+7
-30
@@ -10,37 +10,14 @@ local module = ShaguTweaks:register({
|
||||
})
|
||||
|
||||
module.enable = function(self)
|
||||
local stancedance = CreateFrame("Frame")
|
||||
stancedance:RegisterEvent("UI_ERROR_MESSAGE")
|
||||
stancedance:SetScript("OnEvent", function() stancedance.lastError = arg1 end)
|
||||
|
||||
stancedance.lastError = ""
|
||||
local stancedance = CreateFrame("Frame", "ShaguTweaksStancedance")
|
||||
stancedance.scanString = string.gsub(SPELL_FAILED_ONLY_SHAPESHIFT, "%%s", "(.+)")
|
||||
stancedance.CastSpell = CastSpell
|
||||
stancedance.CastSpellByName = CastSpellByName
|
||||
stancedance.UseAction = UseAction
|
||||
|
||||
stancedance.SwitchStance = function()
|
||||
for stance in string.gfind(stancedance.lastError, stancedance.scanString) do
|
||||
for _, stance in pairs({ strsplit(",", stance)}) do
|
||||
stancedance.CastSpellByName(string.gsub(stance,"^%s*(.-)%s*$", "%1"))
|
||||
stancedance:RegisterEvent("UI_ERROR_MESSAGE")
|
||||
stancedance:SetScript("OnEvent", function()
|
||||
for stances in string.gfind(arg1, stancedance.scanString) do
|
||||
for _, stance in pairs({ strsplit(",", stances)}) do
|
||||
CastSpellByName(string.gsub(stance,"^%s*(.-)%s*$", "%1"))
|
||||
end
|
||||
end
|
||||
stancedance.lastError = ""
|
||||
end
|
||||
|
||||
function CastSpell(spellId, spellbookTabNum)
|
||||
stancedance:SwitchStance()
|
||||
stancedance.CastSpell(spellId, spellbookTabNum)
|
||||
end
|
||||
|
||||
function CastSpellByName(spellName, onSelf)
|
||||
stancedance:SwitchStance()
|
||||
stancedance.CastSpellByName(spellName, onSelf)
|
||||
end
|
||||
|
||||
function UseAction(slot, checkCursor, onSelf)
|
||||
stancedance:SwitchStance()
|
||||
stancedance.UseAction(slot, checkCursor, onSelf)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user