require("Base/BasePanel") HarmonyPanel = Inherit(BasePanel) local contents = { [1] = {view = require("Modules/Harmony/View/HarmonyScrllow"), panelName = "HarmonyPanel"}, } --初始化组件(用于子类重写) function HarmonyPanel:InitComponent() self.spLoader = SpriteLoader.New() self.prefab = {} self.btnBack = Util.GetGameObject(self.gameObject, "Back/BackBtn") self.helpBtn = Util.GetGameObject(self.gameObject,"HelpBtn") self.AddBtn = Util.GetGameObject(self.gameObject,"Panel/HarmonyPanel/AddBtn") self.GongMingBtn = Util.GetGameObject(self.gameObject,"Panel/HarmonyPanel/KnowGongMing") self.helpPosition = self.helpBtn:GetComponent("RectTransform").localPosition self.panel = Util.GetGameObject(self.gameObject,"Panel") self.GradeText = Util.GetGameObject(self.gameObject, "Panel/HarmonyPanel/GradeText"):GetComponent("Text") self.NumText = Util.GetGameObject(self.panel,"HarmonyPanel/itemNumText"):GetComponent("Text") self.parent = Util.GetGameObject(self.gameObject,"MiddleView") --初始化格子中的数据 HarmonyManager:InitGongMingDataList() for i = 1, #contents do self.prefab[i]=Util.GetGameObject(self.panel,contents[i].panelName); contents[i].view:InitComponent(self.panel, BagManager.GetTotalItemNum(UpViewRechargeType.XuanHuangZhiQi),BagManager.GetTotalItemNum(UpViewRechargeType.DemonCrystal),1) end end function HarmonyPanel:InitTextMum() local HeroCount = 0 local Box = #HarmonyManager.hongmengHeroInfos; for i = 1, #HarmonyManager.hongmengHeroInfos do -- body if HarmonyManager.hongmengHeroInfos[i].heroId ~="" then HeroCount = HeroCount + 1 end end self.NumText.text = string.format("%d/%d",HeroCount,Box) end --绑定事件(用于子类重写) function HarmonyPanel:BindEvent() Util.AddClick(self.btnBack, function() self:ClosePanel() end) Util.AddClick(self.helpBtn,function() UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.HongMengZhen,self.helpPosition.x,self.helpPosition.y+900) end) Util.AddClick(self.AddBtn,function() --二级弹窗界面 Game.GlobalEvent:DispatchEvent(GameEvent.HongMeng.OpenBoxTips) end) --共鸣按钮 Util.AddClick(self.GongMingBtn,function() local count = HarmonyManager:IsEnvoyCount() if count > 6 then -- body UIManager.OpenPanel(UIName.GongMingResultTips) else PopupTipPanel.ShowTip(Language[12188]) end --二级共鸣弹窗 end) end function HarmonyPanel:ReFeshTextFun(data) local HeroCount = 0 local Box = 0 -- body HeroCount = data[1] Box = data[2] self.NumText.text = string.format("%d/%d",HeroCount,Box) end --添加事件监听(用于子类重写) function HarmonyPanel:AddListener() for i = 1, #contents do contents[i].view:AddListener() end Game.GlobalEvent:AddEvent(GameEvent.HongMeng.OnlyRefeshText,self.ReFeshTextFun,self) end --移除事件监听(用于子类重写) function HarmonyPanel:RemoveListener() for i = 1, #contents do contents[i].view:RemoveListener() end Game.GlobalEvent:RemoveEvent(GameEvent.HongMeng.OnlyRefeshText,self.ReFeshTextFun,self) end --界面打开时调用(用于子类重写) function HarmonyPanel:OnOpen() -- NetManager.PlayerInfoRequest(LoadingPanel.OnStep) --格子 local specialConfig = ConfigManager.GetConfigData(ConfigName.SpecialConfig,101).Value local t = string.split(specialConfig,"#") self.GradeText.text="伙伴共鸣等级:"..string.format("%d/%d", HarmonyManager.GetSingleAdditionsData(HarmonyAddType.AddLv).value, t[2]) for i = 1, #contents do contents[i].view:OnOpen(self.sortingOrder) end --金币 self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform, { showType = UpViewOpenType.ShowLeft }) --鸿蒙守卫 self.HarmonyView = SubUIManager.Open(SubUIConfig.HarmonyView,self.parent.transform,self.sortingOrder) self.HarmonyView.transform.localScale = Vector3.one * 0.95 --对选人列表的刷新 HarmonyManager:SetInitList() self:InitTextMum() end --界面打开或者重新打开后,界面刷新时调用(用于子类重写) function HarmonyPanel:OnShow() self.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.HongMengProp}) self.HarmonyView:SetEffectLayer(self.sortingOrder) for i = 1, #contents do contents[i].view:SetEffectLayer(self.sortingOrder) end end function HarmonyPanel:OnSortingOrderChange() for i = 1, #contents do contents[i].view:SetEffectLayer(self.sortingOrder) end end --界面关闭时调用(用于子类重写) function HarmonyPanel:OnClose() for i = 1, #contents do contents[i].view:OnClose() end end --界面销毁时调用(用于子类重写) function HarmonyPanel:OnDestroy() self.spLoader:Destroy() SubUIManager.Close(self.UpView) end return HarmonyPanel