Files
SL1900 46f967a584 Update - 1.6.0.84
EN: 1.6.0.84
CN: 1.6.0.87
JP: 1.6.0.88
KR: 1.6.0.91
2026-02-04 13:00:00 +09:00

154 lines
5.4 KiB
Lua

local BuildBriefItem = class("BuildBriefItem", BaseCtrl)
local PanelState = {
Normal = 1,
Delete = 2,
Preference = 3
}
BuildBriefItem._mapNodeConfig = {
img_SelectDelete = {},
img_SelectPreference = {},
btn_LockIcon = {sComponentName = "Button"},
btn_grid = {
sComponentName = "UIButton",
callback = "OnBtnClick_Grid"
},
btn_Lock = {
sComponentName = "UIButton",
callback = "OnBtnClick_Lock"
},
btn_Preference = {
sComponentName = "Button",
callback = "OnBtnClick_Preference"
},
imgRareFrame = {sComponentName = "Image"},
imgRareScore = {sComponentName = "Image"},
txtBuildName = {sComponentName = "TMP_Text"},
imgLike = {},
txtLeaderCn = {
sComponentName = "TMP_Text",
sLanguageId = "Build_Leader"
},
txtSubCn = {sComponentName = "TMP_Text", sLanguageId = "Build_Sub"},
imgCharIcon = {nCount = 3, sComponentName = "Image"},
imgCharFrame = {nCount = 3, sComponentName = "Image"},
txtCharCount = {nCount = 3, sComponentName = "TMP_Text"},
imgTheme = {nCount = 4, sComponentName = "Image"},
imgMask = {nCount = 4, sComponentName = "Image"},
txtThemeCount = {nCount = 4, sComponentName = "TMP_Text"},
imgEnhance = {nCount = 4},
btnExport = {sComponentName = "UIButton"}
}
BuildBriefItem._mapEventConfig = {}
function BuildBriefItem:RefreshGrid(mapData, nPanelState, bSelectDelete, bCheckOut, bCheckIn)
self._mapData = mapData
self:RefreshInfo()
self:RefreshChar()
self:RefreshPerk()
if nPanelState == PanelState.Delete then
self._mapNode.img_SelectDelete:SetActive(bSelectDelete)
self._mapNode.img_SelectPreference:SetActive(false)
elseif nPanelState == PanelState.Preference then
if bCheckOut then
self._mapNode.img_SelectPreference:SetActive(false)
elseif bCheckIn then
self._mapNode.img_SelectPreference:SetActive(true)
else
self._mapNode.img_SelectPreference:SetActive(mapData.bPreference)
end
self._mapNode.img_SelectDelete:SetActive(false)
else
self._mapNode.img_SelectPreference:SetActive(false)
self._mapNode.img_SelectDelete:SetActive(false)
end
self._mapNode.btnExport.gameObject:SetActive(false)
EventManager.Hit("BuildItemExport", self._mapNode.btnExport, self._mapData.nBuildId)
end
function BuildBriefItem:RefreshInfo()
local sScore = AllEnum.FrameType_New.BuildRank .. self._mapData.mapRank.Id
self:SetAtlasSprite(self._mapNode.imgRareScore, "12_rare", sScore)
if self._mapData.sName == "" or self._mapData.sName == nil then
NovaAPI.SetTMPText(self._mapNode.txtBuildName, ConfigTable.GetUIText("RoguelikeBuild_EmptyBuildName"))
else
NovaAPI.SetTMPText(self._mapNode.txtBuildName, self._mapData.sName)
end
self._mapNode.imgLike:SetActive(self._mapData.bPreference)
self._mapNode.btn_LockIcon.interactable = self._mapData.bLock
end
function BuildBriefItem:RefreshChar()
for i = 1, 3 do
local nCharTid = self._mapData.tbChar[i].nTid
local nCharSkinId = PlayerData.Char:GetCharSkinId(nCharTid)
local mapCharSkin = ConfigTable.GetData_CharacterSkin(nCharSkinId)
local mapCharCfg = ConfigTable.GetData_Character(nCharTid)
local sFrame = AllEnum.FrameType_New.BoardFrame .. AllEnum.BoardFrameColor[mapCharCfg.Grade]
self:SetPngSprite(self._mapNode.imgCharIcon[i], mapCharSkin.Icon .. AllEnum.CharHeadIconSurfix.XXL)
self:SetAtlasSprite(self._mapNode.imgCharFrame[i], "12_rare", sFrame)
end
end
function BuildBriefItem:RefreshPerk()
for i = 1, 3 do
NovaAPI.SetTMPText(self._mapNode.txtCharCount[i], self._mapData.tbChar[i].nExclusiveCount)
end
table.sort(self._mapData.tbTheme, function(a, b)
if a.Count ~= b.Count then
return a.Count > b.Count
elseif a.Strengthen ~= b.Strengthen then
return a.Strengthen and not b.Strengthen
else
return a.Theme < b.Theme
end
end)
for i = 1, 4 do
local nTheme = self._mapData.tbTheme[i].Theme
local mapTheme = ConfigTable.GetData("PresentsTheme", nTheme)
if self._mapData.tbTheme[i].Count > 0 then
NovaAPI.SetTMPText(self._mapNode.txtThemeCount[i], self._mapData.tbTheme[i].Count)
self._mapNode.imgMask[i].gameObject:SetActive(false)
else
NovaAPI.SetTMPText(self._mapNode.txtThemeCount[i], 0)
self:SetPngSprite(self._mapNode.imgMask[i], mapTheme.ThemeItemIcon)
self._mapNode.imgMask[i].gameObject:SetActive(true)
end
self:SetPngSprite(self._mapNode.imgTheme[i], mapTheme.ThemeItemIcon)
self._mapNode.imgEnhance[i]:SetActive(self._mapData.tbTheme[i].Strengthen)
end
end
function BuildBriefItem:Init(parentCtrl)
self._parentCtrl = parentCtrl
end
function BuildBriefItem:SetLockState(bLock)
self._mapNode.btn_LockIcon.interactable = bLock
end
function BuildBriefItem:SetPreferenceState(bPreference)
self._mapNode.imgLike:SetActive(bPreference)
end
function BuildBriefItem:SetSelectDeleteState(bSelect)
self._mapNode.img_SelectDelete:SetActive(bSelect)
end
function BuildBriefItem:SetSelectPreferenceState(bSelect)
self._mapNode.img_SelectPreference:SetActive(bSelect)
end
function BuildBriefItem:Awake()
end
function BuildBriefItem:OnEnable()
end
function BuildBriefItem:OnDisable()
end
function BuildBriefItem:OnDestroy()
end
function BuildBriefItem:OnRelease()
end
function BuildBriefItem:OnBtnClick_Grid(btn)
local nIndex = tonumber(self.gameObject.name) + 1
self._parentCtrl:OnBtnClickGrid(nIndex, self)
end
function BuildBriefItem:OnBtnClick_Lock(btn)
local nIndex = tonumber(self.gameObject.name) + 1
self._parentCtrl:OnBuildGridLock(nIndex, self)
end
function BuildBriefItem:OnBtnClick_Preference(btn)
local nIndex = tonumber(self.gameObject.name) + 1
self._parentCtrl:OnBuildGridPreference(nIndex, self)
end
return BuildBriefItem