public IEnumerator Restart() { GameState.Restart(); foreach (var g in PriorityAttribute.OrderExtensionsByMethod("Restart", gameExtensions)) { yield return(StartCoroutine(g.Restart())); } RunTarget(GameState.CurrentTarget); uAdventureInputModule.LookingForTarget = null; }
private IEnumerator QuitCoroutine() { quitAborted = false; foreach (var g in PriorityAttribute.OrderExtensionsByMethod("OnGameFinished", gameExtensions)) { yield return(StartCoroutine(g.OnGameFinished())); } if (!quitAborted) { Application.Quit(); } }
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(); }
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!"); } }
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!"); }