mergemilitary/Assets/Scripts/GameManager.cs

143 lines
4.0 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class GameManager : D_MonoSingleton<GameManager>
{
#region for debug
public BlockManager CurrentPlayerBlockMgr;
public BlockManager CurrentEnemyBlockMgr;
public GroupManager PlayerGroupMgr;
public GroupManager EnemyGroupMgr;
public Camera CurrentGameCam;
public bool IsPlayerUndefeatable = false;
public bool IsEnemyUndefeatable = false;
#endregion
public int GameSpeed
{
get => mGameSpeed;
set
{
mGameSpeed = value;
Utils.SetGameSpeed(mGameSpeed);
}
}
private int mGameSpeed = 1;
protected override void Initialize()
{
#if USE_IAP
IAPTool.Instance.OnPurchaseBegin += OnPurchaseBegin;
IAPTool.Instance.OnPurchaseDone += OnPurchaseResult;
IAPTool.Instance.OnRestoreDone += OnRestoreResult;
#endif
MMOModule.Instance.OnDataOverride += DataOverride;
MMOModule.Instance.OnDiamondUpdate += UpdateDiamond;
MMOModule.Instance.OnShowRV += ShowRV;
MMOModule.Instance.OnShowIV += ShowIV;
MMOModule.Instance.OnLogEvent += LogRobuxEvent;
MMOModule.Instance.OnGetConfig += GetConfig;
MMOModule.Instance.OnShare += TKGSDKManager.Instance.Share;
MMOModule.Instance.OnOpenMoreGames += TKGSDKManager.Instance.OpenMoreGame;
}
protected override void Dispose()
{
#if USE_IAP
IAPTool.Instance.OnPurchaseBegin -= OnPurchaseBegin;
IAPTool.Instance.OnPurchaseDone -= OnPurchaseResult;
IAPTool.Instance.OnRestoreDone -= OnRestoreResult;
#endif
}
#region MMO
private void DataOverride()
{
bool tIsMMO = PlayerData.Instance.IsMMOUser;
PlayerData.Load();
SettingData.Load();
PlayerData.Instance.IsMMOUser = tIsMMO;
}
private void UpdateDiamond(int pDiamond)
{
PlayerData.Instance.Diamond = pDiamond;
UIManager.Instance.GetUI<PanelTopBar>().RefreshDiamond();
}
private void ShowRV(string pPos, Action<bool> pDelResult)
{
AdsUtils.PlayReward((TKGRVPositionName)Enum.Parse(typeof(TKGRVPositionName), pPos), pDelResult);
}
private void ShowIV(string pPos)
{
AdsUtils.PlayInterstitial((TKGIVAdPositionName)Enum.Parse(typeof(TKGIVAdPositionName), pPos));
}
private string GetConfig(string pKey)
{
return TKGSDKManager.Instance.GetConfigStr((TKGParamKey)Enum.Parse(typeof(TKGParamKey), pKey));
}
private void LogRobuxEvent(string pEvent, string pKey, string pValue)
{
TKGSDKManager.Instance.LogEvent(pEvent, pKey, pValue);
}
#endregion
private void OnPurchaseBegin()
{
#if USE_IAP
UIManager.Instance.OpenUI<PanelLoading>();
#endif
}
private void OnPurchaseResult(string pID, bool pResult)
{
#if USE_IAP
if (pID.Equals(IAPProducts.NoAds))
{
if (pResult)
{
PlayerData.Instance.IsNoAds = true;
}
UIUtils.ShowTips(LanguageConfig.Instance.GetText(pResult ? "BuyNoAdsSucceed" : "BuyNoAdsFail"));
}
else
{
if (pResult)
{
if (!UIManager.Instance.GetUI<PanelShop>().IsOpened)
{
DataIAP tData = TableIAP.Instance.GetData(pID);
if (tData != null)
{
PlayerData.Instance.Diamond += tData.DiamondNum;
UIManager.Instance.GetUI<PanelTopBar>().PopDiamond(tData.DiamondNum);
}
}
}
}
UIManager.Instance.CloseUI<PanelLoading>();
#endif
}
private void OnRestoreResult(bool pResult)
{
UIUtils.ShowTips(LanguageConfig.Instance.GetText(pResult ? "RestoreSucceed" : "RestoreFail"));
}
public void LoadGame()
{
GameSpeed = 1;
TimerManager.Instance.ClearAll();
SceneManager.LoadScene("Game");
}
}