260 lines
10 KiB
Lua
260 lines
10 KiB
Lua
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 |