using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class GameManager : D_MonoSingleton { #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.OnDiamondUpdate += UpdateDiamond; MMOModule.Instance.OnWatchAd += WatchAd; MMOModule.Instance.OnOpenMoreGames += TKGSDKManager.Instance.OpenMoreGame; MMOModule.Instance.OnEvengLog += LogRobuxEvent; } protected override void Dispose() { #if USE_IAP IAPTool.Instance.OnPurchaseBegin -= OnPurchaseBegin; IAPTool.Instance.OnPurchaseDone -= OnPurchaseResult; IAPTool.Instance.OnRestoreDone -= OnRestoreResult; #endif } private void UpdateDiamond(int pDiamond) { PlayerData.Instance.Diamond = pDiamond; } private void WatchAd() { AdsUtils.PlayReward("Robux"); } private void LogRobuxEvent(string pEvent, string pKey, string pValue) { TKGSDKManager.Instance.LogEvent(pEvent, pKey, pValue); } private void OnPurchaseBegin() { #if USE_IAP UIManager.Instance.OpenUI(); #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().IsOpened) { DataIAP tData = TableIAP.Instance.GetData(pID); if (tData != null) { PlayerData.Instance.Diamond += tData.DiamondNum; UIManager.Instance.GetUI().PopDiamond(tData.DiamondNum); } } } } UIManager.Instance.CloseUI(); #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"); } }