require("Base/BasePanel") GMShuaChongTeQuan = Inherit(BasePanel) -- local GMShuaChongTeQuan = {} self=GMShuaChongTeQuan local sortingOrder = 0 local TabBox = require("Modules/Common/TabBox") local _TabData={ --[1] = { default = "r_hero_xuanze_002", select = "r_hero_xuanze_001", name = "刷充GM",img = "gm_shuachong_scGM_01_zh",id=2201,scale=0,all=0 }, [1] = { default = "UI_hz_gonghui_31", select = "UI_hz_gonghui_31", name = "超级特权" ,img = "gm_shuachong_cjGM_01_zh",id=2202,scale=6,all=128}, [2] = { default = "UI_hz_gonghui_32", select = "UI_hz_gonghui_32", name = "神级特权" ,img = "gm_shuachong_sjGM_01_zh",id=2203,scale=5,all=400 }, [3] = { default = "UI_hz_gonghui_33", select = "UI_hz_gonghui_33", name = "无上特权",img = "gm_shuachong_wsGM_01_zh",id=2204,scale=2,all=3500 }, } -- function GMShuaChongTeQuan:New(gameObject) -- local b = {} -- b.gameObject = gameObject -- b.transform = gameObject.transform -- setmetatable(b, { __index = GMShuaChongTeQuan }) -- return b -- end local TabAdapter=nil local SwitchView=nil local infoList={} local rewardList={} local dayList={} local redList={} --初始化组件(用于子类重写) function GMShuaChongTeQuan:InitComponent() self.spLoader = SpriteLoader.New() self.btnBack = Util.GetGameObject(self.transform, "backBtn") self.grid = Util.GetGameObject(self.gameObject, "grid") self.titleImg=Util.GetGameObject(self.gameObject, "bg1/shenzuntequanName"):GetComponent("Image") self.btn_buy=Util.GetGameObject(self.gameObject, "bg1/bg2/btn_buy") self.hintTxt=Util.GetGameObject(self.gameObject, "bg1/bg2/hintTxt"):GetComponent("Text") self.hintTxt3=Util.GetGameObject(self.gameObject, "bg1/bg2/btn_buy/hint2Txt") self.tabBox = Util.GetGameObject(self.gameObject, "TabBox") self.infoGrid=Util.GetGameObject(self.gameObject, "bg1/bg2/info/tequan") self.infoPre=Util.GetGameObject(self.gameObject, "bg1/bg2/tequanText") self.rewardGrid=Util.GetGameObject(self.gameObject, "bg1/bg2/Reward") self.dayGrid=Util.GetGameObject(self.gameObject, "bg1/bg2/dayReward") self.Scrollbar=Util.GetGameObject(self.gameObject, "bg1/bg2/Scrollbar"):GetComponent("Scrollbar") self.payTxt=Util.GetGameObject(self.gameObject, "bg1/bg2/btn_buy/Text"):GetComponent("Text") self.scaleImg=Util.GetGameObject(self.gameObject, "bg1/bg2/btn_buy/Image") self.hint2Txt=Util.GetGameObject(self.gameObject, "bg1/bg2/Rewardbg/Text"):GetComponent("Text") self.scaleTxt=Util.GetGameObject(self.gameObject, "bg1/bg2/btn_buy/scaleTxt"):GetComponent("Text") self.oldPriceTxt=Util.GetGameObject(self.gameObject, "bg1/bg2/btn_buy/old_buy"):GetComponent("Text") self.titleTxt=Util.GetGameObject(self.gameObject, "bg1/Image (1)/Text"):GetComponent("Text") local rootHight = self.infoGrid.transform.rect.height local width = self.infoGrid.transform.rect.width self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.infoGrid.transform,self.infoPre, self.Scrollbar, Vector2.New(width, rootHight), 1, 1, Vector2.New(0,0)) self.ScrollView.moveTween.MomentumAmount = 1 self.ScrollView.moveTween.Strength = 2 self.ScrollView.elastic = false TabAdapter=function(tab, index, status) local tabLab = Util.GetGameObject(tab, "Text") Util.GetGameObject(tab,"Image"):GetComponent("Image").sprite = self.spLoader:LoadSprite(_TabData[index][status]) tabLab:GetComponent("Text").text = _TabData[index].name Util.GetGameObject(tab,"select"):SetActive(status=="select") local red=Util.GetGameObject(tab,"Redpot") red:SetActive(ActivityGiftManager.GetActivityInfo(ActivityTypeDef.shuaChongTeQuan,_TabData[index].id).state==1) redList[_TabData[index].id]=red end --切换视图 SwitchView=function(_index) self.titleImg.sprite=self.spLoader:LoadSprite(_TabData[_index].img) local activityId=_TabData[_index].id local recharge=ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig,activityId) local len= #recharge.OpenPrivilege local lv=_index --recharge.BTVIPlevel[1][2] local len=#recharge.OpenPrivilege local mission=ActivityGiftManager.GetActivityInfo(ActivityTypeDef.shuaChongTeQuan,activityId) local state=mission.state self.titleTxt.text=_TabData[_index].name if state==0 then self.payTxt.text=recharge.Price.."元" self.hint2Txt.gameObject:SetActive(true) self.hintTxt3:SetActive(true) self.scaleTxt.gameObject:SetActive(true) self.oldPriceTxt.gameObject:SetActive(true) self.scaleImg:SetActive(true) self.hint2Txt.text="已累计"..mission.progress.."天奖励,奖励最多累计30天" elseif state==1 then self.payTxt.text="领取" self.hintTxt3:SetActive(false) self.hint2Txt.gameObject:SetActive(false) self.scaleTxt.gameObject:SetActive(false) self.scaleImg:SetActive(false) self.oldPriceTxt.gameObject:SetActive(false) elseif state==2 then self.payTxt.text="已领取" self.hint2Txt.gameObject:SetActive(false) self.scaleTxt.gameObject:SetActive(false) self.scaleImg:SetActive(false) self.hintTxt3:SetActive(false) self.oldPriceTxt.gameObject:SetActive(false) end self.oldPriceTxt.text=_TabData[_index].all .."元" self.scaleTxt.text=_TabData[_index].scale.."折" if _index>1 then local lastId=_TabData[_index-1].id local lastmiss=ActivityGiftManager.GetActivityInfo(ActivityTypeDef.shuaChongTeQuan,lastId) local lastState=lastmiss.state if lastState==0 then self.btn_buy:SetActive(false) self.hintTxt.gameObject:SetActive(true) self.hintTxt.text="开通".._TabData[_index-1].name.."解锁购买" else self.btn_buy:SetActive(true) self.hintTxt.gameObject:SetActive(false) end else self.hintTxt.gameObject:SetActive(false) self.btn_buy:SetActive(true) end Util.AddOnceClick(self.btn_buy,function() if state==0 then PayManager.Pay(recharge.Id, function() -- self.curAllMonthCardData = MonthCardManager.GetMonthCardData() self.payTxt.text="领取" self.hintTxt3:SetActive(false) self.hint2Txt.gameObject:SetActive(false) self.scaleTxt.gameObject:SetActive(false) self.scaleImg:SetActive(false) self.oldPriceTxt.gameObject:SetActive(false) redList[activityId]:SetActive(true) state=1 end) elseif state==1 then NetManager.GetActivityRewardRequest(activityId,ActivityTypeDef.shuaChongTeQuan, function(_drop) UIManager.OpenPanel(UIName.RewardItemPopup, _drop, 1) self.payTxt.text="已领取" redList[activityId]:SetActive(false) state=2 end) end end) local list=recharge.PrivilegeInfor local newList={} for i = 1, #list do local config=ConfigManager.GetConfigData(ConfigName.PrivilegeTypeConfig,list[i]) if config.isShowName==1 then table.insert(newList,list[i]) end end self.ScrollView:SetData(newList, function (index, go) self:SingleDataShow(go,newList[index],lv) end,false) for i = 1, #rewardList do rewardList[i].gameObject:SetActive(false) end if recharge.BaseReward then for j = 1, #recharge.BaseReward do if rewardList and rewardList[j] then rewardList[j]:OnOpen(false, recharge.BaseReward[j], 0.8) rewardList[j].gameObject:SetActive(true) else local itemInfo = SubUIManager.Open(SubUIConfig.ItemView,self.rewardGrid.transform) itemInfo:OnOpen(false, recharge.BaseReward[j],0.8) table.insert(rewardList,itemInfo) end end end for i = 1, #dayList do dayList[i].gameObject:SetActive(false) end for j = 1, #recharge.ExtraReward do if dayList and dayList[j] then dayList[j]:OnOpen(false, recharge.ExtraReward[j],0.8) dayList[j].gameObject:SetActive(true) else local itemInfo = SubUIManager.Open(SubUIConfig.ItemView, self.dayGrid.transform) itemInfo:OnOpen(false, recharge.ExtraReward[j], 0.8) table.insert(dayList,itemInfo) end end end self.TabCtrl = TabBox.New() self.TabCtrl:SetTabAdapter(TabAdapter) self.TabCtrl:SetChangeTabCallBack(SwitchView) self.TabCtrl:Init(self.tabBox, _TabData, 1) self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.transform) end function GMShuaChongTeQuan:SingleDataShow(item,data,lv) local privilege=ConfigManager.GetConfigData(ConfigName.PrivilegeTypeConfig,data) local num="" local num2=0 if privilege.Condition[lv+1] then num=privilege.Condition[lv+1][2] if num==-1 then num="无限" end if privilege.Condition[lv+1][3] then num2=privilege.Condition[lv+1][3] end end if privilege.IfFloat==2 then num=num/100 .."%" end if privilege.Type==1 then item:GetComponent("Text").text =string.format(privilege.Name,num,num2) else item:GetComponent("Text").text =privilege.Name end end --绑定事件(用于子类重写) function GMShuaChongTeQuan:BindEvent() Util.AddClick(self.btnBack, function() self:ClosePanel() end) end --添加事件监听(用于子类重写) function GMShuaChongTeQuan:AddListener() end --移除事件监听(用于子类重写) function GMShuaChongTeQuan:RemoveListener() end --界面打开时调用(用于子类重写) function GMShuaChongTeQuan:OnOpen(_activityConfig,_index,parent) self.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.Main }) self.actConfig = _activityConfig self.pageIndex = _index self.parent = parent end function GMShuaChongTeQuan:OnSortingOrderChange() end -- 打开,重新打开时回调 function GMShuaChongTeQuan:OnShow(_sortingOrder) -- self.gameObject:SetActive(true) sortingOrder = _sortingOrder end local gifts={} local activityData={} -- 妖晶数量显示 --界面关闭时调用(用于子类重写) function GMShuaChongTeQuan:OnClose() -- self.gameObject:SetActive(false) CheckRedPointStatus(RedPointType.ImGM) end --界面销毁时调用(用于子类重写) function GMShuaChongTeQuan:OnDestroy() self.spLoader:Destroy() SubUIManager.Close(self.ScrollView) SubUIManager.Close(self.UpView) self.UpView = nil rewardList={} dayList={} end return GMShuaChongTeQuan