// Assets/_Project/Scripts/Core/MatchRules.cs namespace TD.Core { /// /// Match-wide constants that several unrelated systems have to agree on. /// public static class MatchRules { /// /// Maximum players in one lobby. /// /// /// Reduced from 9 to 3 for the 2.0 design as a deliberate scope cut: three players /// is enough for the shared-lives and shared-vote mechanics to matter, and it shrinks map /// authoring, balance surface, and network load all at once. /// /// Why still runs to 9. Shrinking the enum would /// invalidate the owner grids baked into existing LevelData assets and force a /// re-bake of every map, for no runtime benefit — the extra values are simply never /// allocated. Slot allocation caps here instead, which is the only place that decides who /// gets a slot at all. Per-slot arrays stay sized to the enum, so they hold a few unused /// entries; that is intentional and costs nothing. /// public const int MaxPlayers = 3; } }