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
This commit is contained in:
@@ -0,0 +1,228 @@
|
||||
local LevelMenuStarTowerCtrl = class("LevelMenuStarTowerCtrl", BaseCtrl)
|
||||
local WwiseAudioMgr = CS.WwiseAudioManager.Instance
|
||||
LevelMenuStarTowerCtrl._mapNodeConfig = {
|
||||
svStarTower = {
|
||||
sComponentName = "LoopScrollView"
|
||||
},
|
||||
btnHandBook = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_HandBook"
|
||||
},
|
||||
TMPBtnHandBook = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "LevelMenu_BtnHandBook"
|
||||
},
|
||||
btnDevelop = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Develop"
|
||||
},
|
||||
TMPBtnDevelop = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "LevelMenu_BtnDevelope"
|
||||
},
|
||||
btnTask = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Task"
|
||||
},
|
||||
TMPBtnTask = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "LevelMenu_BtnTask"
|
||||
},
|
||||
imgRankInfoBg = {},
|
||||
imgStarTowerInfoCoinIcon = {sComponentName = "Image"},
|
||||
txtLimitCn = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "STRanking_Ranking_Weekly_Limit"
|
||||
},
|
||||
txtRankCoin = {sComponentName = "TMP_Text"},
|
||||
txtTime = {sComponentName = "TMP_Text"},
|
||||
redDotHandBook = {},
|
||||
redDotGrowth = {},
|
||||
redDotStarTowerQuest = {}
|
||||
}
|
||||
LevelMenuStarTowerCtrl._mapEventConfig = {
|
||||
Guide_GetGoGridByGroupTheme = "GetGoGridByGroupTheme",
|
||||
Guide_PositionStarTowerPos = "OnEvent_PositionStarTowerPos"
|
||||
}
|
||||
LevelMenuStarTowerCtrl._mapRedDotConfig = {
|
||||
[RedDotDefine.StarTowerGrowth] = {
|
||||
sNodeName = "redDotGrowth"
|
||||
},
|
||||
[RedDotDefine.StarTowerQuest] = {
|
||||
sNodeName = "redDotStarTowerQuest"
|
||||
},
|
||||
[RedDotDefine.StarTowerBook] = {
|
||||
sNodeName = "redDotHandBook"
|
||||
}
|
||||
}
|
||||
function LevelMenuStarTowerCtrl:InitStarTower(mapAllStarTower, mapStarTowerGroup)
|
||||
self:RefreshStarTowerReward()
|
||||
self.mapAllStarTower = mapAllStarTower
|
||||
self.mapStarTowerGroup = mapStarTowerGroup
|
||||
self._mapNode.svStarTower:SetAnim(0.06)
|
||||
self._mapNode.svStarTower:Init(#self.mapAllStarTower, self, self.RefreshGrid, self.OnBtnClick_Grid)
|
||||
if self._panel.nCurStarTowerGroupId ~= nil then
|
||||
EventManager.Hit("SelectStarTowerGroup", self._panel.nCurStarTowerGroupId, true)
|
||||
local nIndex = 0
|
||||
for k, v in ipairs(self.mapAllStarTower) do
|
||||
if v.nGroupId == self._panel.nCurStarTowerGroupId then
|
||||
nIndex = k
|
||||
break
|
||||
end
|
||||
end
|
||||
self._mapNode.svStarTower:SetScrollGridPos(nIndex - 1, 0)
|
||||
end
|
||||
EventManager.Hit("Guide_InitStarTowerFinish")
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:RefreshGrid(goGrid, gridIndex)
|
||||
local nIndex = gridIndex + 1
|
||||
local nInstanceID = goGrid:GetInstanceID()
|
||||
if not self.tbGridCtrl[nInstanceID] then
|
||||
self.tbGridCtrl[nInstanceID] = self:BindCtrlByNode(goGrid, "Game.UI.StarTowerLevelSelect.StarTowerGroupItemCtrl")
|
||||
end
|
||||
local mapGroupData = self.mapAllStarTower[nIndex]
|
||||
self.tbGridCtrl[nInstanceID]:SetStarTowerGroup(mapGroupData)
|
||||
if self._panel.nCurStarTowerGroupId == nil then
|
||||
self._panel.nCurStarTowerGroupId = mapGroupData.nGroupId
|
||||
end
|
||||
if self._panel.nCurStarTowerGroupId == mapGroupData.nGroupId then
|
||||
self.nCurInsId = nInstanceID
|
||||
self.tbGridCtrl[nInstanceID]:SetSelect(true)
|
||||
else
|
||||
self.tbGridCtrl[nInstanceID]:SetSelect(false)
|
||||
end
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:OnBtnClick_Grid(goGrid, gridIndex)
|
||||
local nIdx = gridIndex + 1
|
||||
local mapData = self.mapAllStarTower[nIdx]
|
||||
if mapData == nil then
|
||||
return
|
||||
end
|
||||
local nGroupId = mapData.nGroupId
|
||||
local mapStarTower = self.mapStarTowerGroup[nGroupId][GameEnum.diffculty.Diffculty_1]
|
||||
local bGridUnlock, sTip = PlayerData.StarTower:IsStarTowerUnlock(mapStarTower.Id)
|
||||
if not bGridUnlock then
|
||||
WwiseAudioMgr:PlaySound("ui_systerm_locked")
|
||||
if sTip == nil then
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("LevelSelect_NotOpen"))
|
||||
return
|
||||
else
|
||||
EventManager.Hit(EventId.OpenMessageBox, sTip)
|
||||
return
|
||||
end
|
||||
end
|
||||
if self.nCurInsId ~= nil then
|
||||
self.tbGridCtrl[self.nCurInsId]:SetSelect(false)
|
||||
end
|
||||
self.nCurInsId = goGrid:GetInstanceID()
|
||||
self._panel.nCurStarTowerGroupId = nGroupId
|
||||
self.tbGridCtrl[self.nCurInsId]:SetSelect(true)
|
||||
WwiseAudioMgr:PlaySound("ui_level_rogue_tog")
|
||||
EventManager.Hit("SelectStarTowerGroup", nGroupId)
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:RefreshStarTowerReward()
|
||||
local nLimit = PlayerData.StarTower:GetStarTowerRewardLimit()
|
||||
local nCur = PlayerData.StarTower:GetStarTowerTicket()
|
||||
local nRewardId = AllEnum.CoinItemId.FRRewardCurrency
|
||||
local mapItemCfg = ConfigTable.GetData_Item(nRewardId)
|
||||
if mapItemCfg ~= nil then
|
||||
self:SetPngSprite(self._mapNode.imgStarTowerInfoCoinIcon, mapItemCfg.Icon)
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.txtRankCoin, nCur .. "/" .. nLimit)
|
||||
self:RefreshRewardResetTime()
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:RefreshRewardResetTime()
|
||||
local curTime = CS.ClientManager.Instance.serverTimeStamp
|
||||
local nNextRefreshTime = GetNextWeekRefreshTime()
|
||||
local sTimeStr = ""
|
||||
local remainTime = nNextRefreshTime - curTime
|
||||
if remainTime <= 60 then
|
||||
local sec = math.floor(remainTime)
|
||||
sTimeStr = orderedFormat(ConfigTable.GetUIText("StarTower_Reward_Refresh_Remain_Time_Sec"), 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("StarTower_Reward_Refresh_Remain_Time_Min"), 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("StarTower_Reward_Refresh_Remain_Time_Hour"), 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("StarTower_Reward_Refresh_Remain_Time_Day"), day, hour)
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.txtTime, orderedFormat(ConfigTable.GetUIText("StarTower_Weekly_Reward_Refresh"), sTimeStr))
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:Awake()
|
||||
self.mapAllStarTower = {}
|
||||
self.mapStarTowerGroup = {}
|
||||
self.nCurInsId = nil
|
||||
self.tbGridCtrl = {}
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:FadeIn()
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:FadeOut()
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:OnEnable()
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:OnDisable()
|
||||
if nil ~= self.phoneTimer then
|
||||
self.phoneTimer:Cancel()
|
||||
self.phoneTimer = nil
|
||||
end
|
||||
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
|
||||
self:UnbindCtrlByNode(objCtrl)
|
||||
self.tbGridCtrl[nInstanceId] = nil
|
||||
end
|
||||
self.tbGridCtrl = {}
|
||||
self.nCurInsId = nil
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:OnDestroy()
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:OnRelease()
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:OnBtnClick_Build(btn)
|
||||
local func = function()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.StarTowerBuildBriefList)
|
||||
end
|
||||
EventManager.Hit(EventId.SetTransition, 2, func)
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:OnBtnClick_HandBook()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.StarTowerBook)
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:OnBtnClick_Develop()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.StarTowerGrowth)
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:OnBtnClick_Task()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.StarTowerQuest)
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:GetGoGridByGroupTheme(themeId)
|
||||
for i, v in pairs(self.tbGridCtrl) do
|
||||
if v:GetGroupTheme() == themeId then
|
||||
EventManager.Hit("Guide_LevelMenuGridByGroupThemeName", v.gameObject.name)
|
||||
end
|
||||
end
|
||||
end
|
||||
function LevelMenuStarTowerCtrl:OnEvent_PositionStarTowerPos(nGroupId)
|
||||
for i, v in ipairs(self.mapAllStarTower) do
|
||||
if v.nGroupId == nGroupId then
|
||||
self._mapNode.svStarTower:SetScrollGridPos(i - 1, 0, 0)
|
||||
EventManager.Hit("Positioning_StarTower_Grid", nGroupId, i - 1)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
return LevelMenuStarTowerCtrl
|
||||
Reference in New Issue
Block a user