miduo_client/Assets/ManagedResources/~Lua/Modules/DailyRecharge/DailyRechargePanel.lua

210 lines
7.4 KiB
Lua
Raw Normal View History

local DailyRechargePanel = quick_class("DailyRechargePanel", BasePanel)
local actRewardConfig = ConfigManager.GetConfig(ConfigName.ActivityRewardConfig)
2020-05-09 13:31:21 +08:00
local kMaxReward = 4
local index = 0
2020-05-09 13:31:21 +08:00
local rechargeBgDef = {
2021-01-26 17:08:39 +08:00
[1] = "r_mrcz_zi_1_zh",
[2] = "r_mrcz_zi_2_zh",
[3] = "r_mrcz_zi_33_zh",
[4] = "r_mrcz_zi_4_zh",
2020-05-09 13:31:21 +08:00
}
2020-05-09 13:31:21 +08:00
local cursortingOrder
local isFirstOpen = false
function DailyRechargePanel:InitComponent()
cursortingOrder = 0
2020-05-09 13:31:21 +08:00
self.backBtn = Util.GetGameObject(self.transform, "frame")
self.grid = Util.GetGameObject(self.transform, "grid")
self.items = {}
for i = 1,self.grid.transform.childCount do
self.items[i] = {}
self.items[i].go = Util.GetGameObject(self.grid,"item"..i)
self.items[i].priceText = Util.GetGameObject(self.items[i].go,"Text"):GetComponent("Text")
end
self.titleParent = Util.GetGameObject(self.backBtn, "bg/Image")
self.titleIcon = Util.GetGameObject(self.titleParent, "Image"):GetComponent("Image")
self.titleText = Util.GetGameObject(self.titleParent, "Text"):GetComponent("Text")
self.extra = Util.GetGameObject(self.backBtn,"bg/descbg")
self.extraIcon = Util.GetGameObject(self.extra,"extraIcon"):GetComponent("Image")
self.desc = Util.GetGameObject(self.extra,"value"):GetComponent("Text")
self.desc.text = ""
2020-05-09 13:31:21 +08:00
self.rewardContent = {}
self.rewardContentEffect = {}
self.rewardList = {}
for i = 1, kMaxReward do
self.rewardContent[i] = Util.GetGameObject(self.backBtn, "bg/rewardContent/itemPos_" .. i)
2020-05-09 13:31:21 +08:00
self.rewardContentEffect[i] = Util.GetGameObject(self.rewardContent[i], "Kuang")
effectAdapte(self.rewardContentEffect[i])
self.rewardList[i] = SubUIManager.Open(SubUIConfig.ItemView, self.rewardContent[i].transform)
end
self.dealBtn = Util.GetGameObject(self.backBtn,"bg/dealBtn")
2020-05-09 13:31:21 +08:00
self.dealText = Util.GetGameObject(self.dealBtn, "Text"):GetComponent("Text")
self.UI_effect_DailyRechargePanel_particle = Util.GetGameObject(self.transform, "frame/UI_effect_DailyRechargePanel_particle")
if self.moneyNum then
SubUIManager.Close(self.moneyNum)
self.moneyNum = nil
end
if not self.moneyNum then
self.moneyNum = SubUIManager.Open(SubUIConfig.MoneyNumView, self.extra.transform,
0, MoneyNumViewType.Image_Horizontal, "LevelFont", 42, 1, Vector2.New(60, 100), Vector2.New(20, 0), MoneyNumViewImageType.Big_1)
end
self.moneyNum:SetOffsetPosition(Vector2.New(480, -90))
self.moneyNum:SetOffsetRotation(Vector3.New(0, 0, -10))
self.moneyNum.transform:SetSiblingIndex(2)
2020-05-09 13:31:21 +08:00
end
function DailyRechargePanel:BindEvent()
Util.AddClick(self.backBtn, function()
if not isFirstOpen then
self:ClosePanel()
end
end)
Util.AddClick(self.dealBtn, function()
if not isFirstOpen then
self:OnDealBtnClicked()
end
end)
for i = 1, #self.items do
Util.AddClick(self.items[i].go, function()
if i ~= index then
index = i
self:RefreshPanel()
end
end)
end
2020-05-09 13:31:21 +08:00
end
function DailyRechargePanel:OnOpen()
isFirstOpen = true
Timer.New(function ()
isFirstOpen = false
end, 1.5):Start()
end
function DailyRechargePanel:AddListener()
2020-05-09 13:31:21 +08:00
Game.GlobalEvent:AddEvent(GameEvent.Activity.OnActivityOpenOrClose, self.RefreshPanel, self)
end
function DailyRechargePanel:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.Activity.OnActivityOpenOrClose, self.RefreshPanel, self)
end
2020-05-09 13:31:21 +08:00
function DailyRechargePanel:OnSortingOrderChange()
Util.AddParticleSortLayer( self.UI_effect_DailyRechargePanel_particle, self.sortingOrder - cursortingOrder)
for i = 1, #self.rewardContentEffect do
Util.AddParticleSortLayer( self.rewardContentEffect[i], self.sortingOrder - cursortingOrder)
end
cursortingOrder = self.sortingOrder
end
function DailyRechargePanel:OnShow()
self.actInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.DailyRecharge)
if not self.actInfo then
return
end
self.activityId = self.actInfo.activityId
if #self.actInfo.mission > 1 then
self.grid.gameObject:SetActive(true)
else
self.grid.gameObject:SetActive(false)
end
self:SetGrid()
self:RefreshPanel()
end
function DailyRechargePanel:SetGrid()
for i = 1, math.max(#self.actInfo.mission,#self.items) do
if not self.items[i] then
return
end
if not self.actInfo.mission[i] then
self.items[i].go.gameObject:SetActive(false)
else
self.items[i].go.gameObject:SetActive(true)
self.items[i].priceText.text = MoneyUtil.GetMoneyUnitNameWithMoney(actRewardConfig[self.actInfo.mission[i].missionId].Values[1][1])
end
end
for i = 1,#self.actInfo.mission do
if self.actInfo.mission[i].state == 0 then
index = i
break
end
end
if index == 0 then
index = #self.actInfo.mission
end
end
2020-05-09 13:31:21 +08:00
function DailyRechargePanel:OnClose()
index = 0
2020-05-09 13:31:21 +08:00
end
function DailyRechargePanel:OnDestroy()
if self.moneyNum then
SubUIManager.Close(self.moneyNum)
self.moneyNum = nil
end
index = 0
end
2020-05-09 13:31:21 +08:00
function DailyRechargePanel:RefreshPanel()
self.missionInfo = self.actInfo.mission[index]
local actRewardConfig1 = actRewardConfig[self.missionInfo.missionId]
2020-05-09 13:31:21 +08:00
if self.missionInfo.state == 0 then
if DailyRechargeManager.ReceivedEnabled(self.missionInfo.missionId) then
self.extraIcon.sprite = Util.LoadSprite(rechargeBgDef[3])
self.dealText.text = Language[10018]
self.moneyNum.gameObject:SetActive(false)
else
self.extraIcon.sprite = Util.LoadSprite(rechargeBgDef[4])
2021-04-09 12:26:35 +08:00
self.dealText.text = Language[10420]
self.moneyNum.gameObject:SetActive(true)
self.moneyNum:SetNumShow(1,actRewardConfig1.Values[1][1])
2020-05-09 13:31:21 +08:00
end
else
2021-04-09 12:26:35 +08:00
self.dealText.text = Language[10101]
self.extraIcon.sprite = Util.LoadSprite(rechargeBgDef[4])
self.moneyNum.gameObject:SetActive(true)
self.moneyNum:SetNumShow(1,actRewardConfig1.Values[1][1])
2020-05-09 13:31:21 +08:00
end
self.extraIcon:SetNativeSize()
table.walk(self.rewardContent, function(rewardPosItem)
rewardPosItem:SetActive(false)
end)
for i, rewardInfo in ipairs(actRewardConfig1.Reward) do
2020-05-09 13:31:21 +08:00
self.rewardList[i]:OnOpen(false, rewardInfo, 1.1)
self.rewardContent[i]:SetActive(true)
end
self.titleText.text = Language[12109]
SetTextVerTial(self.titleText,Vector3.New(102.07,18.2,0))
2020-05-09 13:31:21 +08:00
end
function DailyRechargePanel:OnDealBtnClicked()
if self.missionInfo.state == 1 then
2021-04-09 12:26:35 +08:00
PopupTipPanel.ShowTip(Language[10421])
2020-05-09 13:31:21 +08:00
else
if DailyRechargeManager.ReceivedEnabled() then
NetManager.GetActivityRewardRequest(self.missionInfo.missionId, self.activityId, function(_drop)
UIManager.OpenPanel(UIName.RewardItemPopup, _drop, 1)
Game.GlobalEvent:DispatchEvent(GameEvent.Activity.OnActivityOpenOrClose, {
type = ActivityTypeDef.DailyRecharge,
status = 0
})
end)
else
if not ShopManager.IsActive(SHOP_TYPE.SOUL_STONE_SHOP) then
2021-04-09 12:26:35 +08:00
PopupTipPanel.ShowTip(Language[10422])
2020-05-09 13:31:21 +08:00
return
end
2021-03-30 20:17:26 +08:00
JumpManager.GoJump(36008)
2020-05-09 13:31:21 +08:00
end
self:ClosePanel()
end
end
2020-06-28 17:48:49 +08:00
return DailyRechargePanel