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,851 @@
|
||||
local TravelerDuelLevelSelectCtrl = class("TravelerDuelLevelSelectCtrl", BaseCtrl)
|
||||
local Actor2DManager = require("Game.Actor2D.Actor2DManager")
|
||||
local LocalSettingData = require("GameCore.Data.LocalSettingData")
|
||||
local Path = require("path")
|
||||
local GameResourceLoader = require("Game.Common.Resource.GameResourceLoader")
|
||||
local ResTypeAny = GameResourceLoader.ResType.Any
|
||||
local typeof = typeof
|
||||
local mapToggle = {
|
||||
[0] = "Challenge",
|
||||
[1] = GameEnum.diffculty.Diffculty_1,
|
||||
[2] = GameEnum.diffculty.Diffculty_2,
|
||||
[3] = GameEnum.diffculty.Diffculty_3,
|
||||
[4] = GameEnum.diffculty.Diffculty_4
|
||||
}
|
||||
TravelerDuelLevelSelectCtrl._mapNodeConfig = {
|
||||
aniRoot = {
|
||||
sNodeName = "----SafeAreaRoot----",
|
||||
sComponentName = "Animator"
|
||||
},
|
||||
bgLevelInfo = {sNodeName = "----Bg----"},
|
||||
rt_TravelerDuelSelect = {},
|
||||
rt_TravelerDuelInfo = {},
|
||||
RImagChar = {sComponentName = "RawImage"},
|
||||
rt_ChallengeInfo = {
|
||||
sCtrlName = "Game.UI.TravelerDuelLevelSelect.TravelerDuelChallengeInfoCtrl"
|
||||
},
|
||||
Skill = {
|
||||
sCtrlName = "Game.UI.TemplateEx.TemplateSkillCtrl",
|
||||
nCount = 5
|
||||
},
|
||||
btnSkill = {
|
||||
sNodeName = "Skill",
|
||||
sComponentName = "UIButton",
|
||||
nCount = 5,
|
||||
callback = "OnBtnClick_Skill"
|
||||
},
|
||||
btnGo = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Go"
|
||||
},
|
||||
svTravelerDuel = {
|
||||
sComponentName = "LoopScrollView"
|
||||
},
|
||||
imgElementInfo = {sComponentName = "Image", nCount = 3},
|
||||
TMPTravelerDesc = {sComponentName = "TMP_Text"},
|
||||
TMPTravelerLevelNameNormal = {sComponentName = "TMP_Text"},
|
||||
TMPRecommendBuildTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "InfinityTower_Recommend_Construct"
|
||||
},
|
||||
imgReconmendBuild = {sComponentName = "Image"},
|
||||
txtRecommendLevel = {sComponentName = "TMP_Text"},
|
||||
TMPRewardCount = {sComponentName = "TMP_Text"},
|
||||
TMPDuelLevel = {sComponentName = "TMP_Text"},
|
||||
TMPDuelExp = {sComponentName = "TMP_Text"},
|
||||
imgExpBarFillMask = {
|
||||
sComponentName = "RectTransform"
|
||||
},
|
||||
item = {
|
||||
sCtrlName = "Game.UI.TemplateEx.TemplateItemCtrl",
|
||||
nCount = 5
|
||||
},
|
||||
ItemBtn = {
|
||||
sComponentName = "UIButton",
|
||||
nCount = 5,
|
||||
callback = "OnBtnClick_RewardItem"
|
||||
},
|
||||
tog = {
|
||||
sComponentName = "UIButton",
|
||||
nCount = 4,
|
||||
callback = "OnBtnClick_Tog"
|
||||
},
|
||||
imgLockMask = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_TogTips",
|
||||
nCount = 4
|
||||
},
|
||||
togCtrl = {
|
||||
sNodeName = "tog",
|
||||
sCtrlName = "Game.UI.TemplateEx.TemplateToggleCtrl",
|
||||
nCount = 4
|
||||
},
|
||||
TopBarPanel = {
|
||||
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
|
||||
},
|
||||
goEnemyInfo = {
|
||||
sCtrlName = "Game.UI.MainlineEx.MainlineMonsterInfoCtrl"
|
||||
},
|
||||
goRewardList = {
|
||||
sCtrlName = "Game.UI.MainlineEx.RewardListCtrl"
|
||||
},
|
||||
btnAllReward = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_RewardList"
|
||||
},
|
||||
txtEnergyCount = {sComponentName = "TMP_Text"},
|
||||
TMPTitleShop = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "TD_ShopTitle"
|
||||
},
|
||||
TMPTitleQuest = {
|
||||
nCount = 2,
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "TD_QusetTitle"
|
||||
},
|
||||
TMPDuelLevelTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "TD_LevelTitle"
|
||||
},
|
||||
TMPRewardHint = {sComponentName = "TMP_Text"},
|
||||
rt_LevelInfo = {
|
||||
sCtrlName = "Game.UI.TravelerDuelLevelSelect.TravelerDuelLevelInfoCtrl"
|
||||
},
|
||||
btnLevel = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Level"
|
||||
},
|
||||
btnDuelQuestMain = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Quest"
|
||||
},
|
||||
btnDuelShopMain = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Shop"
|
||||
},
|
||||
btnEnemyInfoChallenge = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_EnemyInfo"
|
||||
},
|
||||
rtCoverRoot = {sComponentName = "Transform"},
|
||||
redDotDuelQuest1 = {},
|
||||
btnRankingDetail = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_OpenRankingInfo"
|
||||
},
|
||||
TDRankingPanel = {
|
||||
sCtrlName = "Game.UI.TravelerDuelLevelSelect.TravelerDuelRanking.TravelerDuelRankingCtrl"
|
||||
},
|
||||
TMPNpcName = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "TravelerDuel_NPC2"
|
||||
},
|
||||
TMPSubTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "TravelerDuel_NPC1"
|
||||
},
|
||||
TMPSubName = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "TravelerDuel_NPC3"
|
||||
},
|
||||
TMPNpcTime = {sComponentName = "TMP_Text"},
|
||||
TMPNpcDate = {sComponentName = "TMP_Text"},
|
||||
TMPTitleChallenge = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "TravelerDuel_ChallengeTitle"
|
||||
},
|
||||
TMPTitleChallengel = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "TravelerDuel_NormalTitle"
|
||||
},
|
||||
OffScreen3DCameraNpc = {sComponentName = "Camera"},
|
||||
rimgNpc = {sComponentName = "RawImage"},
|
||||
goNpcPos = {},
|
||||
SpriteNpc = {
|
||||
sComponentName = "SpriteRenderer"
|
||||
},
|
||||
SpriteNpcFace = {
|
||||
sComponentName = "SpriteRenderer"
|
||||
},
|
||||
rtOffscreen = {
|
||||
sNodeName = "----Actor2D_OffScreen_Renderer----",
|
||||
sComponentName = "Transform"
|
||||
},
|
||||
txtRecommendLevelTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "InfinityTower_Recommend_Lv"
|
||||
},
|
||||
txtTitleSkill = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "RegusBoss_Enemy_Skill"
|
||||
},
|
||||
txtTitleReward = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Level_Award"
|
||||
},
|
||||
txtBtnAllReward = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Mall_Btn_All"
|
||||
},
|
||||
txtBtnGo = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Maninline_Btn_Go"
|
||||
}
|
||||
}
|
||||
TravelerDuelLevelSelectCtrl._mapEventConfig = {
|
||||
[EventId.UIHomeConfirm] = "OnEvent_Home",
|
||||
[EventId.UIBackConfirm] = "OnEvent_Back",
|
||||
[EventId.UpdateWorldClass] = "OnEvent_UpdateWorldClass"
|
||||
}
|
||||
TravelerDuelLevelSelectCtrl._mapRedDotConfig = {
|
||||
[RedDotDefine.Map_TravelerDuel] = {
|
||||
sNodeName = "redDotDuelQuest1"
|
||||
}
|
||||
}
|
||||
function TravelerDuelLevelSelectCtrl:Awake()
|
||||
self.mapLevelGrid = {}
|
||||
self.mapBossDefaultHard = {}
|
||||
self.mapBossMaxHard = {}
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:FadeIn()
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:FadeOut()
|
||||
EventManager.Hit(EventId.SetTransition)
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnEnable()
|
||||
local month = os.date("%m")
|
||||
local day = os.date("%d")
|
||||
local hour = os.date("%H")
|
||||
local min = os.date("%M")
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPNpcDate, string.format("%s/%s", month, day))
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPNpcTime, string.format("%s:%s", hour, min))
|
||||
if nil == self.npcTimer then
|
||||
self.npcTimer = self:AddTimer(0, 1, function()
|
||||
local month = os.date("%m")
|
||||
local day = os.date("%d")
|
||||
local hour = os.date("%H")
|
||||
local min = os.date("%M")
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPNpcDate, string.format("%s/%s", month, day))
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPNpcTime, string.format("%s:%s", hour, min))
|
||||
end, true, true, true)
|
||||
end
|
||||
local windowResolution = CS.ClientManager.Instance.currentWindowResolution
|
||||
local scaleFactor = math.min(windowResolution.x / 2160, windowResolution.y / 1080)
|
||||
local fixedScale = windowResolution.x / scaleFactor * windowResolution.y / scaleFactor / 2332800
|
||||
self._mapNode.rtOffscreen.localScale = Vector3(fixedScale, fixedScale, fixedScale)
|
||||
self._mapNode.rimgNpc.gameObject:GetComponent("RectTransform").sizeDelta = Vector2(Settings.CURRENT_CANVAS_FULL_RECT_WIDTH, Settings.CURRENT_CANVAS_FULL_RECT_HEIGHT)
|
||||
self._mapNode.OffScreen3DCameraNpc.orthographicSize = Settings.CURRENT_CANVAS_FULL_RECT_HEIGHT / 200
|
||||
local nW = math.floor(Settings.CURRENT_CANVAS_FULL_RECT_WIDTH * Settings.RENDERTEXTURE_SIZE_FACTOR)
|
||||
local nH = math.floor(Settings.CURRENT_CANVAS_FULL_RECT_HEIGHT * Settings.RENDERTEXTURE_SIZE_FACTOR)
|
||||
self._NpcRenderTexture = GameUIUtils.GenerateRenderTextureFor2D(nW, nH)
|
||||
self._NpcRenderTexture.name = "TravelerDuelLevelSelect"
|
||||
self._mapNode.OffScreen3DCameraNpc.targetTexture = self._NpcRenderTexture
|
||||
NovaAPI.SetTexture(self._mapNode.rimgNpc, self._NpcRenderTexture)
|
||||
if self.goNpc ~= nil then
|
||||
destroy(self.goNpc)
|
||||
end
|
||||
self.goNpc = nil
|
||||
local mapSkinData = ConfigTable.GetData("NPCSkin", 917202)
|
||||
if mapSkinData ~= nil then
|
||||
if LocalSettingData.mapData.UseLive2D then
|
||||
self.goNpc = self:CreatePrefabInstance(mapSkinData.L2D, self._mapNode.goNpcPos.transform)
|
||||
self.goNpc.transform:SetLayerRecursively(CS.UnityEngine.LayerMask.NameToLayer("Cam_Layer_4"))
|
||||
Actor2DManager.PlayL2DAnim(self.goNpc.transform, "idle", true, true)
|
||||
else
|
||||
local sFileFullName = Path.basename(mapSkinData.Portrait)
|
||||
local sFileExtName = Path.extension(mapSkinData.Portrait)
|
||||
local sFileName = string.gsub(sFileFullName, sFileExtName, "")
|
||||
sFileName = string.gsub(sFileName, "_a", "")
|
||||
local sBodyName = string.format("%s_%s", sFileName, "001")
|
||||
local sFaceName = string.format("%s_%s", sFileName, "002")
|
||||
local LoadSprite = function(sPath, sName)
|
||||
local _sPath = string.format("%s/atlas_png/a/%s.png", Path.dirname(sPath), sName)
|
||||
return self:LoadAsset(_sPath, typeof(Sprite))
|
||||
end
|
||||
NovaAPI.SetSpriteRendererSprite(self._mapNode.SpriteNpc, LoadSprite(mapSkinData.Portrait, sBodyName))
|
||||
NovaAPI.SetSpriteRendererSprite(self._mapNode.SpriteNpcFace, LoadSprite(mapSkinData.Portrait, sFaceName))
|
||||
end
|
||||
end
|
||||
local GetRankingCallback = function()
|
||||
EventManager.Hit(EventId.SetTransition)
|
||||
local mapSelfRankingData, _, LastRankingRefreshTime, _ = PlayerData.TravelerDuel:GetTDRankingData()
|
||||
self.mapSelfRankingData = mapSelfRankingData
|
||||
local nNextRefreshTime = LastRankingRefreshTime + PlayerData.TravelerDuel.rankingRefreshTime
|
||||
if self.rankingRefrehTimer ~= nil then
|
||||
self.rankingRefrehTimer:Cancel()
|
||||
self.rankingRefrehTimer = nil
|
||||
end
|
||||
local nCountTime = nNextRefreshTime - CS.ClientManager.Instance.serverTimeStamp
|
||||
if 0 < nCountTime then
|
||||
self.rankingRefrehTimer = self:AddTimer(1, nCountTime, "OnTimer_RefreshRanking", true, true, true, nil)
|
||||
else
|
||||
end
|
||||
end
|
||||
local _, _, LastRefreshTime, _ = PlayerData.TravelerDuel:GetTDRankingData()
|
||||
if LastRefreshTime == 0 then
|
||||
PlayerData.TravelerDuel:SendMsg_GetTravelerDuelRanking(GetRankingCallback)
|
||||
else
|
||||
local curTimeStamp = CS.ClientManager.Instance.serverTimeStamp
|
||||
local sum = curTimeStamp - LastRefreshTime
|
||||
if sum < PlayerData.TravelerDuel.rankingRefreshTime then
|
||||
GetRankingCallback()
|
||||
else
|
||||
PlayerData.TravelerDuel:SendMsg_GetTravelerDuelRanking(GetRankingCallback)
|
||||
end
|
||||
end
|
||||
self._mapNode.rt_TravelerDuelSelect:SetActive(true)
|
||||
self._mapNode.TopBarPanel:SetCoinVisible(true)
|
||||
self._mapNode.rt_TravelerDuelInfo:SetActive(false)
|
||||
self.nCurSkinId = nil
|
||||
Actor2DManager.UnsetActor2D()
|
||||
self._mapNode.rt_ChallengeInfo.gameObject:SetActive(false)
|
||||
self.nDuelLevel, self.nDuelExp = PlayerData.TravelerDuel:GetTravelerDuelLevel()
|
||||
self.mapChallenge = PlayerData.TravelerDuel:GetTravelerDuelChallenge()
|
||||
local nTotalExp = 0
|
||||
if ConfigTable.GetData("TravelerDuelLevel", self.nDuelLevel + 1) ~= nil then
|
||||
nTotalExp = ConfigTable.GetData("TravelerDuelLevel", self.nDuelLevel + 1).LevelUpExp
|
||||
end
|
||||
self.nCurChallengeBossId = 0
|
||||
if self.mapChallenge.nIdx == 0 then
|
||||
self.nCurChallengeBossId = 0
|
||||
else
|
||||
self.nCurChallengeBossId = ConfigTable.GetData("TravelerDuelChallengeSeason", self.mapChallenge.nIdx).BossId
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPDuelLevel, self.nDuelLevel)
|
||||
local nFullLength = 514
|
||||
local nFullHeight = 38
|
||||
if 0 < nTotalExp then
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPDuelExp, string.format("<color=#3b62ae>%d</color>/%d", self.nDuelExp, nTotalExp))
|
||||
self._mapNode.imgExpBarFillMask.sizeDelta = Vector2(nFullLength * (self.nDuelExp / nTotalExp), nFullHeight)
|
||||
else
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPDuelExp, "Max")
|
||||
self._mapNode.imgExpBarFillMask.sizeDelta = Vector2(nFullLength, nFullHeight)
|
||||
end
|
||||
local tbParam = self:GetPanelParam()
|
||||
if 0 < #tbParam then
|
||||
if tbParam[3] == nil then
|
||||
end
|
||||
self.bJumpto = tbParam[3]
|
||||
self.nJumptoHard = tbParam[1] == nil and 0 or tbParam[1]
|
||||
self.nJumptoGroup = tbParam[2] == nil and 0 or tbParam[2]
|
||||
end
|
||||
local tbCachedAffix, nCachedBossId = PlayerData.TravelerDuel:GetCacheAffixids()
|
||||
if nCachedBossId ~= nil and nCachedBossId ~= 0 then
|
||||
self.bJumpto = false
|
||||
self.nJumptoHard = 0
|
||||
self.nJumptoGroup = 0
|
||||
end
|
||||
self._mapNode.rt_TravelerDuelInfo:SetActive(false)
|
||||
self.nCurSkinId = nil
|
||||
Actor2DManager.UnsetActor2D()
|
||||
self._mapNode.rt_ChallengeInfo.gameObject:SetActive(false)
|
||||
self._mapNode.bgLevelInfo:SetActive(false)
|
||||
self.curState = 1
|
||||
self.curSelectHard = GameEnum.diffculty.Diffculty_1
|
||||
self.nCurGroupId = 0
|
||||
self.mapAllTravelerDuel = {}
|
||||
self.tbTravelerGroup = {}
|
||||
local forEachTravelerDuel = function(mapData)
|
||||
if self.mapAllTravelerDuel[mapData.BossId] == nil then
|
||||
if mapData.Difficulty ~= 0 or mapData.BossId == self.nCurChallengeBossId then
|
||||
self.mapAllTravelerDuel[mapData.BossId] = {}
|
||||
if mapData.BossId ~= self.nCurChallengeBossId then
|
||||
table.insert(self.tbTravelerGroup, mapData.BossId)
|
||||
end
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
self.mapAllTravelerDuel[mapData.BossId][mapData.Difficulty] = mapData
|
||||
end
|
||||
ForEachTableLine(DataTable.TravelerDuelBossLevel, forEachTravelerDuel)
|
||||
self:InitBossMaxHard()
|
||||
local sortBoss = function(a, b)
|
||||
local mapBossA = ConfigTable.GetData("TravelerDuelBoss", a)
|
||||
local mapBossB = ConfigTable.GetData("TravelerDuelBoss", b)
|
||||
if mapBossA.TravelerDuelBossType ~= mapBossB.TravelerDuelBossType then
|
||||
return mapBossA.TravelerDuelBossType < mapBossB.TravelerDuelBossType
|
||||
end
|
||||
return mapBossA.Id < mapBossB.Id
|
||||
end
|
||||
table.sort(self.tbTravelerGroup, sortBoss)
|
||||
self._mapNode.svTravelerDuel:Init(#self.tbTravelerGroup, self, self.RefreshGrid, self.OnBtnClick_Grid)
|
||||
if self.nCurChallengeBossId ~= 0 then
|
||||
self._mapNode.rtCoverRoot.gameObject:SetActive(true)
|
||||
local mapLevelCfgData = ConfigTable.GetData("TravelerDuelBoss", self.nCurChallengeBossId)
|
||||
local nLevelId = self.mapAllTravelerDuel[self.nCurChallengeBossId][0].Id
|
||||
local coverPrefab = self:LoadAsset(string.format("%s.prefab", mapLevelCfgData.Cover))
|
||||
local goCover = instantiate(coverPrefab, self._mapNode.rtCoverRoot)
|
||||
local ctrlCover = self:BindCtrlByNode(goCover, "Game.UI.TravelerDuelLevelSelect.TDCoverCtrl")
|
||||
ctrlCover:Refresh(self.mapChallenge, nLevelId, function()
|
||||
self:OnBtnClick_Challenge()
|
||||
end, false)
|
||||
else
|
||||
self._mapNode.rtCoverRoot.gameObject:SetActive(true)
|
||||
local mapLevelCfgData = ConfigTable.GetData("TravelerDuelBoss", 1001)
|
||||
local nLevelId = 1001
|
||||
local coverPrefab = self:LoadAsset(string.format("%s.prefab", mapLevelCfgData.Cover))
|
||||
local goCover = instantiate(coverPrefab, self._mapNode.rtCoverRoot)
|
||||
local ctrlCover = self:BindCtrlByNode(goCover, "Game.UI.TravelerDuelLevelSelect.TDCoverCtrl")
|
||||
ctrlCover:Refresh(self.mapChallenge, nLevelId, function()
|
||||
self:OnBtnClick_Challenge()
|
||||
end, false)
|
||||
end
|
||||
if self.nJumptoGroup ~= 0 and self.nJumptoGroup ~= nil then
|
||||
if self.nJumptoHard ~= 0 and self.nJumptoHard ~= nil then
|
||||
self:OpenJumptoHard()
|
||||
else
|
||||
self:OpenJumptoGroup()
|
||||
end
|
||||
end
|
||||
if nCachedBossId ~= nil and nCachedBossId ~= 0 then
|
||||
self.curState = 2
|
||||
self.nCurGroupId = nCachedBossId
|
||||
local nLevelId = self.mapAllTravelerDuel[self.nCurGroupId][0].Id
|
||||
self._mapNode.rt_ChallengeInfo:Refresh(nLevelId)
|
||||
self._mapNode.rt_TravelerDuelSelect:SetActive(false)
|
||||
self._mapNode.TopBarPanel:SetCoinVisible(false)
|
||||
self._mapNode.rt_TravelerDuelInfo:SetActive(false)
|
||||
self.nCurSkinId = nil
|
||||
Actor2DManager.UnsetActor2D()
|
||||
self._mapNode.rt_ChallengeInfo.gameObject:SetActive(true)
|
||||
self._mapNode.bgLevelInfo:SetActive(true)
|
||||
end
|
||||
local totalRewardCount = ConfigTable.GetConfigValue("TravelerDuelWeeklyAwardLimit")
|
||||
local nRewardCount = PlayerData.TravelerDuel:GetTravelerDuelLevelRewardCount()
|
||||
nRewardCount = -1 < nRewardCount and totalRewardCount - nRewardCount or totalRewardCount
|
||||
if nRewardCount == nil then
|
||||
nRewardCount = 0
|
||||
end
|
||||
if nRewardCount < 0 then
|
||||
nRewardCount = 0
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPRewardCount, orderedFormat(ConfigTable.GetUIText("TD_WeekRewardTimes"), math.floor(nRewardCount), totalRewardCount))
|
||||
self._mapNode.aniRoot:Play("TravelerDuelSelect_in")
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnDisable()
|
||||
self:UnbindAllGrids()
|
||||
if self.rankingRefrehTimer ~= nil then
|
||||
self.rankingRefrehTimer:Cancel()
|
||||
self.rankingRefrehTimer = nil
|
||||
end
|
||||
if nil ~= self.npcTimer then
|
||||
self.npcTimer:Cancel()
|
||||
self.npcTimer = nil
|
||||
end
|
||||
self._mapNode.OffScreen3DCameraNpc.targetTexture = nil
|
||||
NovaAPI.SetTexture(self._mapNode.rimgNpc, nil)
|
||||
if self._NpcRenderTexture ~= nil then
|
||||
GameUIUtils.ReleaseRenderTexture(self._NpcRenderTexture)
|
||||
self._NpcRenderTexture = nil
|
||||
end
|
||||
if self.goNpc ~= nil then
|
||||
destroy(self.goNpc)
|
||||
self.goNpc = nil
|
||||
end
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnDestroy()
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnRelease()
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:RefreshGrid(goGrid, gridIndex)
|
||||
if self.mapLevelGrid[goGrid] == nil then
|
||||
self.mapLevelGrid[goGrid] = self:BindCtrlByNode(goGrid, "Game.UI.TravelerDuelLevelSelect.TravelerDuelLevelGridCtrl")
|
||||
end
|
||||
local nIdx = gridIndex + 1
|
||||
local nBossId = self.tbTravelerGroup[nIdx]
|
||||
local nLevelId = self.mapAllTravelerDuel[nBossId][mapToggle[1]].Id
|
||||
self.mapLevelGrid[goGrid]:Refresh(nBossId, nLevelId)
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:UnbindAllGrids()
|
||||
for go, mapCtrl in ipairs(self.mapLevelGrid) do
|
||||
self:UnbindCtrlByNode(mapCtrl)
|
||||
end
|
||||
self.mapLevelGrid = {}
|
||||
delChildren(self._mapNode.rtCoverRoot)
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OpenJumptoGroup()
|
||||
self.curState = 2
|
||||
self.nCurGroupId = self.nJumptoGroup
|
||||
local mapBossCfgData = ConfigTable.GetData("TravelerDuelBoss", self.nCurGroupId)
|
||||
if mapBossCfgData == nil then
|
||||
printError("TravelerDuelBoss Data Missing:" .. self.nCurGroupId)
|
||||
return
|
||||
end
|
||||
if mapBossCfgData.TravelerDuelBossType == GameEnum.travelerDuelBossType.NORMAL then
|
||||
local nHard = self:GetMaxTravelerDuelHard(self.nCurGroupId)
|
||||
self:RefreshTravelerDuelInfo(self.nCurGroupId, nHard)
|
||||
self._mapNode.rt_TravelerDuelInfo:SetActive(true)
|
||||
self._mapNode.rt_TravelerDuelSelect:SetActive(false)
|
||||
self._mapNode.TopBarPanel:SetCoinVisible(false)
|
||||
self._mapNode.rt_ChallengeInfo.gameObject:SetActive(false)
|
||||
self._mapNode.bgLevelInfo:SetActive(true)
|
||||
else
|
||||
local nLevelId = self.mapAllTravelerDuel[self.nCurGroupId][0].Id
|
||||
self._mapNode.rt_ChallengeInfo:Refresh(nLevelId)
|
||||
self._mapNode.rt_TravelerDuelInfo:SetActive(false)
|
||||
self._mapNode.TopBarPanel:SetCoinVisible(false)
|
||||
self.nCurSkinId = nil
|
||||
Actor2DManager.UnsetActor2D()
|
||||
self._mapNode.rt_ChallengeInfo.gameObject:SetActive(true)
|
||||
self._mapNode.bgLevelInfo:SetActive(true)
|
||||
end
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OpenJumptoHard()
|
||||
self.curState = 2
|
||||
self.nCurGroupId = self.nJumptoGroup
|
||||
local nJumptoDuelId = self.mapAllTravelerDuel[self.nCurGroupId][self.nJumptoHard].Id
|
||||
if not PlayerData.TravelerDuel:GetTravelerDuelLevelUnlock(nJumptoDuelId) then
|
||||
self.nJumptoHard = GameEnum.diffculty.Diffculty_1
|
||||
end
|
||||
self:RefreshTravelerDuelInfo(self.nCurGroupId, self.nJumptoHard)
|
||||
self._mapNode.rt_TravelerDuelInfo:SetActive(true)
|
||||
self._mapNode.rt_TravelerDuelSelect:SetActive(false)
|
||||
self._mapNode.TopBarPanel:SetCoinVisible(false)
|
||||
self._mapNode.bgLevelInfo:SetActive(true)
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnBtnClick_Grid(goGrid, gridIndex)
|
||||
local nIdx = gridIndex + 1
|
||||
local nBossId = self.tbTravelerGroup[nIdx]
|
||||
self.curState = 2
|
||||
self.nCurGroupId = nBossId
|
||||
self._panel._tbParam[2] = nBossId
|
||||
self.mapBossDefaultHard = {}
|
||||
local nHard = self:GetMaxTravelerDuelHard(nBossId)
|
||||
local mapBosslevel = self.mapAllTravelerDuel[self.nCurGroupId][mapToggle[1]]
|
||||
local nBossLevelId = mapBosslevel.Id
|
||||
local bUnlock, sTip = PlayerData.TravelerDuel:GetTravelerDuelLevelUnlock(nBossLevelId)
|
||||
if not bUnlock then
|
||||
EventManager.Hit(EventId.OpenMessageBox, sTip)
|
||||
return
|
||||
end
|
||||
self:RefreshTravelerDuelInfo(nBossId, nHard)
|
||||
self._mapNode.rt_TravelerDuelInfo:SetActive(true)
|
||||
self:AddTimer(1, 0.6, function()
|
||||
self._mapNode.rt_ChallengeInfo.gameObject:SetActive(false)
|
||||
end, true, true, true)
|
||||
self._mapNode.TopBarPanel:SetCoinVisible(false)
|
||||
self._mapNode.bgLevelInfo:SetActive(true)
|
||||
self._mapNode.aniRoot:Play("TravelerDuelInfo_in")
|
||||
EventManager.Hit("TDLevelSelectOut")
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.6)
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:RefreshLevelUnlock()
|
||||
for index, hardBtn in ipairs(self._mapNode.tog) do
|
||||
local bActive = self.mapAllTravelerDuel[self.nCurGroupId][mapToggle[index]] ~= nil
|
||||
hardBtn.gameObject:SetActive(bActive)
|
||||
if bActive then
|
||||
local nBossId = self.mapAllTravelerDuel[self.nCurGroupId][mapToggle[index]].Id
|
||||
local bLock = PlayerData.TravelerDuel:GetTravelerDuelLevelUnlock(nBossId)
|
||||
hardBtn.interactable = bLock
|
||||
self._mapNode.imgLockMask[index].gameObject:SetActive(not bLock)
|
||||
self._mapNode.imgLockMask[index].interactable = not bLock
|
||||
local tmpTitle = self._mapNode.togCtrl[index].gameObject.transform:Find("AnimRoot/AnimSwitch/txt_Select"):GetComponent("TMP_Text")
|
||||
local tmpTitle1 = self._mapNode.togCtrl[index].gameObject.transform:Find("AnimRoot/AnimSwitch/txt_unSelect"):GetComponent("TMP_Text")
|
||||
NovaAPI.SetTMPText(tmpTitle, ConfigTable.GetUIText("Diffculty_" .. index))
|
||||
NovaAPI.SetTMPText(tmpTitle1, ConfigTable.GetUIText("Diffculty_" .. index))
|
||||
for j = 1, 3 do
|
||||
local btnStar = self._mapNode.togCtrl[index].gameObject.transform:Find("rtLockInfo/rt_Targets/btnTarget" .. j):GetComponent("Button")
|
||||
btnStar.gameObject:SetActive(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:RefreshTravelerDuelInfo(nGroupId, nHard)
|
||||
self:RefreshLevelUnlock()
|
||||
for i = 1, 4 do
|
||||
self._mapNode.togCtrl[i]:SetDefault(i == nHard)
|
||||
end
|
||||
self.curSelectHard = nHard
|
||||
self._panel._tbParam[1] = 0
|
||||
local mapTravelerDuelData = self.mapAllTravelerDuel[nGroupId][nHard]
|
||||
self.TravelerDuel = mapTravelerDuelData.Id
|
||||
if mapTravelerDuelData == nil then
|
||||
return
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPTravelerLevelNameNormal, mapTravelerDuelData.Name)
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPTravelerDesc, mapTravelerDuelData.Desc)
|
||||
local rBuildRank = mapTravelerDuelData.RecommendBuildRank
|
||||
local sScore = "Icon/BuildRank/BuildRank_" .. rBuildRank
|
||||
self:SetPngSprite(self._mapNode.imgReconmendBuild, sScore)
|
||||
local nCharId = math.floor(mapTravelerDuelData.SkinId / 100)
|
||||
if self.nCurSkinId ~= mapTravelerDuelData.SkinId then
|
||||
self.nCurSkinId = mapTravelerDuelData.SkinId
|
||||
local bSuc, nType, nAnimLen = Actor2DManager.SetActor2D(self:GetPanelId(), self._mapNode.RImagChar, nCharId, mapTravelerDuelData.SkinId)
|
||||
end
|
||||
for i = 1, 3 do
|
||||
if mapTravelerDuelData.EET == nil or mapTravelerDuelData.EET[i] == nil then
|
||||
self._mapNode.imgElementInfo[i].gameObject:SetActive(false)
|
||||
else
|
||||
self._mapNode.imgElementInfo[i].gameObject:SetActive(true)
|
||||
self:SetAtlasSprite(self._mapNode.imgElementInfo[i], "12_rare", AllEnum.ElementIconType.Icon .. mapTravelerDuelData.EET[i])
|
||||
end
|
||||
end
|
||||
local tbReward = decodeJson(mapTravelerDuelData.BaseAwardPreview)
|
||||
self.tbReward = tbReward
|
||||
local tbShowReward = {}
|
||||
local curLevelStar = PlayerData.TravelerDuel:GetTravelerDuelLevelStar(self.TravelerDuel)
|
||||
for _, tbValue in ipairs(tbReward) do
|
||||
local nLastIndex = #tbValue
|
||||
if not (0 < curLevelStar) or tbValue[nLastIndex] ~= 1 and tbValue[nLastIndex] ~= 2 then
|
||||
table.insert(tbShowReward, tbValue)
|
||||
end
|
||||
end
|
||||
for index = 1, 4 do
|
||||
self._mapNode.ItemBtn[index].interactable = tbShowReward[index] ~= nil
|
||||
if tbShowReward[index] ~= nil then
|
||||
local nLastIndex = #tbShowReward[index]
|
||||
self._mapNode.item[index]:SetItem(tbShowReward[index][1], nil, UTILS.ParseRewardItemCount(tbShowReward[index]), nil, false, tbShowReward[index][nLastIndex] == 1, tbShowReward[index][nLastIndex] == 2, true)
|
||||
else
|
||||
self._mapNode.item[index]:SetItem(nil)
|
||||
end
|
||||
end
|
||||
self.tbExtraDropReward = {}
|
||||
self._mapNode.ItemBtn[5].interactable = mapTravelerDuelData.ExtraDropPreview ~= nil and 0 < #mapTravelerDuelData.ExtraDropPreview
|
||||
if mapTravelerDuelData.ExtraDropPreview ~= nil and 0 < #mapTravelerDuelData.ExtraDropPreview then
|
||||
self._mapNode.item[5]:SetItem(mapTravelerDuelData.ExtraDropPreview[1], nil, nil, nil, false, false, false, false, false, false, true)
|
||||
local countTxt = ""
|
||||
if mapTravelerDuelData.ExtraDropPreview[2] == mapTravelerDuelData.ExtraDropPreview[3] then
|
||||
countTxt = mapTravelerDuelData.ExtraDropPreview[2]
|
||||
else
|
||||
countTxt = mapTravelerDuelData.ExtraDropPreview[2] .. "~" .. mapTravelerDuelData.ExtraDropPreview[3]
|
||||
end
|
||||
local txtCount = self._mapNode.item[5].gameObject.transform:Find("--Common--/txtCount"):GetComponent("TMP_Text")
|
||||
local txtX = txtCount.transform:Find("txtX")
|
||||
txtCount.gameObject:SetActive(0 < mapTravelerDuelData.ExtraDropPreview[2])
|
||||
txtX.gameObject:SetActive(mapTravelerDuelData.ExtraDropPreview[2] == mapTravelerDuelData.ExtraDropPreview[3])
|
||||
self.tbExtraDropReward = mapTravelerDuelData.ExtraDropPreview
|
||||
NovaAPI.SetTMPText(txtCount, countTxt)
|
||||
else
|
||||
self._mapNode.item[5]:SetItem(nil)
|
||||
end
|
||||
local tbSkill = mapTravelerDuelData.SkillShow
|
||||
for i = 1, 5 do
|
||||
if i <= #tbSkill then
|
||||
self._mapNode.Skill[i].gameObject:SetActive(true)
|
||||
self._mapNode.Skill[i]:SetTravelerDuelSkill(tbSkill[i])
|
||||
else
|
||||
self._mapNode.Skill[i].gameObject:SetActive(false)
|
||||
end
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.txtRecommendLevel, mapTravelerDuelData.SuggestedPower)
|
||||
local totalRewardCount = ConfigTable.GetConfigValue("TravelerDuelWeeklyAwardLimit")
|
||||
local nRewardCount = PlayerData.TravelerDuel:GetTravelerDuelLevelRewardCount(nGroupId)
|
||||
if curLevelStar <= 0 then
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPRewardHint, ConfigTable.GetUIText("TD_FreeReward"))
|
||||
else
|
||||
local nShowCount = totalRewardCount - nRewardCount
|
||||
if 0 < nShowCount then
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPRewardHint, string.format("%s %d/%d", ConfigTable.GetUIText("TD_WeekRewardTimes_Title"), nShowCount, totalRewardCount))
|
||||
else
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPRewardHint, string.format("%s <color=#BD3059>%d</color>/<color=#264278>%d</color>", ConfigTable.GetUIText("TD_WeekRewardTimes_Title"), 0, totalRewardCount))
|
||||
end
|
||||
end
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:GetMaxTravelerDuelHard(nBossId)
|
||||
local retHard = 1
|
||||
if self.mapAllTravelerDuel[nBossId] == nil then
|
||||
printError("BossId Error:" .. nBossId)
|
||||
return 1
|
||||
end
|
||||
if self.mapBossDefaultHard[nBossId] ~= nil then
|
||||
return self.mapBossDefaultHard[nBossId]
|
||||
end
|
||||
for nHard, mapBossLevel in pairs(self.mapAllTravelerDuel[nBossId]) do
|
||||
if PlayerData.TravelerDuel:GetTravelerDuelLevelUnlock(mapBossLevel.Id) then
|
||||
retHard = math.max(nHard, retHard)
|
||||
end
|
||||
end
|
||||
return retHard
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnEvent_Back(nPanelId)
|
||||
if self._panel._nPanelId ~= nPanelId then
|
||||
return
|
||||
end
|
||||
self._mapNode.rt_ChallengeInfo:CacheAffixes()
|
||||
PlayerData.TravelerDuel:SetCacheAffixids(nil, nil)
|
||||
if self.bJumpto then
|
||||
EventManager.Hit(EventId.CloesCurPanel)
|
||||
return
|
||||
end
|
||||
if self.curState == 1 then
|
||||
EventManager.Hit(EventId.CloesCurPanel)
|
||||
else
|
||||
self.curSelectHard = GameEnum.diffculty.Diffculty_1
|
||||
self.nCurGroupId = 0
|
||||
self.curState = 1
|
||||
self._panel._tbParam[2] = 0
|
||||
self._panel._tbParam[1] = 0
|
||||
self:AddTimer(1, 0.5, function()
|
||||
self._mapNode.rt_TravelerDuelInfo:SetActive(false)
|
||||
self._mapNode.rt_TravelerDuelSelect:SetActive(true)
|
||||
self.nCurSkinId = nil
|
||||
Actor2DManager.UnsetActor2D()
|
||||
self._mapNode.rt_ChallengeInfo.gameObject:SetActive(false)
|
||||
self._mapNode.rt_ChallengeInfo:ClearListGrids(false)
|
||||
self._mapNode.bgLevelInfo:SetActive(false)
|
||||
self._mapNode.aniRoot:Play("TravelerDuelSelect_in")
|
||||
self._mapNode.TopBarPanel:SetCoinVisible(true)
|
||||
EventManager.Hit("TDLevelSelectIn", 1)
|
||||
end, true, true, true)
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 1.2)
|
||||
end
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnEvent_Home(nPanelId)
|
||||
if self._panel._nPanelId ~= nPanelId then
|
||||
return
|
||||
end
|
||||
self._mapNode.rt_ChallengeInfo:CacheAffixes()
|
||||
PlayerData.TravelerDuel:SetCacheAffixids(nil, nil)
|
||||
PanelManager.Home()
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnEvent_UpdateWorldClass()
|
||||
self:RefreshLevelUnlock()
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnBtnClick_Go()
|
||||
self.mapBossDefaultHard[self.nCurGroupId] = self.curSelectHard
|
||||
local OpenPanel = function()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.RegionBossFormation, AllEnum.RegionBossFormationType.TravelerDuel, self.TravelerDuel, {})
|
||||
end
|
||||
EventManager.Hit(EventId.SetTransition, 2, OpenPanel)
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnBtnClick_Tog(btn)
|
||||
local nHard = table.indexof(self._mapNode.tog, btn:GetComponent("UIButton"))
|
||||
local togIdx = table.indexof(self._mapNode.tog, btn)
|
||||
if nHard == nil then
|
||||
return
|
||||
end
|
||||
if self.curSelectHard ~= nHard then
|
||||
for idx, value in pairs(mapToggle) do
|
||||
if value == self.curSelectHard then
|
||||
self._mapNode.togCtrl[idx]:SetTrigger(false)
|
||||
end
|
||||
end
|
||||
self._mapNode.togCtrl[togIdx]:SetTrigger(true)
|
||||
self:RefreshTravelerDuelInfo(self.nCurGroupId, nHard)
|
||||
end
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnBtnClick_RewardList(btn)
|
||||
local mapLevel = ConfigTable.GetData("TravelerDuelBossLevel", self.TravelerDuel)
|
||||
local tbReward = decodeJson(mapLevel.BaseAwardPreview)
|
||||
local curLevelStar = PlayerData.TravelerDuel:GetTravelerDuelLevelStar(self.TravelerDuel)
|
||||
for _, tbValue in ipairs(tbReward) do
|
||||
local nLastIndex = #tbValue
|
||||
if 0 < curLevelStar and tbValue[nLastIndex] == 1 or curLevelStar == 3 and tbValue[nLastIndex] == 2 then
|
||||
table.insert(tbValue, true)
|
||||
end
|
||||
end
|
||||
self._mapNode.goRewardList:OpenPanel(tbReward, self.tbExtraDropReward)
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnBtnClick_RewardItem(btn)
|
||||
local nIdx = table.indexof(self._mapNode.ItemBtn, btn)
|
||||
if nIdx == 5 then
|
||||
if self.tbExtraDropReward == nil then
|
||||
return
|
||||
end
|
||||
local nTid = self.tbExtraDropReward[1]
|
||||
if nTid == nil then
|
||||
return
|
||||
end
|
||||
local rtBtn = btn.transform
|
||||
UTILS.ClickItemGridWithTips(nTid, rtBtn, false, true, false)
|
||||
return
|
||||
end
|
||||
local mapLevel = ConfigTable.GetData("TravelerDuelBossLevel", self.TravelerDuel)
|
||||
local tbReward = decodeJson(mapLevel.BaseAwardPreview)
|
||||
local tbShowReward = {}
|
||||
local curLevelStar = PlayerData.TravelerDuel:GetTravelerDuelLevelStar(self.TravelerDuel)
|
||||
for _, tbValue in ipairs(tbReward) do
|
||||
local nLastIndex = #tbValue
|
||||
if not (0 < curLevelStar) or tbValue[nLastIndex] ~= 1 and tbValue[nLastIndex] ~= 2 then
|
||||
table.insert(tbShowReward, tbValue)
|
||||
end
|
||||
end
|
||||
tbReward = tbShowReward
|
||||
local rtBtn = btn.transform
|
||||
if tbReward[nIdx] ~= nil then
|
||||
local nTid = tbReward[nIdx][1]
|
||||
UTILS.ClickItemGridWithTips(nTid, rtBtn, false, true, false)
|
||||
end
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnBtnClick_TogTips(btn, nidx)
|
||||
local nBossId = self.mapAllTravelerDuel[self.nCurGroupId][mapToggle[nidx]].Id
|
||||
local bUnLock, sMsg = PlayerData.TravelerDuel:GetTravelerDuelLevelUnlock(nBossId)
|
||||
if not bUnLock then
|
||||
EventManager.Hit(EventId.OpenMessageBox, sMsg)
|
||||
end
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnBtnClick_Skill(btn, nidx)
|
||||
local mapTravelerDuelData = self.mapAllTravelerDuel[self.nCurGroupId][self.curSelectHard]
|
||||
local nSkillId = mapTravelerDuelData.SkillShow[nidx]
|
||||
if nSkillId ~= 0 then
|
||||
local mapData = {nSkillId = nSkillId, bTravelerDuel = true}
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.SkillTips, btn.transform, mapData)
|
||||
end
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnBtnClick_Level(btn)
|
||||
self._mapNode.rt_LevelInfo:Show()
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnBtnClick_Quest(btn)
|
||||
self:AddTimer(1, 0.2, function()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.TravelerDuelLevelQuestPanel)
|
||||
self._panel._nFadeInType = 2
|
||||
end, true, true, true)
|
||||
self._mapNode.aniRoot:Play("TravelerDuelTask")
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnBtnClick_Shop(btn)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.ShopPanel, 2)
|
||||
self._panel._nFadeInType = 2
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnBtnClick_EnemyInfo()
|
||||
local nLevelId = self.mapAllTravelerDuel[self.nCurGroupId][0].Id
|
||||
EventManager.Hit("OpenTravelerDuelMonsterInfo", nLevelId)
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnTimer_RefreshRanking()
|
||||
local callback = function()
|
||||
local mapSelfRankingData, _, LastRankingRefreshTime, _ = PlayerData.TravelerDuel:GetTDRankingData()
|
||||
self.mapSelfRankingData = mapSelfRankingData
|
||||
local nNextRefreshTime = LastRankingRefreshTime + PlayerData.TravelerDuel.rankingRefreshTime
|
||||
if self.rankingRefrehTimer ~= nil then
|
||||
self.rankingRefrehTimer:Cancel()
|
||||
self.rankingRefrehTimer = nil
|
||||
end
|
||||
self.rankingRefrehTimer = self:AddTimer(1, nNextRefreshTime - CS.ClientManager.Instance.serverTimeStamp, "OnTimer_RefreshRanking", true, true, true, nil)
|
||||
end
|
||||
PlayerData.TravelerDuel:SendMsg_GetTravelerDuelRanking(callback)
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnBtnClick_Challenge(btn)
|
||||
self.curState = 2
|
||||
self.nCurGroupId = self.nCurChallengeBossId
|
||||
self._panel._tbParam[2] = self.nCurChallengeBossId
|
||||
local nLevelId = self.mapAllTravelerDuel[self.nCurGroupId][0].Id
|
||||
self._mapNode.rt_ChallengeInfo:Refresh(nLevelId)
|
||||
self._mapNode.rt_ChallengeInfo.gameObject:SetActive(true)
|
||||
self:AddTimer(1, 0.6, function()
|
||||
self._mapNode.rt_TravelerDuelInfo:SetActive(false)
|
||||
self.nCurSkinId = nil
|
||||
Actor2DManager.UnsetActor2D()
|
||||
end, true, true, true)
|
||||
self._mapNode.bgLevelInfo:SetActive(true)
|
||||
self._mapNode.aniRoot:Play("ChallengeInfo_in")
|
||||
self._mapNode.TopBarPanel:SetCoinVisible(false)
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.6)
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:OnBtnClick_OpenRankingInfo(btn)
|
||||
self._mapNode.TDRankingPanel:OpenPanel()
|
||||
end
|
||||
function TravelerDuelLevelSelectCtrl:InitBossMaxHard()
|
||||
for nBossId, mapLevels in pairs(self.mapAllTravelerDuel) do
|
||||
local nNewHard = 0
|
||||
for nHard, mapBossLevel in pairs(mapLevels) do
|
||||
if PlayerData.TravelerDuel:GetTravelerDuelLevelUnlock(mapBossLevel.Id) then
|
||||
nNewHard = math.max(nHard, nNewHard)
|
||||
end
|
||||
end
|
||||
if self.mapBossMaxHard ~= nil and self.mapBossMaxHard[nBossId] ~= nNewHard then
|
||||
self.mapBossMaxHard[nBossId] = nNewHard
|
||||
self.mapBossDefaultHard[nBossId] = nNewHard
|
||||
end
|
||||
end
|
||||
end
|
||||
return TravelerDuelLevelSelectCtrl
|
||||
Reference in New Issue
Block a user