----- 通用弹窗 ----- require("Base/BasePanel") GeneralPopup = Inherit(BasePanel) local this=GeneralPopup --子模块脚本 local contentScripts = { --回溯 [GENERAL_POPUP_TYPE.ResolveRecall] = {view = require("Modules/Popup/View/GeneralPopup_ResolveRecall"), panelName = "GeneralPopup_ResolveRecall"}, --献祭 [GENERAL_POPUP_TYPE.ResolveDismantle] = {view = require("Modules/Popup/View/GeneralPopup_ResolveDismantle"), panelName = "GeneralPopup_ResolveDismantle"}, --装备合成 [GENERAL_POPUP_TYPE.EquipCompound]= {view=require("Modules/Popup/View/GeneralPopup_EquipCompound"),panelName="GeneralPopup_EquipCompound"}, --公会技能重置返还 [GENERAL_POPUP_TYPE.GuildSkill]= {view=require("Modules/Popup/View/GeneralPopup_GuildSkillReset"),panelName="GeneralPopup_GuildSkillReset"}, --宝物合成 [GENERAL_POPUP_TYPE.TreasureCompound]= {view=require("Modules/Popup/View/GeneralPopup_TreasureCompound"),panelName="GeneralPopup_TreasureCompound"}, --公会援助发送求助碎片 [GENERAL_POPUP_TYPE.GuildAid]= {view=require("Modules/Popup/View/GeneralPopup_GuildAid"),panelName="GeneralPopup_GuildAid"}, --公会援助查看宝箱奖励 [GENERAL_POPUP_TYPE.GuildAidFindBoxReward]= {view=require("Modules/Popup/View/GeneralPopup_GuildAidFindBoxReward"),panelName="GeneralPopup_GuildAidFindBoxReward"}, --点将台抽卡 奖励弹窗 [GENERAL_POPUP_TYPE.RecruitBox]= {view=require("Modules/Popup/View/GeneralPopup_RecruitBox"),panelName="GeneralPopup_RecruitBox"}, --挂机属性提升 [GENERAL_POPUP_TYPE.Onhook]= {view=require("Modules/Popup/View/GeneralPopup_Onhook"),panelName="GeneralPopup_Onhook"}, --试练设置弹窗 [GENERAL_POPUP_TYPE.TrialSetting]={view=require("Modules/Popup/View/GeneralPopup_TrialSetting"),panelName="GeneralPopup_TrialSetting"}, --试练回春散 [GENERAL_POPUP_TYPE.TrialXingYao]={view=require("Modules/Popup/View/GeneralPopup_TrialXingYao"),panelName="GeneralPopup_TrialXingYao"}, --试练增益 [GENERAL_POPUP_TYPE.TrialGain]={view=require("Modules/Popup/View/GeneralPopup_TrialGain"),panelName="GeneralPopup_TrialGain"}, --大闹天宫 回复 和 复活节点 [GENERAL_POPUP_TYPE.ExpeditionReply]={view=require("Modules/Popup/View/GeneralPopup_ExpeditionReply"),panelName="GeneralPopup_ExpeditionReply"}, --试炼副本进入下一层 [GENERAL_POPUP_TYPE.TrialToNextFloor]={view=require("Modules/Popup/View/GeneralPopup_TrialToNextFloor"),panelName="GeneralPopup_TrialToNextFloor"}, --宝物分解 [GENERAL_POPUP_TYPE.ResolveEquipTreasure] = {view = require("Modules/Popup/View/GeneralPopup_ResolveEquipTreasure"), panelName = "GeneralPopup_ResolveEquipTreasure"}, --装备批量出售 [GENERAL_POPUP_TYPE.EquipBatchSell] = {view = require("Modules/Popup/View/GeneralPopup_EquipBatchSell"), panelName = "GeneralPopup_EquipBatchSell"}, --装备单种出售 拉条 [GENERAL_POPUP_TYPE.EquipSingleSell] = {view = require("Modules/Popup/View/GeneralPopup_EquipSingleSell"), panelName = "GeneralPopup_EquipSingleSell"}, --森罗次元炸弹 [GENERAL_POPUP_TYPE.TrialBomb] = {view = require("Modules/Popup/View/GeneralPopup_TrialBomb"), panelName = "GeneralPopup_TrialBomb"}, --神将召唤、限时召唤、乾坤宝盒 二次确认界面 [GENERAL_POPUP_TYPE.RecruitConfirm] = {view = require("Modules/Popup/View/GeneralPopup_RecruitConfirm"), panelName = "GeneralPopup_RecruitConfirm"}, --法宝回归 [GENERAL_POPUP_TYPE.TalismanResolve] = {view = require("Modules/Popup/View/GeneralPopup_TalismanResolve"), panelName = "GeneralPopup_TalismanResolve"}, [GENERAL_POPUP_TYPE.XuanYuanBuyTimes] = {view = require("Modules/Popup/View/GeneralPopup_BuyXuanYuanMirrorTims"), panelName = "GeneralPopup_BuyXuanYuanMirrorTims"}, [GENERAL_POPUP_TYPE.QinglongSerectTreasureBuyLevel] = {view = require("Modules/Popup/View/GeneralPopup_QinglongSerectTreasureBuyLevel"), panelName = "GeneralPopup_QinglongSerectTreasureBuyLevel"}, [GENERAL_POPUP_TYPE.HeavenUnlockExtraRewardPanel] = {view = require("Modules/Popup/View/GeneralPopup_HeavenUnlockExtraRewardPanel"), panelName = "GeneralPopup_HeavenUnlockExtraRewardPanel"}, --灵兽战力加成 [GENERAL_POPUP_TYPE.PokemonUpZhenAddPro] = {view = require("Modules/Popup/View/GeneralPopup_PokemonUpZhenAddPro"), panelName = "GeneralPopup_PokemonUpZhenAddPro"}, --灵兽涅槃 [GENERAL_POPUP_TYPE.PokemonResolve] = {view = require("Modules/Popup/View/GeneralPopup_PokemonResolve"), panelName = "GeneralPopup_PokemonResolve"}, --灵兽还原 [GENERAL_POPUP_TYPE.PokemonRestore] = {view = require("Modules/Popup/View/GeneralPopup_PokemonRestore"), panelName = "GeneralPopup_PokemonRestore"}, --灵兽碎片合成 [GENERAL_POPUP_TYPE.PokemonCompound]={view = require("Modules/Popup/View/GeneralPopup_PokemonChipCompound"), panelName = "GeneralPopup_PokemonChipCompound"}, [GENERAL_POPUP_TYPE.XiaoYaoYouItemExchange] = {view = require("Modules/Popup/View/GeneralPopup_XiaoYaoYouItemExchange"), panelName = "GeneralPopup_XiaoYaoYouItemExchange"}, --社稷大典检查是否加入工会 [GENERAL_POPUP_TYPE.SheJiCheckGuild] = {view = require("Modules/Popup/View/GeneralPopup_SheJiCheckGuild"), panelName = "GeneralPopup_SheJiCheckGuild"}, --YiJingBaoKuConfirm [GENERAL_POPUP_TYPE.YiJingBaoKuConfirm] = {view = require("Modules/Popup/View/GeneralPopup_YiJingBaoKuConfirm"), panelName = "GeneralPopup_YiJingBaoKuConfirm"}, --灵兽宝阁选择神兽 [GENERAL_POPUP_TYPE.LingShouBaoGe] = {view = require("Modules/Popup/View/GeneralPopup_LingShouBaoGe"), panelName = "GeneralPopup_LingShouBaoGe"}, --云游商人选择装备 [GENERAL_POPUP_TYPE.YunYouMan] = {view = require("Modules/Popup/View/GeneralPopup_YunYouMan"), panelName = "GeneralPopup_YunYouMan"}, --招募奖励详情 [GENERAL_POPUP_TYPE.RecrutReward] = {view = require("Modules/Popup/View/GeneralPopup_RecruitReward"), panelName = "GeneralPopup_RecruitReward"}, --限时抽卡选择up英雄 [GENERAL_POPUP_TYPE.WuJinSetting] = {view = require("Modules/Popup/View/GeneralPopup_EndlessPanel"), panelName = "GeneralPopup_EndlessPanel"}, --up魂印 [GENERAL_POPUP_TYPE.ChooseUpSoul] = {view = require("Modules/Popup/View/GeneralPopup_ChooseUpSoul"), panelName = "GeneralPopup_ChooseUpSoul"}, --新增的心愿神将提示框 [GENERAL_POPUP_TYPE.NewAddWishHero] = {view = require("Modules/Popup/View/GeneralPopup_NewAddWishHero"), panelName = "GeneralPopup_NewAddWishHero"}, --七界试炼单个遗物 [GENERAL_POPUP_TYPE.QiJieSingleTreasure] = {view = require("Modules/Popup/View/GeneralPopup_QiJieSingleTreasure"), panelName = "GeneralPopup_QiJieSingleTreasure"}, --四灵试炼回放 [GENERAL_POPUP_TYPE.FourElementReturnLook] = {view = require("Modules/Popup/View/GeneralPopup_FightReturnLookFourEle"), panelName = "GeneralPopup_FightReturnLookFourEle"}, --御剑行竞猜界面 [GENERAL_POPUP_TYPE.YuJianXingRecord] = {view = require("Modules/Popup/View/GeneralPopup_YuJianXingRecord"), panelName = "GeneralPopup_YuJianXingRecord"}, --御剑行竞猜调整数量界面 [GENERAL_POPUP_TYPE.YuJianXingBetSelectNum] = {view = require("Modules/Popup/View/GeneralPopup_YuJianXingBetSelectNum"), panelName = "GeneralPopup_YuJianXingBetSelectNum"}, --灵脉跳转界面 [GENERAL_POPUP_TYPE.LingMaiJump] = {view = require("Modules/Popup/View/GeneralPopup_LingMaiJump"), panelName = "GeneralPopup_LingMaiJump"}, --灵脉跳转界面 [GENERAL_POPUP_TYPE.SelectExploreTime] = {view = require("Modules/Popup/View/GeneralPopup_SelectExploreTime"), panelName = "GeneralPopup_SelectExploreTime"}, --命石一键合成 [GENERAL_POPUP_TYPE.GemOneKey] = {view = require("Modules/Popup/View/GeneralPopup_GemOneKey"), panelName = "GeneralPopup_GemOneKey"}, --命石批量合成 [GENERAL_POPUP_TYPE.GemMoreCom] = {view = require("Modules/Popup/View/GeneralPopup_GemMoreCom"), panelName = "GeneralPopup_GemMoreCom"}, --英雄回退 [GENERAL_POPUP_TYPE.ResolveReStar] = {view = require("Modules/Popup/View/GeneralPopup_ResolveReStar"), panelName = "GeneralPopup_ResolveReStar"}, --家园装备升级 --[GENERAL_POPUP_TYPE.HomeLandEquip] = {view = require("Modules/Popup/View/GeneralPopup_HomeLandEquip"), panelName = "GeneralPopup_HomeLandEquip"}, --改变英雄阵营 [GENERAL_POPUP_TYPE.ChangeHeroPro] = {view = require("Modules/Popup/View/GeneralPopup_ChangeHeroPro"), panelName = "GeneralPopup_ChangeHeroPro"}, --改变英雄阵营确认界面 --[GENERAL_POPUP_TYPE.ChangeHeroProConfirm] = {view = require("Modules/Popup/View/GeneralPopup_ChangeHeroProConfirm"), panelName = "GeneralPopup_ChangeHeroProConfirm"}, [GENERAL_POPUP_TYPE.BuyShanHeSheJiTuGetRewardTimes] = {view = require("Modules/Popup/View/GeneralPopup_BuyShanHeSheJiTuGetRewardTimes"), panelName = "GeneralPopup_BuyShanHeSheJiTuGetRewardTimes"}, } --子模块预设 local contentPrefabs={} --打开弹窗类型 local popupType --打开弹窗索引 local index=0 function GeneralPopup:InitComponent() this.spLoader = SpriteLoader.New() this.contents=Util.GetGameObject(this.gameObject,"Contents") this.backBtn=Util.GetGameObject(this.contents,"BG/BackBtn") this.BG=Util.GetGameObject(this.contents,"BG") this.Mask=Util.GetGameObject(this.gameObject,"Mask") --子模块脚本初始化 for key, value in pairs(contentScripts) do value.view:InitComponent(Util.GetGameObject(this.contents, value.panelName)) end --预设赋值 for key, value in pairs(contentScripts) do contentPrefabs[key]=Util.GetGameObject(this.contents,value.panelName) end end function GeneralPopup:BindEvent() for key, value in pairs(contentScripts) do value.view:BindEvent() end --返回按钮 Util.AddClick(this.backBtn,function() Game.GlobalEvent:DispatchEvent(GameEvent.Bag.OnTempBagChanged) self:ClosePanel() end) Util.AddClick(this.Mask,function() Game.GlobalEvent:DispatchEvent(GameEvent.Bag.OnTempBagChanged) self:ClosePanel() end) end function GeneralPopup:AddListener() for key, value in pairs(contentScripts) do value.view:AddListener() end end function GeneralPopup:RemoveListener() for key, value in pairs(contentScripts) do value.view:RemoveListener() end end function GeneralPopup:OnSortingOrderChange() this.sortingOrder = self.sortingOrder end local onOpenArgs--临时接的参数 需要onshow刷新的调用 function GeneralPopup:OnOpen(popupType,...) onOpenArgs = ... --根据传入类型打开对应面板 --LogGreen("显示的类型 = "..popupType) for key, value in pairs(contentScripts) do if popupType == key then index = key break end end for key, value in pairs(contentPrefabs) do value.gameObject:SetActive(false) end this.Mask:SetActive(popupType ~= GENERAL_POPUP_TYPE.Onhook) this.BG:SetActive(popupType ~= GENERAL_POPUP_TYPE.Onhook and popupType ~= GENERAL_POPUP_TYPE.ChooseUpSoul) contentPrefabs[popupType].gameObject:SetActive(true) contentScripts[popupType].view:OnShow(this,...)--1、传入自己 2、传入不定参 end function GeneralPopup:OnShow() if index == GENERAL_POPUP_TYPE.RecruitBox then--临时接的参数 需要onshow刷新的调用 if onOpenArgs then contentScripts[index].view:OnShow(this,unpack(onOpenArgs, 1, table.maxn(onOpenArgs))) else contentScripts[index].view:OnShow(this) end end this.backBtn:SetActive(index ~= GENERAL_POPUP_TYPE.SheJiCheckGuild) end function GeneralPopup:OnClose() for key, value in pairs(contentScripts) do value.view:OnClose() end end function GeneralPopup:OnDestroy() this.spLoader:Destroy() for key, value in pairs(contentScripts) do value.view:OnDestroy() end end return GeneralPopup