|
|
|
|
-- Show how many to-be-donated items you have on the bottom right of PlayerChoiceFrame
|
|
|
|
|
|
|
|
|
|
local _, addon = ...
|
|
|
|
|
|
|
|
|
|
local GetCreatureIDFromGUID = addon.API.GetCreatureIDFromGUID;
|
|
|
|
|
local TokenDisplay;
|
|
|
|
|
local TimerFrame;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local PlayerChoiceXCurrency = {
|
|
|
|
|
--[choiceID] = {type, id} --type: 0(currency) 1(item)
|
|
|
|
|
[832] = {1, 235897}, --Radian Echo (change every season), Worldsoul Memory: The Worldcarvers
|
|
|
|
|
[838] = {1, 212493}, --
|
|
|
|
|
[841] = {0, 3090}, --Flame-Blessed Iron (Siren Isle Command Map)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
do --Radian Echo
|
|
|
|
|
local target = PlayerChoiceXCurrency[832];
|
|
|
|
|
PlayerChoiceXCurrency[827] = target; --Worldsoul Memory: Primal Predators
|
|
|
|
|
PlayerChoiceXCurrency[829] = target; --Worldsoul Memory: A Wounded Soul
|
|
|
|
|
PlayerChoiceXCurrency[830] = target; --Worldsoul Memory: Old Gods Forsaken
|
|
|
|
|
PlayerChoiceXCurrency[831] = target; --Worldsoul Memory: Ancient Explorers
|
|
|
|
|
PlayerChoiceXCurrency[833] = target; --Worldsoul Memory: Descendants of Distant Waters
|
|
|
|
|
PlayerChoiceXCurrency[854] = target; --Worldsoul Memory: Early Cartel Wars
|
|
|
|
|
PlayerChoiceXCurrency[855] = target; --Worldsoul Memory: Kaja'mite Contact
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local GUIDXCurrency = {};
|
|
|
|
|
|
|
|
|
|
do
|
|
|
|
|
|
|
|
|
|
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 choiceID = f.choiceInfo.choiceID;
|
|
|
|
|
local itemType, tokenInfo;
|
|
|
|
|
--print(choiceID) --debug
|
|
|
|
|
if PlayerChoiceXCurrency[choiceID] then
|
|
|
|
|
itemType = 0;
|
|
|
|
|
tokenInfo = PlayerChoiceXCurrency[choiceID];
|
|
|
|
|
else
|
|
|
|
|
local creatureID = GetCreatureIDFromGUID(f.choiceInfo.objectGUID);
|
|
|
|
|
if GUIDXCurrency[creatureID] then
|
|
|
|
|
itemType = 0;
|
|
|
|
|
tokenInfo = GUIDXCurrency[creatureID];
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if tokenInfo then
|
|
|
|
|
if not TokenDisplay then
|
|
|
|
|
TokenDisplay = addon.CreateTokenDisplay(f);
|
|
|
|
|
end
|
|
|
|
|
TokenDisplay:DisplayCurrencyOnFrame(tokenInfo, f, "BOTTOM"); --BOTTOMRIGHT
|
|
|
|
|
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");
|
|
|
|
|
HideWigets();
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
do
|
|
|
|
|
local moduleData = {
|
|
|
|
|
name = addon.L["ModuleName PlayerChoiceFrameToken"],
|
|
|
|
|
dbKey = "PlayerChoiceFrameToken",
|
|
|
|
|
description = addon.L["ModuleDescription PlayerChoiceFrameToken"],
|
|
|
|
|
toggleFunc = EnableModule,
|
|
|
|
|
categoryID = 2,
|
|
|
|
|
uiOrder = 5,
|
|
|
|
|
moduleAddedTime = 1718500000,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
addon.ControlCenter:AddModule(moduleData);
|
|
|
|
|
end
|