162 lines
5.6 KiB
Lua
162 lines
5.6 KiB
Lua
--[[
|
|
* @ClassName FirstRechargePanel
|
|
* @Description 首充
|
|
* @Date 2019/6/3 11:45
|
|
* @Author MagicianJoker, fengliudianshao@outlook.com
|
|
* @Copyright Copyright (c) 2019, MagicianJoker
|
|
--]]
|
|
local DayRewardItem = require("Modules/FirstRecharge/DayRewardItem")
|
|
|
|
---@class FirstRechargePanel
|
|
local FirstRechargePanel = quick_class("FirstRechargePanel", BasePanel)
|
|
|
|
local kMaxTab, kMaxDay = 2, 3
|
|
local TextColorDef = {
|
|
[1] = Color.New(48 / 255, 31 / 255, 33 / 255, 1),
|
|
[2] = Color.New(246 / 255, 235 / 255, 179 / 255, 1)
|
|
}
|
|
local orginLayer
|
|
local activityRewardConfig = ConfigManager.GetConfig(ConfigName.ActivityRewardConfig)
|
|
|
|
function FirstRechargePanel:InitComponent()
|
|
orginLayer = 0
|
|
self.closeBtn = Util.GetGameObject(self.transform, "frame/bg/btnClose")
|
|
--topPart
|
|
self.itemPos = Util.GetGameObject(self.transform, "frame/bg/topPart/itemPos")
|
|
self.itemInfo = SubUIManager.Open(SubUIConfig.ItemView, self.itemPos.transform)
|
|
self.nameIcon = Util.GetGameObject(self.transform, "frame/bg/topPart/nameIcon"):GetComponent("Image")
|
|
self.rewardValue = Util.GetGameObject(self.transform, "frame/bg/topPart/tipsBg/value"):GetComponent("Text")
|
|
--midPart
|
|
self.tabs = {}
|
|
self.selectTabs = {}
|
|
self.tabTitles = {}
|
|
self.tabRedPoint = {}
|
|
for i = 1, kMaxTab do
|
|
self.tabs[i] = Util.GetGameObject(self.transform, "frame/bg/tabsContent/tabs_" .. i)
|
|
self.selectTabs[i] = Util.GetGameObject(self.tabs[i], "selected")
|
|
self.tabTitles[i] = Util.GetGameObject(self.tabs[i], "title"):GetComponent("Text")
|
|
self.tabRedPoint[i] = Util.GetGameObject(self.tabs[i], "redPoint")
|
|
end
|
|
self.selectTabIndex = -1
|
|
|
|
self.dayRewardList = {}
|
|
for i = 1, kMaxDay do
|
|
self.dayRewardList[i] = DayRewardItem.new(self,self.transform:Find("frame/bg/rewardBg/rewardDay" .. i))
|
|
end
|
|
|
|
--bottomPart
|
|
self.reChargeBtn = Util.GetGameObject(self.transform, "rechargeBtn")
|
|
self.reChargeTips = Util.GetGameObject(self.transform, "rechargeTipsBg/tips"):GetComponent("Text")
|
|
|
|
self.effect = Util.GetGameObject(self.transform, "effect")
|
|
effectAdapte(Util.GetGameObject(self.effect, "Partical/ziti mask (1)"))
|
|
end
|
|
|
|
function FirstRechargePanel:BindEvent()
|
|
Util.AddClick(self.closeBtn, function()
|
|
self:ClosePanel()
|
|
end)
|
|
Util.AddClick(self.reChargeBtn, function()
|
|
self:OnRechargeBtnClicked()
|
|
end)
|
|
for i = 1, kMaxTab do
|
|
Util.AddClick(self.tabs[i], function()
|
|
self:OnTabClicked(i)
|
|
end)
|
|
end
|
|
end
|
|
|
|
function FirstRechargePanel:OnSortingOrderChange()
|
|
Util.AddParticleSortLayer(self.effect, self.sortingOrder - orginLayer)
|
|
orginLayer = self.sortingOrder
|
|
--特效穿透特殊处理
|
|
if self.itemInfo then
|
|
self.itemInfo:SetEffectLayer( self.sortingOrder)
|
|
end
|
|
for i = 1, #self.dayRewardList do
|
|
self.dayRewardList[i]:OnSortingOrderChange(self.sortingOrder)
|
|
end
|
|
end
|
|
|
|
function FirstRechargePanel:OnOpen(context)
|
|
context = context and context or {}
|
|
self.selectTabIndex = context.tabIndex and context.tabIndex or 1
|
|
self:SetOncePart()
|
|
end
|
|
|
|
function FirstRechargePanel:OnShow()
|
|
self:OnTabChanged(self.selectTabIndex)
|
|
--self.reChargeTips.text = string.format("已充值 %s 元", FirstRechargeManager.GetAccumRechargeValue())
|
|
local activityInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.AccumulativeRecharge)
|
|
local AccumRecharge = 0
|
|
for _, missInfo in pairs(activityInfo.mission) do
|
|
if missInfo and missInfo.progress then
|
|
AccumRecharge = missInfo.progress
|
|
end
|
|
end
|
|
self.reChargeTips.text = string.format(Language[10663], AccumRecharge)
|
|
for i = 1, kMaxTab do
|
|
self:SetTabRedPointStatus(i)
|
|
end
|
|
end
|
|
|
|
function FirstRechargePanel:OnTabClicked(index)
|
|
if self.selectTabIndex == index then
|
|
return
|
|
end
|
|
self:OnTabChanged(index)
|
|
end
|
|
|
|
function FirstRechargePanel:OnTabChanged(index)
|
|
for i, select in ipairs(self.selectTabs) do
|
|
select:SetActive(i == index)
|
|
end
|
|
for i, title in ipairs(self.tabTitles) do
|
|
title.color = i == index and TextColorDef[2] or TextColorDef[1]
|
|
end
|
|
self:ShowContent(index)
|
|
self.selectTabIndex = index
|
|
end
|
|
|
|
function FirstRechargePanel:ShowContent(index)
|
|
local tempData = {}
|
|
for _, rewardInfo in ConfigPairs(activityRewardConfig) do
|
|
if rewardInfo.ActivityId == ActivityTypeDef.AccumulativeRecharge and
|
|
rewardInfo.Values[1][1] == IndexValueDef[index] then
|
|
table.insert(tempData, rewardInfo)
|
|
end
|
|
end
|
|
self.rewardValue.text = tempData[1].TotalValues
|
|
for i, dayRewardItem in ipairs(self.dayRewardList) do
|
|
dayRewardItem:SetValue(tempData[i],self.sortingOrder)
|
|
end
|
|
end
|
|
|
|
function FirstRechargePanel:SetOncePart()
|
|
for _, rewardInfo in ConfigPairs(activityRewardConfig) do
|
|
if rewardInfo.ActivityId == ActivityTypeDef.FirstRecharge then
|
|
self.itemInfo:OnOpen(false, rewardInfo.Reward[1], 1,false,false,false,self.sortingOrder)
|
|
break
|
|
end
|
|
end
|
|
end
|
|
|
|
function FirstRechargePanel:OnRechargeBtnClicked()
|
|
if not ShopManager.IsActive(SHOP_TYPE.SOUL_STONE_SHOP) then
|
|
PopupTipPanel.ShowTip(Language[10438])
|
|
return
|
|
end
|
|
UIManager.OpenPanel(UIName.MainRechargePanel, 1)
|
|
end
|
|
|
|
function FirstRechargePanel:SetTabRedPointStatus(tabIndex)
|
|
local redPointStatus = false
|
|
if tabIndex == 1 then
|
|
redPointStatus = redPointStatus or FirstRechargeManager.GetSixMoneyTabRedPointStatus()
|
|
else
|
|
redPointStatus = redPointStatus or FirstRechargeManager.GetHundredTabRedPointStatus()
|
|
end
|
|
self.tabRedPoint[tabIndex]:SetActive(redPointStatus)
|
|
end
|
|
|
|
return FirstRechargePanel |