114 lines
3 KiB
C#
114 lines
3 KiB
C#
|
using UnityEngine;
|
||
|
|
||
|
public class InGameInAppPurchaseMenu : MonoBehaviour
|
||
|
{
|
||
|
public delegate void ViewDismissed(string name);
|
||
|
|
||
|
private GameObject m_loader;
|
||
|
|
||
|
public static event ViewDismissed onViewDismissed;
|
||
|
|
||
|
private void Start()
|
||
|
{
|
||
|
if (!IapManager.Instance.ReadyForTransaction && IapManager.Instance.Status == IapManager.InAppPurchaseStatus.Idle)
|
||
|
{
|
||
|
IapManager.Instance.FetchPurchasableItemList();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void OnEnable()
|
||
|
{
|
||
|
IapManager.onPurchaseSucceeded += HandleIapManageronPurchaseSucceeded;
|
||
|
IapManager.onPurchaseFailed += HandleIapManageronPurchaseFailed;
|
||
|
if (m_loader == null)
|
||
|
{
|
||
|
m_loader = base.transform.FindChild("PurchaseLoader").gameObject;
|
||
|
}
|
||
|
m_loader.SetActiveRecursively(false);
|
||
|
}
|
||
|
|
||
|
private void OnDisable()
|
||
|
{
|
||
|
IapManager.onPurchaseSucceeded -= HandleIapManageronPurchaseSucceeded;
|
||
|
IapManager.onPurchaseFailed -= HandleIapManageronPurchaseFailed;
|
||
|
if ((bool)m_loader)
|
||
|
{
|
||
|
m_loader.SetActiveRecursively(false);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void PurchaseBlueprintPackSmall()
|
||
|
{
|
||
|
if (IapManager.Instance.ReadyForTransaction && IapManager.Instance.Status == IapManager.InAppPurchaseStatus.Idle)
|
||
|
{
|
||
|
IapManager.Instance.PurchaseItem(IapManager.InAppPurchaseItemType.BlueprintSmall);
|
||
|
m_loader.SetActiveRecursively(true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void PurchaseBlueprintPackMedium()
|
||
|
{
|
||
|
if (IapManager.Instance.ReadyForTransaction && IapManager.Instance.Status == IapManager.InAppPurchaseStatus.Idle)
|
||
|
{
|
||
|
IapManager.Instance.PurchaseItem(IapManager.InAppPurchaseItemType.BlueprintMedium);
|
||
|
m_loader.SetActiveRecursively(true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void PurchaseBlueprintPackLarge()
|
||
|
{
|
||
|
if (IapManager.Instance.ReadyForTransaction && IapManager.Instance.Status == IapManager.InAppPurchaseStatus.Idle)
|
||
|
{
|
||
|
IapManager.Instance.PurchaseItem(IapManager.InAppPurchaseItemType.BlueprintLarge);
|
||
|
m_loader.SetActiveRecursively(true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void PurchaseUnlockAllLevels()
|
||
|
{
|
||
|
if (IapManager.Instance.ReadyForTransaction && IapManager.Instance.Status == IapManager.InAppPurchaseStatus.Idle)
|
||
|
{
|
||
|
IapManager.Instance.PurchaseItem(IapManager.InAppPurchaseItemType.UnlockAllLevels);
|
||
|
m_loader.SetActiveRecursively(true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void PurchaseUnlockFullVersion()
|
||
|
{
|
||
|
if (IapManager.Instance.ReadyForTransaction && IapManager.Instance.Status == IapManager.InAppPurchaseStatus.Idle)
|
||
|
{
|
||
|
IapManager.Instance.PurchaseItem(IapManager.InAppPurchaseItemType.UnlockFullVersion);
|
||
|
m_loader.SetActiveRecursively(true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void DismissDialog()
|
||
|
{
|
||
|
SetVisible(false);
|
||
|
}
|
||
|
|
||
|
private void HandleIapManageronPurchaseSucceeded(IapManager.InAppPurchaseItemType type)
|
||
|
{
|
||
|
SetVisible(false);
|
||
|
}
|
||
|
|
||
|
private void HandleIapManageronPurchaseFailed(IapManager.InAppPurchaseItemType type)
|
||
|
{
|
||
|
m_loader.SetActiveRecursively(false);
|
||
|
}
|
||
|
|
||
|
public void SetVisible(bool visible)
|
||
|
{
|
||
|
base.gameObject.SetActiveRecursively(visible);
|
||
|
if (visible)
|
||
|
{
|
||
|
m_loader.SetActiveRecursively(!visible);
|
||
|
}
|
||
|
base.gameObject.active = true;
|
||
|
if (!visible && InGameInAppPurchaseMenu.onViewDismissed != null)
|
||
|
{
|
||
|
InGameInAppPurchaseMenu.onViewDismissed(base.name);
|
||
|
}
|
||
|
}
|
||
|
}
|