99 lines
2.9 KiB
Plaintext
99 lines
2.9 KiB
Plaintext
autoImport('FuncZenyShop')
|
|
|
|
AppStorePurchase = class('AppStorePurchase')
|
|
|
|
function AppStorePurchase.Ins()
|
|
if AppStorePurchase.ins == nil then
|
|
AppStorePurchase.ins = AppStorePurchase.new()
|
|
end
|
|
return AppStorePurchase.ins
|
|
end
|
|
|
|
function AppStorePurchase:AddListener()
|
|
self.listenerAdded = false
|
|
EventManager.Me():AddEventListener(LoadSceneEvent.FinishLoadScene, self.OnReceiveFinishLoadScene, self)
|
|
end
|
|
|
|
function AppStorePurchase:OnReceiveFinishLoadScene()
|
|
if not self.listenerAdded then
|
|
self.listenerAdded = true
|
|
if not BackwardCompatibilityUtil.CompatibilityMode_V19 then
|
|
self:SetCallbackAppStorePurchase()
|
|
end
|
|
end
|
|
end
|
|
|
|
function AppStorePurchase:SetCallbackAppStorePurchase()
|
|
FunctionXDSDK.Ins:SetCallbackAppStorePurchase(function (x)
|
|
self:ShowProduct(x)
|
|
FunctionXDSDK.Ins:ClearPurchaseFromAppStore()
|
|
end)
|
|
end
|
|
|
|
function AppStorePurchase:OpenZenyShopAndPurchase(product_id)
|
|
local panel = self:GetPanelConfigFromProductID(product_id)
|
|
FuncZenyShop.Instance():OpenUI(panel)
|
|
if panel == PanelConfig.ZenyShopMonthlyVIP then
|
|
self:ShowCardByProductID(product_id)
|
|
end
|
|
if not FuncZenyShop.Instance():TryPurchaseProduct(product_id) then
|
|
EventManager.Me():AddEventListener(ZenyShopEvent.CanPurchase, self.OnReceiveCanPurchase, self)
|
|
self.purchaseProductID = product_id
|
|
end
|
|
end
|
|
|
|
function AppStorePurchase:ShowProduct(product_id)
|
|
GameFacade.Instance:sendNotification(UIEvent.JumpPanel, {view = PanelConfig.AppStorePurchase, viewdata = product_id})
|
|
end
|
|
|
|
function AppStorePurchase:OnReceiveCanPurchase(product_id)
|
|
if product_id == self.purchaseProductID then
|
|
FuncZenyShop.Instance():TryPurchaseProduct(product_id)
|
|
self.purchaseProductID = nil
|
|
end
|
|
end
|
|
|
|
function AppStorePurchase:GetPanelConfigFromProductID(product_id)
|
|
for k, v in pairs(Table_Deposit) do
|
|
if v.ProductID == product_id then
|
|
if v.Type == 1 then
|
|
return PanelConfig.ZenyShop
|
|
elseif v.Type == 2 or v.Type == 5 then
|
|
return PanelConfig.ZenyShopMonthlyVIP
|
|
elseif v.Type == 3 or v.Type == 4 then
|
|
return PanelConfig.ZenyShopGachaCoin
|
|
end
|
|
end
|
|
end
|
|
return nil
|
|
end
|
|
|
|
function AppStorePurchase:ShowCardByProductID(product_id)
|
|
local showCardIndex = nil
|
|
local monthlyVIPController = FuncZenyShop.Instance():GetMonthlyVIPController()
|
|
if monthlyVIPController.monthlyVIPShopItemConf == product_id then
|
|
showCardIndex = 0
|
|
else
|
|
local epVIPCards = monthlyVIPController.epVIPCards
|
|
for i = 1, #epVIPCards do
|
|
local epVIPCard = epVIPCards[i]
|
|
local productConfID = epVIPCard.id2
|
|
if(productConfID == nil or productConfID == 0)then
|
|
productConfID = epVIPCard.id1
|
|
end
|
|
local productID = Table_Deposit[productConfID].ProductID
|
|
if productID == product_id then
|
|
showCardIndex = i
|
|
break
|
|
end
|
|
end
|
|
end
|
|
monthlyVIPController.showCardIndex = showCardIndex
|
|
monthlyVIPController:ShowCard(monthlyVIPController.showCardIndex)
|
|
end
|
|
|
|
function AppStorePurchase:ClearCallbackAppStorePurchase()
|
|
FunctionXDSDK.Ins:SetCallbackAppStorePurchase(nil)
|
|
end
|
|
|
|
-- test |