PGRData/Script/matrix/xui/xuidormsecond/XUiPanelEventShow.lua

102 lines
No EOL
3.5 KiB
Lua

local XUiPanelEventShow = XClass(nil, "XUiPanelEventShow")
local XScheduleManager = XScheduleManager
local WaitSecond = 3
local SimpleFadeTimer = nil
local ComplexFadeTimer = nil
function XUiPanelEventShow:Ctor(uiRoot, ui)
self.GameObject = ui.gameObject
self.Transform = ui.transform
self.UiRoot = uiRoot
XTool.InitUiObject(self)
end
function XUiPanelEventShow:SetDefaultPoint()
local pos = self.Transform.localPosition
local targetPos = self.PanelTarget.localPosition
self.Transform.localPosition = CS.UnityEngine.Vector3(targetPos.x, pos.y, 0)
end
function XUiPanelEventShow:Show(data)
self.ShowConfig = XDormConfig.GetCharacterShowEvent(data.EventId)
if self.ShowConfig.ShowType <= 0 then
self:GetNextShowEvent()
return
end
if self.ShowConfig.ShowType == XDormConfig.ShowEffectType.Simple then
self:ShowSimple(data)
elseif self.ShowConfig.ShowType == XDormConfig.ShowEffectType.Complex then
self:ShowComplex(data)
end
self.PanelEvenetShowSimple.gameObject:SetActive(self.ShowConfig.ShowType == XDormConfig.ShowEffectType.Simple)
self.PanelEvenetShowComplex.gameObject:SetActive(self.ShowConfig.ShowType == XDormConfig.ShowEffectType.Complex)
if self.ShowConfig.ShowType == XDormConfig.ShowEffectType.Simple then
self.UiRoot:PlayAnimation("EvenetShowSimpleEnable", function()
self:StopSimpleTimer()
SimpleFadeTimer = XScheduleManager.ScheduleOnce(function()
self.UiRoot:PlayAnimation("EvenetShowSimpleDisable", function()
self:GetNextShowEvent()
end)
end, 1000 * WaitSecond)
end)
elseif self.ShowConfig.ShowType == XDormConfig.ShowEffectType.Complex then
self.UiRoot:PlayAnimation("EvenetShowComplexEnable", function()
self:StopComplexTimer()
SimpleFadeTimer = XScheduleManager.ScheduleOnce(function()
self.UiRoot:PlayAnimation("EvenetShowComplexDisable", function()
self:GetNextShowEvent()
end)
end, 1000 * WaitSecond)
end)
end
end
function XUiPanelEventShow:StopSimpleTimer()
if SimpleFadeTimer then
XScheduleManager.UnSchedule(SimpleFadeTimer)
SimpleFadeTimer = nil
end
end
function XUiPanelEventShow:StopComplexTimer()
if ComplexFadeTimer then
XScheduleManager.UnSchedule(ComplexFadeTimer)
ComplexFadeTimer = nil
end
end
function XUiPanelEventShow:OnEventShowDestroy()
self:StopSimpleTimer()
self:StopComplexTimer()
end
function XUiPanelEventShow:ShowSimple(data)
self.TextDesc.text = CS.XTextManager.FormatString(self.ShowConfig.Description[1], math.abs(data.ChangeValue))
local charStyleConfig = XDormConfig.GetCharacterStyleConfigById(data.CharacterId)
self.RawImage:SetRawImage(charStyleConfig.HeadIcon, nil, true)
end
function XUiPanelEventShow:ShowComplex(data)
self.TextComplexDesc.text = CS.XTextManager.FormatString(self.ShowConfig.Description[1], math.abs(data.ChangeValue))
self.TextComplexDesc2.text = self.ShowConfig.Description[2]
local charStyleConfig = XDormConfig.GetCharacterStyleConfigById(data.CharacterId)
self.RawComplexImage:SetRawImage(charStyleConfig.HeadIcon, nil, true)
end
function XUiPanelEventShow:GetNextShowEvent()
XDataCenter.DormManager.GetNextShowEvent()
end
function XUiPanelEventShow:EventShowAnimaStart(cb)
self.PanelEventShowTimeLine.gameObject:PlayTimelineAnimation(cb)
end
return XUiPanelEventShow