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

221 lines
9.3 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 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
--==============================成长礼包部分==========================(EveryDayGiftNew中有完全相同的部分复制过去)
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.curLevel == 0 then
for i = 1, #growData do
if rechargeNum <= growData[i].data.shopItemData.BuyRule[2] then
DynamicActivityManager.curLevel = i
if DynamicActivityManager.Index == 0 then
DynamicActivityManager.Index = DynamicActivityManager.curLevel
end
break
end
end
end
--如果所有都没有,说明超范围了
if DynamicActivityManager.curLevel == 0 then
DynamicActivityManager.curLevel = #growData
if DynamicActivityManager.Index == 0 then
DynamicActivityManager.Index = DynamicActivityManager.curLevel
end
end
-- Log("当前声望Level:"..tostring(DynamicActivityManager.curLevel).." Index:"..tostring(DynamicActivityManager.Index))
--如果有当前声望数据,就显示,没有就显示上一档位
local data = not not growData[DynamicActivityManager.Index] and growData[DynamicActivityManager.Index] or growData[DynamicActivityManager.Index-1]
self:RefreshReward(data)
Util.AddOnceClick(self.btnLeft,function ()
if growData[DynamicActivityManager.Index - 1] then
DynamicActivityManager.Index = DynamicActivityManager.Index - 1
self:RefreshReward(growData[DynamicActivityManager.Index])
end
end)
Util.AddOnceClick(self.btnRight,function ()
if growData[DynamicActivityManager.Index + 1] then
DynamicActivityManager.Index = DynamicActivityManager.Index + 1
self:RefreshReward(growData[DynamicActivityManager.Index])
end
end)
end
--刷新奖励、按钮显示
function RechargeViewNew:RefreshReward(Data)
local rechargeNum = VipManager.GetChargedNum()--已经充值的金额
self.btnLeft:SetActive(not not growData[DynamicActivityManager.Index - 1])--左按钮显示
self.btnRight:SetActive(not not growData[DynamicActivityManager.Index + 1])--右按钮显示
-- LogPink(DynamicActivityManager.Index.." 金额:"..tostring(Data.data.shopItemData.BuyRule[2]).." 限购:"..tostring(Data.data.limitNum).." 已购:"..tostring(Data.data.boughtNum).." rechargeNum:"..tostring(rechargeNum))
local text = 0
local num = 0
if DynamicActivityManager.Index < 2 then
num = growData[2].data.shopItemData.BuyRule[2]
elseif DynamicActivityManager.Index + 1 > #growData then
text = #growData
num = growData[#growData].data.shopItemData.BuyRule[2]
else
text = DynamicActivityManager.Index-1
num = growData[DynamicActivityManager.Index].data.shopItemData.BuyRule[2]
end
if DynamicActivityManager.curLevel <= 2 then
self.tip.text = string.format("再充值%s元升至名望1",growData[2].data.shopItemData.BuyRule[2] - rechargeNum)
elseif DynamicActivityManager.curLevel + 1 > #growData then
self.tip.text = ""
else
self.tip.text = string.format("再充值%s元升至名望%s",growData[DynamicActivityManager.curLevel].data.shopItemData.BuyRule[2] - rechargeNum,DynamicActivityManager.curLevel)
end
local size = rechargeNum/num
size = size > 1 and 1 or size
self.icon.sprite = self.spLoader:LoadSprite("t_tequan_vip"..text)
self.progress:GetComponent("RectTransform").sizeDelta = Vector3.New(483*size,12,0)
self.value.text = string.format("%s/%s",rechargeNum,num)
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