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.

124 lines
4.7 KiB

KT_MONTHLY_ACTIVITIES_TRACKER_MODULE = KT_ObjectiveTracker_GetModuleInfoTable("KT_MONTHLY_ACTIVITIES_TRACKER_MODULE");
KT_MONTHLY_ACTIVITIES_TRACKER_MODULE.updateReasonModule = KT_OBJECTIVE_TRACKER_UPDATE_MODULE_MONTHLY_ACTIVITIES;
KT_MONTHLY_ACTIVITIES_TRACKER_MODULE:SetHeader(KT_ObjectiveTrackerFrame.BlocksFrame.MonthlyActivitiesHeader, TRACKER_HEADER_MONTHLY_ACTIVITIES, OBJECTIVE_TRACKER_UPDATE_MONTHLY_ACTIVITY_ADDED);
function KT_MONTHLY_ACTIVITIES_TRACKER_MODULE:OnBlockHeaderClick(block, mouseButton)
if ( IsModifiedClick("CHATLINK") and ChatEdit_GetActiveWindow() ) then
local perksActivityLink = C_PerksActivities.GetPerksActivityChatLink(block.id);
ChatEdit_InsertLink(perksActivityLink);
elseif ( mouseButton ~= "RightButton" ) then
--CloseDropDownMenus();
if ( not EncounterJournal ) then
EncounterJournal_LoadUI();
end
if ( IsModifiedClick("QUESTWATCHTOGGLE") ) then
KT_MonthlyActivitiesObjectiveTracker_UntrackPerksActivity(_, block.id);
else
MonthlyActivitiesFrame_OpenFrameToActivity(block.id);
end
PlaySound(SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON);
else
KT_ObjectiveTracker_ToggleDropDown(block, KT_MonthlyActivitiesObjectiveTracker_OnOpenDropDown);
end
end
function KT_MONTHLY_ACTIVITIES_TRACKER_MODULE:GetDebugReportInfo(block)
return { debugType = "TrackedPerksAcitivity", perksActivityID = block.id, };
end
-- *****************************************************************************************************
-- ***** BLOCK DROPDOWN FUNCTIONS
-- *****************************************************************************************************
function KT_MonthlyActivitiesObjectiveTracker_OpenFrameToActivity(activityID)
if ( not EncounterJournal ) then
EncounterJournal_LoadUI();
end
MonthlyActivitiesFrame_OpenFrameToActivity(activityID);
end
function KT_MonthlyActivitiesObjectiveTracker_OnOpenDropDown(self)
--[[local block = self.activeFrame;
local info = UIDropDownMenu_CreateInfo();
info.text = block.name;
info.isTitle = 1;
info.notCheckable = 1;
UIDropDownMenu_AddButton(info, UIDROPDOWN_MENU_LEVEL);
info = UIDropDownMenu_CreateInfo();
info.notCheckable = 1;
info.text = OBJECTIVES_VIEW_IN_QUESTLOG;
info.func = function (button, ...) KT_MonthlyActivitiesObjectiveTracker_OpenFrameToActivity(...); end;
info.arg1 = block.id;
info.checked = false;
UIDropDownMenu_AddButton(info, UIDROPDOWN_MENU_LEVEL);
info.text = OBJECTIVES_STOP_TRACKING;
info.func = KT_MonthlyActivitiesObjectiveTracker_UntrackPerksActivity;
info.arg1 = block.id;
info.checked = false;
UIDropDownMenu_AddButton(info, UIDROPDOWN_MENU_LEVEL);]]
end
function KT_MonthlyActivitiesObjectiveTracker_UntrackPerksActivity(dropDownButton, perksActivityID)
C_PerksActivities.RemoveTrackedPerksActivity(perksActivityID);
end
-- *****************************************************************************************************
-- ***** UPDATE FUNCTIONS
-- *****************************************************************************************************
function KT_MONTHLY_ACTIVITIES_TRACKER_MODULE:Update()
self:BeginLayout();
local trackedActivities = C_PerksActivities.GetTrackedPerksActivities().trackedIDs;
for i = 1, #trackedActivities do
local activityID = trackedActivities[i];
local activityInfo = C_PerksActivities.GetPerksActivityInfo(activityID);
if activityInfo and not activityInfo.completed then
local activityName = activityInfo.activityName;
local requirements = activityInfo.requirementsList;
local block = self:GetBlock(activityID);
block.name = activityName;
self:SetBlockHeader(block, activityName);
-- criteria
for index, requirement in ipairs(requirements) do
if not requirement.completed then
local criteriaString = requirement.requirementText;
criteriaString = string.gsub(criteriaString, " / ", "/");
criteriaString = string.gsub(criteriaString, "- ", "", 1); -- MSA
self:AddObjective(block, index, criteriaString, nil, nil, KT_OBJECTIVE_DASH_STYLE_SHOW, KT_OBJECTIVE_TRACKER_COLOR["Normal"]); -- MSA
end
end
block:SetHeight(block.height);
if ( KT_ObjectiveTracker_AddBlock(block) ) then
block:Show();
self:FreeUnusedLines(block);
else
block.used = false;
break;
end
end
end
self:EndLayout();
end
function KT_MonthlyActivitiesObjectiveTracker_OnActivityCompleted(perksActivityID)
local trackedActivities = C_PerksActivities.GetTrackedPerksActivities().trackedIDs;
for i = 1, #trackedActivities do
local activityID = trackedActivities[i];
if ( activityID == perksActivityID ) then
PlaySound(SOUNDKIT.TRADING_POST_UI_COMPLETING_ACTIVITIES);
break;
end
end
end