220 lines
5.6 KiB
Lua
220 lines
5.6 KiB
Lua
local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
|
|
local PANEL_ID = PanelId.GeneralTracker
|
|
|
|
local SIGNAL_1 = 1
|
|
local SIGNAL_2 = 2
|
|
|
|
|
|
local LuaNodeCache = require_ex('Common/Utils/LuaNodeCache')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GeneralTrackerCtrl = HL.Class('GeneralTrackerCtrl', uiCtrl.UICtrl)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GeneralTrackerCtrl.s_messages = HL.StaticField(HL.Table) << {
|
|
|
|
[MessageConst.ON_TRACK_MISSION_CHANGE] = '_OnTrackMissionChange',
|
|
[MessageConst.ON_MISSION_STATE_CHANGE] = '_OnMissionStateChange',
|
|
[MessageConst.ON_QUEST_STATE_CHANGE] = '_OnQuestStateChange',
|
|
[MessageConst.ON_QUEST_OBJECTIVE_UPDATE] = '_OnQuestObjectiveUpdate',
|
|
}
|
|
|
|
|
|
GeneralTrackerCtrl.s_missionShowTime = HL.StaticField(HL.Number) << 0
|
|
|
|
|
|
GeneralTrackerCtrl.s_missionTrackerSignal = HL.StaticField(HL.Number) << 0
|
|
|
|
|
|
GeneralTrackerCtrl.s_onShowSignal = HL.Field(HL.Number) << 0
|
|
|
|
|
|
GeneralTrackerCtrl.OnShowMissionTracker = HL.StaticMethod() << function()
|
|
GeneralTrackerCtrl.s_missionTrackerSignal = SIGNAL_1
|
|
GeneralTrackerCtrl.s_missionShowTime = 0
|
|
end
|
|
|
|
|
|
GeneralTrackerCtrl.m_rootTransform = HL.Field(HL.Userdata)
|
|
|
|
|
|
GeneralTrackerCtrl.m_missionTrackerTickHandler = HL.Field(HL.Any)
|
|
|
|
|
|
|
|
GeneralTrackerCtrl.m_commonTrackerData = HL.Field(HL.Table)
|
|
|
|
|
|
GeneralTrackerCtrl.m_commonTrackers = HL.Field(HL.Table)
|
|
|
|
|
|
GeneralTrackerCtrl.m_commonTrackerTickHandler = HL.Field(HL.Number) << -1
|
|
|
|
|
|
GeneralTrackerCtrl.m_commonTrackerNodeCache = HL.Field(LuaNodeCache)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GeneralTrackerCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
|
|
self.m_rootTransform = self.view.gameObject:GetComponent(typeof(RectTransform))
|
|
|
|
GameInstance.player.commonTrackingPoint.ellipseRadiusX = self.view.config.ELLIPSE_X_RADIUS
|
|
GameInstance.player.commonTrackingPoint.ellipseRadiusY = self.view.config.ELLIPSE_Y_RADIUS
|
|
GameInstance.player.commonTrackingPoint:UpdateRadiusRate()
|
|
|
|
self.m_commonTrackers = {}
|
|
self.m_commonTrackerData = {}
|
|
self.m_commonTrackerNodeCache = LuaNodeCache(self.view.commonTrackerNode, self.view.mainRectTransForm)
|
|
self.view.missionTrackerComp.ALPHA_IN_FIGHT = self.view.config.ALPHA_IN_FIGHT
|
|
self.view.missionTrackerComp.ALPHA_TIME_OUT = self.view.config.ALPHA_TIME_OUT
|
|
self.view.missionTrackerComp.MISSION_TRACKER_TIME_OUT_VALUE = self.view.config.MISSION_TRACKER_TIME_OUT_VALUE
|
|
self.view.missionTrackerComp.rootTransform = self.m_rootTransform
|
|
self.view.missionTrackerComp.missionTrackerGo = self.view.missionTracker.gameObject
|
|
self.view.missionTrackerComp.missionTrackerParentTransform = self.view.missionTrackerParent
|
|
|
|
self.view.commonTrackerUpdate.rootTransform = self.m_rootTransform
|
|
self.view.commonTrackerUpdate.templateTrackerGo = self.view.commonTrackerNode.gameObject
|
|
self.view.commonTrackerUpdate.trackerParentTransform = self.m_rootTransform
|
|
|
|
self.view.missionTracker.gameObject:SetActive(false)
|
|
self.view.commonTrackerNode.gameObject:SetActive(false)
|
|
end
|
|
|
|
|
|
|
|
GeneralTrackerCtrl.OnShow = HL.Override() << function(self)
|
|
GeneralTrackerCtrl.s_missionShowTime = 0
|
|
GeneralTrackerCtrl.s_missionTrackerSignal = SIGNAL_2
|
|
self.s_onShowSignal = 1
|
|
self:_TickCommonTrackers()
|
|
self:_TickMissionTrackers()
|
|
self.m_missionTrackerTickHandler = LuaUpdate:Add("TailTick", function()
|
|
GameInstance.player.commonTrackingPoint:ClearSameUiPoint()
|
|
self:_TickCommonTrackers()
|
|
self:_TickMissionTrackers()
|
|
end)
|
|
end
|
|
|
|
|
|
|
|
GeneralTrackerCtrl.OnHide = HL.Override() << function(self)
|
|
LuaUpdate:Remove(self.m_missionTrackerTickHandler)
|
|
self.m_missionTrackerTickHandler = nil
|
|
end
|
|
|
|
|
|
|
|
GeneralTrackerCtrl.OnClose = HL.Override() << function(self)
|
|
LuaUpdate:Remove(self.m_missionTrackerTickHandler)
|
|
self.m_missionTrackerTickHandler = nil
|
|
end
|
|
|
|
|
|
GeneralTrackerCtrl._ResetMissionShowTime = HL.StaticMethod() << function()
|
|
GeneralTrackerCtrl.s_missionShowTime = 0
|
|
end
|
|
|
|
|
|
|
|
GeneralTrackerCtrl._OnTrackMissionChange = HL.Method() << function(self)
|
|
GeneralTrackerCtrl._ResetMissionShowTime()
|
|
end
|
|
|
|
|
|
|
|
|
|
GeneralTrackerCtrl._OnMissionStateChange = HL.Method(HL.Any) << function(self, arg)
|
|
local missionId, missionState = unpack(arg)
|
|
GeneralTrackerCtrl._ResetMissionShowTime()
|
|
end
|
|
|
|
|
|
|
|
|
|
GeneralTrackerCtrl._OnQuestStateChange = HL.Method(HL.Any) << function(self, arg)
|
|
local questId, questState = unpack(arg)
|
|
GeneralTrackerCtrl._ResetMissionShowTime()
|
|
end
|
|
|
|
|
|
|
|
|
|
GeneralTrackerCtrl._OnQuestObjectiveUpdate = HL.Method(HL.Any) << function(self, arg)
|
|
local questId = unpack(arg)
|
|
GeneralTrackerCtrl._ResetMissionShowTime()
|
|
end
|
|
|
|
|
|
|
|
GeneralTrackerCtrl._TickMissionTrackers = HL.Method() << function(self)
|
|
local missionHudOpen, _ = UIManager:IsOpen(PanelId.MissionHud) or UIManager:IsOpen(PanelId.WeeklyRaidTaskTrackHud)
|
|
GeneralTrackerCtrl.s_missionShowTime = GeneralTrackerCtrl.s_missionShowTime + Time.deltaTime
|
|
|
|
local trackDataChange = self.view.missionTrackerComp:UpdateMissionTrackers(
|
|
missionHudOpen,
|
|
GeneralTrackerCtrl.s_missionShowTime,
|
|
GeneralTrackerCtrl.s_missionTrackerSignal
|
|
)
|
|
if trackDataChange then
|
|
GeneralTrackerCtrl._ResetMissionShowTime()
|
|
end
|
|
|
|
GeneralTrackerCtrl.s_missionTrackerSignal = 0
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
GeneralTrackerCtrl._TickCommonTrackers = HL.Method() << function(self)
|
|
self.view.commonTrackerUpdate:UpdateCommonTrackers(true, self.s_onShowSignal)
|
|
self.s_onShowSignal = 0
|
|
end
|
|
|
|
|
|
|
|
|
|
GeneralTrackerCtrl.PlayAnimationOutWithCallback = HL.Override(HL.Opt(HL.Function)) << function(self, action)
|
|
self.view.commonTrackerUpdate:AllTrackersPlayOutAnimation()
|
|
self.view.missionTrackerComp:AllMissionTrackersPlayOutAnimation()
|
|
GeneralTrackerCtrl.Super.PlayAnimationOutWithCallback(self, action)
|
|
end
|
|
|
|
|
|
|
|
|
|
HL.Commit(GeneralTrackerCtrl)
|