measurements take pausing the game into account
This commit is contained in:
@@ -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