You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
2.2 KiB

local sIsChecking = false;
local _;
--
local function VUHDO_placeReadyIcon(aButton)
local tInfo = VUHDO_RAID[aButton:GetAttribute("unit")];
local tIcon = VUHDO_getBarRoleIcon(aButton, 20);
if not tInfo or tInfo["isPet"] then
tIcon:Hide();
else
VUHDO_UIFrameFlashStop(tIcon);
tIcon:SetTexture("Interface\\AddOns\\VuhDo\\Images\\icon_info");
tIcon:ClearAllPoints();
tIcon:SetPoint("LEFT", aButton:GetName(), "LEFT", -5, 0);
tIcon:SetWidth(16);
tIcon:SetHeight(16);
tIcon:SetAlpha(1);
tIcon:Show();
end
end
--
local function VUHDO_placeAllReadyIcons()
for tPanelNum = 1, VUHDO_MAX_PANELS do
for _, tButton in pairs(VUHDO_getPanelButtons(tPanelNum)) do
if tButton:GetAttribute("unit") then VUHDO_placeReadyIcon(tButton);
else break; end
end
end
end
--
local function VUHDO_hideAllReadyIcons()
local tAllButtons;
for tPanelNum = 1, VUHDO_MAX_PANELS do
for _, tButton in pairs(VUHDO_getPanelButtons(tPanelNum)) do
if tButton:GetAttribute("unit") then
VUHDO_UIFrameFlash(VUHDO_getBarRoleIcon(tButton, 20), 0, 2, 10, false, 0, 8);
else break; end
end
end
end
--
function VUHDO_readyCheckStarted()
sIsChecking = true;
VUHDO_hideAllPlayerIcons();
VUHDO_placeAllReadyIcons();
end
-- Status true = ready, nil = not ready
local function VUHDO_updateReadyIcon(aUnit, anIsReady)
for _, tButton in pairs(VUHDO_getUnitButtonsSafe(aUnit)) do
VUHDO_getBarRoleIcon(tButton, 20):SetTexture(
"Interface\\AddOns\\VuhDo\\Images\\" .. (anIsReady and "icon_check_2" or "icon_cancel_1"));
end
end
--
function VUHDO_readyCheckConfirm(aUnit, anIsReady)
if not VUHDO_RAID[aUnit] then return;
elseif not sIsChecking then VUHDO_readyCheckStarted(); end
VUHDO_updateReadyIcon(aUnit, anIsReady);
end
--
function VUHDO_readyStartCheck(aName, aDuration)
if VUHDO_RAID_NAMES[aName] then
VUHDO_readyCheckConfirm(VUHDO_RAID_NAMES[aName], true); -- Originator is always ready
end
end
--
function VUHDO_readyCheckEnds()
if sIsChecking then -- Client send READY_CHECK_ENDS on startup
VUHDO_hideAllReadyIcons();
VUHDO_initAllEventBouquets();
sIsChecking = false;
end
end