|
- using System;
- using CIG.Translation;
- using CIGEnums;
- using SUISS.Core;
- using UnityEngine.SceneManagement;
-
- public class GameSceneCloudSaveResolver : SceneCloudSaveResolver
- {
- protected override void OnDestroy()
- {
- if (SingletonMonobehaviour<WorldMap>.IsAvailable)
- {
- SingletonMonobehaviour<WorldMap>.Instance.VisibilityChangedEvent -= this.OnWorldMapVisibilityChanged;
- }
- base.OnDestroy();
- }
-
- protected override void OnConflictAskPlayer()
- {
- SingletonMonobehaviour<WorldMap>.Instance.VisibilityChangedEvent += this.OnWorldMapVisibilityChanged;
- }
-
- protected override void OnConflictResultInvalidGameVersion()
- {
- SingletonMonobehaviour<WorldMap>.Instance.VisibilityChangedEvent += this.OnWorldMapVisibilityChanged;
- }
-
- private void OnWorldMapVisibilityChanged(bool visible)
- {
- if (!visible)
- {
- if (StorageController.CloudStorage.LastResolutionResult == ConflictResolver.ConflictSolution.AskPlayer)
- {
- this.OpenConflictPopup();
- }
- else if (StorageController.CloudStorage.LastResolutionResult == ConflictResolver.ConflictSolution.InvalidGameVersion)
- {
- this.OpenWrongGameVersionPopup();
- }
- }
- SingletonMonobehaviour<WorldMap>.Instance.VisibilityChangedEvent -= this.OnWorldMapVisibilityChanged;
- }
-
- private void OpenConflictPopup()
- {
- SingletonMonobehaviour<PopupManager>.Instance.RequestFirstPopup<CloudSaveConflictPopupState>(delegate(State state)
- {
- ((CloudSaveConflictPopupState)state).UpdateInfo(new Action(this.AskPlayerPickCloud), new Action(this.AskPlayerPickLocal), (!SingletonMonobehaviour<CIGGameState>.IsAvailable) ? 0 : SingletonMonobehaviour<CIGGameState>.Instance.Level, StorageController.CloudStorage.LastCloudGameState.PlayerLevel);
- });
- }
-
- private void OpenWrongGameVersionPopup()
- {
- SingletonMonobehaviour<PopupManager>.Instance.RequestFirstPopup<GenericPopupState>(delegate(State state)
- {
- ((GenericPopupState)state).UpdateInfo(UISpriteType.CloudSaveIcon, Localization.Key("conflict_gameversion_title"), Localization.Key("conflict_gameversion_body"), Localization.Key("ok"), null, null, null, null, false);
- });
- }
-
- private void AskPlayerPickLocal()
- {
- this.OnConflictResultPickLocal();
- }
-
- private void AskPlayerPickCloud()
- {
- this.OnConflictResultPickCloud();
- SceneManager.LoadScene("Game");
- }
- }
|