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.
126 lines
4.0 KiB
126 lines
4.0 KiB
-- Show how many to-be-donated items you have on the bottom right of PlayerChoiceFrame
|
|
|
|
local _, addon = ...
|
|
|
|
if not addon.IsGame_10_2_0 then
|
|
return
|
|
end
|
|
|
|
local API = addon.API;
|
|
local GetCreatureIDFromGUID = API.GetCreatureIDFromGUID;
|
|
local TokenDisplay;
|
|
local TimerFrame;
|
|
|
|
--[[
|
|
local PlayerChoiceXCurrency = {
|
|
[723] = 2650, --Dreamseed (Ysera's Clover): Plump Dreamseed, Emerald Dewdrop --widgetSetID 918, buttonID: 2314, 2315 --object:208633
|
|
[732] = 2650, --Dreamseed (Singing Weedling): Gigantic Dreamseed, Emerald Dewdrop --widgetSetID 873, buttonID: 2286, 2287 --object:208635
|
|
[741] = 2650, --Dreamseed (Lofty Lupin)
|
|
[749] = 2650, --Dreamseed (Viridescent Sprout) --widgetSetID 936, buttonID: 2331, 2332 (changed after reload)
|
|
[769] = 2650, --Dreamseed (outdoor): Gigantic Dreamseed, Emerald Dewdrop
|
|
[782] = 2650, --Dreamseed: Emerald Dewdrop
|
|
[783] = 2650, --Dreamseed: Emerald Dewdrop
|
|
[784] = 2650, --Dreamseed: Emerald Dewdrop
|
|
};
|
|
--]]
|
|
|
|
local GUIDXCurrency = {};
|
|
|
|
do
|
|
local DreamseedBloom = {
|
|
211142, 211143, 211120, 208463, 208633,
|
|
208635, 211091, 211126, 211130, 211219,
|
|
211091, 211221,
|
|
};
|
|
|
|
for _, creatureID in ipairs(DreamseedBloom) do
|
|
GUIDXCurrency[creatureID] = 2650; --Emerald Dewdrop
|
|
end
|
|
end
|
|
|
|
local EL = CreateFrame("Frame");
|
|
|
|
local function HideWigets()
|
|
if TokenDisplay then
|
|
TokenDisplay:HideTokenFrame();
|
|
end
|
|
if TimerFrame then
|
|
TimerFrame:Hide();
|
|
TimerFrame:Clear();
|
|
end
|
|
end
|
|
|
|
local function UpdateChoiceCurrency()
|
|
local f = PlayerChoiceFrame;
|
|
if not (f and f:IsShown() and f.choiceInfo and f.choiceInfo.choiceID and f.choiceInfo.objectGUID) then
|
|
HideWigets();
|
|
return
|
|
end
|
|
|
|
local creatureID = GetCreatureIDFromGUID( f.choiceInfo.objectGUID );
|
|
|
|
if GUIDXCurrency[creatureID] then
|
|
if not TokenDisplay then
|
|
TokenDisplay = addon.CreateTokenDisplay(UIParent);
|
|
end
|
|
TokenDisplay:DisplayCurrencyOnFrame(f, "BOTTOMRIGHT", GUIDXCurrency[creatureID]);
|
|
local remainingTime, fullTime = API.GetActiveDreamseedGrowthTimes();
|
|
if remainingTime and fullTime then
|
|
if not TimerFrame then
|
|
TimerFrame = addon.CreateTimerFrame(TokenDisplay);
|
|
TimerFrame:SetReverse(true);
|
|
TimerFrame:SetStyle(2);
|
|
TimerFrame:SetWidth(192);
|
|
TimerFrame:SetBarColor(218/255, 218/255, 34/255)
|
|
TimerFrame:UpdateMaxBarFillWidth();
|
|
end
|
|
TimerFrame:SetPoint("BOTTOM", f, "BOTTOM", 0, 236);
|
|
--print(remainingTime, fullTime)
|
|
TimerFrame:Show();
|
|
TimerFrame:SetTimes(fullTime - remainingTime, fullTime);
|
|
end
|
|
else
|
|
HideWigets();
|
|
end
|
|
end
|
|
|
|
local function EL_OnUpdate(self, elapsed)
|
|
self:SetScript("OnUpdate", nil);
|
|
UpdateChoiceCurrency();
|
|
end
|
|
|
|
|
|
|
|
EL:SetScript("OnEvent", function(self, event, ...)
|
|
if event == "PLAYER_CHOICE_UPDATE" then
|
|
self:RegisterEvent("PLAYER_CHOICE_CLOSE");
|
|
self:SetScript("OnUpdate", EL_OnUpdate);
|
|
elseif event == "PLAYER_CHOICE_CLOSE" then
|
|
self:UnregisterEvent(event);
|
|
self:SetScript("OnUpdate", nil);
|
|
HideWigets();
|
|
end
|
|
end);
|
|
|
|
local function EnableModule(state)
|
|
if state then
|
|
EL:RegisterEvent("PLAYER_CHOICE_UPDATE");
|
|
EL:RegisterEvent("PLAYER_CHOICE_CLOSE");
|
|
else
|
|
EL:UnregisterEvent("PLAYER_CHOICE_UPDATE");
|
|
EL:UnregisterEvent("PLAYER_CHOICE_CLOSE");
|
|
EL:SetScript("OnUpdate", nil);
|
|
HideWigets();
|
|
end
|
|
end
|
|
|
|
do
|
|
local moduleData = {
|
|
name = addon.L["ModuleName PlayerChoiceFrameToken"],
|
|
dbKey = "PlayerChoiceFrameToken",
|
|
description = addon.L["ModuleDescription PlayerChoiceFrameToken"],
|
|
toggleFunc = EnableModule,
|
|
};
|
|
|
|
addon.ControlCenter:AddModule(moduleData);
|
|
end
|