Files
StellaSora_DataLua/lua/game/ui/soldier/recommend/soldierrecommendcellctrl.lua
T
SL1900 8c4bd41668 Update - 1.13.0.124
EN: 1.13.0.124
CN: 1.13.0.124
JP: 1.13.0.128
KR: 1.13.0.130
2026-07-21 12:30:00 +09:00

99 lines
3.6 KiB
Lua

local SoldierRecommendCellCtrl = class("SoldierRecommendCellCtrl", BaseCtrl)
SoldierRecommendCellCtrl._mapNodeConfig = {
txt_title = {sComponentName = "TMP_Text"},
sv_char = {
sComponentName = "LoopScrollView"
},
img_Char = {sComponentName = "Image"},
btn_Apply = {
sComponentName = "UIButton",
callback = "OnBtnClick_Apply"
},
txt_Apply = {
sComponentName = "TMP_Text",
sLanguageId = "Soldier_Recommend_Apply"
},
btn_Cancel = {
sComponentName = "UIButton",
callback = "OnBtnClick_Cancel"
},
txt_Cancel = {
sComponentName = "TMP_Text",
sLanguageId = "Soldier_Recommend_Cancel"
},
img_Use = {},
txt_Use = {
sComponentName = "TMP_Text",
sLanguageId = "Soldier_Recommend_Use"
}
}
SoldierRecommendCellCtrl._mapEventConfig = {
SoldierRecommend_Update = "OnEvent_SoldierRecommendCell_Update"
}
SoldierRecommendCellCtrl._mapRedDotConfig = {}
function SoldierRecommendCellCtrl:Awake()
self.tbCharItemCtrl = {}
end
function SoldierRecommendCellCtrl:OnEnable()
end
function SoldierRecommendCellCtrl:OnDisable()
for _, v in ipairs(self.tbCharItemCtrl) do
self:UnbindCtrlByNode(v)
end
self.tbCharItemCtrl = nil
end
function SoldierRecommendCellCtrl:OnDestroy()
end
function SoldierRecommendCellCtrl:SetItemData(mapRecommendData, bInSoldier)
self.bInSoldier = bInSoldier
self.mapRecommendData = mapRecommendData
self.cfg = ConfigTable.GetData("SoldierRecommendBuilds", self.mapRecommendData.nRecommendId)
NovaAPI.SetTMPText(self._mapNode.txt_title, self.cfg.Title)
local nMainCharId = self.cfg.CharacterId
local mainCharCfg = ConfigTable.GetData("SoldierCharacter", nMainCharId)
if mainCharCfg ~= nil then
local skinConfig = ConfigTable.GetData("SoldierSkin", mainCharCfg.Skin)
if skinConfig then
self:SetPngSprite(self._mapNode.img_Char, skinConfig.Icon .. AllEnum.SoldierChessIconSurfix.S)
end
end
self._mapNode.sv_char:Init(#self.mapRecommendData.charList, self, self.OnCharRefreshGrid, self.OnCharGridBtnClick, false)
self:SetApplyStatus()
end
function SoldierRecommendCellCtrl:OnCharRefreshGrid(goGrid, gridIndex)
local nIndex = gridIndex + 1
local charData = self.mapRecommendData.charList[nIndex]
local go_char = goGrid.transform:Find("AnimRoot/SoldierCharCardItem")
local nInstanceId = go_char:GetInstanceID()
if not self.tbCharItemCtrl[nInstanceId] then
self.tbCharItemCtrl[nInstanceId] = self:BindCtrlByNode(go_char, "Game.UI.Soldier.Template.Character.SoldierCharCardItemCtrl")
end
self.tbCharItemCtrl[nInstanceId]:SetItemData(charData.nId)
self.tbCharItemCtrl[nInstanceId]:SetStar(charData.nStar)
self.tbCharItemCtrl[nInstanceId]:SetAttribute(nIndex)
end
function SoldierRecommendCellCtrl:SetApplyStatus()
local bApply = false
local recommendData = PlayerData.SoldierData:GetRecommendData(self.bInSoldier)
if recommendData ~= nil and recommendData.nRecommendId == self.mapRecommendData.nRecommendId then
bApply = true
end
self._mapNode.btn_Apply.gameObject:SetActive(not bApply)
self._mapNode.btn_Cancel.gameObject:SetActive(bApply)
self._mapNode.img_Use.gameObject:SetActive(bApply)
end
function SoldierRecommendCellCtrl:OnCharGridBtnClick(goGrid, gridIndex)
local nIndex = gridIndex + 1
local charId = self.mapRecommendData.charList[nIndex].nId
end
function SoldierRecommendCellCtrl:OnBtnClick_Apply()
PlayerData.SoldierData:SetRecommendData(self.mapRecommendData.nRecommendId, self.bInSoldier)
end
function SoldierRecommendCellCtrl:OnBtnClick_Cancel()
PlayerData.SoldierData:SetRecommendData(0, self.bInSoldier)
end
function SoldierRecommendCellCtrl:OnEvent_SoldierRecommendCell_Update()
self:SetApplyStatus()
end
return SoldierRecommendCellCtrl