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

60 lines
2.4 KiB
Lua

local SoldierHandbookPartnerItemCtrl = class("SoldierHandbookPartnerItemCtrl", BaseCtrl)
local iconPath = "Icon/SoldierPartner/"
SoldierHandbookPartnerItemCtrl._mapNodeConfig = {
partnerCell = {
sComponentName = "RectTransform"
},
img_partnerIcon = {sComponentName = "Image"},
txt_name = {sComponentName = "TMP_Text"},
TMP_Link = {
sNodeName = "txt_Desc",
sComponentName = "TMPHyperLink",
callback = "OnLinkClick_Word"
},
txt_Desc = {sComponentName = "TMP_Text"},
sv = {
sComponentName = "LoopScrollView"
}
}
SoldierHandbookPartnerItemCtrl._mapEventConfig = {}
SoldierHandbookPartnerItemCtrl._mapRedDotConfig = {}
function SoldierHandbookPartnerItemCtrl:Awake()
self.tbCharItemCtrl = {}
end
function SoldierHandbookPartnerItemCtrl:OnDestroy()
self:Clear()
end
function SoldierHandbookPartnerItemCtrl:Clear()
if self.tbCharItemCtrl ~= nil then
for _, v in ipairs(self.tbCharItemCtrl) do
self:UnbindCtrlByNode(v)
end
end
self.tbCharItemCtrl = {}
end
function SoldierHandbookPartnerItemCtrl:SetItemData(mapPartnerGroupData)
self.mapPartnerGroupData = mapPartnerGroupData
self:SetPngSprite(self._mapNode.img_partnerIcon, iconPath .. self.mapPartnerGroupData.Icon .. AllEnum.SoldierChessIconSurfix.M)
NovaAPI.SetTMPText(self._mapNode.txt_name, self.mapPartnerGroupData.Name)
NovaAPI.SetTMPText(self._mapNode.txt_Desc, UTILS.ParseDesc(self.mapPartnerGroupData))
CS.UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(self._mapNode.txt_Desc.transform)
local nHeight = self._mapNode.txt_Desc.transform.sizeDelta.y + 76
self._mapNode.partnerCell.sizeDelta = Vector2(self._mapNode.partnerCell.sizeDelta.x, nHeight)
self._mapNode.sv:Init(#self.mapPartnerGroupData.ChessCharacterIds, self, self.OnCharRefreshGrid)
end
function SoldierHandbookPartnerItemCtrl:OnCharRefreshGrid(goGrid, gridIndex)
local nIndex = gridIndex + 1
local charId = self.mapPartnerGroupData.ChessCharacterIds[nIndex]
local go_char = goGrid.transform:Find("tc_char_small")
local nInstanceId = go_char:GetInstanceID()
if not self.tbCharItemCtrl[nInstanceId] then
self.tbCharItemCtrl[nInstanceId] = self:BindCtrlByNode(go_char, "Game.UI.Soldier.Template.Character.SoldierCharItemCtrl")
end
self.tbCharItemCtrl[nInstanceId]:SetItemData(charId)
self.tbCharItemCtrl[nInstanceId]:SetCharLevel(0)
end
function SoldierHandbookPartnerItemCtrl:OnLinkClick_Word(link, sWordId)
UTILS.ClickWordLink(link, sWordId)
end
return SoldierHandbookPartnerItemCtrl