forked from endernon/PGRData
126 lines
5.3 KiB
Lua
126 lines
5.3 KiB
Lua
local XUiFubenChallengeUrgent = XLuaUiManager.Register(XLuaUi, "UiFubenChallengeUrgent")
|
|
|
|
function XUiFubenChallengeUrgent:OnAwake()
|
|
self:InitAutoScript()
|
|
end
|
|
|
|
function XUiFubenChallengeUrgent:OnStart(parent, config)
|
|
self.Parent = parent
|
|
self:Init(config)
|
|
--self.timer = XScheduleManager.ScheduleForever(function(...)
|
|
--self:Refresh()
|
|
--end, 0)
|
|
self.PanelHover.gameObject:SetActive(false)
|
|
self.orgPosition = self.PanelMapContainer.transform.localPosition
|
|
self.targetPosition = self.PanelTargetFlag.transform.position
|
|
end
|
|
|
|
function XUiFubenChallengeUrgent:OnDestroy()
|
|
if self.timer then
|
|
XScheduleManager.UnSchedule(self.timer)
|
|
self.timer = nil
|
|
end
|
|
|
|
if self.TimerTween then
|
|
XScheduleManager.UnSchedule(self.TimerTween)
|
|
self.TimerTween = nil
|
|
end
|
|
end
|
|
|
|
-- auto
|
|
-- Automatic generation of code, forbid to edit
|
|
function XUiFubenChallengeUrgent:InitAutoScript()
|
|
self:AutoInitUi()
|
|
self:AutoAddListener()
|
|
end
|
|
|
|
function XUiFubenChallengeUrgent:AutoInitUi()
|
|
self.PanelMapContainer = self.Transform:Find("FullScreenBackground/PanelMapContainer")
|
|
self.SViewStage = self.Transform:Find("FullScreenBackground/PanelMapContainer/SViewStage"):GetComponent("ScrollRect")
|
|
self.PanelContent = self.Transform:Find("FullScreenBackground/PanelMapContainer/SViewStage/Viewport/PanelContent")
|
|
self.PanelStage = self.Transform:Find("FullScreenBackground/PanelMapContainer/SViewStage/Viewport/PanelContent/PanelStage")
|
|
self.PanelStageA = self.Transform:Find("FullScreenBackground/PanelMapContainer/SViewStage/Viewport/PanelContent/PanelStage/PanelStageA")
|
|
self.ImgOpen = self.Transform:Find("FullScreenBackground/PanelMapContainer/SViewStage/Viewport/PanelContent/PanelStage/PanelStageA/ImgOpen"):GetComponent("Image")
|
|
self.TxtName = self.Transform:Find("FullScreenBackground/PanelMapContainer/SViewStage/Viewport/PanelContent/PanelStage/PanelStageA/StageOpen/TxtName"):GetComponent("Text")
|
|
self.TxtTime = self.Transform:Find("FullScreenBackground/PanelMapContainer/SViewStage/Viewport/PanelContent/PanelStage/PanelStageA/StageOpen/TxtTime"):GetComponent("Text")
|
|
self.BtnEnter = self.Transform:Find("FullScreenBackground/PanelMapContainer/SViewStage/Viewport/PanelContent/PanelStage/PanelStageA/BtnEnter"):GetComponent("Button")
|
|
self.PanelHover = self.Transform:Find("FullScreenBackground/PanelHover")
|
|
self.PanelTargetFlag = self.Transform:Find("FullScreenBackground/PanelTargetFlag")
|
|
end
|
|
|
|
function XUiFubenChallengeUrgent:AutoAddListener()
|
|
self:RegisterClickEvent(self.BtnEnter, self.OnBtnEnterClick)
|
|
end
|
|
-- auto
|
|
|
|
function XUiFubenChallengeUrgent:OnBtnEnterClick()
|
|
self:FocusStage()
|
|
self.Parent:OpenPanelStageDetail(self.StageCfg, self.StageInfo)
|
|
end
|
|
|
|
function XUiFubenChallengeUrgent:Init(config)
|
|
local urgentCfg = config.UrgentCfg
|
|
self.StageCfg = XDataCenter.FubenManager.GetStageCfg(config.UrgentInfo.StageId)
|
|
self.StageInfo = XDataCenter.FubenManager.GetStageInfo(config.UrgentInfo.StageId)
|
|
self:SetUiSprite(self.ImgOpen, urgentCfg.StageIcon)
|
|
self.TxtName.text = self.StageCfg.Name
|
|
XCountDown.BindTimer(self, tostring(urgentCfg.Id), function(v)
|
|
if v > 1 then
|
|
self.TxtTime.text = XUiHelper.GetTime(v, XUiHelper.TimeFormatType.CHALLENGE)
|
|
else
|
|
self.TxtTime.text = XUiHelper.GetTime(0)
|
|
end
|
|
end)
|
|
end
|
|
|
|
function XUiFubenChallengeUrgent:OnCloseStageDetail()
|
|
self:UnFocus()
|
|
end
|
|
|
|
function XUiFubenChallengeUrgent:FocusStage()
|
|
local worldPos = self.PanelStageA.transform.position
|
|
local localPos = self.PanelMapContainer.transform:InverseTransformPoint(worldPos)
|
|
local tPos = self.PanelMapContainer.transform:InverseTransformPoint(self.targetPosition)
|
|
local deltaPos = tPos - localPos
|
|
local lineAni = CS.UnityEngine.AnimationCurve.Linear(0, 0, 1, 1)
|
|
local startPos = self.PanelMapContainer.localPosition
|
|
self.PanelHover.gameObject:SetActive(true)
|
|
XUiHelper.Tween(0.3, function(t)
|
|
if XTool.UObjIsNil(self.PanelMapContainer) then
|
|
return
|
|
end
|
|
|
|
self.PanelMapContainer.localPosition = startPos + deltaPos * lineAni:Evaluate(t)
|
|
end, function()
|
|
if XTool.UObjIsNil(self.PanelMapContainer) then
|
|
return
|
|
end
|
|
|
|
self.PanelMapContainer.localPosition = startPos + deltaPos
|
|
end)
|
|
end
|
|
|
|
function XUiFubenChallengeUrgent:UnFocus()
|
|
local startPos = self.PanelMapContainer.localPosition
|
|
local deltaPos = self.orgPosition - startPos
|
|
local lineAni = CS.UnityEngine.AnimationCurve.Linear(0, 0, 1, 1)
|
|
self.TimerTween = XUiHelper.Tween(0.3, function(t)
|
|
if XTool.UObjIsNil(self.PanelMapContainer) then
|
|
return
|
|
end
|
|
|
|
self.PanelMapContainer.localPosition = startPos + deltaPos * lineAni:Evaluate(t)
|
|
end, function()
|
|
if XTool.UObjIsNil(self.PanelMapContainer) then
|
|
return
|
|
end
|
|
|
|
self.PanelMapContainer.localPosition = self.orgPosition
|
|
self.PanelHover.gameObject:SetActive(false)
|
|
end)
|
|
end
|
|
|
|
--function XUiFubenChallengeUrgent:Refresh()
|
|
----self.SViewBg.horizontalNormalizedPosition = self.SViewStage.horizontalNormalizedPosition
|
|
----self.SViewBg.verticalNormalizedPosition = self.SViewStage.verticalNormalizedPosition
|
|
--end
|