miduo_client/Assets/ManagedResources/~Lua/Modules/Operating/GMShuaChongTeQuan.lua

269 lines
11 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.

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 = "UI_hz_gonghui_31", select = "UI_hz_gonghui_31", name = "超级特权" ,img = "gm_shuachong_cjGM_01_zh",id=2202,scale=6,all=128},
[2] = { default = "UI_hz_gonghui_32", select = "UI_hz_gonghui_32", name = "神级特权" ,img = "gm_shuachong_sjGM_01_zh",id=2203,scale=5,all=400 },
[3] = { default = "UI_hz_gonghui_33", select = "UI_hz_gonghui_33", 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")
self.titleTxt=Util.GetGameObject(self.gameObject, "bg1/Image (1)/Text"):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 = _TabData[index].name
Util.GetGameObject(tab,"select"):SetActive(status=="select")
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)
local len= #recharge.OpenPrivilege
local lv=_index --recharge.BTVIPlevel[1][2]
local len=#recharge.OpenPrivilege
local mission=ActivityGiftManager.GetActivityInfo(ActivityTypeDef.shuaChongTeQuan,activityId)
local state=mission.state
self.titleTxt.text=_TabData[_index].name
if state==0 then
self.payTxt.text=recharge.Price..""
self.hint2Txt.gameObject:SetActive(true)
self.hintTxt3:SetActive(true)
self.scaleTxt.gameObject:SetActive(true)
self.oldPriceTxt.gameObject:SetActive(true)
self.scaleImg:SetActive(true)
self.hint2Txt.text="已累计"..mission.progress.."天奖励奖励最多累计30天"
elseif state==1 then
self.payTxt.text="领取"
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="已领取"
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 ..""
self.scaleTxt.text=_TabData[_index].scale..""
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="开通".._TabData[_index-1].name.."解锁购买"
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="领取"
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="已领取"
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)
self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.transform)
end
function GMShuaChongTeQuan:SingleDataShow(item,data,lv)
local privilege=ConfigManager.GetConfigData(ConfigName.PrivilegeTypeConfig,data)
local num=""
local num2=0
if privilege.Condition[lv+1] then
num=privilege.Condition[lv+1][2]
if num==-1 then
num="无限"
end
if privilege.Condition[lv+1][3] then
num2=privilege.Condition[lv+1][3]
end
end
if privilege.IfFloat==2 then
num=num/100 .."%"
end
if privilege.Type==1 then
item:GetComponent("Text").text =string.format(privilege.Name,num,num2)
else
item:GetComponent("Text").text =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.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.Main })
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)
SubUIManager.Close(self.UpView)
self.UpView = nil
rewardList={}
dayList={}
end
return GMShuaChongTeQuan