Files
StellaSora_DataLua/lua/game/ui/weeklycopies/weeklycopiesctrl.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

604 lines
21 KiB
Lua

local WeeklyCopiesCtrl = class("WeeklyCopiesCtrl", BaseCtrl)
local WwiseAudioMgr = CS.WwiseAudioManager.Instance
WeeklyCopiesCtrl._mapNodeConfig = {
TopBar = {
sNodeName = "TopBarPanel",
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
},
mBg = {sNodeName = "ImgBg", sComponentName = "Image"},
mImage = {sNodeName = "BossImage", sComponentName = "Image"},
mImgBgAni = {sNodeName = "----Bg----", sComponentName = "Animator"},
mInfoAni = {
sNodeName = "----SafeAreaRoot----",
sComponentName = "Animator"
},
mGrid = {sNodeName = "mGrid", sComponentName = "GameObject"},
mListContent = {
sNodeName = "mListContent",
sComponentName = "Transform"
},
mInfoName = {
sNodeName = "txtMonsterName",
sComponentName = "TMP_Text"
},
mInfoLv = {
sNodeName = "txtRecommendLevelChallenge",
sComponentName = "TMP_Text"
},
mInfoBuildRank = {sNodeName = "imgRecord", sComponentName = "Image"},
mDiffGrid = {sNodeName = "diffGrid", sComponentName = "GameObject"},
mDiffContent = {
sNodeName = "diffToggleContent",
sComponentName = "Transform"
},
txtChallenge = {
sNodeName = "txtChallenge",
sComponentName = "TMP_Text"
},
txtThroughTime = {
sNodeName = "txtThroughTime",
sComponentName = "TMP_Text"
},
txtRewardCount = {
sNodeName = "txtRewardCount",
sComponentName = "TMP_Text"
},
txtEnemySkill = {
sNodeName = "txtEnemySkill",
sComponentName = "TMP_Text"
},
txtDetailInfo = {
sNodeName = "txtDetailInfo",
sComponentName = "TMP_Text"
},
txtLevelLimit = {
sNodeName = "txtLevelLimit",
sComponentName = "TMP_Text"
},
txtCancel = {
sNodeName = "txtBtnCancel",
sComponentName = "TMP_Text"
},
txtConfirm = {
sNodeName = "txtBtnConfirm",
sComponentName = "TMP_Text"
},
txtTip = {
sNodeName = "txtWindowTitleMsg",
sComponentName = "TMP_Text"
},
txtTipReward = {
sNodeName = "txtWindowTitle",
sComponentName = "TMP_Text"
},
txtTipContent = {
sNodeName = "txtContentMain",
sComponentName = "TMP_Text"
},
txtRewardInfo = {
sNodeName = "txtRewardInfo",
sComponentName = "TMP_Text"
},
txtLvRenLv = {sNodeName = "txtLvRenLv", sComponentName = "TMP_Text"},
txtTuiJianJiLu = {
sNodeName = "txtTuiJianJiLu",
sComponentName = "TMP_Text"
},
mElementNode = {
sNodeName = "goPropertyList1",
sComponentName = "Transform"
},
TabDuel2 = {},
mAntiElementNode = {
sNodeName = "goPropertyList2",
sComponentName = "Transform"
},
Skill = {
sCtrlName = "Game.UI.TemplateEx.TemplateSkillCtrl",
nCount = 5
},
btnSkill = {
sNodeName = "Skill",
sComponentName = "UIButton",
nCount = 5,
callback = "OnBtnClick_Skill"
},
goNode = {sNodeName = "goNode", sComponentName = "GameObject"},
emptyNode = {sNodeName = "emptyNode", sComponentName = "GameObject"},
item = {
sCtrlName = "Game.UI.TemplateEx.TemplateItemCtrl",
nCount = 5
},
btn_item = {
sComponentName = "UIButton",
nCount = 5,
callback = "OnBtnClick_Reward"
},
goRewardList = {
sCtrlName = "Game.UI.MainlineEx.RewardListCtrl"
},
btnAllReward = {
sComponentName = "UIButton",
callback = "OnBtnClick_AllReward"
},
btnGo = {
sComponentName = "UIButton",
callback = "OnClickBtnCrusade"
},
winTipNode = {sNodeName = "MsgNode", sComponentName = "GameObject"},
btnConfirm1 = {
sNodeName = "btnConfirmGo",
sComponentName = "UIButton",
callback = "OnClickBtnGo"
},
btnCancel1 = {
sNodeName = "btnCancelGo",
sComponentName = "UIButton",
callback = "OnClickBtnCancel"
},
btnCancel2 = {
sNodeName = "btnClose",
sComponentName = "UIButton",
callback = "OnClickBtnCancel"
},
mMsgAni = {
sNodeName = "t_windowMsgNode",
sComponentName = "Animator"
},
imgTicketTimeBg = {},
imgTicketIcon = {sComponentName = "Image"},
txtTicketCount = {sComponentName = "TMP_Text"},
TMPTicketTimeHint = {sComponentName = "TMP_Text"},
imgIconTicketBtn = {sComponentName = "Image"},
txtCountTicketBtn = {sComponentName = "TMP_Text"},
btnTicket = {
sComponentName = "UIButton",
callback = "OnClickBtnTicket"
}
}
WeeklyCopiesCtrl._mapEventConfig = {
[EventId.UIHomeConfirm] = "OnEvent_Home",
[EventId.UIBackConfirm] = "OnEvent_Back"
}
WeeklyCopiesCtrl._mapRedDotConfig = {}
function WeeklyCopiesCtrl:Awake()
self.curSelectBossType = nil
self.curSelectBossLevelData = nil
self.tbReward = nil
self.tbAfterReward = nil
self.initSelTypeId = 0
self.initSelDiffId = 0
end
function WeeklyCopiesCtrl:FadeIn()
end
function WeeklyCopiesCtrl:FadeOut()
end
function WeeklyCopiesCtrl:OnEnable()
self.initSelTypeId = 0
local tbParams = self:GetPanelParam()
if type(tbParams) == "table" and tbParams[1] ~= nil then
self.initSelTypeId = tbParams[1]
elseif self.curSelectBossType ~= nil then
self.initSelTypeId = self.curSelectBossType.Id
end
self:SetSprite_Coin(self._mapNode.imgTicketIcon, AllEnum.CoinItemId.RogueHardCoreTick)
self:SetSprite_Coin(self._mapNode.imgIconTicketBtn, AllEnum.CoinItemId.RogueHardCoreTick)
local nTicketCount = PlayerData.Item:GetItemCountByID(AllEnum.CoinItemId.RogueHardCoreTick)
local nTicketMax = ConfigTable.GetConfigNumber("WeekBossTicketMax")
NovaAPI.SetTMPText(self._mapNode.txtTicketCount, string.format("%d/%d", nTicketCount, nTicketMax))
NovaAPI.SetTMPColor(self._mapNode.txtCountTicketBtn, 0 < nTicketCount and Blue_Normal or Red_Unable)
if nTicketCount < nTicketMax then
self._mapNode.imgTicketTimeBg:SetActive(true)
self:SetTimes()
else
self._mapNode.imgTicketTimeBg:SetActive(false)
end
NovaAPI.SetTMPText(self._mapNode.txtChallenge, ConfigTable.GetUIText("WeeklyBoss_Chanllenge"))
NovaAPI.SetTMPText(self._mapNode.txtThroughTime, ConfigTable.GetUIText("WeeklyBoss_ThroughTime"))
NovaAPI.SetTMPText(self._mapNode.txtRewardCount, ConfigTable.GetUIText("WeeklyBoss_RewardCount"))
NovaAPI.SetTMPText(self._mapNode.txtEnemySkill, ConfigTable.GetUIText("WeeklyBoss_EnemySkill"))
NovaAPI.SetTMPText(self._mapNode.txtDetailInfo, ConfigTable.GetUIText("WeeklyBoss_DetailInfo"))
NovaAPI.SetTMPText(self._mapNode.txtLevelLimit, ConfigTable.GetUIText("WeeklyBoss_LevelLimit"))
NovaAPI.SetTMPText(self._mapNode.txtCancel, ConfigTable.GetUIText("WeeklyBoss_Cancel"))
NovaAPI.SetTMPText(self._mapNode.txtConfirm, ConfigTable.GetUIText("WeeklyBoss_Confirm"))
NovaAPI.SetTMPText(self._mapNode.txtTip, ConfigTable.GetUIText("WeeklyBoss_Tip"))
NovaAPI.SetTMPText(self._mapNode.txtTipContent, ConfigTable.GetUIText("WeeklyBoss_TipContent"))
NovaAPI.SetTMPText(self._mapNode.txtRewardInfo, ConfigTable.GetUIText("WeeklyBoss_RewardInfo"))
NovaAPI.SetTMPText(self._mapNode.txtLvRenLv, ConfigTable.GetUIText("WeeklyBoss_LvRenLv"))
NovaAPI.SetTMPText(self._mapNode.txtTuiJianJiLu, ConfigTable.GetUIText("WeeklyBoss_TuiJianJiLu"))
NovaAPI.SetTMPText(self._mapNode.txtTipReward, ConfigTable.GetUIText("Level_Award"))
PlayerData.RogueBoss:SetIsWeeklyCopies(true)
EventManager.Hit(EventId.SetTransition)
local mList = {}
local func_ForEach_BossType = function(bossTypeData)
table.insert(mList, bossTypeData)
end
ForEachTableLine(DataTable.WeekBossType, func_ForEach_BossType)
local sortMList = function(a, b)
return a.Sort < b.Sort
end
table.sort(mList, sortMList)
local initSelIndex = 1
for i = 1, #mList do
do
local mNewGrid
if i > self._mapNode.mListContent.childCount then
mNewGrid = instantiate(self._mapNode.mGrid, self._mapNode.mListContent)
else
mNewGrid = self._mapNode.mListContent:GetChild(i - 1)
end
if mNewGrid ~= nil then
local bossTypeData = mList[i]
local txtName = mNewGrid.transform:Find("btnGrid/AnimRoot/TMPMonsterName"):GetComponent("TMP_Text")
NovaAPI.SetTMPText(txtName, bossTypeData.Name)
local imgIcon = mNewGrid.transform:Find("btnGrid/AnimRoot/imgLevelImage"):GetComponent("Image")
self:SetPngSprite(imgIcon, bossTypeData.Icon)
local txtCount = mNewGrid.transform:Find("btnGrid/AnimRoot/TMPCount"):GetComponent("TMP_Text")
NovaAPI.SetTMPText(txtCount, "")
local btn = mNewGrid.transform:Find("btnGrid"):GetComponent("UIButton")
btn.onClick:RemoveAllListeners()
local func_Handler = ui_handler(self, function()
WwiseAudioMgr:PlaySound("ui_bossRank_button")
if self.curSelectBossType ~= nil and self.curSelectBossType.Id == bossTypeData.Id then
return
end
self.curSelectBossType = bossTypeData
self:RefreshSelectMonster(i - 1)
end, btn.gameObject, i)
btn.onClick:AddListener(func_Handler)
mNewGrid.gameObject:SetActive(true)
if self.initSelTypeId > 0 and bossTypeData.Id == self.initSelTypeId then
initSelIndex = i
end
end
end
end
local childGridCount = self._mapNode.mListContent.childCount
if childGridCount > #mList then
for i = #mList, childGridCount - 1 do
if i <= childGridCount then
local childGrid = self._mapNode.mListContent:GetChild(i)
childGrid.gameObject:SetActive(false)
end
end
end
self.curSelectBossType = mList[initSelIndex]
self:RefreshSelectMonster(initSelIndex - 1)
end
function WeeklyCopiesCtrl:SetTimes()
if self.timerCountDown then
self.timerCountDown = nil
end
if self.timerCountDown == nil then
self.timerCountDown = self:AddTimer(0, 1, "RefreshTimes", true, true, false)
end
self:RefreshTimes()
end
function WeeklyCopiesCtrl:RefreshTimes()
local curTime = CS.ClientManager.Instance.serverTimeStamp
local nNextRefreshTime = GetNextWeekRefreshTime()
local sTimeStr = ""
local remainTime = nNextRefreshTime - curTime
if remainTime <= 0 then
self.timerCountDown:Pause(true)
self.timerCountDown = nil
self._mapNode.imgTicketTimeBg:SetActive(false)
elseif 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)
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)
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)
sTimeStr = orderedFormat(ConfigTable.GetUIText("StarTower_Reward_Refresh_Remain_Time_Day"), day, hour)
end
NovaAPI.SetTMPText(self._mapNode.TMPTicketTimeHint, orderedFormat(ConfigTable.GetUIText("WeeklyBoss_TicketTime"), sTimeStr))
end
function WeeklyCopiesCtrl:RefreshSelectMonster(index)
self._mapNode.mImgBgAni:Play("WeeklyCopiesPanelBg_in", 0, 0)
self._mapNode.mInfoAni:Play("MonsterInfoNode_in", 0, 0)
for i = 0, self._mapNode.mListContent.transform.childCount - 1 do
local child = self._mapNode.mListContent.transform:GetChild(i)
local imgChoose = child.transform:Find("btnGrid/AnimRoot/imgChoose").gameObject
imgChoose:SetActive(index == i)
end
self:RefreshDiffToggleContent()
local bgName = self.curSelectBossType.BossBg
if bgName ~= "" then
self:SetPngSprite(self._mapNode.mBg, bgName)
end
local mImgPath = self.curSelectBossType.Episode
if mImgPath ~= "" then
self:SetPngSprite(self._mapNode.mImage, mImgPath)
end
end
function WeeklyCopiesCtrl:RefreshDiffToggleContent()
self.curSelectDiff = 1
local diffList = {}
local sortMList = function(a, b)
return a.Difficulty < b.Difficulty
end
local func_ForEach_BossLevel = function(bossLevelData)
if bossLevelData.Type == self.curSelectBossType.Id then
table.insert(diffList, bossLevelData)
end
end
ForEachTableLine(DataTable.WeekBossLevel, func_ForEach_BossLevel)
table.sort(diffList, sortMList)
local nWorldClass = PlayerData.Base:GetWorldClass()
local initSelIndex = 1
local highLvIndex = 1
for i = 1, #diffList do
do
local bossLevelData = diffList[i]
local childGrid
if i > self._mapNode.mDiffContent.childCount then
childGrid = instantiate(self._mapNode.mDiffGrid, self._mapNode.mDiffContent)
else
childGrid = self._mapNode.mDiffContent:GetChild(i - 1)
end
if childGrid ~= nil then
do
local diffSelectNode = childGrid.transform:Find("btnGrid/AnimRoot/Select")
local diffSelectName = diffSelectNode:Find("TMPDiffNameSelect"):GetComponent("TMP_Text")
local diffUnSelectNode = childGrid.transform:Find("btnGrid/AnimRoot/unSelect")
local diffUnSelectName = diffUnSelectNode:Find("TMPDiffNameUnSelect"):GetComponent("TMP_Text")
local diff = orderedFormat(ConfigTable.GetUIText("WeeklyBoss_Diff"), tostring(bossLevelData.Difficulty))
NovaAPI.SetTMPText(diffSelectName, diff)
NovaAPI.SetTMPText(diffUnSelectName, diff)
local lockMask = childGrid.transform:Find("btnGrid/AnimRoot/lockMask")
local preLevelId = bossLevelData.PreLevelId
local bLocked = false
if 0 < preLevelId then
local preLevelData = PlayerData.RogueBoss:GetCacheWeeklyBossMsg(preLevelId)
bLocked = preLevelData == nil
lockMask.gameObject:SetActive(bLocked)
if bLocked == false then
if 0 < self.initSelDiffId and self.initSelDiffId == bossLevelData.Id then
initSelIndex = i
end
highLvIndex = i
end
else
lockMask.gameObject:SetActive(false)
end
local bUnable = nWorldClass < bossLevelData.NeedWorldClass
local btn = childGrid.transform:Find("btnGrid"):GetComponent("UIButton")
btn.onClick:RemoveAllListeners()
local func_Handler = ui_handler(self, function()
if bLocked then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("WeeklyBoss_TipDiff"))
elseif bUnable then
self.curSelectBossLevelData = bossLevelData
self:RefreshMonsterInfoShow()
self:RefreshDiffToggleShow(i, true)
elseif bossLevelData.Id ~= self.curSelectBossLevelData.Id then
self.curSelectBossLevelData = bossLevelData
self:RefreshMonsterInfoShow()
self:RefreshDiffToggleShow(i, true)
end
end, btn.gameObject, i)
btn.onClick:AddListener(func_Handler)
childGrid.gameObject:SetActive(true)
end
end
end
end
local childGridCount = self._mapNode.mDiffContent.childCount
if childGridCount > #diffList then
for i = #diffList, childGridCount - 1 do
if i <= childGridCount then
local childGrid = self._mapNode.mDiffContent:GetChild(i)
childGrid.gameObject:SetActive(false)
end
end
end
if initSelIndex == 1 then
initSelIndex = highLvIndex
end
self.curSelectBossLevelData = diffList[initSelIndex]
self:RefreshMonsterInfoShow()
self:RefreshDiffToggleShow(initSelIndex, false)
end
function WeeklyCopiesCtrl:RefreshDiffToggleShow(selIndex, playAni)
if playAni then
self._mapNode.mInfoAni:Play("MonsterInfoNode_in1", 0, 0)
end
if self.curSelectBossLevelData == nil then
return
end
local nWorldClass = PlayerData.Base:GetWorldClass()
local go = nWorldClass >= self.curSelectBossLevelData.NeedWorldClass
self._mapNode.goNode:SetActive(go)
self._mapNode.emptyNode:SetActive(not go)
if go == false then
NovaAPI.SetTMPText(self._mapNode.txtLevelLimit, orderedFormat(ConfigTable.GetUIText("WeeklyBoss_LevelLimit"), self.curSelectBossLevelData.NeedWorldClass))
end
local cacheLevelData = PlayerData.RogueBoss:GetCacheWeeklyBossMsg(self.curSelectBossLevelData.Id)
if cacheLevelData == nil then
NovaAPI.SetTMPText(self._mapNode.txtThroughTime, ConfigTable.GetUIText("WeeklyBoss_ThroughTimeNoData"))
else
local throughTime = cacheLevelData.Time
local time = 0
if throughTime ~= nil then
time = throughTime
end
local m = math.floor(time / 60)
local s = time % 60
NovaAPI.SetTMPText(self._mapNode.txtThroughTime, orderedFormat(ConfigTable.GetUIText("WeeklyBoss_ThroughTime"), m, s))
end
for i = 0, self._mapNode.mDiffContent.childCount - 1 do
local childGrid = self._mapNode.mDiffContent:GetChild(i)
local selNode = childGrid.transform:Find("btnGrid/AnimRoot/Select").gameObject
local unSelNode = childGrid.transform:Find("btnGrid/AnimRoot/unSelect").gameObject
selNode:SetActive(i == selIndex - 1)
unSelNode:SetActive(i ~= selIndex - 1)
end
end
function WeeklyCopiesCtrl:RefreshMonsterInfoShow()
if self.curSelectBossLevelData ~= nil then
NovaAPI.SetTMPText(self._mapNode.mInfoName, self.curSelectBossLevelData.Name)
NovaAPI.SetTMPText(self._mapNode.mInfoLv, self.curSelectBossLevelData.SuggestedPower)
local path = "Icon/BuildRank/BuildRank_" .. self.curSelectBossLevelData.SuggestedBuild
self:SetPngSprite(self._mapNode.mInfoBuildRank, path)
for i = 1, 5 do
local sName = "EntryGroupId" .. i
local nSkillId = self.curSelectBossLevelData[sName]
self._mapNode.Skill[i]:SetMonsterSkill(nSkillId)
end
self:RefreshRewardInfo()
end
for i = 0, 2 do
self._mapNode.mElementNode:GetChild(i).gameObject:SetActive(false)
end
local eList = self.curSelectBossType.EET
for i = 1, #eList do
local icon = self._mapNode.mElementNode:GetChild(i):GetComponent("Image")
local sName = AllEnum.ElementIconType.Icon .. eList[i]
self:SetAtlasSprite(icon, "12_rare", sName)
icon.gameObject:SetActive(true)
end
local antiList = self.curSelectBossType.AntiEET
if antiList == nil or #antiList == 0 then
self._mapNode.TabDuel2:SetActive(false)
else
for i = 0, 2 do
self._mapNode.mAntiElementNode:GetChild(i).gameObject:SetActive(false)
end
for i = 1, #antiList do
local icon = self._mapNode.mAntiElementNode:GetChild(i):GetComponent("Image")
local sName = AllEnum.ElementIconType.Icon .. antiList[i]
self:SetAtlasSprite(icon, "12_rare", sName)
icon.gameObject:SetActive(true)
end
self._mapNode.TabDuel2:SetActive(true)
end
end
function WeeklyCopiesCtrl:RefreshRewardInfo()
local tbReward = decodeJson(self.curSelectBossLevelData.BaseAwardPreview)
self.tbReward = tbReward
local mapLevelInfo = PlayerData.RogueBoss:GetCacheWeeklyBossMsg(self.curSelectBossLevelData.Id)
local isFirstPass = mapLevelInfo ~= nil
for index = 1, 5 do
if tbReward[index] ~= nil then
local nLastIndex = #tbReward[index]
local bReceived = false
if tbReward[index][nLastIndex] == 1 and isFirstPass then
bReceived = true
elseif tbReward[index][nLastIndex] == 2 then
bReceived = true
end
table.insert(self.tbReward[index], bReceived)
end
end
self.tbAfterReward = {}
for key, value in pairs(self.tbReward) do
local nLastIndex = #self.tbReward[key]
if not self.tbReward[key][nLastIndex] then
table.remove(value)
table.insert(self.tbAfterReward, value)
end
end
for index = 1, 5 do
self._mapNode.btn_item[index].interactable = self.tbAfterReward[index] ~= nil
if self.tbAfterReward[index] ~= nil then
local nLastIndex = #self.tbAfterReward[index]
self._mapNode.item[index]:SetItem(self.tbAfterReward[index][1], nil, UTILS.ParseRewardItemCount(self.tbAfterReward[index]), nil, false, self.tbAfterReward[index][nLastIndex] == 1, self.tbAfterReward[index][nLastIndex] == 2, true)
else
self._mapNode.item[index]:SetItem(nil)
end
end
end
function WeeklyCopiesCtrl:OnBtnClick_Skill(btn, nidx)
if self.curSelectBossLevelData ~= nil then
local sName = "EntryGroupId" .. nidx
local nSkillId = self.curSelectBossLevelData[sName]
if nSkillId ~= 0 then
local mapData = {
nSkillId = nSkillId,
bMonster = true,
bBoss = true
}
EventManager.Hit(EventId.OpenPanel, PanelId.SkillTips, btn.transform, mapData)
end
end
end
function WeeklyCopiesCtrl:OnBtnClick_Reward(btn, nidx)
if self.tbAfterReward == nil or self.tbAfterReward[nidx] == nil then
return
end
local nTid = self.tbAfterReward[nidx][1]
if nTid == nil then
return
end
local rtBtn = self._mapNode.item[nidx].gameObject.transform
UTILS.ClickItemGridWithTips(nTid, rtBtn, false, true, false)
end
function WeeklyCopiesCtrl:OnBtnClick_AllReward(btn)
local tbExtraDropReward
self._mapNode.goRewardList:OpenPanel(self.tbReward, tbExtraDropReward)
end
function WeeklyCopiesCtrl:OnClickBtnCrusade()
local nTicketCount = PlayerData.Item:GetItemCountByID(AllEnum.CoinItemId.RogueHardCoreTick)
if 0 < nTicketCount then
self:GoLevel()
else
self:ShowMsgNode(ConfigTable.GetUIText("WeeklyBoss_TipContent"))
end
end
function WeeklyCopiesCtrl:OnClickBtnTicket(btn)
UTILS.ClickItemGridWithTips(AllEnum.CoinItemId.RogueHardCoreTick, btn.transform, true, true, false)
end
function WeeklyCopiesCtrl:GoLevel()
PlayerData.RogueBoss:SetSelBuildId(0)
PlayerData.RogueBoss:SetSelLvId(self.curSelectBossLevelData.Id)
local OpenPanel = function()
EventManager.Hit(EventId.OpenPanel, PanelId.RegionBossFormation, AllEnum.RegionBossFormationType.WeeklyCopies)
end
EventManager.Hit(EventId.SetTransition, 2, OpenPanel)
end
function WeeklyCopiesCtrl:OnClickBtnGo()
self:CloseMsgNode()
self:GoLevel()
end
function WeeklyCopiesCtrl:OnClickBtnCancel()
self:CloseMsgNode()
end
function WeeklyCopiesCtrl:ShowMsgNode(msgContent)
self._mapNode.winTipNode:SetActive(true)
self._mapNode.mMsgAni:Play("t_window_04_t_in", 0, 0)
NovaAPI.SetTMPText(self._mapNode.txtTipContent, msgContent)
end
function WeeklyCopiesCtrl:CloseMsgNode()
local nAnimLen = NovaAPI.GetAnimClipLength(self._mapNode.mMsgAni, {
"t_window_04_t_out"
})
self:AddTimer(1, nAnimLen, "CloseMsgNodeCallback", true, true, true)
self._mapNode.mMsgAni:Play("t_window_04_t_out", 0, 0)
end
function WeeklyCopiesCtrl:CloseMsgNodeCallback()
self._mapNode.winTipNode:SetActive(false)
end
function WeeklyCopiesCtrl:OnDisable()
end
function WeeklyCopiesCtrl:OnDestroy()
end
function WeeklyCopiesCtrl:OnRelease()
end
function WeeklyCopiesCtrl:OnEvent_Back(nPanelId)
PlayerData.RogueBoss:SetIsWeeklyCopies(false)
EventManager.Hit(EventId.CloesCurPanel)
end
function WeeklyCopiesCtrl:OnEvent_Home(nPanelId)
PlayerData.RogueBoss:SetIsWeeklyCopies(false)
PanelManager.Home()
end
return WeeklyCopiesCtrl