miduo_client/Assets/ManagedResources/~Lua/Modules/FirstRecharge/FirstRechargePanel.lua

217 lines
8.0 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.frame = Util.GetGameObject(self.transform, "frame")
self.closeBtn = Util.GetGameObject(self.transform, "closeBtn")
self.heroPreviewBtn = Util.GetGameObject(self.transform, "frame/heroPreviewBtn")
self.tenProBtn = Util.GetGameObject(self.transform, "frame/tenProBtn")
self.stageImage6 = Util.GetGameObject(self.transform, "frame/stageImage/Image")
self.stageImage100 = Util.GetGameObject(self.transform, "frame/stageImage/Image (1)")
--topPart
-- self.itemPos = Util.GetGameObject(self.transform, "frame/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/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/rewardBg/rewardBg/rewardDay" .. i.."/rewardDay" .. i))
end
--bottomPart
self.reChargeBtn = Util.GetGameObject(self.transform, "frame/rechargeBtn")
self.reChargeTips = Util.GetGameObject(self.transform, "frame/tips"):GetComponent("Text")
self.effect = Util.GetGameObject(self.transform, "frame/effect")
self.qianyao = Util.GetGameObject(self.transform, "qianyao")
self.ani = self.transform:GetComponent("Animator")
-- 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
Util.AddClick(self.heroPreviewBtn, function()
local fb = ConfigManager.GetConfigData(ConfigName.FakeBattle, 1002)
local testFightData = {
fightData = loadstring("return "..fb.FightData)(),
fightSeed = fb.TimeSeed,
fightType = 0,
maxRound = 20
}
UIManager.OpenPanel(UIName.BattlePanel, testFightData, BATTLE_TYPE.Test)
end)
Util.AddClick(self.tenProBtn, function()
local heroId = 0
for _, rewardInfo in ConfigPairs(activityRewardConfig) do
if rewardInfo.ActivityId == ActivityTypeDef.FirstRecharge then--ActivityTypeDef.AccumulativeRecharge then
heroId = rewardInfo.Reward[1][1]
break
end
end
UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, heroId,10)
end)
end
function FirstRechargePanel:OnSortingOrderChange()
Util.AddParticleSortLayer(self.effect, self.sortingOrder - orginLayer)
Util.AddParticleSortLayer(self.qianyao, 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
local fun = nil
function FirstRechargePanel:OnOpen(context,_fun)
context = context and context or {}
self.selectTabIndex = context.tabIndex and context.tabIndex or 1
-- self:SetOncePart()
fun = _fun
self.qianyao:SetActive(false)
self.qianyao:SetActive(true)
self.frame:SetActive(false)
self.effect:SetActive(false)
self.ani.enabled = false
self.closeBtn:GetComponent("Button").enabled = false
self.tabs[1]:SetActive(false)
Timer.New(function ()
self.frame:SetActive(true)
self.effect:SetActive(true)
self.ani.enabled = true
end, 1.5):Start()
Timer.New(function ()
self.tabs[1]:SetActive(true)
self.closeBtn:GetComponent("Button").enabled = true
end, 2.5):Start()
end
function FirstRechargePanel:OnShow()
self:OnTabChanged(self.selectTabIndex)
--self.reChargeTips.text = string.format("已充值 %s 元", FirstRechargeManager.GetAccumRechargeValue())
local activityInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FirstRecharge)
local AccumRecharge = 0
for _, missInfo in pairs(activityInfo.mission) do
if missInfo and missInfo.progress then
AccumRecharge = missInfo.progress
end
end
self.reChargeTips.text = Language[11642]..string.format(MoneyUtil.GetMoneyUnitName(),AccumRecharge)--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.stageImage6.gameObject:SetActive(index == 1)
self.stageImage100.gameObject:SetActive(index == 2)
self:ShowContent(index)
self.selectTabIndex = index
end
function FirstRechargePanel:ShowContent(index)
local tempData = {}
for _, rewardInfo in ConfigPairs(activityRewardConfig) do
if rewardInfo.ActivityId == ActivityTypeDef.FirstRecharge 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
self:ClosePanel()
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
--界面关闭时调用(用于子类重写)
function FirstRechargePanel:OnClose()
if fun then
fun()
fun = nil
end
end
return FirstRechargePanel