measurements take pausing the game into account
This commit is contained in:
@@ -85,7 +85,7 @@ namespace EscapeRoomEngine.Engine.Runtime
|
||||
else
|
||||
{
|
||||
GenerateEndSpace(room, entrance);
|
||||
GameControl.Instance.StopGame();
|
||||
GameControl.Instance.FinishGame();
|
||||
}
|
||||
|
||||
var roomId = _rooms.Count - 1;
|
||||
|
||||
@@ -66,8 +66,8 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
|
||||
{
|
||||
_runningMeasurements[puzzle.Id] = new PuzzleMeasurement
|
||||
{
|
||||
TimeStarted = Time.time,
|
||||
TimeSolved = Time.time
|
||||
TimeStarted = GameControl.Instance.TimeElapsed,
|
||||
TimeSolved = GameControl.Instance.TimeElapsed
|
||||
};
|
||||
|
||||
Logger.Log($"Started measuring {puzzle}", LogType.Measuring);
|
||||
|
||||
@@ -129,7 +129,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
|
||||
|
||||
_realm.Write(() =>
|
||||
{
|
||||
measurement.TimeSolved = Time.time;
|
||||
measurement.TimeSolved = GameControl.Instance.TimeElapsed;
|
||||
found.Measurements.Add(measurement);
|
||||
|
||||
// add solved puzzle to session
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
|
||||
{
|
||||
public enum GameState
|
||||
{
|
||||
Stopped, Paused, Running
|
||||
Stopped, Paused, Running, Finished
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -112,8 +112,8 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
|
||||
startButton.interactable = gameState == GameState.Stopped;
|
||||
stopButton.interactable = gameState != GameState.Stopped;
|
||||
pauseButton.interactable = gameState is GameState.Running or GameState.Paused;
|
||||
addTimeButton.interactable = gameState != GameState.Stopped;
|
||||
removeTimeButton.interactable = gameState != GameState.Stopped && TargetTime >= TimeElapsed + 60;
|
||||
addTimeButton.interactable = gameState is GameState.Running or GameState.Paused;
|
||||
removeTimeButton.interactable = gameState is GameState.Running or GameState.Paused && TargetTime >= TimeElapsed + 60;
|
||||
}
|
||||
|
||||
#region Time Controls
|
||||
@@ -133,7 +133,7 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
|
||||
|
||||
public void StopGame()
|
||||
{
|
||||
if (gameState != GameState.Stopped)
|
||||
if (gameState != GameState.Stopped && gameState != GameState.Finished)
|
||||
{
|
||||
// was running
|
||||
Measure.EndSession(TimeElapsed);
|
||||
@@ -142,6 +142,17 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
|
||||
gameState = GameState.Stopped;
|
||||
}
|
||||
|
||||
public void FinishGame()
|
||||
{
|
||||
if (gameState != GameState.Finished)
|
||||
{
|
||||
// was running
|
||||
Measure.EndSession(TimeElapsed);
|
||||
}
|
||||
|
||||
gameState = GameState.Finished;
|
||||
}
|
||||
|
||||
public void PauseGame()
|
||||
{
|
||||
// ReSharper disable once SwitchStatementMissingSomeEnumCasesNoDefault
|
||||
|
||||
Reference in New Issue
Block a user