miduo_client/Assets/ManagedResources/~Lua/Modules/Recharge/View/RechargeViewNew.lua

194 lines
8.0 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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