Commit bf3e9c6e authored by Ivaria's avatar Ivaria
Browse files

Added background flash or fade out per HoT icon

parent e5566012
......@@ -2,6 +2,8 @@ local _;
local huge = math.huge;
local format = format;
local sIsFade;
local sIsFlashWhenLow;
local sIsWarnColor;
local sIsSwiftmend;
local sHotSetup;
......@@ -113,7 +115,8 @@ function VUHDO_customHotsInitLocalOverrides()
sBarColors = VUHDO_PANEL_SETUP["BAR_COLORS"];
sHotCols = sBarColors["HOTS"];
sIsFade = sHotCols["isFadeOut"];
sIsFlashWhenLow = sHotCols["isFlashWhenLow"];
sIsWarnColor = sHotCols["WARNING"]["enabled"];
sHotSetup = VUHDO_PANEL_SETUP["HOTS"];
sHotSlots = VUHDO_PANEL_SETUP["HOTS"]["SLOTS"];
......@@ -198,8 +201,8 @@ local function VUHDO_customizeHotIcons(aButton, aHotName, aRest, aTimes, anIcon,
tIcon = VUHDO_getBarIcon(aButton, anIndex);
if not tIcon then return end; -- Noch nicht erstellt von redraw
local VUHDO_UIFrameFlash = tHotCfg["isFlashWhenLow"] and _G["VUHDO_UIFrameFlash"] or function() end;
local VUHDO_UIFrameFlashStop = tHotCfg["isFlashWhenLow"] and _G["VUHDO_UIFrameFlashStop"] or function() end;
local VUHDO_UIFrameFlash = (sIsFlashWhenLow or tHotCfg["isFlashWhenLow"]) and _G["VUHDO_UIFrameFlash"] or function() end;
local VUHDO_UIFrameFlashStop = (sIsFlashWhenLow or tHotCfg["isFlashWhenLow"]) and _G["VUHDO_UIFrameFlashStop"] or function() end;
if not aRest then
VUHDO_UIFrameFlashStop(tIcon);
......@@ -245,7 +248,7 @@ local function VUHDO_customizeHotIcons(aButton, aHotName, aRest, aTimes, anIcon,
return;
elseif aRest > 0 then
tIcon:SetAlpha((aRest < 10 and tHotCfg["isFadeOut"]) and tHotCfg["O"] * aRest * 0.1 or tHotCfg["O"]);
tIcon:SetAlpha((aRest < 10 and (sIsFade or tHotCfg["isFadeOut"])) and tHotCfg["O"] * aRest * 0.1 or tHotCfg["O"]);
if aRest < 10 or tHotCfg["isFullDuration"] then
tDuration = (tHotCfg["countdownMode"] == 2 and aRest < sHotCols["WARNING"]["lowSecs"])
......@@ -261,7 +264,7 @@ local function VUHDO_customizeHotIcons(aButton, aHotName, aRest, aTimes, anIcon,
tClock:SetCooldown(tStarted, aDuration);
tClock:SetAttribute("started", tStarted);
end
tIcon:SetAlpha((tHotCfg["isFadeOut"] and aRest < 10) and tHotCfg["O"] * aRest * 0.1 or tHotCfg["O"]);
tIcon:SetAlpha(((sIsFade or tHotCfg["isFadeOut"]) and aRest < 10) and tHotCfg["O"] * aRest * 0.1 or tHotCfg["O"]);
if aRest > 5 then
VUHDO_UIFrameFlashStop(tIcon);
......
......@@ -391,7 +391,9 @@ end
--
local function VUHDO_makeFullColorWoOpacity(...)
local tColor = VUHDO_makeFullColor(...);
tColor["useOpacity"] = false;
return tColor;
end
......@@ -400,12 +402,14 @@ end
--
local function VUHDO_makeHotColor(...)
local tColor = VUHDO_makeFullColor(...);
tColor["isFullDuration"] = false;
tColor["isClock"] = false;
tColor["countdownMode"] = 1;
tColor["useOpacity"] = false;
tColor["isFadeOut"] = false;
tColor["isFlashWhenLow"] = false;
return tColor;
end
......@@ -2465,6 +2469,8 @@ local VUHDO_DEFAULT_PANEL_SETUP = {
["HOTS"] = {
["useColorText"] = true,
["useColorBack"] = true,
["isFadeOut"] = false,
["isFlashWhenLow"] = false,
["showShieldAbsorb"] = true,
["isPumpDivineAegis"] = false,
["WARNING"] = {
......@@ -2796,7 +2802,6 @@ function VUHDO_loadDefaultPanelSetup()
VUHDO_PANEL_SETUP[tPanelNum] = VUHDO_ensureSanity("VUHDO_PANEL_SETUP[" .. tPanelNum .. "]", VUHDO_PANEL_SETUP[tPanelNum], VUHDO_DEFAULT_PER_PANEL_SETUP);
end
VUHDO_upgradePanelSetup(VUHDO_PANEL_SETUP)
VUHDO_PANEL_SETUP = VUHDO_ensureSanity("VUHDO_PANEL_SETUP", VUHDO_PANEL_SETUP, VUHDO_DEFAULT_PANEL_SETUP);
VUHDO_DEFAULT_PANEL_SETUP = VUHDO_compressAndPackTable(VUHDO_DEFAULT_PANEL_SETUP);
VUHDO_DEFAULT_PER_PANEL_SETUP = VUHDO_compressAndPackTable(VUHDO_DEFAULT_PER_PANEL_SETUP);
......@@ -2804,25 +2809,7 @@ function VUHDO_loadDefaultPanelSetup()
VUHDO_fixHotSettings();
end
-- upgrade the panel setup to a newer version of the data model in a way that
-- preserves the users setup the best
function VUHDO_upgradePanelSetup(panelSetup)
-- Initialize per-hot setting for flash & fade by using the global setting
-- (if it exists) as default
local hotColors = panelSetup["BAR_COLORS"]["HOTS"] -- Original location of isFadeOut and isFlashWhenLow
local globalFade = hotColors["isFadeOut"]
local globalFlash = hotColors["isFlashWhenLow"]
local hotColorsSlot
for _, hotId in ipairs({1, 2, 3, 4, 5, 9, 10}) do
hotColorsSlot = panelSetup["BAR_COLORS"]["HOT" .. hotId] -- New per-hot location
if globalFade ~= nil and hotColorsSlot["isFadeOut"] == nil then
hotColorsSlot["isFadeOut"] = globalFade
end
if globalFlash ~= nil and hotColorsSlot["isFlashWhenLow"] == nil then
hotColorsSlot["isFlashWhenLow"] = globalFlash
end
end
end
local VUHDO_DEFAULT_BUFF_CONFIG = {
["VERSION"] = 4,
......
......@@ -638,6 +638,8 @@ VUHDO_I18N_TT.K579 = "Select a color for the bar glow.";
VUHDO_I18N_TT.K580 = "Select a modifier key to use with the right mouse button to blacklist debuff icons."
VUHDO_I18N_TT.K581 = "Check to show player nickname on bars.";
VUHDO_I18N_TT.K582 = "Select the unit to target.";
VUHDO_I18N_TT.K583 = "Check to make all HoT icons fade out when the HoT is expiring.";
VUHDO_I18N_TT.K584 = "Check to make all HoT icons flash when the HoT is expiring.";
VUHDO_I18N_DEFAULT_PROFILE = "Default Profile";
VUHDO_I18N_DEFAULT_LAYOUT = "Default Layout";
......
......@@ -637,6 +637,8 @@ VUHDO_I18N_TT.K579 = "Select a color for the bar glow.";
VUHDO_I18N_TT.K580 = "Select a modifier key to use with the right mouse button to blacklist debuff icons."
VUHDO_I18N_TT.K581 = "Check to show player nickname on bars.";
VUHDO_I18N_TT.K582 = "Select the unit to target.";
VUHDO_I18N_TT.K583 = "Check to make all HoT icons fade out when the HoT is expiring.";
VUHDO_I18N_TT.K584 = "Check to make all HoT icons flash when the HoT is expiring.";
VUHDO_I18N_DEFAULT_PROFILE = "Default Profile";
VUHDO_I18N_DEFAULT_LAYOUT = "Default Layout";
......
......@@ -645,6 +645,8 @@ VUHDO_I18N_TT.K579 = "Select a color for the bar glow.";
VUHDO_I18N_TT.K580 = "Select a modifier key to use with the right mouse button to blacklist debuff icons."
VUHDO_I18N_TT.K581 = "Check to show player nickname on bars.";
VUHDO_I18N_TT.K582 = "Select the unit to target.";
VUHDO_I18N_TT.K583 = "Check to make all HoT icons fade out when the HoT is expiring.";
VUHDO_I18N_TT.K584 = "Check to make all HoT icons flash when the HoT is expiring.";
VUHDO_I18N_DEFAULT_PROFILE = "Default Profile";
VUHDO_I18N_DEFAULT_LAYOUT = "Default Layout";
......
......@@ -647,6 +647,8 @@ VUHDO_I18N_TT.K579 = "Select a color for the bar glow.";
VUHDO_I18N_TT.K580 = "Select a modifier key to use with the right mouse button to blacklist debuff icons."
VUHDO_I18N_TT.K581 = "Check to show player nickname on bars.";
VUHDO_I18N_TT.K582 = "Select the unit to target.";
VUHDO_I18N_TT.K583 = "Check to make all HoT icons fade out when the HoT is expiring.";
VUHDO_I18N_TT.K584 = "Check to make all HoT icons flash when the HoT is expiring.";
VUHDO_I18N_DEFAULT_PROFILE = "Default Profile";
VUHDO_I18N_DEFAULT_LAYOUT = "Default Layout";
......
......@@ -641,6 +641,8 @@ VUHDO_I18N_TT.K579 = "바 광택의 색상을 선택하십시오.";
VUHDO_I18N_TT.K580 = "디버프 아이콘을 제외목록에 표시하려면 마우스 오른쪽 버튼으로 사용할 수정 키를 선택하십시오."
VUHDO_I18N_TT.K581 = "Check to show player nickname on bars.";
VUHDO_I18N_TT.K582 = "Select the unit to target.";
VUHDO_I18N_TT.K583 = "Check to make all HoT icons fade out when the HoT is expiring.";
VUHDO_I18N_TT.K584 = "Check to make all HoT icons flash when the HoT is expiring.";
VUHDO_I18N_DEFAULT_PROFILE = "기본 프로필";
VUHDO_I18N_DEFAULT_LAYOUT = "기본 배치";
......
......@@ -743,6 +743,8 @@ VUHDO_I18N_TT.K579 = "Выбрать цвет подсветки фрейма.";
VUHDO_I18N_TT.K580 = "Выберите модификатор для использования с ПКМ для добавления дебафов в чёрный список."
VUHDO_I18N_TT.K581 = "Отметьте, чтобы показывать ники на фреймах.";
VUHDO_I18N_TT.K582 = "Select the unit to target.";
VUHDO_I18N_TT.K583 = "Check to make all HoT icons fade out when the HoT is expiring.";
VUHDO_I18N_TT.K584 = "Check to make all HoT icons flash when the HoT is expiring.";
VUHDO_I18N_DEFAULT_PROFILE = "Стандартный профиль";
VUHDO_I18N_DEFAULT_LAYOUT = "Стандартная раскладка клавиш ";
......
......@@ -639,6 +639,8 @@ VUHDO_I18N_TT.K579 = "选择技能条闪光的颜色.";
VUHDO_I18N_TT.K580 = "选择一个修改键,使用鼠标右键将debuff图标列入黑名单."
VUHDO_I18N_TT.K581 = "选中可在栏上显示玩家昵称.";
VUHDO_I18N_TT.K582 = "选择释放的目标";
VUHDO_I18N_TT.K583 = "Check to make all HoT icons fade out when the HoT is expiring.";
VUHDO_I18N_TT.K584 = "Check to make all HoT icons flash when the HoT is expiring.";
VUHDO_I18N_DEFAULT_PROFILE = "预设存档";
VUHDO_I18N_DEFAULT_LAYOUT = "预设按键配置";
......
......@@ -639,6 +639,8 @@ VUHDO_I18N_TT.K579 = "Select a color for the bar glow.";
VUHDO_I18N_TT.K580 = "Select a modifier key to use with the right mouse button to blacklist debuff icons."
VUHDO_I18N_TT.K581 = "Check to show player nickname on bars.";
VUHDO_I18N_TT.K582 = "Select the unit to target.";
VUHDO_I18N_TT.K583 = "Check to make all HoT icons fade out when the HoT is expiring.";
VUHDO_I18N_TT.K584 = "Check to make all HoT icons flash when the HoT is expiring.";
VUHDO_I18N_DEFAULT_PROFILE = "Default Profile";
VUHDO_I18N_DEFAULT_LAYOUT = "Default Layout";
......
......@@ -93,6 +93,7 @@
<Scripts>
<OnLoad>
VUHDO_initHotFadeCheckButton(self);
VUHDO_lnfAddConstraint(self, VUHDO_LF_CONSTRAINT_DISABLE, "VUHDO_PANEL_SETUP.BAR_COLORS.HOTS.isFadeOut", true);
</OnLoad>
</Scripts>
</CheckButton>
......@@ -108,6 +109,7 @@
<Scripts>
<OnLoad>
VUHDO_initHotFlashCheckButton(self);
VUHDO_lnfAddConstraint(self, VUHDO_LF_CONSTRAINT_DISABLE, "VUHDO_PANEL_SETUP.BAR_COLORS.HOTS.isFlashWhenLow", true);
</OnLoad>
</Scripts>
</CheckButton>
......@@ -119,12 +121,12 @@
<Frames>
<Frame name="$parentHotsPanel" inherits="VuhDoPanelTemplate">
<Size>
<AbsDimension x="464" y="364" />
<AbsDimension x="457" y="409" />
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="31" y="-31" />
<AbsDimension x="21" y="-21" />
</Offset>
</Anchor>
</Anchors>
......@@ -365,6 +367,58 @@
</Layers>
</Frame>
<CheckButton name="$parentFadeCheckButton" text="VUHDO_I18N_FADE_OUT" inherits="VuhDoCheckButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="13" y="-369" />
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
VUHDO_lnfSetModel(self, "VUHDO_PANEL_SETUP.BAR_COLORS.HOTS.isFadeOut");
VUHDO_lnfSetTooltip(self, VUHDO_I18N_TT.K583);
</OnLoad>
</Scripts>
</CheckButton>
<CheckButton name="$parentFlashCheckButton" text="VUHDO_I18N_FLASH" inherits="VuhDoCheckButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="119" y="-369" />
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
VUHDO_lnfSetModel(self, "VUHDO_PANEL_SETUP.BAR_COLORS.HOTS.isFlashWhenLow");
VUHDO_lnfSetTooltip(self, VUHDO_I18N_TT.K584);
</OnLoad>
</Scripts>
</CheckButton>
<Frame name="$parentBackgroundLabel" inherits="VuhDoLabelFrameTemplate">
<Size>
<AbsDimension x="75" y="18" />
</Size>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="13" y="-352" />
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer>
<FontString name="$parentLabel" text="VUHDO_I18N_BACKGROUND" justifyH="RIGHT" inherits="VuDoDefaultFontTemplate">
</FontString>
</Layer>
</Layers>
</Frame>
<Frame name="$parentOffLabel" inherits="VuhDoLabelFrameTemplate">
<Size>
<AbsDimension x="75" y="18" />
......@@ -477,6 +531,11 @@
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad>
VUHDO_lnfAddConstraint(self, VUHDO_LF_CONSTRAINT_DISABLE, "VUHDO_PANEL_SETUP.BAR_COLORS.HOTS.isFadeOut", true);
</OnLoad>
</Scripts>
</Frame>
<Frame name="$parentFlashLabel" inherits="VuhDoLabelFrameTemplate">
......@@ -496,7 +555,13 @@
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad>
VUHDO_lnfAddConstraint(self, VUHDO_LF_CONSTRAINT_DISABLE, "VUHDO_PANEL_SETUP.BAR_COLORS.HOTS.isFlashWhenLow", true);
</OnLoad>
</Scripts>
</Frame>
<Frame name="$parentHot1RadiGroup" inherits="VuhDoHotTimerRadioGroup">
<Anchors>
<Anchor point="TOPLEFT">
......
......@@ -13,6 +13,7 @@ Bugfixes:
Improvements:
-- Added background flash or fade out per HoT icon
-- Added unit macro conditional options for auto-trigger custom spells
-- Added trinket slots ('13' and '14') as valid actions
-- Updated string localizations for Russian (ruRU)
......
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