Files
StellaSora_DataLua/lua/game/ui/activity/reengagement/reengagementctrl.lua
T
SL1900 7363298dc1 Update - 1.15.0.134
EN: 1.15.0.134
CN: 1.15.0.133
JP: 1.15.0.137
KR: 1.15.0.139
2026-09-08 12:00:00 +09:00

138 lines
4.3 KiB
Lua

local ReengagementCtrl = class("ReengagementCtrl", BaseCtrl)
local TimerManager = require("GameCore.Timer.TimerManager")
ReengagementCtrl._mapNodeConfig = {
svTog = {
sComponentName = "LoopScrollView"
},
trSvTog = {sNodeName = "svTog", sComponentName = "Transform"},
rtSignin = {
sComponentName = "RectTransform"
},
ctrlSignin = {
sNodeName = "rtSignin",
sCtrlName = "Game.UI.Activity.Reengagement.ReengagementSigninCtrl"
},
rtTask = {
sComponentName = "RectTransform"
},
ctrlTask = {
sNodeName = "rtTask",
sCtrlName = "Game.UI.Activity.Reengagement.ReengagementTaskCtrl"
},
rtDoubleDrop = {
sComponentName = "RectTransform"
},
ctrlDoubleDrop = {
sNodeName = "rtDoubleDrop",
sCtrlName = "Game.UI.Activity.Reengagement.ReengagementDoubleDropCtrl"
},
rtShopMall = {
sComponentName = "RectTransform"
},
ctrlShopMall = {
sNodeName = "rtShopMall",
sCtrlName = "Game.UI.Activity.Reengagement.ReengagementMallCtrl"
},
rtBDTrial = {
sComponentName = "RectTransform"
},
ctrlBDTrial = {
sNodeName = "rtBDTrial",
sCtrlName = "Game.UI.Activity.Reengagement.ReengagementBDTrialCtrl"
},
txtEnergyTitle = {
sComponentName = "TMP_Text",
sLanguageId = "Energy_Battery_Title"
},
txtProgress = {sComponentName = "TMP_Text"},
imgEnergyBarFill = {
sComponentName = "RectTransform"
},
btnTrialDetail = {
sComponentName = "UIButton",
callback = "OnClickTrialDetail"
},
ReengagementPreviewPanel = {
sCtrlName = "Game.UI.Activity.Reengagement.ReengagementBDPreviewCtrl"
}
}
ReengagementCtrl._mapEventConfig = {}
function ReengagementCtrl:InitTog()
self._mapNode.svTog:Init(5, self, self.OnGridRefresh, self.OnGridBtnClick)
end
function ReengagementCtrl:OnGridRefresh(goGrid, gridIndex)
local nIndex = gridIndex + 1
local nInstanceID = goGrid:GetInstanceID()
if not self.ctrlTog[nInstanceID] then
self.ctrlTog[nInstanceID] = self:BindCtrlByNode(goGrid, "Game.UI.TemplateEx.TemplateToggleCtrl")
end
local mapCfg = ConfigTable.GetUIText("ReengagementTog_" .. nIndex)
if mapCfg then
self.ctrlTog[nInstanceID]:SetText(mapCfg)
end
self.ctrlTog[nInstanceID]:SetDefault(nIndex == self.nCurTog)
end
function ReengagementCtrl:OnGridBtnClick(goGrid, gridIndex)
local nIndex = gridIndex + 1
local nInstanceID = goGrid:GetInstanceID()
if nIndex == self.nCurTog then
return
end
self.ctrlTog[nInstanceID]:SetTrigger(true)
if self.nCurTog then
local goSelect = self._mapNode.trSvTog:Find("Viewport/Content/" .. self.nCurTog - 1)
if goSelect then
self.ctrlTog[goSelect.gameObject:GetInstanceID()]:SetTrigger(false)
end
end
self.nCurTog = nIndex
self:SwitchTog()
end
function ReengagementCtrl:SwitchTog()
self._mapNode.rtSignin:SetActive(self.nCurTog == 1)
self._mapNode.rtTask:SetActive(self.nCurTog == 2)
self._mapNode.rtDoubleDrop:SetActive(self.nCurTog == 3)
self._mapNode.rtShopMall:SetActive(self.nCurTog == 4)
self._mapNode.rtBDTrial:SetActive(self.nCurTog == 5)
self.ctrlSignin:Refresh(self.nCurTog)
self.ctrlTask:Refresh(self.nCurTog)
self.ctrlDoubleDrop:Refresh(self.nCurTog)
self.ctrlShopMall:Refresh(self.nCurTog)
self.ctrlBDTrial:Refresh(self.nCurTog)
end
local nMaxEnergyBatteryFillerLength = 252
local nMinEnergyBatteryFillerLength = 15
function ReengagementCtrl:RefreshEnergyBattery()
local nEnergyBattery = PlayerData.Base:GetCurEnergyBattery().nEnergyBattery
local nMaxEnergyBattery = ConfigTable.GetConfigNumber("EnergyBatteryMax")
NovaAPI.SetTMPText(self._mapNode.txtProgress, nEnergyBattery .. "/" .. nMaxEnergyBattery)
local nFillerLength = nEnergyBattery / nMaxEnergyBattery * nMaxEnergyBatteryFillerLength
if nFillerLength > nMaxEnergyBatteryFillerLength then
nFillerLength = nMaxEnergyBatteryFillerLength
elseif nFillerLength < nMinEnergyBatteryFillerLength then
nFillerLength = nMinEnergyBatteryFillerLength
end
self._mapNode.imgEnergyBarFill.sizeDelta = Vector2(nFillerLength, self._mapNode.imgEnergyBarFill.sizeDelta.y)
end
function ReengagementCtrl:Awake()
end
function ReengagementCtrl:FadeIn()
end
function ReengagementCtrl:FadeOut()
end
function ReengagementCtrl:OnEnable()
self.nCurTog = 1
self:SwitchTog()
self:RefreshEnergyBattery()
end
function ReengagementCtrl:OnDisable()
end
function ReengagementCtrl:OnDestroy()
end
function ReengagementCtrl:OnRelease()
end
function ReengagementCtrl:OnClickTrialDetail()
self.ReengagementPreviewPanel:OpenPanel()
end
return ReengagementCtrl