08b515afd9
EN: 2.0.0.143 CN: 2.0.0.142 JP: 2.0.0.145 KR: 2.0.0.150
89 lines
2.9 KiB
Lua
89 lines
2.9 KiB
Lua
local ReengagementBDTrialCtrl = class("ReengagementBDTrialCtrl", BaseCtrl)
|
|
local TimerManager = CS.TimerManager.Instance
|
|
local ClientManager = CS.ClientManager.Instance
|
|
ReengagementBDTrialCtrl._mapNodeConfig = {
|
|
txtActName = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Reengagement_BDTrial_Title"
|
|
},
|
|
txtActValue = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Reengagement_BDTrial_TimeLimit"
|
|
},
|
|
txtBtnTriaDetail = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Reengagement_BDTrial_Title"
|
|
},
|
|
goInstanceItem = {
|
|
nCount = 6,
|
|
sCtrlName = "Game.UI.Activity.Reengagement.ReengagementBDPreviewItemCtrl"
|
|
},
|
|
txtTime = {sComponentName = "TMP_Text"}
|
|
}
|
|
ReengagementBDTrialCtrl._mapEventConfig = {}
|
|
function ReengagementBDTrialCtrl:Refresh(nCurTog)
|
|
if nCurTog ~= AllEnum.ReengagementTog.BDTrial then
|
|
return
|
|
end
|
|
self:RefreshTrialItems()
|
|
self:RefreshRemainTime()
|
|
if nil == self.remainTimer then
|
|
self.remainTimer = self:AddTimer(0, 1, "RefreshRemainTime", true, true, false)
|
|
end
|
|
end
|
|
function ReengagementBDTrialCtrl:RefreshTrialItems()
|
|
self.tbBuildIds = PlayerData.Reengagement:GetLimitedTrialBuildList()
|
|
for k, nBuildId in ipairs(self.tbBuildIds) do
|
|
local itemCtrl = self._mapNode.goInstanceItem[k]
|
|
itemCtrl:Refresh(nBuildId)
|
|
end
|
|
end
|
|
function ReengagementBDTrialCtrl:RefreshRemainTime()
|
|
local endTime = PlayerData.Reengagement:GetReengagementCloseTime()
|
|
local curTime = ClientManager.serverTimeStamp
|
|
local remainTime = endTime - curTime
|
|
if remainTime < 0 then
|
|
TimerManager.Remove(self.remainTimer)
|
|
self.remainTimer = nil
|
|
EventManager.Hit(EventId.OpenMessageBox, {
|
|
nType = AllEnum.MessageBox.Alert,
|
|
sContent = ConfigTable.GetUIText("Activity_Invalid_Tip_1"),
|
|
callbackConfirm = function()
|
|
EventManager.Hit(EventId.ClosePanel, PanelId.ReengagementPanel)
|
|
end
|
|
})
|
|
return
|
|
end
|
|
local sTimeStr = ""
|
|
if remainTime <= 60 then
|
|
local sec = math.floor(remainTime)
|
|
sTimeStr = orderedFormat(ConfigTable.GetUIText("Activity_Remain_Time_Sec") or "", sec)
|
|
elseif 60 < remainTime and remainTime <= 3600 then
|
|
local min = math.floor(remainTime / 60)
|
|
local sec = math.floor(remainTime - min * 60)
|
|
if sec == 0 then
|
|
min = min - 1
|
|
sec = 60
|
|
end
|
|
sTimeStr = orderedFormat(ConfigTable.GetUIText("Activity_Remain_Time_Min") or "", min, sec)
|
|
elseif 3600 < remainTime and remainTime <= 86400 then
|
|
local hour = math.floor(remainTime / 3600)
|
|
local min = math.floor((remainTime - hour * 3600) / 60)
|
|
if min == 0 then
|
|
hour = hour - 1
|
|
min = 60
|
|
end
|
|
sTimeStr = orderedFormat(ConfigTable.GetUIText("Activity_Remain_Time_Hour") or "", hour, min)
|
|
elseif 86400 < remainTime then
|
|
local day = math.floor(remainTime / 86400)
|
|
local hour = math.floor((remainTime - day * 86400) / 3600)
|
|
if hour == 0 then
|
|
day = day - 1
|
|
hour = 24
|
|
end
|
|
sTimeStr = orderedFormat(ConfigTable.GetUIText("Activity_Remain_Time_Day") or "", day, hour)
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txtTime, sTimeStr)
|
|
end
|
|
return ReengagementBDTrialCtrl
|