Files
StellaSora_DataLua/lua/game/ui/activity/activitytask/activitytaskctrl_01.lua
T
SL1900 5e0d58cfad Initial version - 1.2.0.60
EN: 1.2.0.60
CN: 1.2.0.61
JP: 1.2.0.63
KR: 1.2.0.67
2025-12-03 01:00:00 +09:00

110 lines
3.3 KiB
Lua

local ActivityTaskCtrl_01 = class("ActivityTaskCtrl_01", BaseCtrl)
ActivityTaskCtrl_01._mapNodeConfig = {
goTaskItem = {
nCount = 7,
sCtrlName = "Game.UI.Activity.ActivityTask.ActivityTaskItemCtrl_01"
},
btnItem = {
nCount = 7,
sComponentName = "UIButton",
callback = "OnBtnClick_Item"
},
btnTask = {
nCount = 7,
sComponentName = "UIButton",
callback = "OnBtnClick_Task"
},
txtActivityTime = {
sComponentName = "TMP_Text",
sLanguageId = "Energy_Item_Permanent_Time"
}
}
ActivityTaskCtrl_01._mapEventConfig = {}
function ActivityTaskCtrl_01:RefreshTaskList()
self.tbTaskList = {}
self.tbRewardList = {}
self.nGroupId = 0
local tbTaskGroup, tbTaskList = self.actData:GetAllTaskList()
for nGroupId, tbTask in pairs(tbTaskGroup) do
self.nGroupId = nGroupId
for _, nId in ipairs(tbTask) do
local mapQuest = tbTaskList[nId]
if mapQuest ~= nil then
local mapData = {
nId = nId,
nStatus = mapQuest.nStatus,
nExpire = mapQuest.nExpire,
nCur = mapQuest.nCur,
nMax = mapQuest.nMax
}
table.insert(self.tbTaskList, mapData)
end
local mapCfg = ConfigTable.GetData("ActivityTask", nId)
if mapCfg ~= nil and mapCfg.Tid1 ~= 0 then
table.insert(self.tbRewardList, mapCfg.Tid1)
end
end
end
table.sort(self.tbTaskList, function(a, b)
return a.nId < b.nId
end)
for k, v in ipairs(self._mapNode.goTaskItem) do
local mapQuestData = self.tbTaskList[k]
v.gameObject:SetActive(mapQuestData ~= nil)
if mapQuestData ~= nil then
v:SetTaskItem(mapQuestData)
if self._mapNode.btnItem[k] ~= nil then
NovaAPI.SetRaycastTarget(self._mapNode.btnItem[k].gameObject, mapQuestData.nStatus ~= AllEnum.ActQuestStatus.Complete)
end
end
end
end
function ActivityTaskCtrl_01:InitActData(actData)
self.actData = actData
self:RefreshTaskList()
end
function ActivityTaskCtrl_01:ClearActivity()
end
function ActivityTaskCtrl_01:Awake()
end
function ActivityTaskCtrl_01:OnEnable()
end
function ActivityTaskCtrl_01:OnDisable()
end
function ActivityTaskCtrl_01:OnDestroy()
end
function ActivityTaskCtrl_01:OnBtnClick_Detail()
local mapActCfg = self.actData:GetLoginRewardControlCfg()
local msg = {
nType = AllEnum.MessageBox.Desc,
sContent = mapActCfg.DesText,
sTitle = ConfigTable.GetUIText("Activity_Btn_Detail")
}
EventManager.Hit(EventId.OpenMessageBox, msg)
end
function ActivityTaskCtrl_01:OnBtnClick_Item(btn, nIndex)
if self.tbRewardList[nIndex] ~= nil then
UTILS.ClickItemGridWithTips(self.tbRewardList[nIndex], btn.gameObject.transform, true, true, false)
end
end
function ActivityTaskCtrl_01:OnBtnClick_Task(btn, nIndex)
if self.tbTaskList ~= nil and self.tbTaskList[nIndex] ~= nil then
local mapQuest = self.tbTaskList[nIndex]
if mapQuest.nStatus == AllEnum.ActQuestStatus.Complete then
local mapGroupCfg = ConfigTable.GetData("ActivityTaskGroup", self.nGroupId)
if self.actData ~= nil and mapGroupCfg ~= nil then
local callback = function()
self:RefreshTaskList()
RedDotManager.SetValid(RedDotDefine.Activity_Tab, self.actData:GetActId(), false)
end
self.actData:SendMsg_ActivityTaskRewardReceiveReq(self.nGroupId, mapQuest.nId, mapGroupCfg.TaskTabType, callback)
end
elseif mapQuest.nStatus == AllEnum.ActQuestStatus.UnComplete then
end
end
end
function ActivityTaskCtrl_01:OnEvent_RefreshActivityTask()
self:RefreshTaskList()
end
return ActivityTaskCtrl_01