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.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().RefreshDiamond(); } private void ShowRV(string pPos, Action 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(); #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"); } }