59 lines
No EOL
2.8 KiB
Lua
59 lines
No EOL
2.8 KiB
Lua
--===========================================================================
|
||
--v1.28 分阶拆分-XUiPanelQualityPreview-技能成长动态列表:XUiPanelQualitySkillDynamic
|
||
--===========================================================================
|
||
local XUiPanelQualitySkillDynamic = XClass(nil, "XUiPanelQualitySkillDynamic")
|
||
local UiPanelQualitySkillGrid = require("XUi/XUiCharacter/XUiPanelQualityPreview/XUiPanelQualityPreviewGrid/XUiPanelQualitySkillGrid")
|
||
|
||
function XUiPanelQualitySkillDynamic:Ctor(ui, rootUi, skillData, character)
|
||
self.GameObject = ui.gameObject
|
||
self.Transform = ui.transform
|
||
self.RootUi = rootUi
|
||
self.SkillData = skillData
|
||
self.Character = character
|
||
|
||
XTool.InitUiObject(self)
|
||
self.DynamicTable = XDynamicTableNormal.New(ui)
|
||
self.DynamicTable:SetProxy(UiPanelQualitySkillGrid, self)
|
||
self.DynamicTable:SetDelegate(self)
|
||
end
|
||
|
||
function XUiPanelQualitySkillDynamic:RefreshData(skillData, character)
|
||
self.SkillData = skillData
|
||
self.Character = character
|
||
end
|
||
|
||
function XUiPanelQualitySkillDynamic:UpdateDynamicTable(index)
|
||
if not index then index = 1 end
|
||
self.DynamicTable:SetDataSource(self.SkillData)
|
||
self.DynamicTable:ReloadDataASync(index)
|
||
end
|
||
|
||
function XUiPanelQualitySkillDynamic:OnDynamicTableEvent(event, index, grid)
|
||
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then
|
||
grid:Init(self, self.RootUi)
|
||
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
|
||
local star = self.Character.Star
|
||
local quality = self.Character.Quality
|
||
local thisSkillQuality = XCharacterConfigs.GetCharSkillQualityApartQuality(self.SkillData[index])
|
||
local thisSkillPhase = XCharacterConfigs.GetCharSkillQualityApartPhase(self.SkillData[index])
|
||
-- 当前节点是否激活
|
||
local isLight = quality > thisSkillQuality or quality == thisSkillQuality and star >= thisSkillPhase
|
||
local isNext = false
|
||
if index > 1 then
|
||
local beforeSkillQuality = XCharacterConfigs.GetCharSkillQualityApartQuality(self.SkillData[index - 1])
|
||
local beforeSkillPhase = XCharacterConfigs.GetCharSkillQualityApartPhase(self.SkillData[index - 1])
|
||
-- 上一个节点是否激活
|
||
local before = quality > beforeSkillQuality or quality == beforeSkillQuality and star >= beforeSkillPhase
|
||
-- 当前未激活,上一个激活则当前节点为待点亮
|
||
isNext = before and not isLight
|
||
end
|
||
grid:Refresh(self.SkillData[index], isLight, isNext)
|
||
|
||
--绑定跳转技能Ui
|
||
self.RootUi:RegisterClickEvent(grid.Btn, function ()
|
||
self.RootUi:OnBtnSkillClick(XCharacterConfigs.GetCharSkillQualityApartSkillId(self.SkillData[index]))
|
||
end)
|
||
end
|
||
end
|
||
|
||
return XUiPanelQualitySkillDynamic |