Files
StellaSora_DataLua/lua/game/ui/soldier/soldierlevelselectitemctrl.lua
T
SL1900 08b515afd9 Major Update - 2.0.0.143
EN: 2.0.0.143
CN: 2.0.0.142
JP: 2.0.0.145
KR: 2.0.0.150
2026-10-20 13:00:00 +09:00

86 lines
3.4 KiB
Lua

local SoldierLevelSelectItemCtrl = class("SoldierLevelSelectItemCtrl", BaseCtrl)
SoldierLevelSelectItemCtrl._mapNodeConfig = {
rtTag = {},
txt_Title = {sComponentName = "TMP_Text"},
txt_DifficultNum = {sComponentName = "TMP_Text"},
txt_Difficult = {
sComponentName = "TMP_Text",
sLanguageId = "Soldier_LevelSelect_Difficulty"
},
txt_LvNumLockPreview = {sComponentName = "TMP_Text"},
txt_LvNumLock = {sComponentName = "TMP_Text"},
txt_LvNum = {sComponentName = "TMP_Text"},
txtLvCount = {sComponentName = "TMP_Text"},
txt_Desc = {nCount = 2, sComponentName = "TMP_Text"},
btn_Search = {
sComponentName = "UIButton",
callback = "OnBtnClick_Search"
},
rtLockSelect = {},
rtLockPreview = {},
imgDescZs = {nCount = 2},
imgDescLock = {nCount = 2},
rtDetailList = {
sComponentName = "RectTransform"
},
PickMask = {}
}
function SoldierLevelSelectItemCtrl:SetData(mapData, bUnlock)
local nCurExp = PlayerData.SoldierData:GetChallengeExp()
self.nId = mapData.Id
local mapKeyGrade = ConfigTable.GetData("SoldierKeyGrade", mapData.KeyGradeId)
if mapKeyGrade ~= nil then
NovaAPI.SetTMPText(self._mapNode.txt_Title, mapKeyGrade.Name)
end
self._mapNode.rtLockSelect.gameObject:SetActive(true)
self._mapNode.rtLockPreview.gameObject:SetActive(not bUnlock)
for i = 1, #self._mapNode.imgDescZs do
self._mapNode.imgDescZs[i].gameObject:SetActive(bUnlock)
self._mapNode.imgDescLock[i].gameObject:SetActive(not bUnlock)
end
NovaAPI.SetTMPText(self._mapNode.txt_LvNum, mapData.Name)
NovaAPI.SetTMPText(self._mapNode.txt_LvNumLockPreview, mapData.Name)
NovaAPI.SetTMPText(self._mapNode.txt_LvNumLock, mapData.Name)
self._mapNode.txtLvCount.gameObject:SetActive(true)
NovaAPI.SetTMPText(self._mapNode.txtLvCount, nCurExp .. "/" .. mapData.GradeScore)
local nHighestChallengeId = PlayerData.SoldierData:GetHighestChallengeId()
if nHighestChallengeId ~= mapData.Id then
self._mapNode.txtLvCount.gameObject:SetActive(false)
else
self._mapNode.txtLvCount.gameObject:SetActive(true)
if nCurExp > mapData.GradeScore then
nCurExp = mapData.GradeScore
end
NovaAPI.SetTMPText(self._mapNode.txtLvCount, nCurExp .. "/" .. mapData.GradeScore)
end
NovaAPI.SetTMPText(self._mapNode.txt_DifficultNum, mapData.OppoLevelShow)
local sText = orderedFormat(ConfigTable.GetUIText("Soldier_LevelSelect_InitialHp"), mapData.InitialHp)
NovaAPI.SetTMPText(self._mapNode.txt_Desc[1], sText)
local sOppoAttrAddShow = math.floor(tonumber(mapData.OppoAttrAddShow) * 100) .. "%"
sText = orderedFormat(ConfigTable.GetUIText("Soldier_LevelSelect_OppoAttrAddShow"), sOppoAttrAddShow)
NovaAPI.SetTMPText(self._mapNode.txt_Desc[2], sText)
self._mapNode.btn_Search.gameObject:SetActive(false)
self._mapNode.PickMask.gameObject:SetActive(false)
self.animRoot = self.gameObject:GetComponent("Animator")
end
function SoldierLevelSelectItemCtrl:SetSelect(bSelect)
self._mapNode.rtLockSelect.gameObject:SetActive(not bSelect)
self._mapNode.rtTag.gameObject:SetActive(bSelect)
if bSelect then
self.animRoot:Play("SoldierLevelSelectPick", 0, 0)
self._mapNode.PickMask.gameObject:SetActive(true)
local nAnimTime = NovaAPI.GetAnimClipLength(self.animRoot, {
"SoldierLevelSelectPick"
})
self:AddTimer(1, nAnimTime, function()
self._mapNode.PickMask.gameObject:SetActive(false)
end, true, true, true)
end
end
function SoldierLevelSelectItemCtrl:GetChallengeId()
return self.nId
end
function SoldierLevelSelectItemCtrl:OnBtnClick_Search()
end
return SoldierLevelSelectItemCtrl