PuzzleMeasurement, add Realm, door ExitedFrom event

This commit is contained in:
2022-12-05 18:11:00 +01:00
parent 5449283e5d
commit b776e6744e
34 changed files with 344 additions and 63 deletions

View File

@@ -0,0 +1,31 @@
using System.Collections.Generic;
using System.Linq;
using EscapeRoomEngine.Engine.Runtime.Modules;
using EscapeRoomEngine.Engine.Runtime.Utilities;
using JetBrains.Annotations;
using Realms;
namespace EscapeRoomEngine.Engine.Runtime.Measurements
{
public class Puzzle : RealmObject
{
[PrimaryKey]
public int ID { get; set; }
public IList<PuzzleMeasurement> Measurements { get; }
public float TotalTimeSpentOnPuzzle => Measurements.Sum(measurement => measurement.Time);
public float AverageTimeToSolve => Measurements.Count > 0 ? TotalTimeSpentOnPuzzle / Measurements.Count : 0f;
[UsedImplicitly]
public Puzzle() {}
public Puzzle(PuzzleModuleDescription puzzle)
{
ID = puzzle.Id;
}
public override string ToString()
{
return $"{Engine.DefaultEngine.theme.GetPuzzle(ID)}: avg. {AverageTimeToSolve.ToTimeSpan():m':'ss} ({string.Join(", ", Measurements)})";
}
}
}