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

263 lines
11 KiB
Lua

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 = "r_hero_xuanze_002", select = "r_hero_xuanze_001", name = "超级特权", img = "gm_shuachong_cjGM_01_zh", id = 2202, scale = 6, all = 128 },
[2] = { default = "r_hero_xuanze_002", select = "r_hero_xuanze_001", name = "神级特权", img = "gm_shuachong_sjGM_01_zh", id = 2203, scale = 5, all = 400 },
[3] = { default = "r_hero_xuanze_002", select = "r_hero_xuanze_001", 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")
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 = GetLanguageStrById(_TabData[index].name)
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
if state == 0 then
self.payTxt.text = MoneyUtil.GetMoney(recharge.Price) .. Language[10497]
self.hint2Txt.gameObject:SetActive(false)
self.hintTxt3:SetActive(false)
self.scaleTxt.gameObject:SetActive(false)
self.oldPriceTxt.gameObject:SetActive(false)
self.scaleImg:SetActive(false)
self.hint2Txt.text = Language[11989] .. mission.progress .. Language[11990]
elseif state == 1 then
self.payTxt.text = Language[10018]
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 = Language[10025]
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 .. Language[10497]
self.scaleTxt.text = _TabData[_index].scale .. Language[10640]
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 = Language[11979] .. GetLanguageStrById(_TabData[_index - 1].name) .. Language[11991]
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 = Language[10018]
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 = Language[10025]
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)
end
function GMShuaChongTeQuan:SingleDataShow(item, data, lv)
local privilege = ConfigManager.GetConfigData(ConfigName.PrivilegeTypeConfig, data)
local num = ""
local num2 = 0
--LogError("lv============================================="..lv)
if privilege.Condition[lv] then
num = privilege.Condition[lv][2]
if num == -1 then
num = Language[11764]
end
if privilege.Condition[lv][3] then
num2 = privilege.Condition[lv][3]
end
end
if privilege.IfFloat == 2 then
num = num / 100 .. "%"
end
if privilege.Type == 1 then
item:GetComponent("Text").text = string.format(GetLanguageStrById(privilege.Name), num, num2)
else
item:GetComponent("Text").text = GetLanguageStrById(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.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)
rewardList = {}
dayList = {}
end
return GMShuaChongTeQuan