Esempio n. 1
0
 public IEnumerator Restart()
 {
     GameState.Restart();
     foreach (var g in PriorityAttribute.OrderExtensionsByMethod("Restart", gameExtensions))
     {
         yield return(StartCoroutine(g.Restart()));
     }
     RunTarget(GameState.CurrentTarget);
     uAdventureInputModule.LookingForTarget = null;
 }
Esempio n. 2
0
 private IEnumerator QuitCoroutine()
 {
     quitAborted = false;
     foreach (var g in PriorityAttribute.OrderExtensionsByMethod("OnGameFinished", gameExtensions))
     {
         yield return(StartCoroutine(g.OnGameFinished()));
     }
     if (!quitAborted)
     {
         Application.Quit();
     }
 }
Esempio n. 3
0
        private IEnumerator StartGame(LoadingScreen loadScreen)
        {
            Debug.Log("[START GAME] GameState Restart...");
            GameState.Restart();
            started = true;
            Debug.Log("[START GAME] Game Resuming...");
            if (GameState.Data.isRestoreAfterOpen())
            {
                GameState.OnGameResume();
            }
            Debug.Log("[START GAME] After Game Load...");
            foreach (var g in PriorityAttribute.OrderExtensionsByMethod("OnAfterGameLoad", gameExtensions))
            {
                yield return(StartCoroutine(g.OnAfterGameLoad()));
            }
            uAdventureRaycaster = FindObjectOfType <uAdventureRaycaster>();
            if (!uAdventureRaycaster)
            {
                Debug.LogError("No uAdventureRaycaster was found in the scene!");
            }
            else
            {
                // When clicks are out, i capture them
                uAdventureRaycaster.Base = this.gameObject;
            }
            if (!TransitionManager)
            {
                Debug.LogError("No TransitionManager was found in the scene!");
            }

            Debug.Log("[START GAME] Running Target...");
            RunTarget(forceScene ? scene_name : GameState.CurrentTarget);
            yield return(new WaitUntil(() => !waitingRunTarget));

            Debug.Log("[START GAME] Game Ready...");
            foreach (var g in PriorityAttribute.OrderExtensionsByMethod("OnGameReady", gameExtensions))
            {
                yield return(StartCoroutine(g.OnGameReady()));
            }
            uAdventureInputModule.LookingForTarget = null;

            TimerController.Instance.Timers = GameState.GetTimers();
            TimerController.Instance.Run();
            Debug.Log("[START GAME] Done! (Waiting for target to be ready)");
            loadScreen.Close();
        }
Esempio n. 4
0
 public void SaveGame()
 {
     if (!GameState.GetChapterTarget(GameState.CurrentTarget).allowsSavingGame())
     {
         Debug.Log("[SAVE GAME] Current scene doesn't allow saving. Cancelling save...");
         return;
     }
     else
     {
         Debug.Log("[SAVE GAME] Before saving game...");
         foreach (var g in PriorityAttribute.OrderExtensionsByMethod("OnBeforeGameSave", gameExtensions))
         {
             g.OnBeforeGameSave();
         }
         Debug.Log("[SAVE GAME] Saving...");
         GameState.SerializeTo("save");
         Debug.Log("[SAVE GAME] Done!");
     }
 }
Esempio n. 5
0
        public IEnumerator LoadGame()
        {
            Debug.Log("[LOAD GAME] Restoring save...");
            GameState.RestoreFrom("save");
            Debug.Log("[LOAD GAME] After Game Load...");
            foreach (var g in PriorityAttribute.OrderExtensionsByMethod("OnAfterGameLoad", gameExtensions))
            {
                yield return(StartCoroutine(g.OnAfterGameLoad()));
            }
            Debug.Log("[LOAD GAME] Running target...");
            waitingRunTarget = true;
            RunTarget(GameState.CurrentTarget);
            Debug.Log("[LOAD GAME] Waiting for target to be ready...!");
            yield return(new WaitUntil(() => !waitingRunTarget));

            Debug.Log("[LOAD GAME] Game Ready...");
            foreach (var g in PriorityAttribute.OrderExtensionsByMethod("OnGameReady", gameExtensions))
            {
                yield return(StartCoroutine(g.OnGameReady()));
            }
            uAdventureInputModule.LookingForTarget = null;
            Debug.Log("[LOAD GAME] Done!");
        }