| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458 |
- local UILanuchView = require("UILanuch/UILanuchView_Generate")
- function UILanuchView:OnAwake(data)
- self.controller = require("UILanuch/UILanuchCtr"):new()
- self.controller:Init(self)
- self.controller:SetData(data)
- end
- function UILanuchView:AddEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.UI_PAGE_IN_END_NTF, self, self.OnUIViewOpenAnimEnd)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Loading_Begin, self, self.OnLoadingBegin)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Loading_Progress, self, self.OnLoadingProgress)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Loading_Complete, self, self.OnLoadingComplete)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Loading_Close, self, self.OnLoadingClose)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_ENTER_CREATE_ROLE, self, self.OnEnterCreateRole)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.CURRENT_SERVER_CHANGED, self, self.OnCurrentServerChanged)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.CURRENT_SPECIAL_INFO_CHANGED, self, self.OnCurrentSpecialInfoChanged)
- end
- function UILanuchView:FillContent(data, uiBase)
- self.uiBase = uiBase
- local gameObject = self.uiBase:GetRoot()
- if gameObject ~= nil then
- self.gameObject = gameObject
- self.transform = gameObject.transform
- end
- self:InitGenerate(self.transform, data)
- self:Init()
- end
- function UILanuchView:Init()
- if ManagerContainer.LoginMgr.relogin then
- self.loginAnim.animator:Play('LoginShow', -1)
- self.loginAnim.animator:Update(0)
- else
- self.loginAnim.animator:Play('LoginKeep')
- end
- self.btnCADPA:SetActive(false)
- self.loginRoot:SetActive(false)
- self.loadingRoot:SetActive(false)
- self.logo:SetActive(true)
- self.scrollbar:SetActive(true)
- self.numberText:SetActive(true)
- self.serverBtnState = nil
- self:RefreshServer()
- self:RefreshVersionCode()
- self:RefreshSpecialInfo()
- --self:RefSDKLink()
- self:BindSdkbtnLink()
- if PlatformPack.ShowHealthBulletin then
- self.editionTxt:SetActive(true)
- else
- self.editionTxt:SetActive(false)
- end
- end
- function UILanuchView:RemoveEventListener()
- ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
- end
- function UILanuchView:AddUIEventListener()
- self.uiBase:AddButtonUniqueEventListener(self.btnEnter.button, self, self.OnClickEnterBtn)
- self.uiBase:AddButtonUniqueEventListener(self.btnServer.button, self, self.OnClickServerBtn)
- self.uiBase:AddButtonUniqueEventListener(self.btnNotice.button, self, self.OnClickNoticeBtn)
- self.uiBase:AddButtonUniqueEventListener(self.btnCADPA.button, self, self.OnClickCadpaBtn)
- end
- function UILanuchView:OnHide()
-
- end
- function UILanuchView:OnShow(data)
- self.controller:SetData(data)
- self.btnCADPA:SetActive(false)
- end
- function UILanuchView:OnClose()
- end
- function UILanuchView:OnDispose()
- self.serverBtnState = nil
- if self.enterTimer then
- self.enterTimer:Stop()
- self.enterTimer = nil
- end
- self.createRole = nil
- self.uiMainOpenWaiting = nil
- if self.closeTimer then
- self.closeTimer:Stop()
- self.closeTimer = nil
- end
- self.uiNewStoryOpenWaiting = nil
- self.uiNewCreateRoleOpenWaiting = nil
- if self.delayTimer then
- self.delayTimer:Stop()
- self.delayTimer = nil
- end
- self.controller:OnDispose()
- end
- function UILanuchView:OnPageInEnd()
- self.super.OnPageInEnd(self)
- if ManagerContainer.LoginMgr.relogin then
- if self.enterTimer then
- self.enterTimer.duration = 2
- self.enterTimer.loop = 1
- self.enterTimer.time = 2
- else
- self.enterTimer = Timer.New(slot(self.UpdateEnterTimer, self), 2, 1)
- end
- if not self.enterTimer.running then
- self.enterTimer:Start()
- end
- else
- self:UpdateEnterTimer()
- end
- end
- function UILanuchView:UIClose()
- self.super.UIClose(self)
- self.loadEndTime = ManagerContainer.LuaTimerMgr:GetTimeSecond()
- if self.loadStartTime and self.loadEndTime then
- SDKMgr.Instance:ReportLoad(int64.new(self.loadEndTime) * 1000, (self.loadEndTime - self.loadStartTime))
- end
- end
- function UILanuchView:OnUIViewOpenAnimEnd(id)
- if not id then return end
- if self.createRole then
- if self.uiNewStoryOpenWaiting then
- if id == Enum.UIPageName.UINewStory then
- self:ReadyCreateRoleUINewStory()
- end
- end
- if self.uiNewCreateRoleOpenWaiting then
- if id == Enum.UIPageName.UINewCreateRole then
- self:ReadyCreateRoleUINewCreateRole()
- end
- end
- else
- if self.uiMainOpenWaiting then
- if id == Enum.UIPageName.UIMain then
- self:BeginEnter()
- end
- end
- end
- end
- function UILanuchView:OnLoadingBegin()
- self.loginAnim.animator:Play('LoginKeep', -1)
- self.loginAnim.animator:Update(0)
- self.loginAnim.animator.enabled = false
- self.loginRoot:SetActive(false)
- self.loadingRoot:SetActive(true)
- self.text.text.text = string.formatbykey('GameLogin16')
- self.scrollbar.scrollbar.size = 0
- self.numberText.text.text = "0%"
- self.loadStartTime = ManagerContainer.LuaTimerMgr:GetTimeSecond()
- end
- function UILanuchView:OnLoadingProgress(progress)
- progress = Mathf.Clamp01(progress)
- if self.createRole then
- progress = progress * 0.5
- end
- local curProgress = self.scrollbar.scrollbar.size
- if progress <= curProgress then return end
- self.scrollbar.scrollbar.size = progress
- self.numberText.text.text = math.floor(progress*100).."%"
- end
- function UILanuchView:OnLoadingComplete()
- if self.createRole then
- self.scrollbar.scrollbar.size = 0.5
- self.numberText.text.text = "50%"
- else
- self.scrollbar.scrollbar.size = 1
- self.numberText.text.text = "100%"
- end
- end
- function UILanuchView:OnLoadingClose()
- self.loginRoot:SetActive(false)
- if self.createRole then
- self:ReadyCreateRoleScene()
- else
- if ManagerContainer.DataMgr.UserData:HasPassedNewbie() then
- if not ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UIMain) then
- self.uiMainOpenWaiting = true
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIMain)
- return
- end
- end
- self:BeginEnter()
- end
- end
- function UILanuchView:OnEnterCreateRole()
- self.createRole = true
- self:OnLoadingBegin()
- end
- function UILanuchView:OnCurrentServerChanged()
- self:RefreshServer()
- end
- function UILanuchView:OnCurrentSpecialInfoChanged()
- self:RefreshSpecialInfo()
- end
- function UILanuchView:OnClickEnterBtn()
- ManagerContainer.LoginMgr.waitClicked = true
- end
- function UILanuchView:OnClickServerBtn()
- local serverData = ManagerContainer.LuaGameMgr.serverData
- if not serverData or not serverData.id or serverData.id <= 0 then
- return
- end
- if not ManagerContainer.LoginMgr:IsLoginWaiting() then
- return
- end
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChangeServer, true, nil, nil, nil, Enum.UISibling[Enum.UIType.Top] - 2)
- end
- function UILanuchView:OnClickNoticeBtn()
- if not ManagerContainer.LoginMgr:IsLoginWaiting() then
- return
- end
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINotifyTips)
- end
- function UILanuchView:OnClickCadpaBtn()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UISimpleNotice, {'AntiAddictionTitle', 'AntiAddictionTips'}, nil, nil, nil, Enum.UISibling[Enum.UIType.Top] - 2)
- end
- function UILanuchView:UpdateEnterTimer()
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Loaded_Page_OK)
- self.loginRoot:SetActive(true)
- self.loadingRoot:SetActive(false)
- self.serverBtnState = 0
- self:RefreshServer()
- self:RefreshVersionCode()
- end
- function UILanuchView:ReadyCreateRoleScene()
- self.createRoleImg:SetActive(true)
- self.createRoleImg.image.enabled = false
- self.createRoleImg.image.sprite = nil
- CommonUtil.LoadIcon(self, 'NewStory/img_login02', function(sprite)
- self.createRoleImg.image.sprite = sprite
- self.createRoleImg.image.enabled = true
- self:ReadyCreateRoleLanuchImg()
- end)
- end
- function UILanuchView:ReadyCreateRoleLanuchImg()
- self.scrollbar.scrollbar.size = 0.8
- self.numberText.text.text = "80%"
- if not ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UINewStory) then
- self.uiNewStoryOpenWaiting = true
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINewStory)
- return
- end
- self:ReadyCreateRoleUINewStory()
- end
- function UILanuchView:ReadyCreateRoleUINewStory()
- self.uiNewStoryOpenWaiting = nil
- self.scrollbar.scrollbar.size = 0.9
- self.numberText.text.text = "90%"
- if not ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UINewCreateRole) then
- self.uiNewCreateRoleOpenWaiting = true
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINewCreateRole)
- return
- end
- self:ReadyCreateRoleUINewCreateRole()
- end
- function UILanuchView:ReadyCreateRoleUINewCreateRole()
- self.uiNewCreateRoleOpenWaiting = nil
- self.scrollbar.scrollbar.size = 1
- self.numberText.text.text = "100%"
- if self.delayTimer then
- self.delayTimer.duration = 0.1
- self.delayTimer.loop = 1
- self.delayTimer.time = 0.1
- else
- self.delayTimer = Timer.New(slot(self.BeginEnterCreateRole, self), 0.1, 1)
- end
- if not self.delayTimer.running then
- self.delayTimer:Start()
- end
- end
- function UILanuchView:BeginEnterCreateRole()
- self.loadingRoot:SetActive(false)
- self.loginAnim.animator.enabled = true
- self.loginAnim.animator:Play('LoginStory', -1)
- self.loginAnim.animator:Update(0)
- LuaBattleBridge.BeginTweenPosition(self.loginBG, 4, Vector3.New(0, -1920, 0), false)
- if self.closeTimer then
- self.closeTimer.duration = 7
- self.closeTimer.loop = 1
- self.closeTimer.time = 7
- else
- self.closeTimer = Timer.New(slot(self.UIClose, self), 7, 1)
- end
- if not self.closeTimer.running then
- self.closeTimer:Start()
- end
- end
- function UILanuchView:BeginEnter()
- self.uiMainOpenWaiting = nil
- self.loadingRoot:SetActive(false)
- self.loginAnim.animator.enabled = true
- self.loginAnim.animator:Play('LoginStart', -1)
- self.loginAnim.animator:Update(0)
- if self.closeTimer then
- self.closeTimer.duration = 2
- self.closeTimer.loop = 1
- self.closeTimer.time = 2
- else
- self.closeTimer = Timer.New(slot(self.UIClose, self), 2, 1)
- end
- if not self.closeTimer.running then
- self.closeTimer:Start()
- end
- end
- function UILanuchView:RefreshServer()
- local serverData = ManagerContainer.LuaGameMgr.serverData
- if not serverData or not serverData.id or serverData.id <= 0 then
- if self.serverBtnState and self.serverBtnState ~= 1 then
- self.serverRoot.animator:CrossFade('ServerListLoading', 0.2)
- self.serverBtnState = 1
- end
- return
- end
- if self.serverBtnState and self.serverBtnState ~= 2 then
- self.serverRoot.animator:CrossFade('ServerListShow', 0.2)
- self.serverBtnState = 2
- end
- ManagerContainer.LuaGameMgr:SetServerID(serverData.id);
- self.serverText.text.text = tostring(serverData.name)
- --LogError("====================serverData.name="..serverData.name)
- end
- function UILanuchView:RefreshVersionCode()
- self.appVol.contentTxt.text.text = tostring(ManagerContainer.LuaGameMgr.GameVersion)
- self.resVol.contentTxt.text.text = tostring(ManagerContainer.LuaGameMgr.ResVersion)
- end
- function UILanuchView:RefreshSpecialInfo()
- if not ManagerContainer.LoginMgr:IsAgreement() then
- self.agreement:SetActive(false)
- return
- end
- self.agreement:SetActive(true)
- local agreement = ManagerContainer.LoginMgr:GetAgreement()
- self.agreement.text.text.text = tostring(agreement)
- local isOn = ManagerContainer.PlayerPrefsMgr:GetGlobalBoolean(Constant.AGREEMENT_RECORD_KEY, false)
- self.agreement.toggle.toggle.isOn = isOn
- self.uiBase:AddToggleUniqueEventListener(self.agreement.toggle.toggle, self, self.OnClickAgreementTogge)
- self.uiBase:AddButtonUniqueEventListener(self.agreement.text.button, self, self.OnClickAgreementText)
- end
- function UILanuchView:OnClickAgreementTogge(_, _, isOn)
- local isOnOld = ManagerContainer.PlayerPrefsMgr:GetGlobalBoolean(Constant.AGREEMENT_RECORD_KEY, false)
- if isOnOld == isOn then
- return
- end
- ManagerContainer.PlayerPrefsMgr:SetGlobalBoolean(Constant.AGREEMENT_RECORD_KEY, isOn)
- end
- function UILanuchView:OnClickAgreementText()
- local text = self.agreement.text.text
- local linkIndex = TMPro.TMP_TextUtilities.FindIntersectingLink(text, UnityEngine.Input.mousePosition, CameraMgr.Instance.UICamera);
- if linkIndex < 0 then
- return
- end
- local linkInfo = text.textInfo.linkInfo[linkIndex]
- if not linkInfo then
- return
- end
- local url = linkInfo:GetLinkID()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UISimpleWeb, url, nil, nil, nil, Enum.UISibling[Enum.UIType.Top] - 2)
- end
- function UILanuchView:OnClickSDKLinkText()
- local text = self.sDKLink.text
- local linkIndex = TMPro.TMP_TextUtilities.FindIntersectingLink(text, UnityEngine.Input.mousePosition, CameraMgr.Instance.UICamera);
- if linkIndex < 0 then
- return
- end
- local linkInfo = text.textInfo.linkInfo[linkIndex]
- if not linkInfo then
- return
- end
- local url = linkInfo:GetLinkID()
- UnityEngine.Application.OpenURL(url)
- end
- function UILanuchView:RefSDKLink()
- local cfg = ManagerContainer.CfgMgr.LanuchLinkCfg
- if cfg == nil or not cfg.LinkIsOpen then
- self.sDKLink:SetActive(false)
- return
- end
- self.sDKLink:SetActive(true)
- local txt =""
- for index, value in ipairs(cfg) do
- --LogError(Inspect(value))
- local linkName = I18N.T(value.Txt)
- txt = txt..string.format(cfg.LinkStringFormat,value.Color,value.Url,linkName).."\n"
- end
- self.sDKLink.text.text = txt
- self.uiBase:AddButtonUniqueEventListener(self.sDKLink.button, self, self.OnClickSDKLinkText)
- end
- function UILanuchView:BindSdkbtnLink()
- local cfg = ManagerContainer.CfgMgr.LanuchLinkCfg
- if cfg == nil then
- return
- end
- if self.sDKBtnNode ~= nil and cfg.LinkIsOpen then
- self.sDKBtnNode:SetActive(true)
-
- self.kfLink = cfg[1].Url
- self.vksquLink = cfg[2].Url
- self.vksqunLink = cfg[3].Url
- self.uiBase:AddButtonUniqueEventListener(self.kfBtn.button, self, self.OnKfBtn)
- self.uiBase:AddButtonUniqueEventListener(self.vkSheQuBtn.button, self, self.OnVksqBtn)
- self.uiBase:AddButtonUniqueEventListener(self.vkSheQunBtn.button, self, self.OnVksqunBtn)
- end
- end
- function UILanuchView:OnKfBtn()
- UnityEngine.Application.OpenURL(self.kfLink )
- end
- function UILanuchView:OnVksqBtn()
- UnityEngine.Application.OpenURL(self.vksquLink)
- end
- function UILanuchView:OnVksqunBtn()
- UnityEngine.Application.OpenURL(self.vksqunLink)
- end
- return UILanuchView
|