local RechargeViewNew = {} local growIndex = 0 local growData = {} function RechargeViewNew:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = RechargeViewNew }) return b end --添加事件监听(用于子类重写) function RechargeViewNew:AddListener() Game.GlobalEvent:AddEvent(GameEvent.MoneyPay.OnPayResultSuccess,self.SetGrowGift,self) end --移除事件监听(用于子类重写) function RechargeViewNew:RemoveListener() Game.GlobalEvent:RemoveEvent(GameEvent.MoneyPay.OnPayResultSuccess,self.SetGrowGift,self) end function RechargeViewNew:InitComponent() self.spLoader = SpriteLoader.New() self.shopViewRoot = Util.GetGameObject(self.gameObject, "root") if not self.shopView then self.shopView = SubUIManager.Open(SubUIConfig.ShopView, self.shopViewRoot.transform) -- 修改商品栏的位置 self.shopView:SetItemContentPosition(Vector3.New(0, 710, 0)) end -- 显示特权信息 --===================成长礼包================ self.grow = Util.GetGameObject(self.gameObject,"growPack/Content") self.tip = Util.GetGameObject(self.grow,"Tip"):GetComponent("Text") self.icon = Util.GetGameObject(self.grow,"Icon"):GetComponent("Image") self.progress = Util.GetGameObject(self.grow,"Progress/Image") self.value = Util.GetGameObject(self.grow,"Progress/Text"):GetComponent("Text") self.reward = Util.GetGameObject(self.grow,"Reward") self.btnLeft = Util.GetGameObject(self.grow,"btnLeft") self.btnRight = Util.GetGameObject(self.grow,"btnRight") self.btnGet = Util.GetGameObject(self.grow,"btnGet") self.price = Util.GetGameObject(self.btnGet,"cost/Text"):GetComponent("Text") self.cost = Util.GetGameObject(self.btnGet,"cost") self.btnText = Util.GetGameObject(self.btnGet,"Text") self.btnRed = Util.GetGameObject(self.btnGet,"red") self.endTimeBg = Util.GetGameObject(self.gameObject,"growPack/Time") self.endTimeBg.gameObject:SetActive(false) self.ItemList = {} end function RechargeViewNew:BindEvent() end --界面打开时调用(用于子类重写) function RechargeViewNew:OnOpen(_activityConfig,_index,parent) self.actConfig = _activityConfig self.pageIndex = _index self.parent = parent end function RechargeViewNew:OnSortingOrderChange() end function RechargeViewNew:OnShow(_sortingOrder) self.gameObject:SetActive(true) self.sortingOrder = _sortingOrder self.shopView:ShowShop(SHOP_TYPE.SOUL_STONE_SHOP, self.sortingOrder) self:SetGrowGift() end --==============================成长礼包部分========================== function RechargeViewNew:SetGrowGift() growData = DynamicActivityManager.GetGiftDataByType({{2,20}}) local rechargeNum = VipManager.GetChargedNum()--已经充值的金额 table.sort(growData,function (a,b) return a.data.shopItemData.BuyRule[2] < b.data.shopItemData.BuyRule[2] end) if DynamicActivityManager.growIndex == 0 then for i = 1, #growData do -- LogGreen(i..": rule:"..tostring(growData[i].data.shopItemData.BuyRule[2]).." data?"..tostring(growData[i])) if rechargeNum < growData[i].data.shopItemData.BuyRule[2] then DynamicActivityManager.growIndex = i DynamicActivityManager.growcurIndex = i break end end end growIndex = DynamicActivityManager.growIndex self.tip.text = string.format("再充值%s元升至名望%s",growData[DynamicActivityManager.growcurIndex].data.shopItemData.BuyRule[2] - rechargeNum, DynamicActivityManager.growcurIndex) self:RefreshReward(growData[growIndex],growIndex) Util.AddOnceClick(self.btnLeft,function () if growData[growIndex - 1] then DynamicActivityManager.growIndex = DynamicActivityManager.growIndex - 1 growIndex = growIndex - 1 self:RefreshReward(growData[growIndex],growIndex) end end) Util.AddOnceClick(self.btnRight,function () if growData[growIndex + 1] then DynamicActivityManager.growIndex = DynamicActivityManager.growIndex + 1 growIndex = growIndex + 1 self:RefreshReward(growData[growIndex]) end end) end --刷新奖励、按钮显示 function RechargeViewNew:RefreshReward(Data) local rechargeNum = VipManager.GetChargedNum()--已经充值的金额 self.btnLeft:SetActive(not not growData[growIndex - 1]) self.btnRight:SetActive(not not growData[growIndex + 1]) -- LogPink(growIndex.." 金额:"..tostring(Data.data.shopItemData.BuyRule[2]).." 限购:"..tostring(Data.data.limitNum).." 已购:"..tostring(Data.data.boughtNum).." rechargeNum:"..tostring(rechargeNum)) self.icon.sprite = self.spLoader:LoadSprite("t_tequan_vip"..growIndex-1) local size = rechargeNum/Data.data.shopItemData.BuyRule[2] size = size > 1 and 1 or size self.progress:GetComponent("RectTransform").sizeDelta = Vector3.New(483*size,12,0) self.value.text = string.format("%s/%s",rechargeNum,Data.data.shopItemData.BuyRule[2]) self.price.text = Data.data.price self.btnRed:SetActive(false) if Data.data.limitNum - Data.data.boughtNum > 0 then self.btnText:SetActive(false) self.cost:SetActive(true) self.btnGet:GetComponent("Button").interactable = true Util.SetGray(self.btnGet, false) if rechargeNum >= Data.data.shopItemData.BuyRule[2] then self.btnGet:GetComponent("Image").sprite = self.spLoader:LoadSprite("s_slbz_1anniuongse") if Data.data.shopItemData.BuyRule[2] == 0 then--只有零元档有红点 self.btnRed:SetActive(true) end else self.btnGet:GetComponent("Image").sprite = self.spLoader:LoadSprite("s_slbz_1anniuhuangse") end else self.btnText:SetActive(true) self.cost:SetActive(false) self.btnGet:GetComponent("Button").interactable = false Util.SetGray(self.btnGet, true) end Util.AddOnceClick(self.btnGet,function () -- LogGreen(tostring(Data.data.limitNum).." "..tostring(Data.data.boughtNum)) if Data.data.limitNum - Data.data.boughtNum > 0 then -- LogYellow(tostring(rechargeNum).." "..tostring(Data.data.shopItemData.BuyRule[2])) if rechargeNum >= Data.data.shopItemData.BuyRule[2] then -- LogPink(tostring(BagManager.GetItemCountById(Data.data.costId)).." "..tostring(Data.data.shopItemData.BuyRule[2])) if BagManager.GetItemCountById(Data.data.costId) >= Data.data.shopItemData.BuyRule[2] then -- LogBlue(tostring(Data.data.shopItemData.buyType).." "..tostring(Data.data.shopData.id)) ShopManager.RequestBuyShopItem(Data.buyType, Data.data.shopData.id, 1, function() self:SetGrowGift() CheckRedPointStatus(RedPointType.DailyGift) CheckRedPointStatus(RedPointType.GrowthPackage) end) else NotEnoughPopup:Show(Data.data.costId) end else PopupTipPanel.ShowTip(Language[11701]) end end end) if not self.ItemList then self.ItemList = {} end for i = 1, #self.ItemList do self.ItemList[i].gameObject:SetActive(false) end for i = 1, #Data.data.shows do if not self.ItemList[i] then self.ItemList[i] = SubUIManager.Open(SubUIConfig.ItemView,self.reward.transform) end self.ItemList[i]:OnOpen(false, {Data.data.shows[i][1],Data.data.shows[i][2],Data.data.shows[i][3]}, 0.9,false,false,false,self.sortingOrder) self.ItemList[i].gameObject:SetActive(true) end end function RechargeViewNew:OnClose() self.gameObject:SetActive(false) end function RechargeViewNew:OnDestroy() self.spLoader:Destroy() if self.shopView then SubUIManager.Close(self.shopView) self.shopView = nil end end return RechargeViewNew