namespace Theriapolis.Core.Rules.Combat; /// /// One human-readable line in the encounter log. Combat-resolver actions /// (attacks, saves, conditions, deaths) each emit one of these so test /// scenarios can assert on the log content as a whole. /// public sealed record CombatLogEntry { public enum Kind : byte { Note = 0, // generic flavour line ("Round 1 begins.") Attack = 1, Save = 2, Damage = 3, // direct damage that wasn't an attack roll ConditionApplied = 4, ConditionEnded = 5, Death = 6, Initiative = 7, TurnStart = 8, Move = 9, EncounterEnd = 10, } public required int Round { get; init; } public required int Turn { get; init; } public required Kind Type { get; init; } public required string Message { get; init; } }