Files
Endfield-Data/LuaScripts/UI/Widgets/CharEliteMarker.lua
2025-12-02 20:37:18 +07:00

65 lines
1.4 KiB
Lua

local UIWidgetBase = require_ex('Common/Core/UIWidgetBase')
CharEliteMarker = HL.Class('CharEliteMarker', UIWidgetBase)
CharEliteMarker.m_markerQueue = HL.Field(HL.Table)
CharEliteMarker._OnFirstTimeInit = HL.Override() << function(self)
self.m_markerQueue = {}
local maxBreakStage = Tables.characterConst.maxBreak
for i = 0, maxBreakStage do
local markerName = 'marker' .. i
local marker = self.view[markerName]
if marker ~= nil then
self.m_markerQueue[i] = marker
end
end
end
CharEliteMarker.InitCharEliteMarker = HL.Method(HL.Number, HL.Opt(HL.Boolean)) << function(self, charInstId, hideMarker)
self:_FirstTimeInit()
local charInfo = CharInfoUtils.getPlayerCharInfoByInstId(charInstId)
local breakStage = charInfo.breakStage
self:InitCharEliteMarkerByBreakStage(breakStage, hideMarker)
end
CharEliteMarker.InitCharEliteMarkerByBreakStage = HL.Method(HL.Number, HL.Opt(HL.Boolean)) << function(self, breakStage, hideMarker)
self:_FirstTimeInit()
local breakStateCount = Tables.characterConst.maxBreak
for i = 0, breakStateCount do
local marker = self.m_markerQueue[i]
marker.gameObject:SetActive(i == breakStage and (not hideMarker))
end
self.view.eliteCellGroup:InitEliteCellGroup(breakStage)
end
HL.Commit(CharEliteMarker)
return CharEliteMarker