5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
84 lines
3.6 KiB
Lua
84 lines
3.6 KiB
Lua
local GameResourceLoader = require("Game.Common.Resource.GameResourceLoader")
|
|
local ResType = GameResourceLoader.ResType
|
|
local InfinityTowerDifficultyItem = class("InfinityTowerDifficultyItem", BaseCtrl)
|
|
InfinityTowerDifficultyItem._mapNodeConfig = {
|
|
diff_Bg = {sComponentName = "Image"},
|
|
diff_Pass_All = {},
|
|
diff_Name = {sComponentName = "TMP_Text"},
|
|
diff_NameSpecial = {sComponentName = "TMP_Text"},
|
|
diff_Special = {},
|
|
diff_SpecialTex = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "InfinityTower_SpecialLv"
|
|
},
|
|
diff_lv_txtReLv = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "InfinityTower_Recommend_Lv"
|
|
},
|
|
diff_lv_txtReLvCount = {sComponentName = "TMP_Text"},
|
|
diff_lv_txtConstructLv = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "InfinityTower_Recommend_Construct"
|
|
},
|
|
diff_img_rank = {sComponentName = "Image"},
|
|
diff_Lock_Bg = {},
|
|
diff_Tex_Lock = {sComponentName = "TMP_Text"},
|
|
diff_btn = {sComponentName = "UIButton", callback = "OnBtnDiff"}
|
|
}
|
|
InfinityTowerDifficultyItem._mapEventConfig = {}
|
|
function InfinityTowerDifficultyItem:InitDiffList(towerId, diffSort, parent)
|
|
self.parent = parent
|
|
local data = PlayerData.InfinityTower:GetTowerDiffData(towerId, diffSort)
|
|
self.towerId = towerId
|
|
self.diffSort = diffSort
|
|
NovaAPI.SetTMPText(self._mapNode.diff_Name, data.diff.Name)
|
|
NovaAPI.SetTMPText(self._mapNode.diff_NameSpecial, data.diff.Name)
|
|
NovaAPI.SetTMPText(self._mapNode.diff_lv_txtReLvCount, data.diff.RecommendLevel)
|
|
local sRank = "Icon/BuildRank/BuildRank_" .. data.diff.RecommendBuildRank
|
|
self:SetPngSprite(self._mapNode.diff_img_rank, sRank)
|
|
local nWorldClass = PlayerData.Base:GetWorldClass()
|
|
local firstLvId = 0
|
|
if data.level[data.firstFloor] then
|
|
firstLvId = data.level[data.firstFloor].Id
|
|
end
|
|
self.isFirstLvCanChallenge = PlayerData.InfinityTower:JudgeLevelCanChallenge(towerId, firstLvId)
|
|
self.isFirstLvPass = PlayerData.InfinityTower:JudgeLevelPass(towerId, firstLvId)
|
|
self.isLock = nWorldClass < data.diff.UnlockWorldClass
|
|
self._mapNode.diff_Lock_Bg:SetActive(false)
|
|
if self.isLock then
|
|
self._mapNode.diff_Lock_Bg:SetActive(true)
|
|
NovaAPI.SetTMPText(self._mapNode.diff_Tex_Lock, data.diff.UnlockTips)
|
|
elseif not self.isFirstLvCanChallenge and not self.isFirstLvPass then
|
|
self._mapNode.diff_Lock_Bg:SetActive(true)
|
|
NovaAPI.SetTMPText(self._mapNode.diff_Tex_Lock, ConfigTable.GetUIText("InfinityTower_Bounty_Last_NotPass"))
|
|
end
|
|
self._mapNode.diff_Special:SetActive(data.diff.IsChallenge)
|
|
self._mapNode.diff_Name.gameObject:SetActive(not data.diff.IsChallenge)
|
|
self._mapNode.diff_NameSpecial.gameObject:SetActive(data.diff.IsChallenge)
|
|
local diffPassAll = PlayerData.InfinityTower:GetTowerDiffPassAll(towerId, diffSort)
|
|
self._mapNode.diff_Pass_All:SetActive(diffPassAll)
|
|
local sPath = "Icon/MapChallenge/zs_infinitytower_rank_0" .. towerId - 1
|
|
NovaAPI.SetImageSprite(self._mapNode.diff_Bg, Settings.AB_ROOT_PATH .. sPath .. ".png")
|
|
end
|
|
function InfinityTowerDifficultyItem:OnBtnDiff()
|
|
if self.isLock then
|
|
local data = PlayerData.InfinityTower:GetTowerDiffData(self.towerId, self.diffSort)
|
|
local strTips = data.diff.UnlockTips
|
|
EventManager.Hit(EventId.OpenMessageBox, strTips)
|
|
return
|
|
end
|
|
if not self.isFirstLvCanChallenge and not self.isFirstLvPass then
|
|
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("InfinityTower_Bounty_Last_NotPass"))
|
|
return
|
|
end
|
|
self.parent:InfinitySelectTower(self.towerId, self.diffSort)
|
|
local func = function()
|
|
EventManager.Hit(EventId.SetTransition)
|
|
end
|
|
EventManager.Hit(EventId.SetTransition, 9, func)
|
|
end
|
|
function InfinityTowerDifficultyItem:OnDestroy()
|
|
self.parent = nil
|
|
end
|
|
return InfinityTowerDifficultyItem
|