PGRData/Script/matrix/xui/xuimaverick2/XUiMaverick2TalentGrid.lua
2024-09-01 22:49:41 +02:00

92 lines
No EOL
2.9 KiB
Lua
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local XUiMaverick2TalentGrid = XClass(nil, "UiMaverick2TalentGrid")
function XUiMaverick2TalentGrid:Ctor(ui)
self.TreeCfg = nil -- 天赋树配置表
self.GroupCfgs = nil -- 天赋组列表
self.IsGroupLock = false -- 天赋组是否锁住
self.GameObject = ui.gameObject
self.Transform = ui.transform
XTool.InitUiObject(self)
end
function XUiMaverick2TalentGrid:Refresh(root, treeCfg)
self.Root = root
self.TreeCfg = treeCfg
-- 天赋组解锁提示
local assignUnit = XDataCenter.Maverick2Manager.GetAssignActiveUnitCnt(treeCfg.RobotId)
local mentalLv = XDataCenter.Maverick2Manager.GetMentalLv()
self.IsGroupLock = false
local desc = nil
if assignUnit < treeCfg.NeedUnit then
self.IsGroupLock = true
desc = "" -- todo
end
if mentalLv < treeCfg.NeedMentalLv then
self.IsGroupLock = true
desc = "" -- todo
end
-- todo 根据isLock和desc显示锁和描述
-- 获取天赋
self.GroupCfgs = {}
local configs = XMaverick2Configs.GetMaverick2TalentGroup()
for _, config in ipairs(configs) do
if config.TalentGroupId == treeCfg.TalentGroupId then
table.insert(self.GroupCfgs, config)
end
end
-- 刷新item列表
local go
for i = 1, self.ItemList.childCount do
go = self.ItemList:GetChild(i-1)
go.gameObject:SetActiveEx(false)
end
for i, groupCfg in ipairs(self.GroupCfgs) do
local go = nil
if i > self.ItemList.childCount then
go = CS.UnityEngine.Object.Instantiate(self.XinZhiItem.gameObject, self.ItemList)
else
go = self.ItemList:GetChild(i-1)
end
go.gameObject:SetActiveEx(true)
self:RefreshTalent(go, i)
end
end
function XUiMaverick2TalentGrid:RefreshTalent(go, index)
local groupCfg = self.GroupCfgs[index]
local lvConfigs = XMaverick2Configs.GetTalentLvConfigs(groupCfg.TalentId)
local lv = XDataCenter.Maverick2Manager.GetTalentLv(self.TreeCfg.RobotId, groupCfg.TalentGroupId, groupCfg.TalentId)
local isMax = lv == #lvConfigs
local icon = lv == 0 and lvConfigs[1].Icon or lvConfigs[lv].Icon -- 无0级配置表使用一级的图标配置
local needUnit = 0
local isTalentLock = false
local desc = nil
if not isMax then
local nextLvCfg = lvConfigs[lv+1]
needUnit = nextLvCfg.NeedUnit
if nextLvCfg.Condition then
isTalentLock = XConditionManager.CheckCondition(nextLvCfg.Condition)
desc = nextLvCfg.UnlockTips
end
end
-- todo 刷新icon、等级、锁、升级消耗
-- 点击事件
XUiHelper.RegisterClickEvent(self, go, function()
self:OnClickTalent(index)
end)
end
function XUiMaverick2TalentGrid:OnClickTalent(index)
local groupCfg = self.GroupCfgs[index]
self.Root:OpenTalentDetail(groupCfg)
end
return XUiMaverick2TalentGrid