Files

24 lines
981 B
C#
Raw Permalink Normal View History

namespace Theriapolis.Core.Dungeons;
/// <summary>
/// Phase 7 M1 — a connection between two rooms in a dungeon, anchored by
/// the door tile on each side. Connections are created by
/// <see cref="RoomGraphAssembler"/> when matching one room's outgoing door
/// to another's incoming door; they're authoritative for reachability
/// (BFS over connections, not over the painted tile array).
///
/// Door coordinates are in dungeon-local tile space and address the
/// *door tile itself* (carved out of the perimeter wall). The door state
/// (open / closed / locked) lives in <see cref="Theriapolis.Core.Persistence.DungeonStateSnapshot"/>
/// — this record carries only the deterministic baseline.
/// </summary>
public readonly record struct RoomConnection(
int RoomA,
int DoorAx,
int DoorAy,
int RoomB,
int DoorBx,
int DoorBy,
/// <summary>Lock difficulty tier or "" for unlocked. Matches RoomDoor.Lock values.</summary>
string Lock = "");