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

260 lines
10 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.

local DailyRechargePanel = quick_class("DailyRechargePanel", BasePanel)
local actRewardConfig = ConfigManager.GetConfig(ConfigName.ActivityRewardConfig)
local kMaxReward = 4
local index = 0
local cursortingOrder
local isFirstOpen = false
local missionIndex = {
[1] = {tipText = "免费领取超值豪礼",selectImaRMB = "r_mrcz_18_zh",selectIma = "r_mrcz_18_zh",defaultImaRMB = "r_mrcz_1801_zh",defaultIma = "r_mrcz_1801_zh"},
[2] = {tipText = "免费领取18元30元两档超级豪礼",selectImaRMB = "r_mrcz_30_zh",selectIma = "r_mrcz_30_zh",defaultImaRMB = "r_mrcz_3001_zh",defaultIma = "r_mrcz_3001_zh"},
[3] = {tipText = "三重档位超值豪礼尽收囊中",selectImaRMB = "r_mrcz_68_zh",selectIma = "r_mrcz_30_zh",defaultImaRMB = "r_mrcz_6801_zh",defaultIma = "r_mrcz_6801_zh"},
}
function DailyRechargePanel:InitComponent()
self.spLoader = SpriteLoader.New()
cursortingOrder = 0
self.backBtnNew = Util.GetGameObject(self.transform, "BG")
self.backBtn = Util.GetGameObject(self.transform, "frame")
self.select = Util.GetGameObject(self.backBtn, "bg/select")
self.selectIma = Util.GetGameObject(self.select, "Text"):GetComponent("Image")
self.grid = Util.GetGameObject(self.backBtn, "bg/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("Image")
if MoneyUtil.MT == MoneyType.RMB then
self.selectIma.sprite = self.spLoader:LoadSprite(missionIndex[i].defaultImaRMB)
else
self.selectIma.sprite = self.spLoader:LoadSprite(missionIndex[i].defaultIma)
end
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")
local extraTip1 = Util.GetGameObject(self.extra,"tip1"):GetComponent("Text")
local extraTip2 = Util.GetGameObject(self.extra,"tip"):GetComponent("Text")
extraTip1.gameObject:SetActive(false)
extraTip2.gameObject:SetActive(false)
if ServerConfigManager.IsSettingActive(ServerConfigManager.SettingConfig.CURVED_TEXT_CODE) then
self.extraTip = extraTip2
else
self.extraTip = extraTip1
end
self.extraTip.gameObject:SetActive(true)
self.rewardContent = {}
self.rewardContentEffect = {}
self.rewardContentbg = {}
self.rewardList = {}
for i = 1, kMaxReward do
self.rewardContent[i] = Util.GetGameObject(self.backBtn, "bg/rewardContent/itemPos_" .. i)
self.rewardContentEffect[i] = Util.GetGameObject(self.rewardContent[i], "Kuang")
self.rewardContentbg[i] = Util.GetGameObject(self.rewardContent[i], "Image")
effectAdapte(self.rewardContentEffect[i])
self.rewardList[i] = SubUIManager.Open(SubUIConfig.ItemView, self.rewardContent[i].transform)
end
self.dealBtn = Util.GetGameObject(self.backBtn,"bg/dealBtn")
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)
end
function DailyRechargePanel:BindEvent()
Util.AddClick(self.backBtnNew, 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
end
function DailyRechargePanel:OnOpen()
isFirstOpen = true
Timer.New(function ()
isFirstOpen = false
end, 1.5):Start()
end
function DailyRechargePanel:AddListener()
Game.GlobalEvent:AddEvent(GameEvent.Activity.OnActivityOpenOrClose, self.RefreshPanel, self)
end
function DailyRechargePanel:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.Activity.OnActivityOpenOrClose, self.RefreshPanel, self)
end
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
function DailyRechargePanel:OnClose()
index = 0
end
function DailyRechargePanel:OnDestroy()
self.spLoader:Destroy()
if self.moneyNum then
SubUIManager.Close(self.moneyNum)
self.moneyNum = nil
end
index = 0
end
local icon = {
[0] = "r_mrcz_zi_111_zh",
[1] = "r_mrcz_zi_33_zh",
}
function DailyRechargePanel:SetSelectBtn()
self.select.gameObject:SetActive(true)
self.select.transform:SetParent(self.items[index].go.transform)
self.select.transform.localPosition = Vector3.zero
if MoneyUtil.MT == MoneyType.RMB then
self.selectIma.sprite = self.spLoader:LoadSprite(missionIndex[index].selectImaRMB)
else
self.selectIma.sprite = self.spLoader:LoadSprite(missionIndex[index].selectIma)
end
end
function DailyRechargePanel:RefreshPanel()
self:SetSelectBtn()
self.missionInfo = self.actInfo.mission[index]
local actRewardConfig1 = actRewardConfig[self.missionInfo.missionId]
if self.missionInfo.state == 0 then
if DailyRechargeManager.ReceivedEnabled(self.missionInfo.missionId) then
self.extraIcon.sprite = self.spLoader:LoadSprite(icon[1])
self.extraTip.gameObject:SetActive(false)
self.dealText.text = Language[10018]
self.moneyNum.gameObject:SetActive(false)
else
self.extraIcon.sprite = self.spLoader:LoadSprite(icon[0])
self.extraTip.gameObject:SetActive(true)
self.extraTip.text = missionIndex[index].tipText
self.dealText.text = "立即前往"
self.moneyNum.gameObject:SetActive(true)
local dailyActInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.DailyRecharge)
self.moneyNum:SetNumShow(1,(actRewardConfig1.Values[1][1] - dailyActInfo.value))
end
else
self.extraIcon.sprite = self.spLoader:LoadSprite(icon[1])
self.extraTip.gameObject:SetActive(false)
self.dealText.text = Language[10101]
self.moneyNum.gameObject:SetActive(false)
end
self.extraIcon:SetNativeSize()
table.walk(self.rewardList, function(rewardPosItem)
rewardPosItem.gameObject:SetActive(false)
end)
table.walk(self.rewardContent, function(rewardPosItem)
rewardPosItem.gameObject:SetActive(false)
end)
table.walk(self.rewardContentbg, function(rewardPosItem)
rewardPosItem.gameObject:SetActive(false)
end)
for i, rewardInfo in ipairs(actRewardConfig1.Reward) do
self.rewardContent[i].gameObject:SetActive(true)
end
self.thread = coroutine.start(function()
coroutine.wait(0.2)
for i, rewardInfo in ipairs(actRewardConfig1.Reward) do
self.rewardList[i]:OnOpen(false, rewardInfo, 1.1)
self.rewardList[i].gameObject:SetActive(true)
self.rewardContentbg[i].gameObject:SetActive(true)
end
end)
self.titleText.text = "\n\n\n\n1\n"
SetTextVerTial(self.titleText,Vector3.New(102.07,18.2,0))
end
function DailyRechargePanel:OnDealBtnClicked()
if self.missionInfo.state == 1 then
PopupTipPanel.ShowTip(Language[10421])
else
if DailyRechargeManager.ReceivedEnabled(self.missionInfo.missionId) 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
PopupTipPanel.ShowTip(Language[10422])
return
end
JumpManager.GoJump(36008)
self:ClosePanel()
end
end
end
return DailyRechargePanel