"README.md" did not exist on "0c50833e4bc1c9e93ee113ca2329d4fda6eacae8"
Commit 3ed5a466 authored by Ivaria's avatar Ivaria
Browse files

Added duration configuration for Spell Trace. Misc cleanup.

parent 2e944948
......@@ -468,6 +468,7 @@ local function VUHDO_spellTraceAddDefaultSettings(aSpellName)
VUHDO_CONFIG["SPELL_TRACE"]["STORED_SETTINGS"][aSpellName] = {
["isMine"] = VUHDO_CONFIG["SPELL_TRACE"]["isMine"],
["isOthers"] = VUHDO_CONFIG["SPELL_TRACE"]["isOthers"],
["duration"] = VUHDO_CONFIG["SPELL_TRACE"]["duration"],
}
end
......@@ -614,6 +615,7 @@ local VUHDO_DEFAULT_CONFIG = {
["SPELL_TRACE"] = {
["isMine"] = true,
["isOthers"] = false,
["duration"] = 2,
["SELECTED"] = "",
["STORED"] = { },
},
......@@ -759,6 +761,7 @@ local VUHDO_DEFAULT_CU_DE_STORED_SETTINGS = {
local VUHDO_DEFAULT_SPELL_TRACE_STORED_SETTINGS = {
["isMine"] = true,
["isOthers"] = false,
["duration"] = 2,
};
......@@ -1495,10 +1498,8 @@ function VUHDO_loadDefaultConfig()
-- Shaman
1064, -- Chain Heal
-- Priest
200128, -- Trail of Light
34861, -- Holy Word: Sanctify
596, -- Prayer of Healing
132157, -- Holy Nova
194509 -- Power Word: Radiance
);
......
......@@ -1291,7 +1291,7 @@ function VUHDO_OnUpdate(_, aTimeDelta)
end
if VUHDO_INTERNAL_TOGGLES[37] then -- VUHDO_UPDATE_SPELL_TRACE
VUHDO_updateSpellTrace(aTimeDelta);
VUHDO_updateSpellTrace();
end
elseif tHotDebuffToggle == 2 then
VUHDO_updateAllCyclicBouquets(false);
......@@ -1311,8 +1311,11 @@ function VUHDO_OnUpdate(_, aTimeDelta)
end
end
if tHotDebuffToggle > 2 then tHotDebuffToggle = 1;
else tHotDebuffToggle = tHotDebuffToggle + 1; end
if tHotDebuffToggle > 2 then
tHotDebuffToggle = 1;
else
tHotDebuffToggle = tHotDebuffToggle + 1;
end
end
-- track dragged panel coords
......@@ -1389,6 +1392,7 @@ function VUHDO_OnUpdate(_, aTimeDelta)
end
end
end
-- automatic profiles, shield cleanup, hide generic blizz party
if VUHDO_checkResetTimer("CHECK_PROFILES", 3.1) then
if not InCombatLockdown() then
......@@ -1416,8 +1420,11 @@ function VUHDO_OnUpdate(_, aTimeDelta)
-- Refresh d/c shield macros?
if VUHDO_checkTimer("MIRROR_TO_MACRO") then
if InCombatLockdown() then VUHDO_TIMERS["MIRROR_TO_MACRO"] = 2;
else VUHDO_mirrorToMacro(); end
if InCombatLockdown() then
VUHDO_TIMERS["MIRROR_TO_MACRO"] = 2;
else
VUHDO_mirrorToMacro();
end
end
end
......
......@@ -91,6 +91,7 @@ local VUHDO_DEFAULT_PROFILES = {
["SPELL_TRACE"] = {
["isMine"] = true,
["isOthers"] = false,
["duration"] = 2,
["selected"] = "",
},
["SHOW_TEXT_OVERHEAL"] = true,
......@@ -740,6 +741,7 @@ local VUHDO_DEFAULT_PROFILES = {
["SPELL_TRACE"] = {
["isMine"] = true,
["isOthers"] = false,
["duration"] = 2,
["selected"] = "",
},
},
......
......@@ -1117,4 +1117,6 @@ VUHDO_I18N_ANNOUNCE_MASS_RES = "'Mass' Resurrection\nAnnouncement";
VUHDO_I18N_SPELL_TRACE = "Spell Trace";
VUHDO_I18N_SPELL_TRACE_EDIT_BOX = "Enter spell name or ID to trace";
VUHDO_I18N_SPELL_TRACE_LIST = "Spell Trace List";
VUHDO_I18N_DURATION = "Duration";
VUHDO_I18N_SEC = "sec";
......@@ -1118,4 +1118,6 @@ VUHDO_I18N_ANNOUNCE_MASS_RES = "'Mass' Resurrection\nAnnouncement";
VUHDO_I18N_SPELL_TRACE = "Spell Trace";
VUHDO_I18N_SPELL_TRACE_EDIT_BOX = "Enter spell name or ID to trace";
VUHDO_I18N_SPELL_TRACE_LIST = "Spell Trace List";
VUHDO_I18N_DURATION = "Duration";
VUHDO_I18N_SEC = "sec";
......@@ -1132,4 +1132,6 @@ VUHDO_I18N_ANNOUNCE_MASS_RES = "'Mass' Resurrection\nAnnouncement";
VUHDO_I18N_SPELL_TRACE = "Spell Trace";
VUHDO_I18N_SPELL_TRACE_EDIT_BOX = "Enter spell name or ID to trace";
VUHDO_I18N_SPELL_TRACE_LIST = "Spell Trace List";
VUHDO_I18N_DURATION = "Duration";
VUHDO_I18N_SEC = "sec";
......@@ -1133,4 +1133,6 @@ VUHDO_I18N_ANNOUNCE_MASS_RES = "'Mass' Resurrection\nAnnouncement";
VUHDO_I18N_SPELL_TRACE = "Spell Trace";
VUHDO_I18N_SPELL_TRACE_EDIT_BOX = "Enter spell name or ID to trace";
VUHDO_I18N_SPELL_TRACE_LIST = "Spell Trace List";
VUHDO_I18N_DURATION = "Duration";
VUHDO_I18N_SEC = "sec";
......@@ -1297,4 +1297,6 @@ VUHDO_I18N_ANNOUNCE_MASS_RES = "'Mass' Resurrection\nAnnouncement";
VUHDO_I18N_SPELL_TRACE = "Spell Trace";
VUHDO_I18N_SPELL_TRACE_EDIT_BOX = "Enter spell name or ID to trace";
VUHDO_I18N_SPELL_TRACE_LIST = "Spell Trace List";
VUHDO_I18N_DURATION = "Duration";
VUHDO_I18N_SEC = "sec";
......@@ -1119,4 +1119,6 @@ VUHDO_I18N_ANNOUNCE_MASS_RES = "'Mass' Resurrection\nAnnouncement";
VUHDO_I18N_SPELL_TRACE = "Spell Trace";
VUHDO_I18N_SPELL_TRACE_EDIT_BOX = "Enter spell name or ID to trace";
VUHDO_I18N_SPELL_TRACE_LIST = "Spell Trace List";
VUHDO_I18N_DURATION = "Duration";
VUHDO_I18N_SEC = "sec";
......@@ -1119,4 +1119,6 @@ VUHDO_I18N_ANNOUNCE_MASS_RES = "'Mass' Resurrection\nAnnouncement";
VUHDO_I18N_SPELL_TRACE = "Spell Trace";
VUHDO_I18N_SPELL_TRACE_EDIT_BOX = "Enter spell name or ID to trace";
VUHDO_I18N_SPELL_TRACE_LIST = "Spell Trace List";
VUHDO_I18N_DURATION = "Duration";
VUHDO_I18N_SEC = "sec";
......@@ -178,6 +178,23 @@
</Scripts>
</CheckButton>
<CheckButton name="$parentSpellTraceRadioButton" text="VUHDO_I18N_SPELL_TRACE" inherits="VuhDoTabRadioButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="3" y="-288" />
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
self.tabPanel = "VuhDoNewOptionsGeneralSpellTrace";
VUHDO_lnfCheckButtonOnLoad(self);
VUHDO_lnfSetTooltip(self, VUHDO_I18N_TT.K568);
</OnLoad>
</Scripts>
</CheckButton>
<Frame name="$parentExpertLabel" inherits="VuhDoLabelFrameTemplate">
<Size>
<AbsDimension x="100" y="18" />
......@@ -185,7 +202,7 @@
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="3" y="-293" />
<AbsDimension x="3" y="-328" />
</Offset>
</Anchor>
</Anchors>
......@@ -201,7 +218,7 @@
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="3" y="-308" />
<AbsDimension x="3" y="-343" />
</Offset>
</Anchor>
</Anchors>
......@@ -214,29 +231,12 @@
</Scripts>
</CheckButton>
<CheckButton name="$parentSpellTraceRadioButton" text="VUHDO_I18N_SPELL_TRACE" inherits="VuhDoTabRadioButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="3" y="-343" />
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
self.tabPanel = "VuhDoNewOptionsGeneralSpellTrace";
VUHDO_lnfCheckButtonOnLoad(self);
VUHDO_lnfSetTooltip(self, VUHDO_I18N_TT.K568);
</OnLoad>
</Scripts>
</CheckButton>
</Frames>
</Frame>
<Frame name="$parentContentPanel">
<Size>
<AbsDimension x="428" y="345" />
<AbsDimension x="428" y="380" />
</Size>
<Anchors>
<Anchor point="TOPLEFT">
......
......@@ -3,6 +3,7 @@ local _;
local VUHDO_COMBO_MODEL = nil;
local VUHDO_MINE_MODEL = nil;
local VUHDO_OTHERS_MODEL = nil;
local VUHDO_DURATION_MODEL = nil;
local VUHDO_SPELL_TRACE_SORTABLE = { };
......@@ -74,6 +75,7 @@ local tIndex;
local tPanelName;
local tCheckButton;
local tComboBox;
local tSlider;
function VUHDO_spellTraceUpdateEditBox(anEditBox)
tValue = anEditBox:GetText();
......@@ -93,6 +95,14 @@ function VUHDO_spellTraceUpdateEditBox(anEditBox)
VUHDO_lnfSetModel(tCheckButton,
"VUHDO_CONFIG.SPELL_TRACE.STORED_SETTINGS." .. tValue .. ".isOthers");
VUHDO_lnfCheckButtonInitFromModel(tCheckButton);
tSlider = _G[tPanelName .. "DurationSlider"];
VUHDO_lnfSetModel(tSlider,
"VUHDO_CONFIG.SPELL_TRACE.STORED_SETTINGS." .. tValue .. ".duration");
VUHDO_lnfSliderOnLoad(tSlider, VUHDO_I18N_DURATION, 0, 30, " " .. VUHDO_I18N_SEC);
anEditBox:GetParent():Hide();
anEditBox:GetParent():Show();
else
anEditBox:SetTextColor(0.8, 0.8, 1, 1);
......@@ -100,6 +110,7 @@ function VUHDO_spellTraceUpdateEditBox(anEditBox)
VUHDO_MINE_MODEL = VUHDO_CONFIG.SPELL_TRACE.isMine;
VUHDO_OTHERS_MODEL = VUHDO_CONFIG.SPELL_TRACE.isOthers;
VUHDO_DURATION_MODEL = VUHDO_CONFIG.SPELL_TRACE.duration;
tCheckButton = _G[tPanelName .. "MineCheckButton"];
VUHDO_lnfSetModel(tCheckButton, "VUHDO_MINE_MODEL");
......@@ -108,6 +119,13 @@ function VUHDO_spellTraceUpdateEditBox(anEditBox)
tCheckButton = _G[tPanelName .. "OthersCheckButton"];
VUHDO_lnfSetModel(tCheckButton, "VUHDO_OTHERS_MODEL");
VUHDO_lnfCheckButtonInitFromModel(tCheckButton);
tSlider = _G[tPanelName .. "DurationSlider"];
VUHDO_lnfSetModel(tSlider, "VUHDO_DURATION_MODEL");
VUHDO_lnfSliderOnLoad(tSlider, VUHDO_I18N_DURATION, 0, 30, " " .. VUHDO_I18N_SEC);
anEditBox:GetParent():Hide();
anEditBox:GetParent():Show();
end
end
......@@ -120,6 +138,7 @@ local tValue;
local tIndex;
local tCheckButton;
local tPanelName;
local tSlider;
function VUHDO_saveSpellTraceOnClick(aButton)
tEditBox = _G[aButton:GetParent():GetName() .. "EditBox"];
......@@ -144,6 +163,9 @@ function VUHDO_saveSpellTraceOnClick(aButton)
tCheckButton = _G[tPanelName .. "OthersCheckButton"];
VUHDO_CONFIG["SPELL_TRACE"]["STORED_SETTINGS"][tValue].isOthers = VUHDO_forceBooleanValue(tCheckButton:GetChecked());
tSlider = _G[tPanelName .. "DurationSliderSlider"];
VUHDO_CONFIG["SPELL_TRACE"]["STORED_SETTINGS"][tValue].duration = tSlider:GetValue() or VUHDO_CONFIG["SPELL_TRACE"].duration;
VUHDO_CONFIG["SPELL_TRACE"]["SELECTED"] = tValue;
VUHDO_initSpellTraceComboModel();
......
......@@ -145,6 +145,24 @@
</Scripts>
</EditBox>
<Frame name="$parentDurationSlider" inherits="VuhDoHSliderTemplate">
<Size>
<AbsDimension x="211" y="18" />
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="13" y="-114" />
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
VUHDO_lnfSetTooltip(self, VUHDO_I18N_TT.K523);
</OnLoad>
</Scripts>
</Frame>
<CheckButton name="$parentMineCheckButton" text="VUHDO_I18N_MINE" inherits="VuhDoCheckButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT">
......
......@@ -13,7 +13,7 @@ end
--
function VUHDO_newOptionsMoveOnHide()
VuhDoNewOptionsTabbedFrame:SetHeight(420);
VuhDoNewOptionsTabbedFrame:SetHeight(455);
--VUHDO_IS_PANEL_CONFIG = false;
VUHDO_CONFIG_SHOW_RAID = true;
VUHDO_clearUndefinedModelEntries();
......
......@@ -4,7 +4,7 @@
<Frame name="VuhDoNewOptionsTabbedFrame" hidden="true" toplevel="true" movable="true" parent="UIParent" enableMouse="true" frameStrata="DIALOG" inherits="VuhDoFrameTemplate">
<Size>
<AbsDimension x="648" y="420" />
<AbsDimension x="648" y="455" />
</Size>
<Anchors>
<Anchor point="CENTER" relativeTo="UIParent">
......
......@@ -144,6 +144,11 @@ function VUHDO_updateGlobalIconList()
VUHDO_USED_BUFFS[tName] = true;
end
-- Add spell traces
for _, tName in pairs(VUHDO_CONFIG["SPELL_TRACE"]["STORED"]) do
VUHDO_USED_BUFFS[tName] = true;
end
-- Add bouquet item buffs
for _, tItems in pairs(VUHDO_BOUQUETS["STORED"]) do
tItems = VUHDO_decompressIfCompressed(tItems);
......
local pairs = pairs;
local tostring = tostring;
local tonumber = tonumber;
local VUHDO_ACTIVE_TRACE_SPELLS = {
-- [<unit GUID>] = {
......@@ -20,6 +22,7 @@ local VUHDO_RAID_GUIDS = { };
local VUHDO_INTERNAL_TOGGLES = { };
local sShowSpellTrace = nil;
local sSpellTraceStoredSettings = nil;
local sSpellTraceDefaultDuration = nil;
function VUHDO_spellTraceInitLocalOverrides()
VUHDO_PLAYER_GUID = UnitGUID("player");
......@@ -27,6 +30,7 @@ function VUHDO_spellTraceInitLocalOverrides()
VUHDO_INTERNAL_TOGGLES = _G["VUHDO_INTERNAL_TOGGLES"];
sShowSpellTrace = VUHDO_CONFIG["SHOW_SPELL_TRACE"];
sSpellTraceStoredSettings = VUHDO_CONFIG["SPELL_TRACE"]["STORED_SETTINGS"];
sSpellTraceDefaultDuration = VUHDO_CONFIG["SPELL_TRACE"]["duration"];
end
......@@ -39,10 +43,21 @@ function VUHDO_parseCombatLogSpellTrace(aMessage, aSrcGuid, aDstGuid, aSpellName
local tSpellId = tostring(aSpellId);
if not VUHDO_INTERNAL_TOGGLES[37] or not sShowSpellTrace or
aMessage ~= "SPELL_HEAL" or not sSpellTraceStoredSettings[tSpellId] or
(aSrcGuid ~= VUHDO_PLAYER_GUID and not sSpellTraceStoredSettings[tSpellId]["isOthers"]) or
(aSrcGuid == VUHDO_PLAYER_GUID and not sSpellTraceStoredSettings[tSpellId]["isMine"]) or
not VUHDO_RAID_GUIDS[aDstGuid] then
aMessage ~= "SPELL_HEAL" or not VUHDO_RAID_GUIDS[aDstGuid] then
return;
end
-- spells can be traced by name or spell ID
if not sSpellTraceStoredSettings[tSpellId] then
tSpellId = aSpellName;
if not sSpellTraceStoredSettings[tSpellId] then
return;
end
end
if (aSrcGuid ~= VUHDO_PLAYER_GUID and not sSpellTraceStoredSettings[tSpellId]["isOthers"]) or
(aSrcGuid == VUHDO_PLAYER_GUID and not sSpellTraceStoredSettings[tSpellId]["isMine"]) then
return;
end
......@@ -65,7 +80,8 @@ function VUHDO_parseCombatLogSpellTrace(aMessage, aSrcGuid, aDstGuid, aSpellName
};
end
VUHDO_ACTIVE_TRACE_SPELLS[aDstGuid]["spells"][tSpellId]["duration"] = 0.1;
VUHDO_ACTIVE_TRACE_SPELLS[aDstGuid]["spells"][tSpellId]["startTime"] = GetTime();
VUHDO_ACTIVE_TRACE_SPELLS[aDstGuid]["latest"] = tSpellId;
VUHDO_updateBouquetsForEvent(VUHDO_RAID_GUIDS[aDstGuid], VUHDO_UPDATE_SPELL_TRACE);
......@@ -75,17 +91,20 @@ end
--
function VUHDO_updateSpellTrace(aTimeDelta)
function VUHDO_updateSpellTrace()
for tUnitGuid, tActiveTrace in pairs(VUHDO_ACTIVE_TRACE_SPELLS) do
local i = 0;
local tActiveTraceSpells = tActiveTrace["spells"];
local tCurrentTime = GetTime();
for tSpellId, tActiveTraceSpell in pairs(tActiveTraceSpells) do
if tActiveTraceSpell then
local tDuration = tActiveTraceSpell["duration"] - aTimeDelta;
if tDuration <= 0 then
local tDuration = tonumber(sSpellTraceStoredSettings[tSpellId]["duration"] or sSpellTraceDefaultDuration) or sSpellTraceDefaultDuration;
local tRemaining = tDuration - (tCurrentTime - tActiveTraceSpell["startTime"]);
if tRemaining <= 0 then
VUHDO_ACTIVE_TRACE_SPELLS[tUnitGuid]["spells"][tSpellId] = nil;
if tActiveTrace["latest"] == tSpellId then
......@@ -97,15 +116,13 @@ function VUHDO_updateSpellTrace(aTimeDelta)
if tUnit then
VUHDO_updateBouquetsForEvent(tUnit, VUHDO_UPDATE_SPELL_TRACE);
end
else
VUHDO_ACTIVE_TRACE_SPELLS[tUnitGuid]["spells"][tSpellId]["duration"] = tDuration;
end
i = i + 1;
end
end
if not i then
if i == 0 then
VUHDO_ACTIVE_TRACE_SPELLS[tUnitGuid] = nil;
end
end
......@@ -135,3 +152,12 @@ function VUHDO_getSpellTraceForUnit(aUnit)
end
--
function VUHDO_getActiveSpellTraceSpells()
return VUHDO_ACTIVE_TRACE_SPELLS;
end
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment