Files
StellaSora_DataLua/lua/game/ui/soldier/soldierlevelnodeitemctrl.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

90 lines
3.6 KiB
Lua

local nProgress1Length = 256
local nProgress2Length = 243
local nProgress3Length = 265
local SoldierLevelNodeItemCtrl = class("SoldierLevelNodeItemCtrl", BaseCtrl)
SoldierLevelNodeItemCtrl._mapNodeConfig = {
imgActProgressBg = {nCount = 3},
rtActProgressFill = {
nCount = 3,
sComponentName = "RectTransform"
},
imgStarNode = {},
txtTimeTips = {sComponentName = "TMP_Text"},
txtTimeTipsTitle = {
sComponentName = "TMP_Text",
sLanguageId = "Soldier_RewardLevel_TimeTipsTitle"
},
goNodeItem = {
sCtrlName = "Game.UI.TemplateEx.TemplateItemCtrl"
},
btnNodeItem = {
sComponentName = "UIButton",
callback = "OnBtnClick_NodeItem"
},
imgOkay = {},
txtOkay = {
sComponentName = "TMP_Text",
sLanguageId = "Soldier_RewardLevel_Okay"
},
txtNmlValue = {sComponentName = "TMP_Text"},
txtNmlspecial = {sComponentName = "TMP_Text"},
imgMultiSelected1 = {},
imgMultiSelected2 = {},
imgMultiSelected3 = {}
}
SoldierLevelNodeItemCtrl._mapEventConfig = {}
SoldierLevelNodeItemCtrl._mapRedDotConfig = {}
function SoldierLevelNodeItemCtrl:SetNode(mapData, nNodeIndex, nTotalCount, nType, nActProgress)
self.mapData = mapData
self.nNodeIndex = nNodeIndex
self.nTotalCount = nTotalCount
self.nType = nType
for i = 1, 3 do
self._mapNode.imgActProgressBg[i].gameObject:SetActive(false)
self._mapNode.rtActProgressFill[i].gameObject:SetActive(false)
end
if nNodeIndex == 1 then
self._mapNode.imgActProgressBg[1].gameObject:SetActive(true)
self._mapNode.rtActProgressFill[1].gameObject:SetActive(true)
self.nProgressLength = nProgress1Length
self.progressFill = self._mapNode.rtActProgressFill[1]
elseif nNodeIndex == nTotalCount then
self._mapNode.imgActProgressBg[3].gameObject:SetActive(true)
self._mapNode.rtActProgressFill[3].gameObject:SetActive(true)
self.nProgressLength = nProgress3Length
self.progressFill = self._mapNode.rtActProgressFill[3]
else
self._mapNode.imgActProgressBg[2].gameObject:SetActive(true)
self._mapNode.rtActProgressFill[2].gameObject:SetActive(true)
self.nProgressLength = nProgress2Length
self.progressFill = self._mapNode.rtActProgressFill[2]
end
self._mapNode.btnNodeItem.gameObject:SetActive(nNodeIndex ~= nTotalCount)
self._mapNode.txtTimeTipsTitle.gameObject:SetActive(nNodeIndex == nTotalCount)
local progressFill = self.progressFill.transform:Find("imgActProgress"):GetComponent("RectTransform")
if nNodeIndex < nTotalCount then
progressFill.anchoredPosition = Vector2(-((1.0 - nActProgress) * self.nProgressLength), progressFill.anchoredPosition.y)
self._mapNode.imgStarNode:SetActive(1 <= nActProgress)
self._mapNode.goNodeItem:SetItem(self.mapData.RewardId, nil, self.mapData.RewardQty, nil, nType == 1)
self._mapNode.imgOkay:SetActive(nType == 2)
self._mapNode.txtNmlValue.gameObject:SetActive(true)
NovaAPI.SetTMPText(self._mapNode.txtNmlValue, self.mapData.Level)
self._mapNode.txtNmlspecial.gameObject:SetActive(self.mapData.KeyReward)
NovaAPI.SetTMPText(self._mapNode.txtNmlspecial, self.mapData.Level)
self._mapNode.imgMultiSelected3:SetActive(self.mapData.KeyReward)
else
progressFill.anchoredPosition = Vector2(-((1.0 - nActProgress) * self.nProgressLength), progressFill.anchoredPosition.y)
self._mapNode.txtNmlValue.gameObject:SetActive(false)
self._mapNode.imgStarNode:SetActive(1 <= nActProgress)
end
self._mapNode.imgMultiSelected1:SetActive(nType == 2)
end
function SoldierLevelNodeItemCtrl:OnBtnClick_NodeItem()
if self.nType == 2 then
PlayerData.SoldierData:RequestGetTotalReward()
else
UTILS.ClickItemGridWithTips(self.mapData.RewardId, self._mapNode.btnNodeItem.transform, true, true, false)
end
end
return SoldierLevelNodeItemCtrl