Files
StellaSora_DataLua/lua/game/ui/play_mining/miningstoryctrl.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

63 lines
1.7 KiB
Lua

local MiningStoryCtrl = class("MiningStoryCtrl", BaseCtrl)
MiningStoryCtrl._mapNodeConfig = {
txt_Title = {sComponentName = "TMP_Text"},
loosv = {
sNodeName = "storyList",
sComponentName = "LoopScrollView"
},
btn_Close = {
sComponentName = "UIButton",
callback = "OnBtnClick_ClosePanel"
}
}
MiningStoryCtrl._mapEventConfig = {
MiningStoryFinish = "RefreshData"
}
function MiningStoryCtrl:Init()
self.tbStoryList = {}
self.tbGridCtrl = {}
self.actData = nil
end
function MiningStoryCtrl:Awake(...)
local param = self:GetPanelParam()
if type(param) == "table" then
self.nActId = param[1]
end
self:RefreshData()
end
function MiningStoryCtrl:OnDisable()
end
function MiningStoryCtrl:OnDestroy(...)
if not self.tbGridCtrl then
for k, v in pairs(self.tbGridCtrl) do
self:UnBindCtrlByNode(v)
end
end
end
function MiningStoryCtrl:RefreshData(...)
self:Init()
self:GetData()
end
function MiningStoryCtrl:GetData()
self.actData = PlayerData.Activity:GetActivityDataById(self.nActId)
self.tbStoryList = self.actData:GetGroupStoryData()
table.sort(self.tbStoryList, function(a, b)
return a.id < b.id
end)
self._mapNode.loosv:SetAnim(0.1)
self._mapNode.loosv:Init(#self.tbStoryList, self, self.OnGridRefresh)
end
function MiningStoryCtrl:OnGridRefresh(gridGo, gridIndex)
local nIndex = gridIndex + 1
local nInstanceId = gridGo:GetInstanceID()
if not self.tbGridCtrl[nInstanceId] then
self.tbGridCtrl[nInstanceId] = self:BindCtrlByNode(gridGo, "Game.UI.Play_Mining.MiningStoryCellCtrl")
end
local data = self.tbStoryList[nIndex]
self.tbGridCtrl[nInstanceId]:SetData(data.id, nIndex, data.bIsLock, data.bIsRead)
end
function MiningStoryCtrl:OnBtnClick_ClosePanel()
EventManager.Hit(EventId.ClosePanel, PanelId.MiningGameStory)
end
return MiningStoryCtrl