Merge pull request #6 from MDGitHubRepo/Issue-#5-throwset-fixes

Issue #5 throwset fixes
This commit is contained in:
MDGitHubRepo
2024-12-14 16:27:50 -05:00
committed by GitHub
5 changed files with 2429 additions and 2307 deletions
+6
View File
@@ -47,6 +47,12 @@ COE.TotemsAvailable["Air"] = 0;
-------------------------------------------------------------------]] -------------------------------------------------------------------]]
COE["ActiveTotems"] = {Earth = nil, Fire = nil, Water = nil, Air = nil}; COE["ActiveTotems"] = {Earth = nil, Fire = nil, Water = nil, Air = nil};
COE["TotemPending"] = {Totem = nil, UseRank = 0, Timeout = 0.75}; COE["TotemPending"] = {Totem = nil, UseRank = 0, Timeout = 0.75};
COE["PendingTotems"] = {
Earth = {Totem = nil, Rank = 0, TimeoutStartMS = 0},
Fire = {Totem = nil, Rank = 0, TimeoutStartMS = 0},
Water = {Totem = nil, Rank = 0, TimeoutStartMS = 0},
Air = {Totem = nil, Rank = 0, TimeoutStartMS = 0}
};
--[[ ---------------------------------------------------------------- --[[ ----------------------------------------------------------------
COE.CleansingTotems stores pointers to the buttons and totems COE.CleansingTotems stores pointers to the buttons and totems
+1047 -893
View File
File diff suppressed because it is too large Load Diff
+1272 -1316
View File
File diff suppressed because it is too large Load Diff
+15 -5
View File
@@ -96,6 +96,10 @@ end
PURPOSE: Handles frame events PURPOSE: Handles frame events
-------------------------------------------------------------------]] -------------------------------------------------------------------]]
function COE:OnEvent(event) function COE:OnEvent(event)
if (COE.EventPrintMode) then
COE:DebugMessage("Event: " .. event);
if (arg1) then COE:DebugMessage("arg1: " .. arg1); end
end
if (event == "VARIABLES_LOADED") then if (event == "VARIABLES_LOADED") then
-- fix saved variables if this update has to do so -- fix saved variables if this update has to do so
@@ -103,14 +107,16 @@ function COE:OnEvent(event)
COE:FixSavedVariables(); COE:FixSavedVariables();
elseif (event == "CHAT_MSG_SPELL_SELF_BUFF") then elseif (event == "CHAT_MSG_SPELL_SELF_BUFF") then
-- resolve Totemic Recall event
if (string.find(arg1, "Mana from Totemic Recall")) then if (string.find(arg1, "Mana from Totemic Recall")) then
COE:DebugMessage("Totemic Recall initiating reset of timers."); COE:DebugMessage("Totemic Recall initiating reset of timers.");
COE_Totem:ResetTimers(); COE_Totem:ResetTimers();
-- Resolve Totem cast event
elseif (string.find(arg1, "Totem")) then
local totem = COE_Totem:GetTotemFromText(arg1);
if (totem) then COE_Totem:ActivateTotem(totem); end
end end
elseif (COE.EventPrintMode) then
COE:DebugMessage(event);
end end
end end
@@ -190,9 +196,12 @@ function COEProcessShellCommand(msg)
if (msg == "" or msg == "config") then if (msg == "" or msg == "config") then
COE:ToggleConfigFrame(); COE:ToggleConfigFrame();
elseif (msg == "list") then elseif (msg == "list" or msg == "help") then
COE:DisplayShellCommands(); COE:DisplayShellCommands();
elseif (msg == "debug") then
COE["DebugMode"] = not COE.DebugMode;
COE:Message(tostring(COE.DebugMode));
elseif (msg == "nextset") then elseif (msg == "nextset") then
COE_Totem:SwitchToNextSet(); COE_Totem:SwitchToNextSet();
@@ -255,6 +264,7 @@ function COE:DisplayShellCommands()
COE:Message(COESHELL_MACRONOTE); COE:Message(COESHELL_MACRONOTE);
COE:Message(COESHELL_THROWSET); COE:Message(COESHELL_THROWSET);
COE:Message(COESHELL_ADVISED); COE:Message(COESHELL_ADVISED);
COE:Message(COESHELL_DEBUG);
end end
+89 -93
View File
@@ -1,18 +1,14 @@
--[[ ---------------------------------------------------------------- --[[ ----------------------------------------------------------------
E N G L I S H E N G L I S H
-------------------------------------------------------------------]] -------------------------------------------------------------------]] -- Errors
-- Errors
-- ------- -- -------
COESTR_NOTASHAMAN = "You are not a shaman. Unloading Call Of Elements"; COESTR_NOTASHAMAN = "You are not a shaman. Unloading Call Of Elements";
COESTR_NOTOTEM = "No totem available yet"; COESTR_NOTOTEM = "No totem available yet";
COESTR_UI_NOTASSIGNED = "<No text assigned>"; COESTR_UI_NOTASSIGNED = "<No text assigned>";
COESTR_INVALIDELEMENT = "Invalid element found in totem: "; COESTR_INVALIDELEMENT = "Invalid element found in totem: ";
-- Notifications -- Notifications
-- -------------- -- --------------
COESTR_TOTEMWARNING = "%s expires in %d seconds"; COESTR_TOTEMWARNING = "%s expires in %d seconds";
@@ -31,7 +27,6 @@ COESTR_HEALING = "Healing %s with %s (Rank %d)";
COESTR_HEALLOWERRANK = "Not enough mana. Using rank %d instead"; COESTR_HEALLOWERRANK = "Not enough mana. Using rank %d instead";
COESTR_HEALOOM = "Out of mana!"; COESTR_HEALOOM = "Out of mana!";
-- String patterns -- String patterns
-- ---------------- -- ----------------
COESTR_SCANTOTEMS = "Totem"; COESTR_SCANTOTEMS = "Totem";
@@ -42,22 +37,20 @@ COESTR_MINUTEDURATION = "(%d%.%d%d) min";
COESTR_MINUTEDURATION_INT = "(%d) min"; COESTR_MINUTEDURATION_INT = "(%d) min";
COESTR_SECDURATION = "(%d%d?) sec"; COESTR_SECDURATION = "(%d%d?) sec";
COESTR_CASTBYNAME = "%(Rank (%d)%)"; COESTR_CASTBYNAME = "%(Rank (%d)%)";
COESTR_TOTEMDAMAGE = { ".+ [crh]+its (.+ Totem) ?%u* for (%d+).*" }; COESTR_TOTEMDAMAGE = {".+ [crh]+its (.+ Totem) ?%u* for (%d+).*"};
COESTR_TOTEMHEALTH = { "(%d*) health" }; COESTR_TOTEMHEALTH = {"(%d*) health"};
COESTR_SHOCKSPELL = "(%a* Shock)"; COESTR_SHOCKSPELL = "(%a* Shock)";
COESTR_HEALINGWAVE = "Healing Wave"; COESTR_HEALINGWAVE = "Healing Wave";
COESTR_LESSERWAVE = "Lesser Healing Wave"; COESTR_LESSERWAVE = "Lesser Healing Wave";
COESTR_MINAMOUNT = "(%d*) to"; COESTR_MINAMOUNT = "(%d*) to";
COESTR_MAXAMOUNT = "to (%d*)"; COESTR_MAXAMOUNT = "to (%d*)";
COESTR_TRINKET = "^.*%[Enamored Water Spirit%].*$"; COESTR_TRINKET = "^.*%[Enamored Water Spirit%].*$";
-- Spell Names and IDs -- Spell Names and IDs
-- ---------------- -- ----------------
COESTR_TOTEMICRECALL = "Totemic Recall"; COESTR_TOTEMICRECALL = "Totemic Recall";
COESTR_TOTEMICRECALLID = 35; COESTR_TOTEMICRECALLID = 35;
-- Totem Advisor -- Totem Advisor
-- -------------- -- --------------
COESTR_POISON = "Poison"; COESTR_POISON = "Poison";
@@ -68,12 +61,12 @@ COESTR_TOTEMTREMOR = "Tremor Totem";
COESTR_CLEANSINGTOTEM = "Throw %s now!"; COESTR_CLEANSINGTOTEM = "Throw %s now!";
COESTR_TREMOR = { COESTR_TREMOR = {
"Sleep", "Terrify", "Psychic Scream", "Mind Control", "Bellowing Roar", "Fear", "Sleep", "Terrify", "Psychic Scream", "Mind Control", "Bellowing Roar",
"Intimidating Shout", "Panic", "Terrifying Screech", "Seduction", "Fear", "Intimidating Shout", "Panic", "Terrifying Screech", "Seduction",
"Howl of Terror", "Intimidating Growl", "Crystalline Slumber", "Druid's Slumber" "Howl of Terror", "Intimidating Growl", "Crystalline Slumber",
"Druid's Slumber"
} }
-- Tools -- Tools
-- --------- -- ---------
COESTR_TOTEMTOOLS_EARTH = "Earth"; COESTR_TOTEMTOOLS_EARTH = "Earth";
@@ -81,7 +74,6 @@ COESTR_TOTEMTOOLS_FIRE = "Fire";
COESTR_TOTEMTOOLS_WATER = "Water"; COESTR_TOTEMTOOLS_WATER = "Water";
COESTR_TOTEMTOOLS_AIR = "Air"; COESTR_TOTEMTOOLS_AIR = "Air";
-- Elements -- Elements
-- --------- -- ---------
COESTR_ELEMENT_EARTH = "Earth"; COESTR_ELEMENT_EARTH = "Earth";
@@ -89,96 +81,93 @@ COESTR_ELEMENT_FIRE = "Fire";
COESTR_ELEMENT_WATER = "Water"; COESTR_ELEMENT_WATER = "Water";
COESTR_ELEMENT_AIR = "Air"; COESTR_ELEMENT_AIR = "Air";
-- UI elements -- UI elements
-- ------------ -- ------------
COEUI_STRINGS = { COEUI_STRINGS = {
COE_ConfigClose = "Close"; COE_ConfigClose = "Close",
COE_ConfigTotemTabPanel = "Totem Options"; COE_ConfigTotemTabPanel = "Totem Options",
COE_ConfigHealingTabPanel = "Healing Options"; COE_ConfigHealingTabPanel = "Healing Options",
COE_ConfigDebuffTabPanel = "Debuff Options"; COE_ConfigDebuffTabPanel = "Debuff Options",
COE_ConfigTotemTotemBar = "Totem Bars"; COE_ConfigTotemTotemBar = "Totem Bars",
COE_ConfigTotemTotemOptions = "Options"; COE_ConfigTotemTotemOptions = "Options",
COE_ConfigTotemTotemSets = "Totem Sets"; COE_ConfigTotemTotemSets = "Totem Sets",
COE_OptionEnableTotemBar = "Enable Totem Bar"; COE_OptionEnableTotemBar = "Enable Totem Bar",
COE_OptionHideBackdrop = "Hide background when inactive"; COE_OptionHideBackdrop = "Hide background when inactive",
COE_OptionEnableTimers = "Enable totem timers"; COE_OptionEnableTimers = "Enable totem timers",
COE_OptionEnableTimerNotifications = "Enable notifications"; COE_OptionEnableTimerNotifications = "Enable notifications",
COE_OptionTTAlignment = "Tooltip Alignment"; COE_OptionTTAlignment = "Tooltip Alignment",
COE_OptionDisplayMode = "Anchor Button"; COE_OptionDisplayMode = "Anchor Button",
COE_OptionDisplayAlignment = "Button Alignment"; COE_OptionDisplayAlignment = "Button Alignment",
COE_OptionAdvisor = "Enable totem advisor"; COE_OptionAdvisor = "Enable totem advisor",
COE_OptionEnableSets = "Enable totem sets"; COE_OptionEnableSets = "Enable totem sets",
COE_OptionEnableAutoSwitch = "Autoswitch sets in PVP"; COE_OptionEnableAutoSwitch = "Autoswitch sets in PVP",
COE_OptionActiveSet = "Active totem set"; COE_OptionActiveSet = "Active totem set",
COE_OptionNewSet = "New set"; COE_OptionNewSet = "New set",
COE_OptionDeleteSet = "Delete set"; COE_OptionDeleteSet = "Delete set",
COE_OptionConfigureSet = "Configure set"; COE_OptionConfigureSet = "Configure set",
COE_OptionStopConfigureSet = "OK"; COE_OptionStopConfigureSet = "OK",
COE_OptionCastOrderString = "Cast Order"; COE_OptionCastOrderString = "Cast Order",
COE_OptionConfigureBar = "Configure Totems"; COE_OptionConfigureBar = "Configure Totems",
COE_OptionFixBar = "Fix totem bar positions"; COE_OptionFixBar = "Fix totem bar positions",
COE_OptionConfigureOrder = "Configure Order"; COE_OptionConfigureOrder = "Configure Order",
COE_OptionScanTotems = "Reload Totems"; COE_OptionScanTotems = "Reload Totems",
COE_OptionCurrentFrame = "Configure Bar"; COE_OptionCurrentFrame = "Configure Bar",
COE_OptionDirection = "Direction"; COE_OptionDirection = "Direction",
COE_OptionFrameMode = "Bar mode"; COE_OptionFrameMode = "Bar mode",
COE_OptionFlexCount = "Static buttons"; COE_OptionFlexCount = "Static buttons",
COE_OptionScaling = "Scaling"; COE_OptionScaling = "Scaling",
COE_OptionEnableTimerFrame = "Show separate timer frame"; COE_OptionEnableTimerFrame = "Show separate timer frame",
COE_OptionGroupBars = "Move bars as group"; COE_OptionGroupBars = "Move bars as group",
COE_OptionOverrideRank = "Rank 1 modifier"; COE_OptionOverrideRank = "Rank 1 modifier",
COE_OptionFrameTimersOnly = "Show timers ONLY in timer frame"; COE_OptionFrameTimersOnly = "Show timers ONLY in timer frame"
} }
-- Tooltips -- Tooltips
-- --------- -- ---------
COEUI_TOOLTIPS = { COEUI_TOOLTIPS = {
COE_ConfigTotemTab = "Shows the totem options"; COE_ConfigTotemTab = "Shows the totem options",
COE_ConfigHealingTab = "Shows the healing options"; COE_ConfigHealingTab = "Shows the healing options",
COE_ConfigDebuffTab = "Shows the debuff options"; COE_ConfigDebuffTab = "Shows the debuff options",
COE_OptionEnableTotemBar = "Enables and shows the totem bar\nwhich holds all of your available\ntotems for quick use"; COE_OptionEnableTotemBar = "Enables and shows the totem bar\nwhich holds all of your available\ntotems for quick use",
COE_OptionHideBackdrop = "Hides the background when the mouse\nis not above the totem bar"; COE_OptionHideBackdrop = "Hides the background when the mouse\nis not above the totem bar",
COE_OptionEnableTimers = "Enables the display of\nthe remaining totem time\nshown inside the totem button"; COE_OptionEnableTimers = "Enables the display of\nthe remaining totem time\nshown inside the totem button",
COE_OptionEnableTimerNotifications = "Displays warnings when a totem\nexpires or is destroyed"; COE_OptionEnableTimerNotifications = "Displays warnings when a totem\nexpires or is destroyed",
COE_OptionAdvisor = "Displays notifications when you\nor a member of your party/raid\nhas a debuff that can be cured\nby one of your totems"; COE_OptionAdvisor = "Displays notifications when you\nor a member of your party/raid\nhas a debuff that can be cured\nby one of your totems",
COE_OptionEnableAutoSwitch = "Automatically switches to the\nclass totem set when targetting an\nenemy player"; COE_OptionEnableAutoSwitch = "Automatically switches to the\nclass totem set when targetting an\nenemy player",
COE_OptionFixBar = "Fixes the totem bar position\nto prevent dragging it accidentally"; COE_OptionFixBar = "Fixes the totem bar position\nto prevent dragging it accidentally",
COE_OptionGroupBars = "When you drag one bar,\nthe other bars will follow"; COE_OptionGroupBars = "When you drag one bar,\nthe other bars will follow"
} }
COESTR_TRINKET_TOOLTIP = "Enamored Water Spirit"; COESTR_TRINKET_TOOLTIP = "Enamored Water Spirit";
COESTR_TRINKET_TOTEM = "Ancient Mana Spring Totem"; COESTR_TRINKET_TOTEM = "Ancient Mana Spring Totem";
-- Combo boxes -- Combo boxes
-- ------------ -- ------------
COEUI_TTALIGN = { COEUI_TTALIGN = {
{ "ANCHOR_TOPLEFT"; "Top Left" }; {"ANCHOR_TOPLEFT", "Top Left"}, {"ANCHOR_LEFT", "Left"},
{ "ANCHOR_LEFT"; "Left" }; {"ANCHOR_BOTTOMLEFT", "Bottom Left"}, {"ANCHOR_TOPRIGHT", "Top Right"},
{ "ANCHOR_BOTTOMLEFT"; "Bottom Left" }; {"ANCHOR_RIGHT", "Right"}, {"ANCHOR_BOTTOMRIGHT", "Bottom Right"},
{ "ANCHOR_TOPRIGHT"; "Top Right" }; {"DISABLED", "Disabled"}
{ "ANCHOR_RIGHT"; "Right" };
{ "ANCHOR_BOTTOMRIGHT"; "Bottom Right" };
{ "DISABLED"; "Disabled" };
} }
COEUI_DISPLAYMODE = { "Customize", "Timers Only", "Active Set" } COEUI_DISPLAYMODE = {"Customize", "Timers Only", "Active Set"}
COEUI_DISPLAYALIGN = { "Box", "Vertical", "Horizontal" }
COEUI_PVPSETS = { "[PVP] Druid", "[PVP] Hunter", "[PVP] Mage", "[PVP] Paladin", "[PVP] Priest", COEUI_DISPLAYALIGN = {"Box", "Vertical", "Horizontal"}
"[PVP] Rogue", "[PVP] Shaman", "[PVP] Warlock", "[PVP] Warrior" }
COEUI_PVPSETS = {
"[PVP] Druid", "[PVP] Hunter", "[PVP] Mage", "[PVP] Paladin",
"[PVP] Priest", "[PVP] Rogue", "[PVP] Shaman", "[PVP] Warlock",
"[PVP] Warrior"
}
COEUI_DEFAULTSET = "Default"; COEUI_DEFAULTSET = "Default";
COEUI_OVERRIDERANK = { "No key", "Use SHIFT", "Use ALT", "Use CTRL" }; COEUI_OVERRIDERANK = {"No key", "Use SHIFT", "Use ALT", "Use CTRL"};
COEUI_CURRENTFRAME = { "Earth", "Fire", "Water", "Air" }; COEUI_CURRENTFRAME = {"Earth", "Fire", "Water", "Air"};
COEUI_DIRECTION = { "Up", "Down", "Left", "Right" }; COEUI_DIRECTION = {"Up", "Down", "Left", "Right"};
COEUI_FRAMEMODE = { "Closed", "Open", "Flex", "Hidden" };
COEUI_FRAMEMODE = {"Closed", "Open", "Flex", "Hidden"};
-- Key bindings -- Key bindings
-- ------------- -- -------------
@@ -214,7 +203,6 @@ BINDING_NAME_TOTEMAIR5 = "Air Totem #5";
BINDING_NAME_TOTEMAIR6 = "Air Totem #6"; BINDING_NAME_TOTEMAIR6 = "Air Totem #6";
BINDING_NAME_TOTEMAIR7 = "Air Totem #7"; BINDING_NAME_TOTEMAIR7 = "Air Totem #7";
-- Key modifiers -- Key modifiers
-- -------------- -- --------------
COEMODIFIER_ALT = "ALT"; COEMODIFIER_ALT = "ALT";
@@ -226,20 +214,28 @@ COEMODIFIER_SHIFT_SHORT = "S";
COEMODIFIER_NUMPAD = "Num Pad"; COEMODIFIER_NUMPAD = "Num Pad";
COEMODIFIER_NUMPAD_SHORT = "NP"; COEMODIFIER_NUMPAD_SHORT = "NP";
-- Shell commands -- Shell commands
-- --------------- -- ---------------
COESHELL_INTRO = "Available shell commands for Call Of Elements:"; COESHELL_INTRO = "Available shell commands for Call Of Elements:";
COESHELL_CONFIG = "'/coe' or '/coe config' - Shows the configuration dialog"; COESHELL_CONFIG = "'/coe' or '/coe config' - Shows the configuration dialog";
COESHELL_LIST = "'/coe list' - Shows this list"; COESHELL_LIST = "'/coe list' or '/coe help' - Shows this list";
COESHELL_NEXTSET = "'/coe nexset' - Switches to the next custom totem set or the default set"; COESHELL_NEXTSET =
COESHELL_PRIORSET = "'/coe priorset' - Switches to the prior custom totem set or the default set"; "'/coe nexset' - Switches to the next custom totem set or the default set";
COESHELL_SET = "'/coe set <name>' - Switches to set with the specified name. <name> is case-sensitive"; COESHELL_PRIORSET =
COESHELL_RESTARTSET = "'/coe restartset' - Next time you throw the active set, it recasts all totems"; "'/coe priorset' - Switches to the prior custom totem set or the default set";
COESHELL_SET =
"'/coe set <name>' - Switches to set with the specified name. <name> is case-sensitive";
COESHELL_RESTARTSET =
"'/coe restartset' - Next time you throw the active set, it recasts all totems";
COESHELL_RESET = "'/coe reset' - Resets all timers and the active set"; COESHELL_RESET = "'/coe reset' - Resets all timers and the active set";
COESHELL_RESETFRAMES = "'/coe resetframes' - Returns all element bars to the screen center"; COESHELL_RESETFRAMES =
COESHELL_RESETORDERING = "'/coe resetordering' - Resets the ordering of your totem bars"; "'/coe resetframes' - Returns all element bars to the screen center";
COESHELL_RESETORDERING =
"'/coe resetordering' - Resets the ordering of your totem bars";
COESHELL_RELOAD = "'/coe reload' - Reloads all totems and sets"; COESHELL_RELOAD = "'/coe reload' - Reloads all totems and sets";
COESHELL_MACRONOTE = "The following commands only work as macros dragged to your action bars:"; COESHELL_MACRONOTE =
"The following commands only work as macros dragged to your action bars:";
COESHELL_THROWSET = "'/coe throwset' - Throws the active totem set"; COESHELL_THROWSET = "'/coe throwset' - Throws the active totem set";
COESHELL_ADVISED = "'/coe advised' - Throws the next advised totem"; COESHELL_ADVISED = "'/coe advised' - Throws the next advised totem";
COESHELL_DEBUG =
"'/coe debug' - Toggles debug message printing (disable by default)";