Files
StellaSora_DataLua/lua/game/ui/mainviewboard/boardselectedctrl.lua
T
SL1900 35c8d87e86 Update - 1.4.0.73
EN: 1.4.0.73
CN: 1.4.0.74
JP: 1.4.0.77
KR: 1.4.0.80
2025-12-25 19:00:00 +09:00

60 lines
2.4 KiB
Lua

local BoardSelectedCtrl = class("BoardSelectedCtrl", BaseCtrl)
local PlayerHandbookData = PlayerData.Handbook
BoardSelectedCtrl._mapNodeConfig = {
goEmpty = {},
goSelected = {},
imgIcon = {sComponentName = "Image"},
imgRare = {sComponentName = "Image"},
imgCornerRole = {},
imgCornerOutfit = {},
btnItem = {
sComponentName = "Button",
callback = "OnBtnClick_Item"
}
}
function BoardSelectedCtrl:Refresh(idx, id, bIsSelected)
local bEmpty = nil == id
self.nHandbookId = id
self._mapNode.goEmpty.gameObject:SetActive(true)
self._mapNode.goSelected.gameObject:SetActive(not bEmpty)
if not bEmpty then
local handbookData = PlayerHandbookData:GetHandbookDataById(id)
if nil == handbookData then
return
end
self._mapNode.imgCornerRole.gameObject:SetActive(handbookData:GetType() == GameEnum.handbookType.SKIN)
self._mapNode.imgCornerOutfit.gameObject:SetActive(handbookData:GetType() == GameEnum.handbookType.OUTFIT)
if handbookData:GetType() == GameEnum.handbookType.SKIN then
local charCfgData = handbookData:GetCharCfgData()
if nil ~= charCfgData then
local rareIconName = AllEnum.FrameType_New.BoardFrame .. AllEnum.BoardFrameColor[charCfgData.Grade]
self:SetAtlasSprite(self._mapNode.imgRare, "12_rare", rareIconName)
NovaAPI.SetImageNativeSize(self._mapNode.imgRare)
end
local charSkinCfgData = handbookData:GetSkinCfgData()
if nil ~= charSkinCfgData then
self:SetPngSprite(self._mapNode.imgIcon, charSkinCfgData.Icon, AllEnum.CharHeadIconSurfix.XXL)
end
elseif handbookData:GetType() == GameEnum.handbookType.OUTFIT then
local discCfgData = handbookData:GetDiscCfgData()
local outfitItemCfgData = handbookData:GetDiscItemCfgData()
if nil ~= discCfgData and nil ~= outfitItemCfgData then
self:SetPngSprite(self._mapNode.imgIcon, outfitItemCfgData.Icon .. AllEnum.OutfitIconSurfix.ListGrid)
local sPath = AllEnum.FrameType_New.BoardFrame .. AllEnum.BoardFrameColor[outfitItemCfgData.Rarity]
self:SetAtlasSprite(self._mapNode.imgRare, "12_rare", sPath)
NovaAPI.SetImageNativeSize(self._mapNode.imgRare)
end
end
if bIsSelected == true then
self._mapNode.goSelected.transform.localScale = Vector3(0.5, 0.5, 1)
self._mapNode.goSelected.transform:DOScale(1, 0.2):SetUpdate(true):SetEase(Ease.OutBack)
end
end
end
function BoardSelectedCtrl:OnBtnClick_Item()
if nil ~= self.nHandbookId then
EventManager.Hit(EventId.BoardSelectItem, self.nHandbookId)
end
end
return BoardSelectedCtrl