This commit is contained in:
Matt F 2026-05-10 22:26:55 -07:00
parent f7720a9915
commit 6c37e569ab
18 changed files with 1169 additions and 323 deletions

View file

@ -6,10 +6,11 @@ namespace TD.Core
/// Canonical color palette for player slots, used by editor gizmos to color volumes by owner.
/// </summary>
/// <remarks>
/// Color names follow the 9-player map design doc (red, green, blue, purple, yellow, gray,
/// teal, olive, dark gray). The exact RGB values have been tuned for readability when drawn
/// as translucent gizmos against Unity's default scene-view background. Tweak the constants
/// below if any color reads poorly in practice.
/// Color names follow the 9-player map design doc (orange, green, blue, purple, yellow, gray,
/// teal, olive, dark gray). Red is reserved for enemy units on the minimap, so Player 1 uses
/// orange instead. The exact RGB values have been tuned for readability when drawn as
/// translucent gizmos against Unity's default scene-view background. Tweak the constants below
/// if any color reads poorly in practice.
///
/// The "ErrorPink" color is reserved for diagnostic use: if a volume's owner is
/// <see cref="PlayerSlot.None"/> (which should never happen on a valid volume), the gizmo
@ -19,7 +20,7 @@ namespace TD.Core
{
// Player colors. Hex values are RGB; alpha is set per-gizmo at draw time.
// Values are tuned to be saturated enough to read against Unity's default scene background.
private static readonly Color Player1Red = HexRGB(0xE0, 0x3A, 0x3A); // red
private static readonly Color Player1Orange = HexRGB(0xE0, 0x7A, 0x2E); // orange (red reserved for enemies)
private static readonly Color Player2Green = HexRGB(0x3A, 0xC0, 0x4A); // green
private static readonly Color Player3Blue = HexRGB(0x3A, 0x7A, 0xE0); // blue
private static readonly Color Player4Purple = HexRGB(0xA0, 0x4A, 0xC0); // purple
@ -43,7 +44,7 @@ namespace TD.Core
{
switch (slot)
{
case PlayerSlot.Player1: return Player1Red;
case PlayerSlot.Player1: return Player1Orange;
case PlayerSlot.Player2: return Player2Green;
case PlayerSlot.Player3: return Player3Blue;
case PlayerSlot.Player4: return Player4Purple;