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 = "r_hero_xuanze_002", select = "r_hero_xuanze_001", name = "超级特权", img = "gm_shuachong_cjGM_01_zh", id = 2202, scale = 6, all = 128 }, [2] = { default = "r_hero_xuanze_002", select = "r_hero_xuanze_001", name = "神级特权", img = "gm_shuachong_sjGM_01_zh", id = 2203, scale = 5, all = 400 }, [3] = { default = "r_hero_xuanze_002", select = "r_hero_xuanze_001", 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") 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 = GetLanguageStrById(_TabData[index].name) 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) LogError("sssssssssssssssssssssssssssss"..activityId) local len = #recharge.OpenPrivilege local lv = _index + 1 --recharge.BTVIPlevel[1][2] local len = #recharge.OpenPrivilege local mission = ActivityGiftManager.GetActivityInfo(ActivityTypeDef.shuaChongTeQuan, activityId) local state = mission.state if state == 0 then self.payTxt.text = MoneyUtil.GetMoney(recharge.Price) .. Language[10497] self.hint2Txt.gameObject:SetActive(false) self.hintTxt3:SetActive(false) self.scaleTxt.gameObject:SetActive(false) self.oldPriceTxt.gameObject:SetActive(false) self.scaleImg:SetActive(false) self.hint2Txt.text = Language[11989] .. mission.progress .. Language[11990] elseif state == 1 then self.payTxt.text = Language[10018] 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 = Language[10025] 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 .. Language[10497] self.scaleTxt.text = _TabData[_index].scale .. Language[10640] 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 = Language[11979] .. GetLanguageStrById(_TabData[_index - 1].name) .. Language[11991] 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 = Language[10018] 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 = Language[10025] 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) end function GMShuaChongTeQuan:SingleDataShow(item, data, lv) local privilege = ConfigManager.GetConfigData(ConfigName.PrivilegeTypeConfig, data) local num = "" local num2 = 0 --LogError("lv============================================="..lv) if privilege.Condition[lv] then num = privilege.Condition[lv][2] if num == -1 then num = Language[11764] end if privilege.Condition[lv][3] then num2 = privilege.Condition[lv][3] end end if privilege.IfFloat == 2 then num = num / 100 .. "%" end if privilege.Type == 1 then item:GetComponent("Text").text = string.format(GetLanguageStrById(privilege.Name), num, num2) else item:GetComponent("Text").text = GetLanguageStrById(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.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) rewardList = {} dayList = {} end return GMShuaChongTeQuan