b451f83174
Captures the pre-Godot-port state of the codebase. This is the rollback anchor for the Godot port (M0 of theriapolis-rpg-implementation-plan-godot-port.md). All Phase 0 through Phase 6.5 work is included; Phase 7 is in flight. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
30 lines
952 B
C#
30 lines
952 B
C#
namespace Theriapolis.Core.Rules.Combat;
|
|
|
|
/// <summary>
|
|
/// 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.
|
|
/// </summary>
|
|
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; }
|
|
}
|