138 lines
4.5 KiB
Plaintext
138 lines
4.5 KiB
Plaintext
-- TeamPws and FreeBattle
|
|
TeamPwsMatchPopUp = class("TeamPwsMatchPopUp" ,BaseView)
|
|
|
|
TeamPwsMatchPopUp.ViewType = UIViewType.PopUpLayer
|
|
|
|
TeamPwsMatchPopUp.Instance = nil
|
|
TeamPwsMatchPopUp.Anchor = nil -- MainView/TeamPwsMatchBtn.transform
|
|
|
|
function TeamPwsMatchPopUp.Show(pvpType)
|
|
if (not TeamPwsMatchPopUp.Instance) then
|
|
GameFacade.Instance:sendNotification(UIEvent.JumpPanel, {view = PanelConfig.TeamPwsMatchPopUp, viewdata = {pvptype = pvpType}})
|
|
return
|
|
end
|
|
if (TeamPwsMatchPopUp.Instance.isShow) then
|
|
return
|
|
end
|
|
if (TeamPwsMatchPopUp.Anchor and TeamPwsMatchPopUp.Anchor.gameObject.activeInHierarchy) then
|
|
TeamPwsMatchPopUp.Instance.gameObject.transform.localScale = Vector3.zero
|
|
TeamPwsMatchPopUp.Instance.gameObject.transform.position = TeamPwsMatchPopUp.Anchor.position
|
|
TweenPosition.Begin(TeamPwsMatchPopUp.Instance.gameObject, 0.2, Vector3.zero)
|
|
TweenScale.Begin(TeamPwsMatchPopUp.Instance.gameObject, 0.2, Vector3.one)
|
|
else
|
|
TeamPwsMatchPopUp.Instance.gameObject.transform.localPosition = Vector3.zero
|
|
TeamPwsMatchPopUp.Instance.gameObject.transform.localScale = Vector3.one
|
|
end
|
|
if (pvpType) then
|
|
TeamPwsMatchPopUp.Instance.pvpType = pvpType
|
|
end
|
|
TeamPwsMatchPopUp.Instance:OnShow()
|
|
TeamPwsMatchPopUp.Instance.isShow = true
|
|
end
|
|
|
|
function TeamPwsMatchPopUp.Hide()
|
|
if (not TeamPwsMatchPopUp.Instance or not TeamPwsMatchPopUp.Instance.isShow) then
|
|
return
|
|
end
|
|
if (TeamPwsMatchPopUp.Anchor and TeamPwsMatchPopUp.Anchor.gameObject.activeInHierarchy) then
|
|
TweenPosition.Begin(TeamPwsMatchPopUp.Instance.gameObject, 0.2, TeamPwsMatchPopUp.Anchor.position).worldSpace = true
|
|
end
|
|
TweenScale.Begin(TeamPwsMatchPopUp.Instance.gameObject, 0.2, Vector3.zero)
|
|
TeamPwsMatchPopUp.Instance:OnHide()
|
|
TeamPwsMatchPopUp.Instance.isShow = false
|
|
end
|
|
|
|
function TeamPwsMatchPopUp:Init()
|
|
if (TeamPwsMatchPopUp.Instance) then
|
|
self:CloseSelf()
|
|
return
|
|
end
|
|
TeamPwsMatchPopUp.Instance = self
|
|
|
|
self:FindObjs()
|
|
self:AddButtonEvts()
|
|
self:AddEvts()
|
|
TeamPwsMatchPopUp.Show(self.viewdata.viewdata.pvptype)
|
|
end
|
|
|
|
function TeamPwsMatchPopUp:FindObjs()
|
|
self.objLayoutLeader = self:FindGO("layoutLeader")
|
|
self.objLayoutMember = self:FindGO("layoutMember")
|
|
self.labTime = self:FindComponent("labTime", UILabel)
|
|
end
|
|
|
|
function TeamPwsMatchPopUp:AddButtonEvts()
|
|
self:AddClickEvent(self:FindGO("btnCancel"), function() self:ClickBtnCancel() end)
|
|
self:AddClickEvent(self:FindGO("Mask"), function() TeamPwsMatchPopUp.Hide() end)
|
|
end
|
|
|
|
function TeamPwsMatchPopUp:AddEvts()
|
|
self:AddListenEvt(ServiceEvent.MatchCCmdNtfMatchInfoCCmd, self.HandleNtfMatchInfoCCmd)
|
|
self:AddListenEvt(ServiceEvent.MatchCCmdTeamPwsPreInfoMatchCCmd, self.CloseSelf)
|
|
self:AddListenEvt(ServiceEvent.SessionTeamTeamDataUpdate, self.SetLayout)
|
|
self:AddListenEvt(PVPEvent.TeamPws_Launch, self.CloseSelf)
|
|
end
|
|
|
|
function TeamPwsMatchPopUp:SetLayout()
|
|
local bImLeader = not TeamProxy.Instance:IHaveTeam() or TeamProxy.Instance:CheckIHaveLeaderAuthority()
|
|
self.objLayoutLeader:SetActive(bImLeader)
|
|
self.objLayoutMember:SetActive(not bImLeader)
|
|
end
|
|
|
|
function TeamPwsMatchPopUp:HandleNtfMatchInfoCCmd(note)
|
|
if (note.body.etype == self.pvpType and note.body.ismatch) then
|
|
self:CountMatchingTime()
|
|
else
|
|
self:CloseSelf()
|
|
end
|
|
end
|
|
|
|
function TeamPwsMatchPopUp:CountMatchingTime()
|
|
TimeTickManager.Me():ClearTick(self, 1)
|
|
self.startMatchTime = PvpProxy.Instance:GetStartMatchTime(self.pvpType)
|
|
if (self.startMatchTime) then
|
|
TimeTickManager.Me():CreateTick(0, 250, self.UpdateMatchingTime, self, 1)
|
|
else
|
|
self.labTime.text = "-"
|
|
end
|
|
end
|
|
|
|
function TeamPwsMatchPopUp:ClickBtnCancel()
|
|
if (TeamProxy.Instance:IHaveTeam() and not TeamProxy.Instance:CheckIHaveLeaderAuthority() or self.disableClick) then
|
|
return
|
|
end
|
|
ServiceMatchCCmdProxy.Instance:CallLeaveRoomCCmd(self.pvpType)
|
|
self.disableClick = true
|
|
self.ltDisableClick = LeanTween.delayedCall(3, function()
|
|
self.disableClick = false
|
|
self.ltDisableClick = nil
|
|
end)
|
|
end
|
|
|
|
function TeamPwsMatchPopUp:UpdateMatchingTime()
|
|
local matchingTime = (ServerTime.CurServerTime() - self.startMatchTime) / 1000
|
|
|
|
local min, sec = ClientTimeUtil.GetFormatSecTimeStr(matchingTime)
|
|
self.labTime.text = string.format("%02d:%02d", min, sec)
|
|
end
|
|
|
|
function TeamPwsMatchPopUp:OnShow()
|
|
self.super.OnShow(self)
|
|
self:SetLayout()
|
|
self:CountMatchingTime()
|
|
end
|
|
|
|
function TeamPwsMatchPopUp:OnHide()
|
|
TimeTickManager.Me():ClearTick(self, 1)
|
|
self.super.OnHide(self)
|
|
end
|
|
|
|
function TeamPwsMatchPopUp:OnExit()
|
|
TimeTickManager.Me():ClearTick(self, 1)
|
|
if (self.ltDisableClick) then
|
|
self.ltDisableClick:cancel()
|
|
self.ltDisableClick = nil
|
|
end
|
|
TeamPwsMatchPopUp.Instance = nil
|
|
self.super.OnExit(self)
|
|
end |