Initial version - 1.2.0.60
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
local BattlePassPremiumBuyCtrl = class("BattlePassPremiumBuyCtrl", BaseCtrl)
|
||||
local Actor2DManager = require("Game.Actor2D.Actor2DManager")
|
||||
BattlePassPremiumBuyCtrl._mapNodeConfig = {
|
||||
srRewardListPremium = {
|
||||
sComponentName = "LoopScrollView"
|
||||
},
|
||||
srRewardListSPremium = {
|
||||
sComponentName = "LoopScrollView"
|
||||
},
|
||||
btnBuySPremium = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_SPremium"
|
||||
},
|
||||
btnBuyPremium = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Premium"
|
||||
},
|
||||
txtBtnbtnBuyPremium = {sComponentName = "TMP_Text"},
|
||||
txtBtnbtnBuySPremium = {sComponentName = "TMP_Text"},
|
||||
txtBtnbtnBuySPremiumDiscount = {sComponentName = "TMP_Text"},
|
||||
TMPUnlockSPremium = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "BattlePassPremiumUnlocked"
|
||||
},
|
||||
TMPUnlockPremium = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "BattlePassPremiumUnlocked"
|
||||
},
|
||||
TMPTitlePremium = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "BattlePassRewardPremium"
|
||||
},
|
||||
TMPTitleSPremium = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "BattlePassRewardLuxury"
|
||||
},
|
||||
TMPRewardDescPremium = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "BattlePass_SkinHint"
|
||||
},
|
||||
btnRewardDetailPremium = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_OutfitInfo"
|
||||
},
|
||||
Actor2D_PNG_Buy = {sComponentName = "Transform"},
|
||||
imgBattlePassLogo = {sComponentName = "Image"}
|
||||
}
|
||||
BattlePassPremiumBuyCtrl._mapEventConfig = {}
|
||||
BattlePassPremiumBuyCtrl._mapRedDotConfig = {}
|
||||
function BattlePassPremiumBuyCtrl:Awake()
|
||||
self._mapGridCtrl = {}
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:FadeIn()
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:FadeOut()
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:OnEnable()
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:OnDisable()
|
||||
self:UnbindAllCtrl()
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:OnDestroy()
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:OnRelease()
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:OpenPanel(nCurType, nSeasonId, nVersion)
|
||||
self.nCurType = nCurType
|
||||
self.nSeasonId = nSeasonId
|
||||
self.nVersion = nVersion
|
||||
self.gameObject:SetActive(true)
|
||||
local mapBattlePassCfgData = ConfigTable.GetData("BattlePass", self.nSeasonId)
|
||||
if mapBattlePassCfgData == nil then
|
||||
return
|
||||
end
|
||||
self.tbRewardPremium = mapBattlePassCfgData.PremiumShowItems
|
||||
self.tbRewardSPremium = mapBattlePassCfgData.LuxuryShowItems
|
||||
self._mapNode.srRewardListPremium:Init(#self.tbRewardPremium, self, self.OnGridRefreshPremium, nil, true, nil)
|
||||
self._mapNode.srRewardListSPremium:Init(#self.tbRewardSPremium + 1, self, self.OnGridRefreshSPremium, nil, true, nil)
|
||||
self.sPremiumProductId = mapBattlePassCfgData.PremiumProductId
|
||||
self.sLuxuryProductId = mapBattlePassCfgData.LuxuryProductId
|
||||
self.sComplementaryProductId = mapBattlePassCfgData.ComplementaryProductId
|
||||
NovaAPI.SetTMPText(self._mapNode.txtBtnbtnBuyPremium, tostring(mapBattlePassCfgData.PremiumShowPrice))
|
||||
local nSPremiumPrice = nCurType == 0 and mapBattlePassCfgData.LuxuryPrice or mapBattlePassCfgData.ComplementaryPrice
|
||||
self:SetPngSprite(self._mapNode.imgBattlePassLogo, "Icon/ArtText/CharSkin_ArtText_" .. mapBattlePassCfgData.Cover)
|
||||
local sSPremiumPrice = nCurType == 0 and mapBattlePassCfgData.LuxuryShowPrice or mapBattlePassCfgData.ComplementaryShowPrice
|
||||
NovaAPI.SetTMPText(self._mapNode.txtBtnbtnBuySPremium, tostring(sSPremiumPrice))
|
||||
NovaAPI.SetTMPText(self._mapNode.txtBtnbtnBuySPremiumDiscount, tostring(mapBattlePassCfgData.OriginShowPrice))
|
||||
self._mapNode.txtBtnbtnBuySPremiumDiscount.gameObject:SetActive(nCurType == 0)
|
||||
self._mapNode.TMPUnlockPremium.gameObject:SetActive(1 <= nCurType)
|
||||
self._mapNode.TMPUnlockSPremium.gameObject:SetActive(2 <= nCurType)
|
||||
self._mapNode.btnBuyPremium.gameObject:SetActive(nCurType < 1)
|
||||
self._mapNode.btnBuySPremium.gameObject:SetActive(nCurType < 2)
|
||||
local nSkinId = mapBattlePassCfgData.Cover
|
||||
local mapSkinCfg = ConfigTable.GetData("CharacterSkin", nSkinId)
|
||||
if mapSkinCfg ~= nil then
|
||||
self._mapNode.Actor2D_PNG_Buy.gameObject:SetActive(true)
|
||||
local nCharId = mapSkinCfg.CharId
|
||||
Actor2DManager.SetActor2D_PNG(self._mapNode.Actor2D_PNG_Buy, PanelId.MainView, nCharId, nSkinId)
|
||||
else
|
||||
self._mapNode.Actor2D_PNG_Buy.gameObject:SetActive(false)
|
||||
end
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:Refresh(nCurType, nSeasonId, nVersion)
|
||||
self.nCurType = nCurType
|
||||
self.nSeasonId = nSeasonId
|
||||
self.nVersion = nVersion
|
||||
local mapBattlePassCfgData = ConfigTable.GetData("BattlePass", self.nSeasonId)
|
||||
if mapBattlePassCfgData == nil then
|
||||
printError("BattlePassCfgData missing:" .. self.nSeasonId)
|
||||
return
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.txtBtnbtnBuyPremium, tostring(mapBattlePassCfgData.PremiumShowPrice))
|
||||
local nSPremiumPrice = nCurType == 0 and mapBattlePassCfgData.LuxuryPrice or mapBattlePassCfgData.ComplementaryPrice
|
||||
local sSPremiumPrice = nCurType == 0 and mapBattlePassCfgData.LuxuryShowPrice or mapBattlePassCfgData.ComplementaryShowPrice
|
||||
NovaAPI.SetTMPText(self._mapNode.txtBtnbtnBuySPremium, tostring(sSPremiumPrice))
|
||||
NovaAPI.SetTMPText(self._mapNode.txtBtnbtnBuySPremiumDiscount, tostring(mapBattlePassCfgData.OriginShowPrice))
|
||||
self._mapNode.txtBtnbtnBuySPremiumDiscount.gameObject:SetActive(nCurType == 0)
|
||||
self._mapNode.TMPUnlockPremium.gameObject:SetActive(1 <= nCurType)
|
||||
self._mapNode.TMPUnlockSPremium.gameObject:SetActive(2 <= nCurType)
|
||||
self._mapNode.btnBuyPremium.gameObject:SetActive(nCurType < 1)
|
||||
self._mapNode.btnBuySPremium.gameObject:SetActive(nCurType < 2)
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:UnbindAllCtrl()
|
||||
for _, mapCtrl in pairs(self._mapGridCtrl) do
|
||||
self:UnbindCtrlByNode(mapCtrl)
|
||||
end
|
||||
self._mapGridCtrl = {}
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:OnGridRefreshPremium(goGrid, gridIndex)
|
||||
if self._mapGridCtrl[goGrid] == nil then
|
||||
local mapCtrl = self:BindCtrlByNode(goGrid, "Game.UI.BattlePass.BattlePassBuyPremiumItemGridCtrl")
|
||||
self._mapGridCtrl[goGrid] = mapCtrl
|
||||
end
|
||||
local nIdx = gridIndex
|
||||
if nIdx == nil then
|
||||
return
|
||||
end
|
||||
nIdx = nIdx + 1
|
||||
self._mapGridCtrl[goGrid]:Refresh(self.tbRewardPremium[nIdx])
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:OnGridRefreshSPremium(goGrid, gridIndex)
|
||||
if self._mapGridCtrl[goGrid] == nil then
|
||||
local mapCtrl = self:BindCtrlByNode(goGrid, "Game.UI.BattlePass.BattlePassBuyPremiumItemGridCtrl")
|
||||
self._mapGridCtrl[goGrid] = mapCtrl
|
||||
end
|
||||
local nIdx = gridIndex
|
||||
if nIdx == nil then
|
||||
return
|
||||
end
|
||||
self._mapGridCtrl[goGrid]:Refresh(self.tbRewardSPremium[nIdx])
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:ClosePanel()
|
||||
self.gameObject:SetActive(false)
|
||||
self:UnbindAllCtrl()
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:OnBtnClick_Premium()
|
||||
PlayerData.Mall:BuyBattlePass(1, self.nVersion, self.sPremiumProductId, "BattlePassPremium")
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:OnBtnClick_SPremium()
|
||||
local sId = self.nCurType == 0 and self.sLuxuryProductId or self.sComplementaryProductId
|
||||
local sStatistical = self.nCurType == 0 and "BattlePassOrigin_Luxury" or "BattlePassOrigin_Complement"
|
||||
PlayerData.Mall:BuyBattlePass(2, self.nVersion, sId, sStatistical)
|
||||
end
|
||||
function BattlePassPremiumBuyCtrl:OnBtnClick_OutfitInfo()
|
||||
local mapBattlePassCfgData = ConfigTable.GetData("BattlePass", self.nSeasonId)
|
||||
if mapBattlePassCfgData == nil then
|
||||
return
|
||||
end
|
||||
local nSkinId = mapBattlePassCfgData.Cover
|
||||
local func = function()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.SkinPreviewPanel, {nSkinId}, 1)
|
||||
end
|
||||
EventManager.Hit(EventId.SetTransition, 5, func)
|
||||
end
|
||||
return BattlePassPremiumBuyCtrl
|
||||
Reference in New Issue
Block a user