25 lines
1.4 KiB
C#
25 lines
1.4 KiB
C#
namespace ProjectM.Simulation
|
|
{
|
|
/// <summary>
|
|
/// The resolved, concrete spec for ONE room the party is about to enter — a pure function of its map node
|
|
/// (<see cref="RunMapNode"/>) + its depth, produced by <see cref="RoomLayoutMath.Plan"/>. Consumed server-side by
|
|
/// the room field/enemy directors to lay out resources + seed the enemy wave; transient (never replicated —
|
|
/// the client only needs the small published <c>RunInfo</c> mirror for the HUD). All-value, unmanaged, Burst-safe.
|
|
/// </summary>
|
|
public struct RoomPlan
|
|
{
|
|
/// <summary><see cref="RoomTypeId"/> (drives node/enemy density + the difficulty bump).</summary>
|
|
public byte RoomType;
|
|
/// <summary><see cref="RoomBiomeId"/> (cosmetic, forwarded to the client HUD/atmosphere).</summary>
|
|
public byte Biome;
|
|
/// <summary><see cref="RoomShapeId"/> (the arena footprint scatter uses).</summary>
|
|
public byte ShapeId;
|
|
/// <summary>Arena scatter radius (world units) for this shape.</summary>
|
|
public float Radius;
|
|
/// <summary>Base number of resource nodes to scatter (before the run-wide scarcity budget floors it).</summary>
|
|
public int NodeCount;
|
|
/// <summary>Depth-based difficulty rung fed to <c>ZoneEnemyMath</c> (higher = harder; Elite/Boss bump it).</summary>
|
|
public int DifficultyEpoch;
|
|
}
|
|
}
|