| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666 |
- local LuaUIMgr = class("LuaUIMgr", function()
- return UIMgr.Instance
- end)
- local oldSlot
- local UIOpenStatusList = {}
- function LuaUIMgr:ctor()
- ManagerContainer.LuaEventMgr:RegisterEvent(UIEventNames.LIMIT_RECHARGE_OPEN_UI_NTF, self, self.OpenLimitRechargeUI)
- self.isAcrossRole = false
- self.UIViewMap = {}
- self.ShowUIPageList = {}
- self:SetClickLuaFun(self.OnClickScreen)
- end
- function LuaUIMgr:Destroy()
- ManagerContainer.LuaEventMgr:UnregisterEvent(UIEventNames.LIMIT_RECHARGE_OPEN_UI_NTF, self, self.OpenLimitRechargeUI)
- self.uiBattleDropRoot = nil
- if tolua.getpeer(self) ~= nil then
- tolua.setpeer(self, nil)
- end
- end
- local isRoleUI = false
- function LuaUIMgr:OnClickScreen()
- ManagerContainer.LuaUIMgr:Hide(Enum.UIPageName.UIMinTips)
- end
- function LuaUIMgr:Open(id, param, sourceUI, needOutAnim, skipCloseAll, sortingOrder)
- local page = self:GetPage(id)
- local view, uiData
- if page ~= nil and page.MLuaTable then
- view = page.MLuaTable
- uiData = view.uiData
- else
- uiData = ManagerContainer.CfgMgr:GetUIData(id)
- if uiData == nil then
- LogError( CommonUtil.StringConcat(id, " ui isnt exist") )
- return
- end
- local luaPath = nil
- if uiData.lua_path and uiData.lua_path ~= '' then
- luaPath = CommonUtil.StringConcat(uiData.lua_path, "View")
- else
- luaPath = CommonUtil.StringConcat(uiData.res_path, "View")
- end
- view = require(luaPath):new()
- if view == nil then
- LogError( CommonUtil.StringConcat(id, " view isnt exist") )
- return
- end
- view.uiData = uiData
- self:AddUIView(uiData.id, view)
- end
- if not Constant.OpenPay then
- if uiData and uiData.NoPay then
- return
- end
- end
- if uiData.type == Enum.UIType.Total then
- if uiData.id ~= Enum.UIPageName.UIBattle then
- ManagerContainer.LuaUIMgr:Hide(Enum.UIPageName.UIBattle)
- ManagerContainer.LuaUIMgr:SetBattleDropRootVisible(false)
- end
- if not skipCloseAll then
- ManagerContainer.LuaUIMgr:CloseAllPagesExceptIdAndPersistentWnd(uiData.id)
- end
- end
-
- self:LuaOpenUI(uiData, view, sortingOrder or Enum.UISibling[uiData.type + 1], param, sourceUI or 0, needOutAnim)
- -- if uiData.id == Enum.UIPageName.UIBattle or uiData.id == Enum.UIPageName.UIMainCity then
- if uiData.id == Enum.UIPageName.UIBattle then
- elseif uiData.type == Enum.UIType.Total then
- if uiData.id == Enum.UIPageName.UIRoleMain1 then
- isRoleUI = true;
- end
- end
- end
- function LuaUIMgr:CloseRoleUI()
- isRoleUI = false
- end
- function LuaUIMgr:GetBattleUIDropRoot()
- if self.UIBattleRootTrans == nil then
- return
- end
- local drop = self.UIBattleRootTrans:Find("DropRoot")
- if tolua.isnull(drop) then
- return
- end
- self.uiBattleDropRoot = drop
- if self.uiBattleDropRoot == nil then
- return
- end
- return self.uiBattleDropRoot
- end
- function LuaUIMgr:SetBattleDropRootVisible(state)
- local dropRoot = self:GetBattleUIDropRoot()
- if dropRoot == nil then return end
- dropRoot.gameObject:SetActive(state)
- end
- function LuaUIMgr:IsInRoleUI()
- return isRoleUI
- end
- function LuaUIMgr:ClosePage(id, needOutAnim)
- local uiData = ManagerContainer.CfgMgr:GetUIData(id);
- if uiData == nil then
- return;
- end
- local ignoreCheckCam = id == Enum.UIPageName.UILoading or id == Enum.UIPageName.UIStartLoading
- self:Close(uiData.id,ignoreCheckCam, (needOutAnim == false and false or true));
- end
- function LuaUIMgr:ErrorNoticeDisplay(error)
- if not error or error == "" then return end
- --网络重连状态,不显示errortips
- if self:HasOpenPage(Enum.UIPageName.UIWaiting) then
- return
- end
- local uiData = ManagerContainer.CfgMgr:GetUIData(Enum.UIPageName.UIErrorTips)
- if not ManagerContainer.LuaUIMgr:GetPage(uiData.id) then
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIErrorTips, {errorId=error})
- else
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.ERROR_DESC_DISPLAY, {errorId=error})
- end
- end
- function LuaUIMgr:ErrorNoticeDisplayWithParam(error,...)
- if not error or error == "" then return end
- local uiData = ManagerContainer.CfgMgr:GetUIData(Enum.UIPageName.UIErrorTips)
- if not ManagerContainer.LuaUIMgr:GetPage(uiData.id) then
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIErrorTips, {errorId=error,params = {...}})
- else
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.ERROR_DESC_DISPLAY, {errorId=error,params = {...}})
- end
- end
- function LuaUIMgr:AttrNoticeDisplay1(data)
- local uiData = ManagerContainer.CfgMgr:GetUIData(Enum.UIPageName.UIAttrAddTips)
- if not ManagerContainer.LuaUIMgr:GetPage(uiData.id) then
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIAttrAddTips, data)
- else
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.ADD_ATTR_DISPLAY, data)
- end
- end
- function LuaUIMgr:POPGotAnimNotice(data)
- local uiData = ManagerContainer.CfgMgr:GetUIData(Enum.UIPageName.UIPOPGotAnims)
- if not ManagerContainer.LuaUIMgr:GetPage(uiData.id) then
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPOPGotAnims, data)
- else
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.GOT_ITEM_ANIM, data)
- end
- end
- function LuaUIMgr:SetOldSlot(slot)
- oldSlot = slot
- end
- function LuaUIMgr:GetOldSlot()
- return oldSlot
- end
- function LuaUIMgr:AttrNoticeDisplay(slotIndex)
- if oldSlot == nil then return end
- CommonUtil.AttrNoticeDisplay(slotIndex)
- oldSlot = nil
- end
- --- 打开道具Tips
- ---@param cfgId integer 道具配置id
- ---@param enterType Enum.ItemIEnterType 进入类型,在不同的调用地方,tips显示不一样,根据需要给值
- ---@param extData table 扩展参数,根据需要给值
- function LuaUIMgr:OpenItemTips(cfgId, enterType, extData)
- local itemCfgData = ManagerContainer.CfgMgr:GetItemById(cfgId)
- if not itemCfgData then
- return false
- end
- local data = {cfgId = cfgId, enterType = enterType, extData = extData}
- if itemCfgData.ResType == Enum.ItemType.FashionPaper then
- self:Open(Enum.UIPageName.UIFashionPaperTips, data)
- else
- self:Open(Enum.UIPageName.UIItemTips, data)
- end
- return true
- end
- --- 打开通用Tips
- ---@param data table 传入数据 data = {tipsType = Enum.UITipsType.Item, cfgId = 100001, num = 100, state = CommonUtil.Get2Powers(Enum.TipsEnterType.BaseAttr, Enum.TipsEnterType.Cost)}
- ---@param extData table 扩展参数,根据需要给值
- function LuaUIMgr:OpenTips(data, extData)
- local tipsType, cfgId, num, state, displayBtn, id, timeStamp
- if type(data) == "number" then
- cfgId = data
- num = 0
- state = 0
- displayBtn = false
- tipsType = Enum.UITipsType.Item
- elseif type(data) == "table" then
- cfgId = data.cfgId
- num = data.num
- state = data.state or 0
- id = data.id
- displayBtn = data.displayBtn == nil and false or data.displayBtn
- tipsType = data.tipsType or Enum.UITipsType.Item
- timeStamp = data.timeStamp
- if tipsType == Enum.UITipsType.Skill then
- local data1 = {tipsType = tipsType, cfgId = cfgId, num = num, state = state, extData = extData, displayBtn = displayBtn}
- self:Open(Enum.UIPageName.UITips, data1)
- return
- end
- end
- if cfgId == nil then return false end
- local itemCfgData = ManagerContainer.CfgMgr:GetItemById(cfgId)
- if not itemCfgData then
- return false
- end
- local data1 = {tipsType = tipsType, id = id, cfgId = cfgId, num = num, state = state, extData = extData, displayBtn = displayBtn, isPreview = data.isPreview, starLv = data.starLv}
- --if data1.state <= 0 then
- if itemCfgData.ResType == Enum.ItemType.Equip then
- data1.state = Bit.bor(data1.state, Bit.lshift(1, Enum.TipsEnterType.BaseAttr), Bit.lshift(1, Enum.TipsEnterType.BtnEquip)) --data1.state + CommonUtil.Get2Powers(Enum.TipsEnterType.BaseAttr, Enum.TipsEnterType.BtnEquip)
- if data.source == Enum.UIPageName.UIBag then
- local equipData = ManagerContainer.CfgMgr:GetEquipById(cfgId)
- if equipData.Forge == 0 then
- data1.state = Bit.bxor(data1.state, Bit.lshift(1, Enum.TipsEnterType.BtnEquip))
- end
- end
- elseif itemCfgData.ResType == Enum.ItemType.Card then
- data1.state = Bit.bor(data1.state, Bit.lshift(1, Enum.TipsEnterType.BaseAttr), Bit.lshift(1, Enum.TipsEnterType.BtnInsertCard)) --data1.state + CommonUtil.Get2Powers(Enum.TipsEnterType.BaseAttr, Enum.TipsEnterType.BtnInsertCard)
- elseif itemCfgData.ResType == Enum.ItemType.PetStamp then
- data1.state = Bit.bor(data1.state, Bit.lshift(1, Enum.TipsEnterType.BaseAttr)) --data1.state + CommonUtil.Get2Powers(Enum.TipsEnterType.BaseAttr, Enum.TipsEnterType.BtnInsertCard)
- elseif itemCfgData.ResType == Enum.ItemType.FashionPaper then
- data1.state = Bit.bor(data1.state, Bit.lshift(1, Enum.TipsEnterType.Cost)) --data1.state + CommonUtil.Get2Powers(Enum.TipsEnterType.Cost)
- local fashionPaperData = ManagerContainer.CfgMgr:GetFashionPaperById(data.cfgId)
- local owned = ManagerContainer.DataMgr.FashionData:Contains(fashionPaperData.FashionId)
- data1.state = Bit.bor(data1.state, (owned and Bit.lshift(1, Enum.TipsEnterType.BtnDecompose) or Bit.lshift(1, Enum.TipsEnterType.BtnCompose))) --data1.state + (owned and CommonUtil.Get2Powers(Enum.TipsEnterType.BtnDecompose) or CommonUtil.Get2Powers(Enum.TipsEnterType.BtnCompose))
- elseif itemCfgData.ResType == Enum.ItemType.Gift then --宝箱,这是宝箱
- local isGoto = nil
- if itemCfgData.SkipInterface > 0 then
- local isActItem, iActing = ManagerContainer.DataMgr.ActsDataMgr:IsActivityItemAndUnderway(cfgId)
- local isSeason = (not ManagerContainer.DataMgr.CompetitionData:IsOveerCurSeason())and ManagerContainer.DataMgr.CompetitionData:IsCurCompetitionItem(cfgId)
- if (isActItem and iActing) or isSeason then
- data1.state = Bit.bor(data1.state, Bit.lshift(1, Enum.TipsEnterType.BtnGoto))--data1.state + CommonUtil.Get2Powers(Enum.TipsEnterType.BtnGoto)
- isGoto = true
- end
- end
- if not isGoto then
- local _hasCondition = itemCfgData and itemCfgData.Costitem ~= nil;
- if _hasCondition then --开启宝箱需要条件,需要道具才能开启
- data1.state = Bit.bor(data1.state, Bit.lshift(1, Enum.TipsEnterType.SliderBoxCondition), Bit.lshift(1, Enum.TipsEnterType.SliderComs)) --data1.state + CommonUtil.Get2Powers(Enum.TipsEnterType.SliderBoxCondition, Enum.TipsEnterType.SliderComs)
- else
- data1.state = Bit.bor(data1.state, Bit.lshift(1, Enum.TipsEnterType.SliderBox), Bit.lshift(1, Enum.TipsEnterType.SliderComs)) --data1.state + CommonUtil.Get2Powers(Enum.TipsEnterType.SliderBox, Enum.TipsEnterType.SliderComs)
- end
- end
- elseif itemCfgData.ResType == Enum.ItemType.HeadFrame then
- data1.state = Bit.bor(data1.state, Bit.lshift(1, Enum.TipsEnterType.BaseAttr), Bit.lshift(1, Enum.TipsEnterType.SliderBox), Bit.lshift(1, Enum.TipsEnterType.SliderComs)) --data1.state + CommonUtil.Get2Powers(Enum.TipsEnterType.BaseAttr, Enum.TipsEnterType.SliderBox, Enum.TipsEnterType.SliderComs)
- elseif itemCfgData.ResType == Enum.ItemType.Compose then
- data1.state = Bit.bor(data1.state, Bit.lshift(1, Enum.TipsEnterType.SliderBox), Bit.lshift(1, Enum.TipsEnterType.SliderComs), Bit.lshift(1, Enum.TipsEnterType.BtnBoxCompose)) --data1.state + CommonUtil.Get2Powers(Enum.TipsEnterType.SliderBox, Enum.TipsEnterType.SliderComs, Enum.TipsEnterType.BtnBoxCompose)
- elseif itemCfgData.ResType == Enum.ItemType.Item then
- elseif itemCfgData.ResType == Enum.ItemType.Income then
- local _hasCondition = itemCfgData and itemCfgData.Costitem ~= nil
- local _hasCompose = itemCfgData and itemCfgData.ComposeItem ~= nil
- if _hasCondition and _hasCompose then --开启需要条件,需要道具才能开启
- data1.state = Bit.bor(data1.state, Bit.lshift(1, Enum.TipsEnterType.SliderBoxCondition), Bit.lshift(1, Enum.TipsEnterType.SliderComs), Bit.lshift(1, Enum.TipsEnterType.ItemNumber)) --data1.state + CommonUtil.Get2Powers(Enum.TipsEnterType.SliderBoxCondition, Enum.TipsEnterType.SliderComs, Enum.TipsEnterType.ItemNumber)
- elseif _hasCondition then
- data1.state = Bit.bor(data1.state, Bit.lshift(1, Enum.TipsEnterType.SliderBoxCondition), Bit.lshift(1, Enum.TipsEnterType.SliderComs)) --data1.state + CommonUtil.Get2Powers(Enum.TipsEnterType.SliderBoxCondition, Enum.TipsEnterType.SliderComs)
- elseif _hasCompose then
- data1.state = Bit.bor(data1.state, Bit.lshift(1, Enum.TipsEnterType.SliderBox), Bit.lshift(1, Enum.TipsEnterType.SliderComs), Bit.lshift(1, Enum.TipsEnterType.ItemNumber)) --data1.state + CommonUtil.Get2Powers(Enum.TipsEnterType.SliderBox, Enum.TipsEnterType.SliderComs, Enum.TipsEnterType.ItemNumber)
- else
- data1.state = Bit.bor(data1.state, Bit.lshift(1, Enum.TipsEnterType.SliderBox), Bit.lshift(1, Enum.TipsEnterType.SliderComs)) --data1.state + CommonUtil.Get2Powers(Enum.TipsEnterType.SliderBox, Enum.TipsEnterType.SliderComs)
- end
- elseif itemCfgData.ResType == Enum.ItemType.OptionalGift or itemCfgData.ResType == Enum.ItemType.VipProof or itemCfgData.ResType == Enum.ItemType.RuneShopExploreUnlock or itemCfgData.ResType == Enum.ItemType.WishBox or itemCfgData.ResType == Enum.ItemType.OptionalWishBox then
- data1.state = Bit.bor(data1.state, Bit.lshift(1, Enum.TipsEnterType.BtnOpen)) --data1.state + CommonUtil.Get2Powers(Enum.TipsEnterType.BtnOpen)
- end
- if itemCfgData.ItemTime > 0 then
- local logicData = ManagerContainer.DataMgr.BagData:GetItemById(id)
- if not logicData then
- logicData = ManagerContainer.DataMgr.BagData:GetItemDataByCfgId(cfgId)
- end
- if logicData then
- data1.timeStamp = logicData.timeStamp
- end
- end
- --end
- self:Open(Enum.UIPageName.UITips, data1)
- return true
- end
- function LuaUIMgr:OpenTipsSkill(data)
- self:Open(Enum.UIPageName.UITipsSkill, data)
- end
- function LuaUIMgr:FightPowerAddNotice(data)
- local uiData = ManagerContainer.CfgMgr:GetUIData(Enum.UIPageName.UIFightPowerTips)
- if not ManagerContainer.LuaUIMgr:GetPage(uiData.id) then
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIFightPowerTips, data)
- else
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.FIGHTPOWER_REFRESH_TIPS, data)
- end
- end
- --只能用于根界面
- function LuaUIMgr:OpenSourceUI(owner, data)
- if owner == nil then return end
- --owner:UIClose()
- ManagerContainer.LuaUIMgr:ClosePage(owner.uiData.id)
- if owner.uiBase.MSourceUIID > 0 then
- local sourceId = owner.uiBase.MSourceUIID
- if sourceId == Enum.UIPageName.UIMainCity1 then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Town)
- elseif sourceId == Enum.UIPageName.UIBag then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Pub)
- elseif sourceId == Enum.UIPageName.UIBattle then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Adventure)
- elseif sourceId == Enum.UIPageName.UIRoleMain1 then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Role)
- elseif sourceId == Enum.UIPageName.UIPetRoot then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Battle)
- else
- ManagerContainer.LuaUIMgr:Open(owner.uiBase.MSourceUIID, data, nil, false)
- end
- end
- if not self:HasOpenPage(Enum.UIPageName.UIMain) then
- ManagerContainer.LuaUIMgr:Back2NormalBattleMain(Enum.MainViewPageType.Town)
- end
- end
- function LuaUIMgr:StoryHideUIStatus(status)
- if not status then
- UIOpenStatusList = {}
- local array = self:GetCurUIStack()
- for i = 0, array.Length - 1 do
- local luaUIBase = array[i]
- local uiView = luaUIBase.MLuaTable
- if uiView.gameObject.activeSelf then
- UIOpenStatusList[#UIOpenStatusList + 1] = uiView
- end
- end
- end
- for i = 1,#UIOpenStatusList do
- UIOpenStatusList[i].gameObject:SetActive(status)
- end
- end
- function LuaUIMgr:GetCurUIId()
- local array = self:GetCurUIStack()
- if array.Length > 0 then
- for i = 0, array.Length - 1 do
- local luaUIBase = array[i]
- local uiView = luaUIBase.MLuaTable
- local uiData = uiView.uiData
- if uiData.type <= Enum.UIType.Tips then
- return uiView.uiData.id
- end
- end
- end
- return nil
- end
- function LuaUIMgr:IsUIPageIsOpenning(pageId)
- local uiData = ManagerContainer.CfgMgr:GetUIData(pageId)
- return ManagerContainer.LuaUIMgr:GetPage(uiData.id)
- end
- function LuaUIMgr:NeedMainHideTop()
- local array = self:GetCurUIStack()
- for i = 0, array.Length - 1 do
- local luaUIBase = array[i]
- local uiView = luaUIBase.MLuaTable
- if uiView.gameObject.activeSelf then
- if (uiView.uiData.type == Enum.UIType.Total or uiView.uiData.type == Enum.UIType.TotalWin) and uiView.uiData.hide_main_top then
- return true
- end
- end
- end
- return false
- end
- function LuaUIMgr:NeedMainHideBottom()
- local array = self:GetCurUIStack()
- for i = 0, array.Length - 1 do
- local luaUIBase = array[i]
- local uiView = luaUIBase.MLuaTable
- if uiView.gameObject.activeSelf then
- if (uiView.uiData.type == Enum.UIType.Total or uiView.uiData.type == Enum.UIType.TotalWin) and uiView.uiData.hide_main_bottom then
- return true
- end
- end
- end
- return false
- end
- function LuaUIMgr:ShowNetWaiting()
- if self:HasOpenPage(Enum.UIPageName.UIWaiting) then
- return
- end
- self:Open(Enum.UIPageName.UIWaiting)
- end
- function LuaUIMgr:ShowNetWaiting_New(data)
- if self:HasOpenPage(Enum.UIPageName.UIWaiting) then
- return
- end
- self:Open(Enum.UIPageName.UIWaiting,data)
- end
- function LuaUIMgr:CloseNetWaiting()
- self:ClosePage(Enum.UIPageName.UIWaiting)
- end
- --显示单按钮mesbox
- function LuaUIMgr:ShowOkMessageBox(tipsKey,OkCb)
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIAntiCheatMsgWnd, {tipsKey,OkCb})
- end
- --关闭单按钮mesbox
- function LuaUIMgr:CloseOkMessageBox(strTipName)
- local page = self:GetPage(Enum.UIPageName.UIAntiCheatMsgWnd)
- if nil ~= page then
- if nil ~= page.Data and nil ~= page.Data[1] then
- if strTipName ==page.Data[1] then
- self:ClosePage(Enum.UIPageName.UIAntiCheatMsgWnd)
- end
- end
- end
- end
- -- 显示messagebox
- function LuaUIMgr:ShowMessageBox(tipsKey,keyParams,data,owner,confirmCb,cancelCb)
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINoticeTips, {tipsKey,keyParams, data, owner, confirmCb,cancelCb})
- end
- --关闭strTipName的 UINoticeTips
- function LuaUIMgr:CloseMessageBox(strTipName)
- local page = self:GetPage(Enum.UIPageName.UINoticeTips)
- if nil ~= page then
- if nil ~= page.Data and nil ~= page.Data[1] then
- if strTipName ==page.Data[1] then
- self:ClosePage(Enum.UIPageName.UINoticeTips)
- end
- end
- end
- end
- function LuaUIMgr:SetBattleRootVisible(vis)
- if self.UIBattleRootTrans == nil then
- return
- end
- -- self.UIBattleRootTrans.gameObject:SetActive(vis)
- end
- function LuaUIMgr:BackToMainCity()
- self:Open(Enum.UIPageName.UIMainCity1)
- end
- --- 私聊接口
- ---@param uid integer 唯一ID
- ---@param nickname string 名字
- ---@param headId integer 头像
- function LuaUIMgr:PrivateChatOtherPlayer(uid, nickname, headIcon, jobId, level,gender)
- local fromData = {uid = tostring(uid), nickname = nickname or "NickName", imgId = headIcon, jobId = jobId, level = level, sex = gender}
- local idx = ManagerContainer.DataMgr.ChatData:GetTargetIdxInSortedDatas(fromData)
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChatPrivate, idx)
- end
- --打开玩家头像交互界面,t_uid是想要查看的好友的uid的字符串
- function LuaUIMgr:OpenRoleMessagePanel(_uid, isAcrossRole)
- local t_uid_int64 = _uid;
- if "string" == type(_uid) then
- t_uid_int64 = int64.new(_uid);
- end
- local _userUid = ManagerContainer.DataMgr.UserData:GetUserId();
- if int64.equals(t_uid_int64, _userUid) then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("ChatError1")
- else
- if not isAcrossRole then isAcrossRole = false end
- self.isAcrossRole = isAcrossRole
- ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_GET_OTHER_PLAYER_DETAIL_INFO_REQ, {t_uid = t_uid_int64});
- end
- end
- function LuaUIMgr:GetIsAcrossRole()
- return self.isAcrossRole
- end
- function LuaUIMgr:ClearIsAcrossRoleState()
- self.isAcrossRole = false
- end
- --建立 返回正常巡游战斗主界面 执行队列
- function LuaUIMgr:Back2NormalBattleMain(mainViewPageType)
- local data = require('ExecuteSequenceData'):new();
- data:AppendFunc(false, ManagerContainer.LuaUIMgr, ManagerContainer.LuaUIMgr.Open, Enum.UIPageName.UIMain);
- data:AppendUIListener(Enum.UIPageName.UIMain, UIEventNames.UI_FILLCONTENT_COMPELETED, 5);
- data:AppendUIViewFunc(false, Enum.UIPageName.UIMain, 'ChangePageMsg', mainViewPageType);
- ManagerContainer.ExecuteSequenceMgr:Execute(data);
- return data
- end
- function LuaUIMgr:AddUIView(id, view)
- if id == nil then return end
- if self.UIViewMap[id] == nil then
- self.UIViewMap[id] = {}
- end
- self.UIViewMap[id][#self.UIViewMap[id] + 1] = view
- end
- function LuaUIMgr:RemoveUIView(id, view)
- if id == nil then return end
- for i = 1, #self.UIViewMap[id] do
- if self.UIViewMap[id][i] == view then
- self.UIViewMap[id][i] = nil
- end
- end
- end
- function LuaUIMgr:DestroyUIView(id)
- if id == nil then return end
- if #self.UIViewMap[id] == 0 then
- CommonUtil.SetUITableNilInPackage(id)
- end
- end
- function LuaUIMgr:GetViewCtrById(id)
- if id == nil then return end
- if self.UIViewMap[id] == nil then return end
- if self.UIViewMap[id][#self.UIViewMap[id]] == nil then return end
- return self.UIViewMap[id][#self.UIViewMap[id]].controller
- end
- function LuaUIMgr:ShowMinTips(contentKey,params)
- local tipsData = {self.ClickMousePos,1,contentKey,params}
- if self:HasOpenPage(Enum.UIPageName.UIMinTips) then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_REFRESH_MINTIPS,tipsData)
- else
- self:Open(Enum.UIPageName.UIMinTips, tipsData)
- end
- end
- function LuaUIMgr:ShowMinRewardTips(rewards)
- local tipsData = {self.ClickMousePos,2,nil,nil,rewards}
- if self:HasOpenPage(Enum.UIPageName.UIMinTips) then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_REFRESH_MINTIPS,tipsData)
- else
- self:Open(Enum.UIPageName.UIMinTips, tipsData)
- end
- end
- function LuaUIMgr:OnShowPage(uiData)
- if uiData.id == Enum.UIPageName.UIPrivateChatBtn then
- return
- end
- if uiData.type >= Enum.UIType.Tips then
- return
- end
- self.ShowUIPageList[#self.ShowUIPageList+1] = {pageId = uiData.id, topBtnState = uiData.top_btn_display_state}
- self:MainChangeBtnStateNotify(uiData.top_btn_display_state)
- end
- function LuaUIMgr:OnRemovePage(uiData)
- if self.ShowUIPageList == nil then
- return
- end
- if uiData.id == Enum.UIPageName.UIPrivateChatBtn then
- return
- end
- if uiData.type >= Enum.UIType.Tips then
- return
- end
- for i = 1, #self.ShowUIPageList do
- if self.ShowUIPageList[i].pageId == uiData.id then
- table.remove(self.ShowUIPageList, i)
- break
- end
- end
- if #self.ShowUIPageList > 0 then
- local topPage = self.ShowUIPageList[#self.ShowUIPageList]
- self:MainChangeBtnStateNotify(topPage.topBtnState)
- end
- end
- function LuaUIMgr:MainChangeBtnStateNotify(state)
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.MAIN_CHANGE_BUTTONS_STATE,state)
- end
- function LuaUIMgr:OpenLimitRechargeUI()
- local limitRecharge = ManagerContainer.DataMgr.ActsDataMgr:GetLimitRechargeItem()
- if not limitRecharge or not limitRecharge:IsLimitRechargeExist() then
- return
- end
- if not limitRecharge.needOpen then
- return
- end
- if ManagerContainer.FSMMgr:IsLoadingState() then
- return
- end
- local battlePage = self:GetCurrentBattlePageId()
- if battlePage > 0 then
- if battlePage ~= Enum.UIPageName.UIBattle then
- return
- else
- if ManagerContainer.LuaBattleMgr:GetBossFightState() then
- return
- end
- end
- end
- if not self:HasOpenPage(Enum.UIPageName.UIActivityLimitedGift) then
- self:Open(Enum.UIPageName.UIActivityLimitedGift, true)
- end
- end
- function LuaUIMgr:IsBatting()
- if ManagerContainer.FSMMgr:IsLoadingState() then
- return true
- end
- local battlePage = self:GetCurrentBattlePageId()
- if battlePage then
- if battlePage ~= Enum.UIPageName.UIBattle then
- return
- else
- if ManagerContainer.LuaBattleMgr:GetBossFightState() then
- return true
- end
- end
- end
- return false
- end
- return LuaUIMgr
|