local VampireLevelSelect_levelGridCtrl = class("VampireLevelSelect_levelGridCtrl", BaseCtrl) VampireLevelSelect_levelGridCtrl._mapNodeConfig = { TMPLevelName = {sComponentName = "TMP_Text", nCount = 2}, imgLevelImg = {sComponentName = "Image"}, rtRankRoot = {}, imgTimeBg = {}, TMPRemainTime = {sComponentName = "TMP_Text"}, txtRecommendLevel = {sComponentName = "TMP_Text"}, TMPUnlockCond = {sComponentName = "TMP_Text"}, rtNormalRoot = {}, imgLock = {}, imgElementInfo = {sComponentName = "Image", nCount = 6}, TMPRecEZone1 = { sComponentName = "TMP_Text", sLanguageId = "VampireTitle_FirstHalf" }, TMPRecEZone2 = { sComponentName = "TMP_Text", sLanguageId = "VampireTitle_SecondHalf" }, txtTitle = { sComponentName = "TMP_Text", sLanguageId = "InfinityTower_Recommend_Lv" }, TMPRecommendBuildTitleChallenge = { sComponentName = "TMP_Text", sLanguageId = "InfinityTower_Recommend_Construct" }, imgReconmendBuildChallenge = {sComponentName = "Image"}, btnStar = {nCount = 3, sComponentName = "Button"}, TMPDisasterStar = {sComponentName = "TMP_Text"} } VampireLevelSelect_levelGridCtrl._mapEventConfig = { VampireQuestRefresh = "OnEvent_VampireQuestRefresh" } VampireLevelSelect_levelGridCtrl._mapRedDotConfig = {} function VampireLevelSelect_levelGridCtrl:Refresh(mapLevelData) if mapLevelData == nil then self.gameObject:SetActive(false) return end self.mapData = mapLevelData NovaAPI.SetTMPText(self._mapNode.TMPLevelName[1], mapLevelData.Name) NovaAPI.SetTMPText(self._mapNode.TMPLevelName[2], mapLevelData.Name) if mapLevelData.Type == GameEnum.vampireSurvivorType.Turn then self._mapNode.rtRankRoot:SetActive(true) self._mapNode.rtNormalRoot:SetActive(false) NovaAPI.SetTMPText(self._mapNode.TMPRemainTime, PlayerData.VampireSurvivor:GetRefreshTiem()) self._mapNode.imgTimeBg:SetActive(false) else self._mapNode.rtRankRoot:SetActive(false) self._mapNode.rtNormalRoot:SetActive(true) self._mapNode.imgTimeBg:SetActive(false) local tbQuestId = CacheTable.GetData("_VampireQuestGroup", mapLevelData.FirstQuestGroupId) if tbQuestId == nil then tbQuestId = {} end for i = 1, 3 do self._mapNode.btnStar[i].gameObject:SetActive(tbQuestId[i] ~= nil) self._mapNode.btnStar[i].interactable = PlayerData.Quest:GetVampireQuestStatusById(tbQuestId[i]) > 0 end end for i = 1, 3 do if mapLevelData.EETScore1 == nil or mapLevelData.EETScore1[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 .. mapLevelData.EETScore1[i]) end end for i = 1, 3 do if mapLevelData.EETScore2 == nil or mapLevelData.EETScore2[i] == nil then self._mapNode.imgElementInfo[i + 3].gameObject:SetActive(false) else self._mapNode.imgElementInfo[i + 3].gameObject:SetActive(true) self:SetAtlasSprite(self._mapNode.imgElementInfo[i + 3], "12_rare", AllEnum.ElementIconType.Icon .. mapLevelData.EETScore2[i]) end end local sPath = self.mapData.CoverEpisode == nil and self.mapData.Episode or self.mapData.CoverEpisode self:SetPngSprite(self._mapNode.imgLevelImg, sPath) local bUnLock, nType, content = PlayerData.VampireSurvivor:CheckLevelUnlock(mapLevelData.Id) if not bUnLock then self._mapNode.imgLock:SetActive(true) local sKey = "VampireTalent_LockCond" .. nType NovaAPI.SetTMPText(self._mapNode.TMPUnlockCond, orderedFormat(ConfigTable.GetUIText(sKey), content)) else self._mapNode.imgLock:SetActive(false) end NovaAPI.SetTMPText(self._mapNode.txtRecommendLevel, mapLevelData.SuggestedPower) local rBuildRank = mapLevelData.RecommendBuildRank local sScore = "Icon/BuildRank/BuildRank_" .. rBuildRank self:SetPngSprite(self._mapNode.imgReconmendBuildChallenge, sScore) local cur, total = PlayerData.VampireSurvivor:GetSeasonQuestCount(GameEnum.vampireSurvivorType.Turn) NovaAPI.SetTMPText(self._mapNode.TMPDisasterStar, string.format("%d/%d", cur, total)) end function VampireLevelSelect_levelGridCtrl:OnEvent_VampireQuestRefresh() local cur, total = PlayerData.VampireSurvivor:GetSeasonQuestCount(GameEnum.vampireSurvivorType.Turn) NovaAPI.SetTMPText(self._mapNode.TMPDisasterStar, string.format("%d/%d", cur, total)) end return VampireLevelSelect_levelGridCtrl