small fixes

This commit is contained in:
2023-03-22 07:54:00 +01:00
parent 307edb8491
commit 9c65d24685
481 changed files with 2432 additions and 33 deletions

View File

@@ -26,7 +26,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
/// The average time to solve a specific puzzle.
/// </summary>
public static float AverageTime(PuzzleModuleDescription puzzle) =>
PuzzleStorage.Instance.Load(puzzle).AverageTimeToSolve;
PuzzleStorage.Instance.LoadOrNew(puzzle).AverageTimeToSolve;
/// <summary>
/// The average time to solve a group of puzzles.
/// </summary>
@@ -42,7 +42,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
/// Estimate the time a specific puzzle will take to be solved by the current player.
/// </summary>
public static float EstimateTime(PuzzleModuleDescription puzzle) =>
PuzzleStorage.Instance.Load(puzzle).EstimateTimeToSolve(SessionPercentile());
PuzzleStorage.Instance.LoadOrNew(puzzle).EstimateTimeToSolve(SessionPercentile());
/// <summary>
/// Estimate the time a group of puzzles will take to be solved by the current player.
/// </summary>

View File

@@ -26,7 +26,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
public PlanResult(float targetTime, float sectionPercentile, float timeEstimation)
{
TargetTime = targetTime;
SectionPercentile = sectionPercentile;
SectionPercentile = float.IsNaN(sectionPercentile) ? 0.5f : sectionPercentile;
TimeEstimation = timeEstimation;
}
}

View File

@@ -88,7 +88,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
/// Create a new puzzle for a specific description and store it in the database.
/// </summary>
/// <remarks>This requires that the puzzle does not yet exist in the database.</remarks>
private Puzzle New(PuzzleModuleDescription puzzle)
public Puzzle New(PuzzleModuleDescription puzzle)
{
Puzzle created = null;
@@ -100,7 +100,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
/// <summary>
/// Load a specific puzzle from the database or create it if it wasn't found.
/// </summary>
private Puzzle LoadOrNew(PuzzleModuleDescription puzzle) => _realm.Find<Puzzle>(puzzle.Id) ?? New(puzzle);
public Puzzle LoadOrNew(PuzzleModuleDescription puzzle) => _realm.Find<Puzzle>(puzzle.Id) ?? New(puzzle);
/// <summary>
/// Load a specific puzzle from the database.
@@ -136,9 +136,10 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
session.PuzzlesSolved.Add(found);
// add plan result to session
var percentile = found.Distribution.Cumulative(measurement.Time);
session.PlanResults.Add(new PlanResult(
GameControl.Instance.TargetTime,
found.Distribution.Cumulative(measurement.Time),
percentile,
GameControl.Instance.EstimatedTime));
});
}