public void OnBattleTimePause(PauseRequestType pauseType) { if (pauseType == PauseRequestType.Unpause) { actorAnimator.Pause(false); } else if (!ignoreNextPause) { actorAnimator.Pause(true); } ignoreNextPause = false; }
void LateUpdate() { if (pauseThisUpdate) { isRunning = false; pauseThisUpdate = false; OnBattleTimePaused(reasonForPause); if (unpauseThisUpdate) { throw new System.Exception("Pause and unpause requested on same update!" + "If this is multiplayer this can probably default to paused?"); } } else if (unpauseThisUpdate) { isRunning = true; OnBattleTimePaused(PauseRequestType.Unpause); unpauseThisUpdate = false; reasonForPause = PauseRequestType.NotPaused; } }
/// <summary> /// Returns true if is pausing. Returns false if unpausing. /// </summary> /// <param name="reason"></param> /// <returns></returns> public bool PauseRequest(PauseRequestType reason, PlayerBattleController controller) { switch (reason) { case PauseRequestType.Unpause: if (!playersRequestedPause.Remove(controller)) { Debug.LogError("Player did not request pause"); } else if (playersRequestedPause.Count == 0) { unpauseThisUpdate = true; } break; case PauseRequestType.ChooseCommand: if (!BattleManager.instance.isActiveCommand) { pauseThisUpdate = true; reasonForPause = reason; playersRequestedPause.Add(controller, reason); } break; case PauseRequestType.ControllerLost: pauseThisUpdate = true; reasonForPause = reason; throw new System.Exception("Need pop-up to handle controller disconnect!"); case PauseRequestType.GamePause: if (Time.timeScale == 0) { if (hardPauseRequestedBy == controller) { GetComponent <BattleManager>().ToggleInputAllPlayers(true); pauseDisplay.SetActive(false); Time.timeScale = 1; hardPauseRequestedBy = null; } } else { GetComponent <BattleManager>().ToggleInputAllPlayers(false); hardPauseRequestedBy = controller; pauseDisplay.SetActive(true); Time.timeScale = 0; } break; case PauseRequestType.FinishedCommandInput: if (reasonForPause != PauseRequestType.ActionContest) { if (!isPaused) { unpauseThisUpdate = true; reasonForPause = reason; } } break; case PauseRequestType.ActionContest: if (!isPaused) { pauseThisUpdate = true; reasonForPause = reason; } break; } return(pauseThisUpdate); }