275 lines
10 KiB
Lua
275 lines
10 KiB
Lua
require("Base/BasePanel")
|
||
local UpGradePackagePanel = Inherit(BasePanel)
|
||
local this = UpGradePackagePanel
|
||
|
||
local RechargeConfig = ConfigManager.GetConfig(ConfigName.RechargeCommodityConfig)--整表数据
|
||
local upgradeConfig = ConfigManager.GetAllConfigsDataByKey(ConfigName.RechargeCommodityConfig,"ShowType",21)--五档奖励数据
|
||
local fightLevelConfig = ConfigManager.GetConfig(ConfigName.MainLevelConfig)
|
||
|
||
local rechargeNum = 0
|
||
local cursortingOrder = 0
|
||
local curGiftList = {}
|
||
local curGiftId = nil
|
||
local curEndTime = 0
|
||
local curIndex
|
||
local curType
|
||
local fun--回调
|
||
local rechargeData
|
||
local activityType = {
|
||
[1] = {name = Language[11935],timePos = Vector3.New(0,-255.6,0),comp = "bg1",showType = 21},
|
||
[2] = {name = Language[11936],timePos = Vector3.New(0,-567,0),comp = "bg2",showType = 8},
|
||
[3] = {name = Language[11935],timePos = Vector3.New(0,-255.6,0),comp = "bg1",showType = 25},
|
||
[4] = {name = Language[11935],timePos = Vector3.New(0,-255.6,0),comp = "bg1",showType = 26},
|
||
}
|
||
--初始化组件(用于子类重写)
|
||
function this:InitComponent()
|
||
this.btnClose = Util.GetGameObject(self.gameObject,"show/btnBack")
|
||
this.btnBuy = Util.GetGameObject(self.gameObject,"show/Button")
|
||
this.grid = Util.GetGameObject(self.gameObject,"show/rewards/Grid")
|
||
this.endTime = Util.GetGameObject(self.gameObject,"show/endTime"):GetComponent("Text")
|
||
this.price = Util.GetGameObject(self.gameObject,"show/Button/Text"):GetComponent("Text")
|
||
this.oriPrice = Util.GetGameObject(self.gameObject,"show/price/Text1"):GetComponent("Text")
|
||
this.arrowsLeft = Util.GetGameObject(self.gameObject,"show/arrows/left")
|
||
this.arrowsRight = Util.GetGameObject(self.gameObject,"show/arrows/right")
|
||
this.UI_effect_DailyRechargePanel_particle = Util.GetGameObject(self.gameObject, "bg1/UI_effect_DailyRechargePanel_particle")
|
||
this.times = Util.GetGameObject(self.gameObject,"show/timesLeft"):GetComponent("Text")
|
||
this.tip = Util.GetGameObject(self.gameObject,"show/tip"):GetComponent("Text")
|
||
end
|
||
|
||
--绑定事件(用于子类重写)
|
||
function this:BindEvent()
|
||
Util.AddClick(this.btnClose,function()
|
||
self:ClosePanel()
|
||
end)
|
||
|
||
Util.AddClick(this.btnBuy,function()
|
||
PayManager.Pay(curGiftId, function(id)
|
||
FirstRechargeManager.RefreshAccumRechargeValue(curGiftId)
|
||
CheckRedPointStatus(RedPointType.GrowthPackage)--成长礼包的红点检测
|
||
rechargeData.dynamicBuyTimes = rechargeData.dynamicBuyTimes - 1
|
||
--判断可购买次数是否为零,是剔除礼包信息
|
||
-- for i = 1, #curGiftList do
|
||
if rechargeData.dynamicBuyTimes < 1 then
|
||
OperatingManager.SetHadBuyGoodsId({curGiftId})
|
||
OperatingManager.RemoveItemInfoByType(GoodsTypeDef.DirectPurchaseGift, curGiftId)
|
||
end
|
||
-- end
|
||
this:Refresh()
|
||
end)
|
||
end)
|
||
|
||
Util.AddClick(this.arrowsLeft,function()
|
||
curIndex = curIndex - 1
|
||
if curGiftList[curType][curIndex] then
|
||
else
|
||
while(curType >= 0) do
|
||
if not activityType[curType] then
|
||
curType = LengthOfTable(activityType)
|
||
else
|
||
curType = curType - 1
|
||
end
|
||
if curGiftList[curType] and #curGiftList[curType] > 0 then
|
||
curIndex = #curGiftList[curType]
|
||
break
|
||
end
|
||
end
|
||
end
|
||
OperatingManager.upGradePackagePanelType = curType
|
||
OperatingManager.upGradePackagePanelIndex = curIndex
|
||
this:Refresh()
|
||
end)
|
||
|
||
Util.AddClick(this.arrowsRight,function()
|
||
curIndex = curIndex + 1
|
||
if curGiftList[curType][curIndex] then
|
||
else
|
||
while(curType <= LengthOfTable(activityType) + 1) do
|
||
if not activityType[curType] then
|
||
curType = 1
|
||
else
|
||
curType = curType + 1
|
||
end
|
||
if curGiftList[curType] and #curGiftList[curType] > 0 then
|
||
curIndex = 1
|
||
break
|
||
end
|
||
end
|
||
end
|
||
OperatingManager.upGradePackagePanelType = curType
|
||
OperatingManager.upGradePackagePanelIndex = curIndex
|
||
this:Refresh()
|
||
end)
|
||
end
|
||
|
||
--添加事件监听(用于子类重写)
|
||
function this:AddListener()
|
||
|
||
end
|
||
|
||
--移除事件监听(用于子类重写)
|
||
function this:RemoveListener()
|
||
|
||
end
|
||
|
||
function this:OnSortingOrderChange()
|
||
Util.AddParticleSortLayer( self.UI_effect_DailyRechargePanel_particle, self.sortingOrder - cursortingOrder)
|
||
cursortingOrder = self.sortingOrder
|
||
end
|
||
|
||
--界面打开时调用(用于子类重写)
|
||
function this:OnOpen(_fun)
|
||
fun = _fun
|
||
-- 音效
|
||
SoundManager.PlaySound(SoundConfig.Sound_mrhl)
|
||
end
|
||
|
||
--获取(自己拼凑)礼包数据
|
||
function this:GetInfoList()
|
||
local infoList = OperatingManager.GetGiftGoodsInfoList(GoodsTypeDef.DirectPurchaseGift)--拿取所有类型5礼包信息(包含需要的礼包)
|
||
local num = 0
|
||
for k,v in pairs(activityType) do
|
||
curGiftList[k] = {}
|
||
local infoList2 = ConfigManager.GetAllConfigsDataByKey(ConfigName.RechargeCommodityConfig,"ShowType",v.showType)
|
||
for index, value in pairs(infoList) do
|
||
for i = 1, #infoList2 do
|
||
if infoList2[i].Id == value.goodsId and value.dynamicBuyTimes > 0 then
|
||
table.insert(curGiftList[k],value)
|
||
num = num + 1
|
||
end
|
||
end
|
||
end
|
||
end
|
||
return num
|
||
end
|
||
|
||
function this:OnShow()
|
||
this:Refresh()
|
||
end
|
||
|
||
function this:SetCurTypeAndIndex()
|
||
curType = OperatingManager.upGradePackagePanelType and OperatingManager.upGradePackagePanelType or 1
|
||
curIndex = OperatingManager.upGradePackagePanelIndex and OperatingManager.upGradePackagePanelIndex or 0
|
||
if curGiftList[curType] and #curGiftList[curType] > 0 and curGiftList[curType][curIndex] then
|
||
elseif curGiftList[curType] and #curGiftList[curType] > 0 and (not curGiftList[curType][curIndex]) then
|
||
curIndex = #curGiftList[curType]
|
||
return curGiftList[curType][curIndex]
|
||
else
|
||
for k,v in pairs(curGiftList) do
|
||
if v and #v > 0 then
|
||
curType = k
|
||
curIndex = #curGiftList[curType]
|
||
return curGiftList[curType][curIndex]
|
||
end
|
||
end
|
||
end
|
||
return curGiftList[curType][curIndex]
|
||
end
|
||
|
||
function this:Refresh()
|
||
|
||
local num = self:GetInfoList()
|
||
if num < 1 then
|
||
this:ClosePanel()
|
||
return
|
||
end
|
||
rechargeData = this:SetCurTypeAndIndex()
|
||
for k,v in pairs(activityType) do
|
||
Util.GetGameObject(self.gameObject,v.comp):SetActive(false)
|
||
end
|
||
Util.GetGameObject(self.gameObject,activityType[curType].comp):SetActive(true)
|
||
|
||
rechargeNum= VipManager.GetChargedNum()
|
||
curGiftId = rechargeData.goodsId
|
||
LogBlue("#curGiftId:"..tostring(curGiftId))
|
||
if curType == 1 then
|
||
this.tip.text = string.format("恭喜您等级提升至%s级,我们为您准备了超值礼包,助您提升战力!!!",RechargeConfig[curGiftId].Desc)
|
||
LogPink(string.format("恭喜您等级提升至%s级,我们为您准备了超值礼包,助您提升战力!!!",RechargeConfig[curGiftId].Desc))
|
||
elseif curType == 3 then
|
||
this.tip.text = string.format("恭喜通关当前关卡,我们为您准备了超值礼包,助您战力飙升")
|
||
LogYellow(string.format("恭喜通关当前关卡,我们为您准备了超值礼包,助您战力飙升"))
|
||
elseif curType == 4 then
|
||
this.tip.text = string.format("恭喜您击败心魔挑战成功,我们为您准备了超值礼包,帮助您击杀心魔快速通关!")
|
||
LogYellow(string.format("恭喜您击败心魔挑战成功,我们为您准备了超值礼包,帮助您击杀心魔快速通关!"))
|
||
else
|
||
this.tip.text = ""
|
||
LogPurple("空的!!!!!!!!!!!")
|
||
end
|
||
|
||
this.arrowsLeft:SetActive(num > 1)
|
||
this.arrowsRight:SetActive(num > 1)
|
||
curEndTime = rechargeData.endTime
|
||
this.endTime.text = Language[10573]..TimeToHMS(curEndTime-GetTimeStamp())
|
||
this.endTime.gameObject:GetComponent("RectTransform").localPosition = activityType[curType].timePos
|
||
this:SetGfitShow(rechargeData)
|
||
this:SetTime(rechargeData)
|
||
end
|
||
|
||
--设置奖励
|
||
local _ItemViewList = {}
|
||
function this:SetGfitShow(rechargeData)
|
||
for k,v in pairs(_ItemViewList) do
|
||
v.gameObject:SetActive(false)
|
||
end
|
||
for i=1, #RechargeConfig[curGiftId].RewardShow do
|
||
if not _ItemViewList[i] then
|
||
local view = SubUIManager.Open(SubUIConfig.ItemView,this.grid.transform)
|
||
_ItemViewList[i] = view
|
||
end
|
||
_ItemViewList[i]:OnOpen(false,RechargeConfig[curGiftId].RewardShow[i],0.95,false)
|
||
_ItemViewList[i].gameObject:SetActive(true)
|
||
end
|
||
this.times.text = Language[10580]..rechargeData.dynamicBuyTimes..Language[10048]
|
||
this.price.text = string.format(MoneyUtil.GetMoneyUnitName(), MoneyUtil.GetMoney(RechargeConfig[curGiftId].Price))--..MoneyUtil.GetMoneyUnitName()
|
||
if activityType[curType].Rebate and activityType[curType].Rebate ~= 0 then
|
||
this.oriPrice.transform.parent.gameObject:SetActive(true)
|
||
this.oriPrice = string.format(MoneyUtil.GetMoneyUnitName(), activityType[curType].Rebate)
|
||
else
|
||
this.oriPrice.transform.parent.gameObject:SetActive(false)
|
||
end
|
||
|
||
end
|
||
|
||
--设置剩余时间,取剩余时间最短的礼包
|
||
function this:SetTime()
|
||
if self.localTimer then
|
||
self.localTimer:Stop()
|
||
self.localTimer = nil
|
||
end
|
||
self.localTimer = Timer.New(function()
|
||
-- curEndTime= curEndTime-1
|
||
--时间到了之后
|
||
if curEndTime-GetTimeStamp() < 0 then
|
||
OperatingManager.RemoveItemInfoByType(GoodsTypeDef.DirectPurchaseGift, curGiftId)
|
||
this:Refresh()
|
||
end
|
||
this.endTime.text = Language[10573]..TimeToHMS(curEndTime-GetTimeStamp())
|
||
end,1,-1,true)
|
||
self.localTimer:Start()
|
||
end
|
||
|
||
function this:Hide()
|
||
if self.localTimer then
|
||
self.localTimer:Stop()
|
||
self.localTimer = nil
|
||
end
|
||
end
|
||
|
||
--界面关闭时调用(用于子类重写)
|
||
function this:OnClose()
|
||
if fun then
|
||
fun()
|
||
fun = nil
|
||
end
|
||
end
|
||
|
||
--界面销毁时调用(用于子类重写)
|
||
function this:OnDestroy()
|
||
cursortingOrder = 0
|
||
_ItemViewList = {}
|
||
if self.localTimer then
|
||
self.localTimer:Stop()
|
||
self.localTimer = nil
|
||
end
|
||
end
|
||
|
||
return UpGradePackagePanel |