measurements take pausing the game into account

This commit is contained in:
2023-04-06 09:47:33 +02:00
parent 0dc7eef753
commit a71e5cac37
5 changed files with 21 additions and 10 deletions

View File

@@ -261,7 +261,7 @@ RectTransform:
- {fileID: 7578302057580157030} - {fileID: 7578302057580157030}
- {fileID: 9062548758054197003} - {fileID: 9062548758054197003}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
@@ -342,7 +342,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 676ef7e7d34646dbb24b1978563ab63b, type: 3} m_Script: {fileID: 11500000, guid: 676ef7e7d34646dbb24b1978563ab63b, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
uiUpdateInterval: 1 uiUpdateInterval: 0.1
planUpdateInterval: 1 planUpdateInterval: 1
startButton: {fileID: 4759128159024176925} startButton: {fileID: 4759128159024176925}
stopButton: {fileID: 1891571209360683320} stopButton: {fileID: 1891571209360683320}

View File

@@ -85,7 +85,7 @@ namespace EscapeRoomEngine.Engine.Runtime
else else
{ {
GenerateEndSpace(room, entrance); GenerateEndSpace(room, entrance);
GameControl.Instance.StopGame(); GameControl.Instance.FinishGame();
} }
var roomId = _rooms.Count - 1; var roomId = _rooms.Count - 1;

View File

@@ -66,8 +66,8 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
{ {
_runningMeasurements[puzzle.Id] = new PuzzleMeasurement _runningMeasurements[puzzle.Id] = new PuzzleMeasurement
{ {
TimeStarted = Time.time, TimeStarted = GameControl.Instance.TimeElapsed,
TimeSolved = Time.time TimeSolved = GameControl.Instance.TimeElapsed
}; };
Logger.Log($"Started measuring {puzzle}", LogType.Measuring); Logger.Log($"Started measuring {puzzle}", LogType.Measuring);

View File

@@ -129,7 +129,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
_realm.Write(() => _realm.Write(() =>
{ {
measurement.TimeSolved = Time.time; measurement.TimeSolved = GameControl.Instance.TimeElapsed;
found.Measurements.Add(measurement); found.Measurements.Add(measurement);
// add solved puzzle to session // add solved puzzle to session

View File

@@ -11,7 +11,7 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
{ {
public enum GameState public enum GameState
{ {
Stopped, Paused, Running Stopped, Paused, Running, Finished
} }
/// <summary> /// <summary>
@@ -112,8 +112,8 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
startButton.interactable = gameState == GameState.Stopped; startButton.interactable = gameState == GameState.Stopped;
stopButton.interactable = gameState != GameState.Stopped; stopButton.interactable = gameState != GameState.Stopped;
pauseButton.interactable = gameState is GameState.Running or GameState.Paused; pauseButton.interactable = gameState is GameState.Running or GameState.Paused;
addTimeButton.interactable = gameState != GameState.Stopped; addTimeButton.interactable = gameState is GameState.Running or GameState.Paused;
removeTimeButton.interactable = gameState != GameState.Stopped && TargetTime >= TimeElapsed + 60; removeTimeButton.interactable = gameState is GameState.Running or GameState.Paused && TargetTime >= TimeElapsed + 60;
} }
#region Time Controls #region Time Controls
@@ -133,7 +133,7 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
public void StopGame() public void StopGame()
{ {
if (gameState != GameState.Stopped) if (gameState != GameState.Stopped && gameState != GameState.Finished)
{ {
// was running // was running
Measure.EndSession(TimeElapsed); Measure.EndSession(TimeElapsed);
@@ -142,6 +142,17 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
gameState = GameState.Stopped; gameState = GameState.Stopped;
} }
public void FinishGame()
{
if (gameState != GameState.Finished)
{
// was running
Measure.EndSession(TimeElapsed);
}
gameState = GameState.Finished;
}
public void PauseGame() public void PauseGame()
{ {
// ReSharper disable once SwitchStatementMissingSomeEnumCasesNoDefault // ReSharper disable once SwitchStatementMissingSomeEnumCasesNoDefault