From 4ee3cbc255ae7930724c9d3317ea8654ba7ae8b1 Mon Sep 17 00:00:00 2001 From: Mike Harris Date: Wed, 29 Oct 2025 18:39:07 -0500 Subject: [PATCH] Features: Team Game Spawn Color Tint (#2303) ## Description: This PR addresses issue #2302: where there is no obvious information about the self-player's team during the spawn phase of the game. Currently, during TEAM games (where there is a set number of teams defined), the self player's spawn highlight color is white, while all other players are shown with a team-based spawn highlight color. This makes it difficult to discern who is a teammate, especially since the current live version (v0.26.7) uses green/yellow for other players to depict teammate/other team, respectively. Technically, the same is true for Duos, Trios, and Quads games, although this has been addressed separately with PR #2298 by reverting to green/yellow for teammate/other team players. This PR changes the color of the self player's breathing spawn highlight ring to match their assigned team color (with `alpha=0.5` for transparency). The breathing ring is semi transparent on top of the existing white static semi-transparent ring, giving the breathing ring a **tint** of the team color instead of the exact team color. This allows a player to immediately identify their assigned team and maintains overall consistency with FFA, Duos, Trios, and Quads game modes. See below for example implementation. In this screenshot, the self player is on the red team as shown by the red tint to the breathing spawn highlight ring. The screenshot also shows some of the static white semi-transparent ring around the spawn location. The self player's teammate is to the top left of the image with a solid red spawn highlight. The non-player (nation) opponent on the blue team is shown to the bottom left. In online games, nations are not present in team games. In single player or private lobby games they are shown as here, without a spawn color highlight and only a territory color. Team Spawn Color Tint ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory - [x] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced ## Please put your Discord username so you can be contacted if a bug or regression is found: GlacialDrift --- src/client/graphics/layers/RailroadLayer.ts | 4 +- .../graphics/layers/StructureDrawingUtils.ts | 1 + src/client/graphics/layers/StructureLayer.ts | 2 +- src/client/graphics/layers/TerritoryLayer.ts | 49 +- src/client/graphics/layers/UnitLayer.ts | 2 +- src/core/configuration/ColorAllocator.ts | 8 +- src/core/configuration/Colors.ts | 1056 ++++++++--------- src/core/configuration/PastelTheme.ts | 36 +- src/core/configuration/PastelThemeDark.ts | 6 +- 9 files changed, 590 insertions(+), 574 deletions(-) diff --git a/src/client/graphics/layers/RailroadLayer.ts b/src/client/graphics/layers/RailroadLayer.ts index ee44db960..3a863a699 100644 --- a/src/client/graphics/layers/RailroadLayer.ts +++ b/src/client/graphics/layers/RailroadLayer.ts @@ -1,4 +1,4 @@ -import { Colord } from "colord"; +import { colord } from "colord"; import { Theme } from "../../../core/configuration/Config"; import { PlayerID } from "../../../core/game/Game"; import { TileRef } from "../../../core/game/GameMap"; @@ -184,7 +184,7 @@ export class RailroadLayer implements Layer { const recipient = owner.isPlayer() ? owner : null; const color = recipient ? recipient.borderColor() - : new Colord({ r: 255, g: 255, b: 255, a: 1 }); + : colord("rgba(255,255,255,1)"); this.context.fillStyle = color.toRgbString(); this.paintRailRects(this.context, x, y, railType); } diff --git a/src/client/graphics/layers/StructureDrawingUtils.ts b/src/client/graphics/layers/StructureDrawingUtils.ts index cc8dbfaa9..52b887cf9 100644 --- a/src/client/graphics/layers/StructureDrawingUtils.ts +++ b/src/client/graphics/layers/StructureDrawingUtils.ts @@ -256,6 +256,7 @@ export class SpriteFactory { const tc = owner.territoryColor(); const bc = owner.borderColor(); + // Potentially change logic here. Some TC/BC combinations do not provide good color contrast. const darker = bc.luminance() < tc.luminance() ? bc : tc; const lighter = bc.luminance() < tc.luminance() ? tc : bc; diff --git a/src/client/graphics/layers/StructureLayer.ts b/src/client/graphics/layers/StructureLayer.ts index bec07483e..f0c0d6c5e 100644 --- a/src/client/graphics/layers/StructureLayer.ts +++ b/src/client/graphics/layers/StructureLayer.ts @@ -15,7 +15,7 @@ import { euclDistFN, isometricDistFN } from "../../../core/game/GameMap"; import { GameUpdateType } from "../../../core/game/GameUpdates"; import { GameView, UnitView } from "../../../core/game/GameView"; -const underConstructionColor = colord({ r: 150, g: 150, b: 150 }); +const underConstructionColor = colord("rgb(150,150,150)"); // Base radius values and scaling factor for unit borders and territories const BASE_BORDER_RADIUS = 16.5; diff --git a/src/client/graphics/layers/TerritoryLayer.ts b/src/client/graphics/layers/TerritoryLayer.ts index c8ba09200..84a523ecf 100644 --- a/src/client/graphics/layers/TerritoryLayer.ts +++ b/src/client/graphics/layers/TerritoryLayer.ts @@ -6,6 +6,7 @@ import { Cell, ColoredTeams, PlayerType, + Team, UnitType, } from "../../../core/game/Game"; import { euclDistFN, TileRef } from "../../../core/game/GameMap"; @@ -197,15 +198,13 @@ export class TerritoryLayer implements Layer { // In Team games, the spawn highlight color becomes that player's team color // Optionally, this could be broken down to teammate or enemy and simplified to green and red, respectively const team = human.team(); - if (team !== null) { - if (teamColors.includes(team)) { - color = this.theme.teamColor(team); + if (team !== null && teamColors.includes(team)) { + color = this.theme.teamColor(team); + } else { + if (myPlayer.isFriendly(human)) { + color = this.theme.spawnHighlightTeamColor(); } else { - if (myPlayer.isFriendly(human)) { - color = this.theme.spawnHighlightTeamColor(); - } else { - color = this.theme.spawnHighlightColor(); - } + color = this.theme.spawnHighlightColor(); } } } @@ -239,13 +238,24 @@ export class TerritoryLayer implements Layer { const radius = minRad + (maxRad - minRad) * (0.5 + 0.5 * Math.sin(this.borderAnimTime)); + const baseColor = this.theme.spawnHighlightSelfColor(); //white + let teamColor: Colord | null = null; + + const team: Team | null = focusedPlayer.team(); + if (team !== null && Object.values(ColoredTeams).includes(team)) { + teamColor = this.theme.teamColor(team).alpha(0.5); + } else { + teamColor = baseColor; + } + this.drawBreathingRing( center.x, center.y, minRad, maxRad, radius, - this.theme.spawnHighlightSelfColor(), // Always draw breathing ring with self spawn highlight color + baseColor, // Always draw white static semi-transparent ring + teamColor, // Pass the breathing ring color. White for FFA, Duos, Trios, Quads. Transparent team color for TEAM games. ); } @@ -582,7 +592,8 @@ export class TerritoryLayer implements Layer { minRad: number, maxRad: number, radius: number, - color: Colord, + transparentColor: Colord, + breathingColor: Colord, ) { const ctx = this.highlightContext; if (!ctx) return; @@ -590,17 +601,16 @@ export class TerritoryLayer implements Layer { // Draw a semi-transparent ring around the starting location ctx.beginPath(); // Transparency matches the highlight color provided - const transparent = color.toHex() + "00"; - const c = color.toHex(); + const transparent = transparentColor.alpha(0); const radGrad = ctx.createRadialGradient(cx, cy, minRad, cx, cy, maxRad); // Pixels with radius < minRad are transparent - radGrad.addColorStop(0, transparent); + radGrad.addColorStop(0, transparent.toRgbString()); // The ring then starts with solid highlight color - radGrad.addColorStop(0.01, c); - radGrad.addColorStop(0.1, c); + radGrad.addColorStop(0.01, transparentColor.toRgbString()); + radGrad.addColorStop(0.1, transparentColor.toRgbString()); // The outer edge of the ring is transparent - radGrad.addColorStop(1, transparent); + radGrad.addColorStop(1, transparent.toRgbString()); // Draw an arc at the max radius and fill with the created radial gradient ctx.arc(cx, cy, maxRad, 0, Math.PI * 2); @@ -608,15 +618,16 @@ export class TerritoryLayer implements Layer { ctx.closePath(); ctx.fill(); + const breatheInner = breathingColor.alpha(0); // Draw a solid ring around the starting location with outer radius = the breathing radius ctx.beginPath(); const radGrad2 = ctx.createRadialGradient(cx, cy, minRad, cx, cy, radius); // Pixels with radius < minRad are transparent - radGrad2.addColorStop(0, transparent); + radGrad2.addColorStop(0, breatheInner.toRgbString()); // The ring then starts with solid highlight color - radGrad2.addColorStop(0.01, c); + radGrad2.addColorStop(0.01, breathingColor.toRgbString()); // The ring is solid throughout - radGrad2.addColorStop(1, c); + radGrad2.addColorStop(1, breathingColor.toRgbString()); // Draw an arc at the current breathing radius and fill with the created "gradient" ctx.arc(cx, cy, radius, 0, Math.PI * 2); diff --git a/src/client/graphics/layers/UnitLayer.ts b/src/client/graphics/layers/UnitLayer.ts index 4945969be..d0c5f8dd9 100644 --- a/src/client/graphics/layers/UnitLayer.ts +++ b/src/client/graphics/layers/UnitLayer.ts @@ -295,7 +295,7 @@ export class UnitLayer implements Layer { private handleWarShipEvent(unit: UnitView) { if (unit.targetUnitId()) { - this.drawSprite(unit, colord({ r: 200, b: 0, g: 0 })); + this.drawSprite(unit, colord("rgb(200,0,0)")); } else { this.drawSprite(unit); } diff --git a/src/core/configuration/ColorAllocator.ts b/src/core/configuration/ColorAllocator.ts index e62726bb0..b256354e8 100644 --- a/src/core/configuration/ColorAllocator.ts +++ b/src/core/configuration/ColorAllocator.ts @@ -1,4 +1,4 @@ -import { Colord, extend } from "colord"; +import { colord, Colord, extend } from "colord"; import labPlugin from "colord/plugins/lab"; import lchPlugin from "colord/plugins/lch"; import Color from "colorjs.io"; @@ -87,7 +87,11 @@ export class ColorAllocator { assignTeamColor(team: Team): Colord { const teamColors = this.getTeamColorVariations(team); - return teamColors[0]; + const rgb = teamColors[0].toRgb(); + rgb.r = Math.round(rgb.r); + rgb.g = Math.round(rgb.g); + rgb.b = Math.round(rgb.b); + return colord(rgb); } assignTeamPlayerColor(team: Team, playerId: string): Colord { diff --git a/src/core/configuration/Colors.ts b/src/core/configuration/Colors.ts index 2e913a6b6..7de52c3b0 100644 --- a/src/core/configuration/Colors.ts +++ b/src/core/configuration/Colors.ts @@ -5,14 +5,14 @@ import lchPlugin from "colord/plugins/lch"; extend([lchPlugin]); extend([labPlugin]); -export const red = colord({ h: 0, s: 82, l: 56 }); -export const blue = colord({ h: 224, s: 100, l: 58 }); -export const teal = colord({ h: 172, s: 66, l: 50 }); -export const purple = colord({ h: 271, s: 81, l: 56 }); -export const yellow = colord({ h: 45, s: 93, l: 47 }); -export const orange = colord({ h: 25, s: 95, l: 53 }); -export const green = colord({ h: 128, s: 49, l: 50 }); -export const botColor = colord({ h: 36, s: 10, l: 80 }); +export const red = colord("rgb(235,51,51)"); +export const blue = colord("rgb(41,98,255)"); +export const teal = colord("rgb(43,212,189)"); +export const purple = colord("rgb(146,52,234)"); +export const yellow = colord("rgb(231,176,8)"); +export const orange = colord("rgb(249,116,21)"); +export const green = colord("rgb(65,190,82)"); +export const botColor = colord("rgb(209,205,199)"); export const redTeamColors: Colord[] = generateTeamColors(red); export const blueTeamColors: Colord[] = generateTeamColors(blue); @@ -21,20 +21,20 @@ export const purpleTeamColors: Colord[] = generateTeamColors(purple); export const yellowTeamColors: Colord[] = generateTeamColors(yellow); export const orangeTeamColors: Colord[] = generateTeamColors(orange); export const greenTeamColors: Colord[] = generateTeamColors(green); -export const botTeamColors: Colord[] = [colord(botColor)]; +export const botTeamColors: Colord[] = [botColor]; function generateTeamColors(baseColor: Colord): Colord[] { - const { h: baseHue, s: baseSaturation, l: baseLightness } = baseColor.toHsl(); + const hsl = baseColor.toHsl(); const colorCount = 64; return Array.from({ length: colorCount }, (_, index) => { const progression = index / (colorCount - 1); - const saturation = baseSaturation * (1.0 - 0.3 * progression); - const lightness = Math.min(100, baseLightness + progression * 30); + const saturation = hsl.s * (1.0 - 0.3 * progression); + const lightness = Math.min(100, hsl.l + progression * 30); return colord({ - h: baseHue, + h: hsl.h, s: saturation, l: lightness, }); @@ -42,529 +42,529 @@ function generateTeamColors(baseColor: Colord): Colord[] { } export const nationColors: Colord[] = [ - colord({ r: 230, g: 100, b: 100 }), // Bright Red - colord({ r: 100, g: 180, b: 230 }), // Sky Blue - colord({ r: 230, g: 180, b: 80 }), // Golden Yellow - colord({ r: 180, g: 100, b: 230 }), // Purple - colord({ r: 80, g: 200, b: 120 }), // Emerald Green - colord({ r: 230, g: 130, b: 180 }), // Pink - colord({ r: 100, g: 160, b: 80 }), // Olive Green - colord({ r: 230, g: 150, b: 100 }), // Peach - colord({ r: 80, g: 130, b: 190 }), // Navy Blue - colord({ r: 210, g: 210, b: 100 }), // Lime Yellow - colord({ r: 190, g: 100, b: 130 }), // Maroon - colord({ r: 100, g: 210, b: 210 }), // Turquoise - colord({ r: 210, g: 140, b: 80 }), // Light Orange - colord({ r: 150, g: 110, b: 190 }), // Lavender - colord({ r: 180, g: 210, b: 120 }), // Light Green - colord({ r: 210, g: 100, b: 160 }), // Hot Pink - colord({ r: 100, g: 140, b: 110 }), // Sea Green - colord({ r: 230, g: 180, b: 180 }), // Light Pink - colord({ r: 120, g: 120, b: 190 }), // Periwinkle - colord({ r: 190, g: 170, b: 100 }), // Sand - colord({ r: 100, g: 180, b: 160 }), // Aquamarine - colord({ r: 210, g: 160, b: 200 }), // Orchid - colord({ r: 170, g: 190, b: 100 }), // Yellow Green - colord({ r: 100, g: 130, b: 150 }), // Steel Blue - colord({ r: 230, g: 140, b: 140 }), // Salmon - colord({ r: 140, g: 180, b: 220 }), // Light Blue - colord({ r: 200, g: 160, b: 110 }), // Tan - colord({ r: 180, g: 130, b: 180 }), // Plum - colord({ r: 130, g: 200, b: 130 }), // Light Sea Green - colord({ r: 220, g: 120, b: 120 }), // Coral - colord({ r: 120, g: 160, b: 200 }), // Cornflower Blue - colord({ r: 200, g: 200, b: 140 }), // Khaki - colord({ r: 160, g: 120, b: 160 }), // Purple Gray - colord({ r: 140, g: 180, b: 140 }), // Dark Sea Green - colord({ r: 200, g: 130, b: 110 }), // Dark Salmon - colord({ r: 130, g: 170, b: 190 }), // Cadet Blue - colord({ r: 190, g: 180, b: 160 }), // Tan Gray - colord({ r: 170, g: 140, b: 190 }), // Medium Purple - colord({ r: 160, g: 190, b: 160 }), // Pale Green - colord({ r: 190, g: 150, b: 130 }), // Rosy Brown - colord({ r: 140, g: 150, b: 180 }), // Light Slate Gray - colord({ r: 180, g: 170, b: 140 }), // Dark Khaki - colord({ r: 150, g: 130, b: 150 }), // Thistle - colord({ r: 170, g: 190, b: 180 }), // Pale Blue Green - colord({ r: 190, g: 140, b: 150 }), // Puce - colord({ r: 130, g: 180, b: 170 }), // Medium Aquamarine - colord({ r: 180, g: 160, b: 180 }), // Mauve - colord({ r: 160, g: 180, b: 140 }), // Dark Olive Green - colord({ r: 170, g: 150, b: 170 }), // Dusty Rose - colord({ r: 100, g: 180, b: 230 }), // Sky Blue - colord({ r: 230, g: 180, b: 80 }), // Golden Yellow - colord({ r: 180, g: 100, b: 230 }), // Purple - colord({ r: 80, g: 200, b: 120 }), // Emerald Green - colord({ r: 230, g: 130, b: 180 }), // Pink - colord({ r: 100, g: 160, b: 80 }), // Olive Green - colord({ r: 230, g: 150, b: 100 }), // Peach - colord({ r: 80, g: 130, b: 190 }), // Navy Blue - colord({ r: 210, g: 210, b: 100 }), // Lime Yellow - colord({ r: 190, g: 100, b: 130 }), // Maroon - colord({ r: 100, g: 210, b: 210 }), // Turquoise - colord({ r: 210, g: 140, b: 80 }), // Light Orange - colord({ r: 150, g: 110, b: 190 }), // Lavender - colord({ r: 180, g: 210, b: 120 }), // Light Green - colord({ r: 210, g: 100, b: 160 }), // Hot Pink - colord({ r: 100, g: 140, b: 110 }), // Sea Green - colord({ r: 230, g: 180, b: 180 }), // Light Pink - colord({ r: 120, g: 120, b: 190 }), // Periwinkle - colord({ r: 190, g: 170, b: 100 }), // Sand - colord({ r: 100, g: 180, b: 160 }), // Aquamarine - colord({ r: 210, g: 160, b: 200 }), // Orchid - colord({ r: 170, g: 190, b: 100 }), // Yellow Green - colord({ r: 100, g: 130, b: 150 }), // Steel Blue - colord({ r: 230, g: 140, b: 140 }), // Salmon - colord({ r: 140, g: 180, b: 220 }), // Light Blue - colord({ r: 200, g: 160, b: 110 }), // Tan - colord({ r: 180, g: 130, b: 180 }), // Plum - colord({ r: 130, g: 200, b: 130 }), // Light Sea Green - colord({ r: 220, g: 120, b: 120 }), // Coral - colord({ r: 120, g: 160, b: 200 }), // Cornflower Blue - colord({ r: 200, g: 200, b: 140 }), // Khaki - colord({ r: 160, g: 120, b: 160 }), // Purple Gray - colord({ r: 140, g: 180, b: 140 }), // Dark Sea Green - colord({ r: 200, g: 130, b: 110 }), // Dark Salmon - colord({ r: 130, g: 170, b: 190 }), // Cadet Blue - colord({ r: 190, g: 180, b: 160 }), // Tan Gray - colord({ r: 170, g: 140, b: 190 }), // Medium Purple - colord({ r: 160, g: 190, b: 160 }), // Pale Green - colord({ r: 190, g: 150, b: 130 }), // Rosy Brown - colord({ r: 140, g: 150, b: 180 }), // Light Slate Gray - colord({ r: 180, g: 170, b: 140 }), // Dark Khaki - colord({ r: 150, g: 130, b: 150 }), // Thistle - colord({ r: 170, g: 190, b: 180 }), // Pale Blue Green - colord({ r: 190, g: 140, b: 150 }), // Puce - colord({ r: 130, g: 180, b: 170 }), // Medium Aquamarine - colord({ r: 180, g: 160, b: 180 }), // Mauve - colord({ r: 160, g: 180, b: 140 }), // Dark Olive Green - colord({ r: 170, g: 150, b: 170 }), // Dusty Rose + colord("rgb(230,100,100)"), // Bright Red + colord("rgb(100,180,230)"), // Sky Blue + colord("rgb(230,180,80)"), // Golden Yellow + colord("rgb(180,100,230)"), // Purple + colord("rgb(80,200,120)"), // Emerald Green + colord("rgb(230,130,180)"), // Pink + colord("rgb(100,160,80)"), // Olive Green + colord("rgb(230,150,100)"), // Peach + colord("rgb(80,130,190)"), // Navy Blue + colord("rgb(210,210,100)"), // Lime Yellow + colord("rgb(190,100,130)"), // Maroon + colord("rgb(100,210,210)"), // Turquoise + colord("rgb(210,140,80)"), // Light Orange + colord("rgb(150,110,190)"), // Lavender + colord("rgb(180,210,120)"), // Light Green + colord("rgb(210,100,160)"), // Hot Pink + colord("rgb(100,140,110)"), // Sea Green + colord("rgb(230,180,180)"), // Light Pink + colord("rgb(120,120,190)"), // Periwinkle + colord("rgb(190,170,100)"), // Sand + colord("rgb(100,180,160)"), // Aquamarine + colord("rgb(210,160,200)"), // Orchid + colord("rgb(170,190,100)"), // Yellow Green + colord("rgb(100,130,150)"), // Steel Blue + colord("rgb(230,140,140)"), // Salmon + colord("rgb(140,180,220)"), // Light Blue + colord("rgb(200,160,110)"), // Tan + colord("rgb(180,130,180)"), // Plum + colord("rgb(130,200,130)"), // Light Sea Green + colord("rgb(220,120,120)"), // Coral + colord("rgb(120,160,200)"), // Cornflower Blue + colord("rgb(200,200,140)"), // Khaki + colord("rgb(160,120,160)"), // Purple Gray + colord("rgb(140,180,140)"), // Dark Sea Green + colord("rgb(200,130,110)"), // Dark Salmon + colord("rgb(130,170,190)"), // Cadet Blue + colord("rgb(190,180,160)"), // Tan Gray + colord("rgb(170,140,190)"), // Medium Purple + colord("rgb(160,190,160)"), // Pale Green + colord("rgb(190,150,130)"), // Rosy Brown + colord("rgb(140,150,180)"), // Light Slate Gray + colord("rgb(180,170,140)"), // Dark Khaki + colord("rgb(150,130,150)"), // Thistle + colord("rgb(170,190,180)"), // Pale Blue Green + colord("rgb(190,140,150)"), // Puce + colord("rgb(130,180,170)"), // Medium Aquamarine + colord("rgb(180,160,180)"), // Mauve + colord("rgb(160,180,140)"), // Dark Olive Green + colord("rgb(170,150,170)"), // Dusty Rose + colord("rgb(100,180,230)"), // Sky Blue + colord("rgb(230,180,80)"), // Golden Yellow + colord("rgb(180,100,230)"), // Purple + colord("rgb(80,200,120)"), // Emerald Green + colord("rgb(230,130,180)"), // Pink + colord("rgb(100,160,80)"), // Olive Green + colord("rgb(230,150,100)"), // Peach + colord("rgb(80,130,190)"), // Navy Blue + colord("rgb(210,210,100)"), // Lime Yellow + colord("rgb(190,100,130)"), // Maroon + colord("rgb(100,210,210)"), // Turquoise + colord("rgb(210,140,80)"), // Light Orange + colord("rgb(150,110,190)"), // Lavender + colord("rgb(180,210,120)"), // Light Green + colord("rgb(210,100,160)"), // Hot Pink + colord("rgb(100,140,110)"), // Sea Green + colord("rgb(230,180,180)"), // Light Pink + colord("rgb(120,120,190)"), // Periwinkle + colord("rgb(190,170,100)"), // Sand + colord("rgb(100,180,160)"), // Aquamarine + colord("rgb(210,160,200)"), // Orchid + colord("rgb(170,190,100)"), // Yellow Green + colord("rgb(100,130,150)"), // Steel Blue + colord("rgb(230,140,140)"), // Salmon + colord("rgb(140,180,220)"), // Light Blue + colord("rgb(200,160,110)"), // Tan + colord("rgb(180,130,180)"), // Plum + colord("rgb(130,200,130)"), // Light Sea Green + colord("rgb(220,120,120)"), // Coral + colord("rgb(120,160,200)"), // Cornflower Blue + colord("rgb(200,200,140)"), // Khaki + colord("rgb(160,120,160)"), // Purple Gray + colord("rgb(140,180,140)"), // Dark Sea Green + colord("rgb(200,130,110)"), // Dark Salmon + colord("rgb(130,170,190)"), // Cadet Blue + colord("rgb(190,180,160)"), // Tan Gray + colord("rgb(170,140,190)"), // Medium Purple + colord("rgb(160,190,160)"), // Pale Green + colord("rgb(190,150,130)"), // Rosy Brown + colord("rgb(140,150,180)"), // Light Slate Gray + colord("rgb(180,170,140)"), // Dark Khaki + colord("rgb(150,130,150)"), // Thistle + colord("rgb(170,190,180)"), // Pale Blue Green + colord("rgb(190,140,150)"), // Puce + colord("rgb(130,180,170)"), // Medium Aquamarine + colord("rgb(180,160,180)"), // Mauve + colord("rgb(160,180,140)"), // Dark Olive Green + colord("rgb(170,150,170)"), // Dusty Rose ]; // Bright pastel theme with 64 colors export const humanColors: Colord[] = [ - colord({ r: 16, g: 185, b: 129 }), // Sea Green - colord({ r: 34, g: 197, b: 94 }), // Emerald - colord({ r: 45, g: 212, b: 191 }), // Turquoise - colord({ r: 48, g: 178, b: 180 }), // Teal - colord({ r: 52, g: 211, b: 153 }), // Spearmint - colord({ r: 56, g: 189, b: 248 }), // Light Blue - colord({ r: 59, g: 130, b: 246 }), // Royal Blue - colord({ r: 67, g: 190, b: 84 }), // Fresh Green - colord({ r: 74, g: 222, b: 128 }), // Mint - colord({ r: 79, g: 70, b: 229 }), // Indigo - colord({ r: 82, g: 183, b: 136 }), // Jade - colord({ r: 96, g: 165, b: 250 }), // Sky Blue - colord({ r: 99, g: 202, b: 253 }), // Azure - colord({ r: 110, g: 231, b: 183 }), // Seafoam - colord({ r: 124, g: 58, b: 237 }), // Royal Purple - colord({ r: 125, g: 211, b: 252 }), // Crystal Blue - colord({ r: 132, g: 204, b: 22 }), // Lime - colord({ r: 133, g: 77, b: 14 }), // Chocolate - colord({ r: 134, g: 239, b: 172 }), // Light Green - colord({ r: 147, g: 51, b: 234 }), // Bright Purple - colord({ r: 147, g: 197, b: 253 }), // Powder Blue - colord({ r: 151, g: 255, b: 187 }), // Fresh Mint - colord({ r: 163, g: 230, b: 53 }), // Yellow Green - colord({ r: 167, g: 139, b: 250 }), // Periwinkle - colord({ r: 168, g: 85, b: 247 }), // Vibrant Purple - colord({ r: 179, g: 136, b: 255 }), // Light Purple - colord({ r: 186, g: 255, b: 201 }), // Pale Emerald - colord({ r: 190, g: 92, b: 251 }), // Amethyst - colord({ r: 192, g: 132, b: 252 }), // Lavender - colord({ r: 202, g: 138, b: 4 }), // Rich Gold - colord({ r: 202, g: 225, b: 255 }), // Baby Blue - colord({ r: 204, g: 204, b: 255 }), // Soft Lavender Blue - colord({ r: 217, g: 70, b: 239 }), // Fuchsia - colord({ r: 220, g: 38, b: 38 }), // Ruby - colord({ r: 220, g: 220, b: 255 }), // Meringue Blue - colord({ r: 220, g: 240, b: 250 }), // Ice Blue - colord({ r: 230, g: 250, b: 210 }), // Pastel Lime - colord({ r: 230, g: 255, b: 250 }), // Mint Whisper - colord({ r: 233, g: 213, b: 255 }), // Light Lilac - colord({ r: 234, g: 88, b: 12 }), // Burnt Orange - colord({ r: 234, g: 179, b: 8 }), // Sunflower - colord({ r: 235, g: 75, b: 75 }), // Bright Red - colord({ r: 236, g: 72, b: 153 }), // Deep Pink - colord({ r: 239, g: 68, b: 68 }), // Crimson - colord({ r: 240, g: 171, b: 252 }), // Orchid - colord({ r: 240, g: 240, b: 200 }), // Light Khaki - colord({ r: 244, g: 114, b: 182 }), // Rose - colord({ r: 245, g: 101, b: 101 }), // Coral - colord({ r: 245, g: 158, b: 11 }), // Amber - colord({ r: 248, g: 113, b: 113 }), // Warm Red - colord({ r: 249, g: 115, b: 22 }), // Tangerine - colord({ r: 250, g: 215, b: 225 }), // Cotton Candy - colord({ r: 250, g: 250, b: 210 }), // Pastel Lemon - colord({ r: 251, g: 113, b: 133 }), // Watermelon - colord({ r: 251, g: 146, b: 60 }), // Light Orange - colord({ r: 251, g: 191, b: 36 }), // Marigold - colord({ r: 251, g: 235, b: 245 }), // Rose Powder - colord({ r: 252, g: 165, b: 165 }), // Peach - colord({ r: 252, g: 211, b: 77 }), // Golden - colord({ r: 253, g: 164, b: 175 }), // Salmon Pink - colord({ r: 255, g: 204, b: 229 }), // Blush Pink - colord({ r: 255, g: 223, b: 186 }), // Apricot Cream - colord({ r: 255, g: 240, b: 200 }), // Vanilla + colord("rgb(16,185,129)"), // Sea Green + colord("rgb(34,197,94)"), // Emerald + colord("rgb(45,212,191)"), // Turquoise + colord("rgb(48,178,180)"), // Teal + colord("rgb(52,211,153)"), // Spearmint + colord("rgb(56,189,248)"), // Light Blue + colord("rgb(59,130,246)"), // Royal Blue + colord("rgb(67,190,84)"), // Fresh Green + colord("rgb(74,222,128)"), // Mint + colord("rgb(79,70,229)"), // Indigo + colord("rgb(82,183,136)"), // Jade + colord("rgb(96,165,250)"), // Sky Blue + colord("rgb(99,202,253)"), // Azure + colord("rgb(110,231,183)"), // Seafoam + colord("rgb(124,58,237)"), // Royal Purple + colord("rgb(125,211,252)"), // Crystal Blue + colord("rgb(132,204,22)"), // Lime + colord("rgb(133,77,14)"), // Chocolate + colord("rgb(134,239,172)"), // Light Green + colord("rgb(147,51,234)"), // Bright Purple + colord("rgb(147,197,253)"), // Powder Blue + colord("rgb(151,255,187)"), // Fresh Mint + colord("rgb(163,230,53)"), // Yellow Green + colord("rgb(167,139,250)"), // Periwinkle + colord("rgb(168,85,247)"), // Vibrant Purple + colord("rgb(179,136,255)"), // Light Purple + colord("rgb(186,255,201)"), // Pale Emerald + colord("rgb(190,92,251)"), // Amethyst + colord("rgb(192,132,252)"), // Lavender + colord("rgb(202,138,4)"), // Rich Gold + colord("rgb(202,225,255)"), // Baby Blue + colord("rgb(204,204,255)"), // Soft Lavender Blue + colord("rgb(217,70,239)"), // Fuchsia + colord("rgb(220,38,38)"), // Ruby + colord("rgb(220,220,255)"), // Meringue Blue + colord("rgb(220,240,250)"), // Ice Blue + colord("rgb(230,250,210)"), // Pastel Lime + colord("rgb(230,255,250)"), // Mint Whisper + colord("rgb(233,213,255)"), // Light Lilac + colord("rgb(234,88,12)"), // Burnt Orange + colord("rgb(234,179,8)"), // Sunflower + colord("rgb(235,75,75)"), // Bright Red + colord("rgb(236,72,153)"), // Deep Pink + colord("rgb(239,68,68)"), // Crimson + colord("rgb(240,171,252)"), // Orchid + colord("rgb(240,240,200)"), // Light Khaki + colord("rgb(244,114,182)"), // Rose + colord("rgb(245,101,101)"), // Coral + colord("rgb(245,158,11)"), // Amber + colord("rgb(248,113,113)"), // Warm Red + colord("rgb(249,115,22)"), // Tangerine + colord("rgb(250,215,225)"), // Cotton Candy + colord("rgb(250,250,210)"), // Pastel Lemon + colord("rgb(251,113,133)"), // Watermelon + colord("rgb(251,146,60)"), // Light Orange + colord("rgb(251,191,36)"), // Marigold + colord("rgb(251,235,245)"), // Rose Powder + colord("rgb(252,165,165)"), // Peach + colord("rgb(252,211,77)"), // Golden + colord("rgb(253,164,175)"), // Salmon Pink + colord("rgb(255,204,229)"), // Blush Pink + colord("rgb(255,223,186)"), // Apricot Cream + colord("rgb(255,240,200)"), // Vanilla ]; export const botColors: Colord[] = [ - colord({ r: 190, g: 120, b: 120 }), // Muted Red - colord({ r: 120, g: 160, b: 190 }), // Muted Sky Blue - colord({ r: 190, g: 160, b: 100 }), // Muted Golden Yellow - colord({ r: 160, g: 120, b: 190 }), // Muted Purple - colord({ r: 100, g: 170, b: 130 }), // Muted Emerald Green - colord({ r: 190, g: 130, b: 160 }), // Muted Pink - colord({ r: 120, g: 150, b: 100 }), // Muted Olive Green - colord({ r: 190, g: 140, b: 120 }), // Muted Peach - colord({ r: 100, g: 120, b: 160 }), // Muted Navy Blue - colord({ r: 170, g: 170, b: 120 }), // Muted Lime Yellow - colord({ r: 160, g: 120, b: 130 }), // Muted Maroon - colord({ r: 120, g: 170, b: 170 }), // Muted Turquoise - colord({ r: 170, g: 140, b: 100 }), // Muted Light Orange - colord({ r: 140, g: 120, b: 160 }), // Muted Lavender - colord({ r: 150, g: 170, b: 130 }), // Muted Light Green - colord({ r: 170, g: 120, b: 140 }), // Muted Hot Pink - colord({ r: 120, g: 140, b: 120 }), // Muted Sea Green - colord({ r: 180, g: 160, b: 160 }), // Muted Light Pink - colord({ r: 130, g: 130, b: 160 }), // Muted Periwinkle - colord({ r: 160, g: 150, b: 120 }), // Muted Sand - colord({ r: 120, g: 160, b: 150 }), // Muted Aquamarine - colord({ r: 170, g: 150, b: 170 }), // Muted Orchid - colord({ r: 150, g: 160, b: 120 }), // Muted Yellow Green - colord({ r: 120, g: 130, b: 140 }), // Muted Steel Blue - colord({ r: 180, g: 140, b: 140 }), // Muted Salmon - colord({ r: 140, g: 160, b: 170 }), // Muted Light Blue - colord({ r: 170, g: 150, b: 130 }), // Muted Tan - colord({ r: 160, g: 130, b: 160 }), // Muted Plum - colord({ r: 130, g: 170, b: 130 }), // Muted Light Sea Green - colord({ r: 170, g: 130, b: 130 }), // Muted Coral - colord({ r: 130, g: 150, b: 170 }), // Muted Cornflower Blue - colord({ r: 170, g: 170, b: 140 }), // Muted Khaki - colord({ r: 150, g: 130, b: 150 }), // Muted Purple Gray - colord({ r: 140, g: 160, b: 140 }), // Muted Dark Sea Green - colord({ r: 170, g: 130, b: 120 }), // Muted Dark Salmon - colord({ r: 130, g: 150, b: 160 }), // Muted Cadet Blue - colord({ r: 160, g: 160, b: 150 }), // Muted Tan Gray - colord({ r: 150, g: 140, b: 160 }), // Muted Medium Purple - colord({ r: 150, g: 170, b: 150 }), // Muted Pale Green - colord({ r: 160, g: 140, b: 130 }), // Muted Rosy Brown - colord({ r: 140, g: 150, b: 160 }), // Muted Light Slate Gray - colord({ r: 160, g: 150, b: 140 }), // Muted Dark Khaki - colord({ r: 140, g: 130, b: 140 }), // Muted Thistle - colord({ r: 150, g: 160, b: 160 }), // Muted Pale Blue Green - colord({ r: 160, g: 140, b: 150 }), // Muted Puce - colord({ r: 130, g: 160, b: 150 }), // Muted Medium Aquamarine - colord({ r: 160, g: 150, b: 160 }), // Muted Mauve - colord({ r: 150, g: 160, b: 140 }), // Muted Dark Olive Green - colord({ r: 150, g: 140, b: 150 }), // Muted Dusty Rose + colord("rgb(190,120,120)"), // Muted Red + colord("rgb(120,160,190)"), // Muted Sky Blue + colord("rgb(190,160,100)"), // Muted Golden Yellow + colord("rgb(160,120,190)"), // Muted Purple + colord("rgb(100,170,130)"), // Muted Emerald Green + colord("rgb(190,130,160)"), // Muted Pink + colord("rgb(120,150,100)"), // Muted Olive Green + colord("rgb(190,140,120)"), // Muted Peach + colord("rgb(100,120,160)"), // Muted Navy Blue + colord("rgb(170,170,120)"), // Muted Lime Yellow + colord("rgb(160,120,130)"), // Muted Maroon + colord("rgb(120,170,170)"), // Muted Turquoise + colord("rgb(170,140,100)"), // Muted Light Orange + colord("rgb(140,120,160)"), // Muted Lavender + colord("rgb(150,170,130)"), // Muted Light Green + colord("rgb(170,120,140)"), // Muted Hot Pink + colord("rgb(120,140,120)"), // Muted Sea Green + colord("rgb(180,160,160)"), // Muted Light Pink + colord("rgb(130,130,160)"), // Muted Periwinkle + colord("rgb(160,150,120)"), // Muted Sand + colord("rgb(120,160,150)"), // Muted Aquamarine + colord("rgb(170,150,170)"), // Muted Orchid + colord("rgb(150,160,120)"), // Muted Yellow Green + colord("rgb(120,130,140)"), // Muted Steel Blue + colord("rgb(180,140,140)"), // Muted Salmon + colord("rgb(140,160,170)"), // Muted Light Blue + colord("rgb(170,150,130)"), // Muted Tan + colord("rgb(160,130,160)"), // Muted Plum + colord("rgb(130,170,130)"), // Muted Light Sea Green + colord("rgb(170,130,130)"), // Muted Coral + colord("rgb(130,150,170)"), // Muted Cornflower Blue + colord("rgb(170,170,140)"), // Muted Khaki + colord("rgb(150,130,150)"), // Muted Purple Gray + colord("rgb(140,160,140)"), // Muted Dark Sea Green + colord("rgb(170,130,120)"), // Muted Dark Salmon + colord("rgb(130,150,160)"), // Muted Cadet Blue + colord("rgb(160,160,150)"), // Muted Tan Gray + colord("rgb(150,140,160)"), // Muted Medium Purple + colord("rgb(150,170,150)"), // Muted Pale Green + colord("rgb(160,140,130)"), // Muted Rosy Brown + colord("rgb(140,150,160)"), // Muted Light Slate Gray + colord("rgb(160,150,140)"), // Muted Dark Khaki + colord("rgb(140,130,140)"), // Muted Thistle + colord("rgb(150,160,160)"), // Muted Pale Blue Green + colord("rgb(160,140,150)"), // Muted Puce + colord("rgb(130,160,150)"), // Muted Medium Aquamarine + colord("rgb(160,150,160)"), // Muted Mauve + colord("rgb(150,160,140)"), // Muted Dark Olive Green + colord("rgb(150,140,150)"), // Muted Dusty Rose ]; -// Fallback colors for when the color palette is exhausted. Currently 100 colors. +// Fallback colors for when the color palette is exhausted. export const fallbackColors: Colord[] = [ - colord({ r: 35, g: 0, b: 0 }), - colord({ r: 45, g: 0, b: 0 }), - colord({ r: 55, g: 0, b: 0 }), - colord({ r: 65, g: 0, b: 0 }), - colord({ r: 75, g: 0, b: 0 }), - colord({ r: 85, g: 0, b: 0 }), - colord({ r: 95, g: 0, b: 0 }), - colord({ r: 105, g: 0, b: 0 }), - colord({ r: 115, g: 0, b: 0 }), - colord({ r: 125, g: 0, b: 0 }), - colord({ r: 135, g: 0, b: 0 }), - colord({ r: 145, g: 0, b: 0 }), - colord({ r: 155, g: 0, b: 0 }), - colord({ r: 165, g: 0, b: 0 }), - colord({ r: 175, g: 0, b: 0 }), - colord({ r: 185, g: 0, b: 0 }), - colord({ r: 195, g: 0, b: 5 }), - colord({ r: 205, g: 0, b: 10 }), - colord({ r: 215, g: 0, b: 15 }), - colord({ r: 225, g: 0, b: 20 }), - colord({ r: 235, g: 0, b: 25 }), - colord({ r: 245, g: 0, b: 30 }), - colord({ r: 255, g: 0, b: 35 }), - colord({ r: 255, g: 10, b: 45 }), - colord({ r: 255, g: 20, b: 55 }), - colord({ r: 255, g: 30, b: 65 }), - colord({ r: 255, g: 40, b: 75 }), - colord({ r: 255, g: 50, b: 85 }), - colord({ r: 255, g: 60, b: 95 }), - colord({ r: 255, g: 70, b: 105 }), - colord({ r: 255, g: 80, b: 115 }), - colord({ r: 255, g: 90, b: 125 }), - colord({ r: 255, g: 100, b: 135 }), - colord({ r: 255, g: 110, b: 145 }), - colord({ r: 255, g: 120, b: 155 }), - colord({ r: 255, g: 130, b: 165 }), - colord({ r: 255, g: 140, b: 175 }), - colord({ r: 255, g: 150, b: 185 }), - colord({ r: 255, g: 160, b: 195 }), - colord({ r: 255, g: 170, b: 205 }), - colord({ r: 255, g: 180, b: 215 }), - colord({ r: 255, g: 190, b: 225 }), - colord({ r: 255, g: 200, b: 235 }), - colord({ r: 0, g: 45, b: 0 }), - colord({ r: 0, g: 55, b: 0 }), - colord({ r: 0, g: 65, b: 0 }), - colord({ r: 0, g: 75, b: 0 }), - colord({ r: 0, g: 85, b: 0 }), - colord({ r: 0, g: 95, b: 0 }), - colord({ r: 0, g: 105, b: 0 }), - colord({ r: 0, g: 115, b: 0 }), - colord({ r: 0, g: 125, b: 0 }), - colord({ r: 0, g: 135, b: 0 }), - colord({ r: 0, g: 145, b: 0 }), - colord({ r: 0, g: 155, b: 0 }), - colord({ r: 0, g: 165, b: 0 }), - colord({ r: 0, g: 175, b: 0 }), - colord({ r: 0, g: 185, b: 0 }), - colord({ r: 0, g: 195, b: 5 }), - colord({ r: 0, g: 205, b: 10 }), - colord({ r: 0, g: 215, b: 15 }), - colord({ r: 0, g: 225, b: 20 }), - colord({ r: 0, g: 235, b: 25 }), - colord({ r: 0, g: 245, b: 30 }), - colord({ r: 0, g: 255, b: 35 }), - colord({ r: 10, g: 255, b: 45 }), - colord({ r: 20, g: 255, b: 55 }), - colord({ r: 30, g: 255, b: 65 }), - colord({ r: 40, g: 255, b: 75 }), - colord({ r: 50, g: 255, b: 85 }), - colord({ r: 60, g: 255, b: 95 }), - colord({ r: 70, g: 255, b: 105 }), - colord({ r: 80, g: 255, b: 115 }), - colord({ r: 90, g: 255, b: 125 }), - colord({ r: 100, g: 255, b: 135 }), - colord({ r: 110, g: 255, b: 145 }), - colord({ r: 120, g: 255, b: 155 }), - colord({ r: 130, g: 255, b: 165 }), - colord({ r: 140, g: 255, b: 175 }), - colord({ r: 150, g: 255, b: 185 }), - colord({ r: 160, g: 255, b: 195 }), - colord({ r: 170, g: 255, b: 205 }), - colord({ r: 180, g: 255, b: 215 }), - colord({ r: 190, g: 255, b: 225 }), - colord({ r: 200, g: 255, b: 235 }), - colord({ r: 0, g: 0, b: 35 }), - colord({ r: 0, g: 0, b: 45 }), - colord({ r: 0, g: 0, b: 55 }), - colord({ r: 0, g: 0, b: 65 }), - colord({ r: 0, g: 0, b: 75 }), - colord({ r: 0, g: 0, b: 85 }), - colord({ r: 0, g: 0, b: 95 }), - colord({ r: 0, g: 0, b: 105 }), - colord({ r: 0, g: 0, b: 115 }), - colord({ r: 0, g: 0, b: 125 }), - colord({ r: 0, g: 0, b: 135 }), - colord({ r: 0, g: 0, b: 145 }), - colord({ r: 0, g: 0, b: 155 }), - colord({ r: 0, g: 0, b: 165 }), - colord({ r: 0, g: 0, b: 175 }), - colord({ r: 0, g: 0, b: 185 }), - colord({ r: 5, g: 0, b: 195 }), - colord({ r: 10, g: 0, b: 205 }), - colord({ r: 15, g: 0, b: 215 }), - colord({ r: 20, g: 0, b: 225 }), - colord({ r: 25, g: 0, b: 235 }), - colord({ r: 30, g: 0, b: 245 }), - colord({ r: 35, g: 0, b: 255 }), - colord({ r: 45, g: 10, b: 255 }), - colord({ r: 55, g: 20, b: 255 }), - colord({ r: 65, g: 30, b: 255 }), - colord({ r: 75, g: 40, b: 255 }), - colord({ r: 85, g: 50, b: 255 }), - colord({ r: 95, g: 60, b: 255 }), - colord({ r: 105, g: 70, b: 255 }), - colord({ r: 115, g: 80, b: 255 }), - colord({ r: 125, g: 90, b: 255 }), - colord({ r: 135, g: 100, b: 255 }), - colord({ r: 145, g: 110, b: 255 }), - colord({ r: 155, g: 120, b: 255 }), - colord({ r: 165, g: 130, b: 255 }), - colord({ r: 175, g: 140, b: 255 }), - colord({ r: 185, g: 150, b: 255 }), - colord({ r: 195, g: 160, b: 255 }), - colord({ r: 205, g: 170, b: 255 }), - colord({ r: 215, g: 180, b: 255 }), - colord({ r: 225, g: 190, b: 255 }), - colord({ r: 235, g: 200, b: 255 }), - colord({ r: 35, g: 0, b: 35 }), - colord({ r: 45, g: 0, b: 45 }), - colord({ r: 55, g: 0, b: 55 }), - colord({ r: 65, g: 0, b: 65 }), - colord({ r: 75, g: 0, b: 75 }), - colord({ r: 85, g: 0, b: 85 }), - colord({ r: 95, g: 0, b: 95 }), - colord({ r: 105, g: 0, b: 105 }), - colord({ r: 115, g: 0, b: 115 }), - colord({ r: 125, g: 0, b: 125 }), - colord({ r: 135, g: 0, b: 135 }), - colord({ r: 145, g: 0, b: 145 }), - colord({ r: 155, g: 0, b: 155 }), - colord({ r: 165, g: 0, b: 165 }), - colord({ r: 175, g: 0, b: 175 }), - colord({ r: 185, g: 0, b: 185 }), - colord({ r: 195, g: 5, b: 195 }), - colord({ r: 205, g: 10, b: 205 }), - colord({ r: 215, g: 15, b: 215 }), - colord({ r: 225, g: 20, b: 225 }), - colord({ r: 235, g: 25, b: 235 }), - colord({ r: 245, g: 30, b: 245 }), - colord({ r: 255, g: 35, b: 255 }), - colord({ r: 255, g: 45, b: 255 }), - colord({ r: 255, g: 55, b: 255 }), - colord({ r: 255, g: 65, b: 255 }), - colord({ r: 255, g: 75, b: 255 }), - colord({ r: 255, g: 85, b: 255 }), - colord({ r: 255, g: 95, b: 255 }), - colord({ r: 255, g: 105, b: 255 }), - colord({ r: 255, g: 115, b: 255 }), - colord({ r: 255, g: 125, b: 255 }), - colord({ r: 255, g: 135, b: 255 }), - colord({ r: 255, g: 145, b: 255 }), - colord({ r: 255, g: 155, b: 255 }), - colord({ r: 255, g: 165, b: 255 }), - colord({ r: 255, g: 175, b: 255 }), - colord({ r: 255, g: 185, b: 255 }), - colord({ r: 255, g: 195, b: 255 }), - colord({ r: 255, g: 205, b: 255 }), - colord({ r: 255, g: 215, b: 255 }), - colord({ r: 0, g: 35, b: 35 }), - colord({ r: 0, g: 45, b: 45 }), - colord({ r: 0, g: 55, b: 55 }), - colord({ r: 0, g: 65, b: 65 }), - colord({ r: 0, g: 75, b: 75 }), - colord({ r: 0, g: 85, b: 85 }), - colord({ r: 0, g: 95, b: 95 }), - colord({ r: 0, g: 105, b: 105 }), - colord({ r: 0, g: 115, b: 115 }), - colord({ r: 0, g: 125, b: 125 }), - colord({ r: 0, g: 135, b: 135 }), - colord({ r: 0, g: 145, b: 145 }), - colord({ r: 0, g: 155, b: 155 }), - colord({ r: 0, g: 165, b: 165 }), - colord({ r: 0, g: 175, b: 175 }), - colord({ r: 0, g: 185, b: 185 }), - colord({ r: 5, g: 195, b: 195 }), - colord({ r: 10, g: 205, b: 205 }), - colord({ r: 15, g: 215, b: 215 }), - colord({ r: 20, g: 225, b: 225 }), - colord({ r: 25, g: 235, b: 235 }), - colord({ r: 30, g: 245, b: 245 }), - colord({ r: 35, g: 255, b: 255 }), - colord({ r: 45, g: 255, b: 255 }), - colord({ r: 55, g: 255, b: 255 }), - colord({ r: 65, g: 255, b: 255 }), - colord({ r: 75, g: 255, b: 255 }), - colord({ r: 85, g: 255, b: 255 }), - colord({ r: 95, g: 255, b: 255 }), - colord({ r: 105, g: 255, b: 255 }), - colord({ r: 115, g: 255, b: 255 }), - colord({ r: 125, g: 255, b: 255 }), - colord({ r: 135, g: 255, b: 255 }), - colord({ r: 145, g: 255, b: 255 }), - colord({ r: 155, g: 255, b: 255 }), - colord({ r: 165, g: 255, b: 255 }), - colord({ r: 175, g: 255, b: 255 }), - colord({ r: 185, g: 255, b: 255 }), - colord({ r: 195, g: 255, b: 255 }), - colord({ r: 205, g: 255, b: 255 }), - colord({ r: 215, g: 255, b: 255 }), - colord({ r: 35, g: 35, b: 0 }), - colord({ r: 45, g: 45, b: 0 }), - colord({ r: 55, g: 55, b: 0 }), - colord({ r: 65, g: 65, b: 0 }), - colord({ r: 75, g: 75, b: 0 }), - colord({ r: 85, g: 85, b: 0 }), - colord({ r: 95, g: 95, b: 0 }), - colord({ r: 105, g: 105, b: 0 }), - colord({ r: 115, g: 115, b: 0 }), - colord({ r: 125, g: 125, b: 0 }), - colord({ r: 135, g: 135, b: 0 }), - colord({ r: 145, g: 145, b: 0 }), - colord({ r: 155, g: 155, b: 0 }), - colord({ r: 165, g: 165, b: 0 }), - colord({ r: 175, g: 175, b: 0 }), - colord({ r: 185, g: 185, b: 0 }), - colord({ r: 195, g: 195, b: 5 }), - colord({ r: 205, g: 205, b: 10 }), - colord({ r: 215, g: 215, b: 15 }), - colord({ r: 225, g: 225, b: 20 }), - colord({ r: 235, g: 235, b: 25 }), - colord({ r: 245, g: 245, b: 30 }), - colord({ r: 255, g: 255, b: 35 }), - colord({ r: 255, g: 255, b: 45 }), - colord({ r: 255, g: 255, b: 55 }), - colord({ r: 255, g: 255, b: 65 }), - colord({ r: 255, g: 255, b: 75 }), - colord({ r: 255, g: 255, b: 85 }), - colord({ r: 255, g: 255, b: 95 }), - colord({ r: 255, g: 255, b: 105 }), - colord({ r: 255, g: 255, b: 115 }), - colord({ r: 255, g: 255, b: 125 }), - colord({ r: 255, g: 255, b: 135 }), - colord({ r: 255, g: 255, b: 145 }), - colord({ r: 255, g: 255, b: 155 }), - colord({ r: 255, g: 255, b: 165 }), - colord({ r: 255, g: 255, b: 175 }), - colord({ r: 255, g: 255, b: 185 }), - colord({ r: 255, g: 255, b: 195 }), - colord({ r: 255, g: 255, b: 205 }), - colord({ r: 255, g: 255, b: 215 }), - colord({ r: 215, g: 255, b: 200 }), // Fresh Mint - colord({ r: 225, g: 255, b: 175 }), // Soft Lime - colord({ r: 240, g: 250, b: 160 }), // Citrus Wash - colord({ r: 245, g: 245, b: 175 }), // Lemon Mist - colord({ r: 150, g: 200, b: 255 }), // Cornflower Mist - colord({ r: 160, g: 215, b: 255 }), // Powder Blue - colord({ r: 170, g: 225, b: 255 }), // Baby Sky - colord({ r: 180, g: 235, b: 250 }), // Aqua Pastel - colord({ r: 190, g: 245, b: 240 }), // Ice Mint - colord({ r: 210, g: 255, b: 245 }), // Sea Mist - colord({ r: 220, g: 255, b: 255 }), // Pale Aqua - colord({ r: 230, g: 250, b: 255 }), // Sky Haze - colord({ r: 240, g: 240, b: 255 }), // Frosted Lilac - colord({ r: 250, g: 230, b: 255 }), // Misty Mauve - colord({ r: 170, g: 190, b: 255 }), // Periwinkle Ice - colord({ r: 180, g: 180, b: 255 }), // Pale Indigo - colord({ r: 200, g: 170, b: 255 }), // Lilac Bloom - colord({ r: 190, g: 140, b: 195 }), // Fuchsia Tint - colord({ r: 195, g: 145, b: 200 }), // Dusky Rose - colord({ r: 200, g: 150, b: 205 }), // Plum Frost - colord({ r: 205, g: 155, b: 210 }), // Berry Foam - colord({ r: 210, g: 160, b: 215 }), // Grape Cloud - colord({ r: 215, g: 165, b: 220 }), // Light Bloom - colord({ r: 220, g: 170, b: 225 }), // Cherry Blossom - colord({ r: 225, g: 175, b: 230 }), // Faded Rose - colord({ r: 230, g: 180, b: 235 }), // Dreamy Mauve - colord({ r: 235, g: 185, b: 240 }), // Powder Violet - colord({ r: 240, g: 190, b: 245 }), // Pastel Violet - colord({ r: 245, g: 195, b: 250 }), // Soft Magenta - colord({ r: 250, g: 200, b: 255 }), // Lilac Cream - colord({ r: 255, g: 205, b: 255 }), // Violet Bloom - colord({ r: 255, g: 210, b: 255 }), // Orchid Mist - colord({ r: 255, g: 210, b: 250 }), // Lavender Mist - colord({ r: 255, g: 205, b: 245 }), // Pastel Orchid - colord({ r: 255, g: 215, b: 245 }), // Rose Whisper - colord({ r: 220, g: 160, b: 255 }), // Violet Mist - colord({ r: 235, g: 150, b: 255 }), // Orchid Glow - colord({ r: 245, g: 160, b: 240 }), // Rose Lilac - colord({ r: 255, g: 170, b: 225 }), // Bubblegum Pink - colord({ r: 255, g: 185, b: 215 }), // Blush Mist - colord({ r: 255, g: 195, b: 235 }), // Faded Fuchsia - colord({ r: 255, g: 200, b: 220 }), // Cotton Rose - colord({ r: 255, g: 210, b: 230 }), // Pastel Blush - colord({ r: 255, g: 220, b: 235 }), // Pink Mist - colord({ r: 255, g: 220, b: 250 }), // Powder Petal - colord({ r: 255, g: 225, b: 255 }), // Petal Mist - colord({ r: 255, g: 230, b: 245 }), // Light Rose - colord({ r: 255, g: 235, b: 235 }), // Blushed Petal - colord({ r: 255, g: 215, b: 195 }), // Apricot Glow - colord({ r: 255, g: 225, b: 180 }), // Butter Peach - colord({ r: 255, g: 230, b: 190 }), - colord({ r: 255, g: 235, b: 200 }), // Cream Peach - colord({ r: 255, g: 245, b: 210 }), // Soft Banana - colord({ r: 255, g: 240, b: 220 }), // Pastel Sand + colord("rgb(35,0,0)"), + colord("rgb(45,0,0)"), + colord("rgb(55,0,0)"), + colord("rgb(65,0,0)"), + colord("rgb(75,0,0)"), + colord("rgb(85,0,0)"), + colord("rgb(95,0,0)"), + colord("rgb(105,0,0)"), + colord("rgb(115,0,0)"), + colord("rgb(125,0,0)"), + colord("rgb(135,0,0)"), + colord("rgb(145,0,0)"), + colord("rgb(155,0,0)"), + colord("rgb(165,0,0)"), + colord("rgb(175,0,0)"), + colord("rgb(185,0,0)"), + colord("rgb(195,0,5)"), + colord("rgb(205,0,10)"), + colord("rgb(215,0,15)"), + colord("rgb(225,0,20)"), + colord("rgb(235,0,25)"), + colord("rgb(245,0,30)"), + colord("rgb(255,0,35)"), + colord("rgb(255,10,45)"), + colord("rgb(255,20,55)"), + colord("rgb(255,30,65)"), + colord("rgb(255,40,75)"), + colord("rgb(255,50,85)"), + colord("rgb(255,60,95)"), + colord("rgb(255,70,105)"), + colord("rgb(255,80,115)"), + colord("rgb(255,90,125)"), + colord("rgb(255,100,135)"), + colord("rgb(255,110,145)"), + colord("rgb(255,120,155)"), + colord("rgb(255,130,165)"), + colord("rgb(255,140,175)"), + colord("rgb(255,150,185)"), + colord("rgb(255,160,195)"), + colord("rgb(255,170,205)"), + colord("rgb(255,180,215)"), + colord("rgb(255,190,225)"), + colord("rgb(255,200,235)"), + colord("rgb(0,45,0)"), + colord("rgb(0,55,0)"), + colord("rgb(0,65,0)"), + colord("rgb(0,75,0)"), + colord("rgb(0,85,0)"), + colord("rgb(0,95,0)"), + colord("rgb(0,105,0)"), + colord("rgb(0,115,0)"), + colord("rgb(0,125,0)"), + colord("rgb(0,135,0)"), + colord("rgb(0,145,0)"), + colord("rgb(0,155,0)"), + colord("rgb(0,165,0)"), + colord("rgb(0,175,0)"), + colord("rgb(0,185,0)"), + colord("rgb(0,195,5)"), + colord("rgb(0,205,10)"), + colord("rgb(0,215,15)"), + colord("rgb(0,225,20)"), + colord("rgb(0,235,25)"), + colord("rgb(0,245,30)"), + colord("rgb(0,255,35)"), + colord("rgb(10,255,45)"), + colord("rgb(20,255,55)"), + colord("rgb(30,255,65)"), + colord("rgb(40,255,75)"), + colord("rgb(50,255,85)"), + colord("rgb(60,255,95)"), + colord("rgb(70,255,105)"), + colord("rgb(80,255,115)"), + colord("rgb(90,255,125)"), + colord("rgb(100,255,135)"), + colord("rgb(110,255,145)"), + colord("rgb(120,255,155)"), + colord("rgb(130,255,165)"), + colord("rgb(140,255,175)"), + colord("rgb(150,255,185)"), + colord("rgb(160,255,195)"), + colord("rgb(170,255,205)"), + colord("rgb(180,255,215)"), + colord("rgb(190,255,225)"), + colord("rgb(200,255,235)"), + colord("rgb(0,0,35)"), + colord("rgb(0,0,45)"), + colord("rgb(0,0,55)"), + colord("rgb(0,0,65)"), + colord("rgb(0,0,75)"), + colord("rgb(0,0,85)"), + colord("rgb(0,0,95)"), + colord("rgb(0,0,105)"), + colord("rgb(0,0,115)"), + colord("rgb(0,0,125)"), + colord("rgb(0,0,135)"), + colord("rgb(0,0,145)"), + colord("rgb(0,0,155)"), + colord("rgb(0,0,165)"), + colord("rgb(0,0,175)"), + colord("rgb(0,0,185)"), + colord("rgb(5,0,195)"), + colord("rgb(10,0,205)"), + colord("rgb(15,0,215)"), + colord("rgb(20,0,225)"), + colord("rgb(25,0,235)"), + colord("rgb(30,0,245)"), + colord("rgb(35,0,255)"), + colord("rgb(45,10,255)"), + colord("rgb(55,20,255)"), + colord("rgb(65,30,255)"), + colord("rgb(75,40,255)"), + colord("rgb(85,50,255)"), + colord("rgb(95,60,255)"), + colord("rgb(105,70,255)"), + colord("rgb(115,80,255)"), + colord("rgb(125,90,255)"), + colord("rgb(135,100,255)"), + colord("rgb(145,110,255)"), + colord("rgb(155,120,255)"), + colord("rgb(165,130,255)"), + colord("rgb(175,140,255)"), + colord("rgb(185,150,255)"), + colord("rgb(195,160,255)"), + colord("rgb(205,170,255)"), + colord("rgb(215,180,255)"), + colord("rgb(225,190,255)"), + colord("rgb(235,200,255)"), + colord("rgb(35,0,35)"), + colord("rgb(45,0,45)"), + colord("rgb(55,0,55)"), + colord("rgb(65,0,65)"), + colord("rgb(75,0,75)"), + colord("rgb(85,0,85)"), + colord("rgb(95,0,95)"), + colord("rgb(105,0,105)"), + colord("rgb(115,0,115)"), + colord("rgb(125,0,125)"), + colord("rgb(135,0,135)"), + colord("rgb(145,0,145)"), + colord("rgb(155,0,155)"), + colord("rgb(165,0,165)"), + colord("rgb(175,0,175)"), + colord("rgb(185,0,185)"), + colord("rgb(195,5,195)"), + colord("rgb(205,10,205)"), + colord("rgb(215,15,215)"), + colord("rgb(225,20,225)"), + colord("rgb(235,25,235)"), + colord("rgb(245,30,245)"), + colord("rgb(255,35,255)"), + colord("rgb(255,45,255)"), + colord("rgb(255,55,255)"), + colord("rgb(255,65,255)"), + colord("rgb(255,75,255)"), + colord("rgb(255,85,255)"), + colord("rgb(255,95,255)"), + colord("rgb(255,105,255)"), + colord("rgb(255,115,255)"), + colord("rgb(255,125,255)"), + colord("rgb(255,135,255)"), + colord("rgb(255,145,255)"), + colord("rgb(255,155,255)"), + colord("rgb(255,165,255)"), + colord("rgb(255,175,255)"), + colord("rgb(255,185,255)"), + colord("rgb(255,195,255)"), + colord("rgb(255,205,255)"), + colord("rgb(255,215,255)"), + colord("rgb(0,35,35)"), + colord("rgb(0,45,45)"), + colord("rgb(0,55,55)"), + colord("rgb(0,65,65)"), + colord("rgb(0,75,75)"), + colord("rgb(0,85,85)"), + colord("rgb(0,95,95)"), + colord("rgb(0,105,105)"), + colord("rgb(0,115,115)"), + colord("rgb(0,125,125)"), + colord("rgb(0,135,135)"), + colord("rgb(0,145,145)"), + colord("rgb(0,155,155)"), + colord("rgb(0,165,165)"), + colord("rgb(0,175,175)"), + colord("rgb(0,185,185)"), + colord("rgb(5,195,195)"), + colord("rgb(10,205,205)"), + colord("rgb(15,215,215)"), + colord("rgb(20,225,225)"), + colord("rgb(25,235,235)"), + colord("rgb(30,245,245)"), + colord("rgb(35,255,255)"), + colord("rgb(45,255,255)"), + colord("rgb(55,255,255)"), + colord("rgb(65,255,255)"), + colord("rgb(75,255,255)"), + colord("rgb(85,255,255)"), + colord("rgb(95,255,255)"), + colord("rgb(105,255,255)"), + colord("rgb(115,255,255)"), + colord("rgb(125,255,255)"), + colord("rgb(135,255,255)"), + colord("rgb(145,255,255)"), + colord("rgb(155,255,255)"), + colord("rgb(165,255,255)"), + colord("rgb(175,255,255)"), + colord("rgb(185,255,255)"), + colord("rgb(195,255,255)"), + colord("rgb(205,255,255)"), + colord("rgb(215,255,255)"), + colord("rgb(35,35,0)"), + colord("rgb(45,45,0)"), + colord("rgb(55,55,0)"), + colord("rgb(65,65,0)"), + colord("rgb(75,75,0)"), + colord("rgb(85,85,0)"), + colord("rgb(95,95,0)"), + colord("rgb(105,105,0)"), + colord("rgb(115,115,0)"), + colord("rgb(125,125,0)"), + colord("rgb(135,135,0)"), + colord("rgb(145,145,0)"), + colord("rgb(155,155,0)"), + colord("rgb(165,165,0)"), + colord("rgb(175,175,0)"), + colord("rgb(185,185,0)"), + colord("rgb(195,195,5)"), + colord("rgb(205,205,10)"), + colord("rgb(215,215,15)"), + colord("rgb(225,225,20)"), + colord("rgb(235,235,25)"), + colord("rgb(245,245,30)"), + colord("rgb(255,255,35)"), + colord("rgb(255,255,45)"), + colord("rgb(255,255,55)"), + colord("rgb(255,255,65)"), + colord("rgb(255,255,75)"), + colord("rgb(255,255,85)"), + colord("rgb(255,255,95)"), + colord("rgb(255,255,105)"), + colord("rgb(255,255,115)"), + colord("rgb(255,255,125)"), + colord("rgb(255,255,135)"), + colord("rgb(255,255,145)"), + colord("rgb(255,255,155)"), + colord("rgb(255,255,165)"), + colord("rgb(255,255,175)"), + colord("rgb(255,255,185)"), + colord("rgb(255,255,195)"), + colord("rgb(255,255,205)"), + colord("rgb(255,255,215)"), + colord("rgb(215,255,200)"), // Fresh Mint + colord("rgb(225,255,175)"), // Soft Lime + colord("rgb(240,250,160)"), // Citrus Wash + colord("rgb(245,245,175)"), // Lemon Mist + colord("rgb(150,200,255)"), // Cornflower Mist + colord("rgb(160,215,255)"), // Powder Blue + colord("rgb(170,225,255)"), // Baby Sky + colord("rgb(180,235,250)"), // Aqua Pastel + colord("rgb(190,245,240)"), // Ice Mint + colord("rgb(210,255,245)"), // Sea Mist + colord("rgb(220,255,255)"), // Pale Aqua + colord("rgb(230,250,255)"), // Sky Haze + colord("rgb(240,240,255)"), // Frosted Lilac + colord("rgb(250,230,255)"), // Misty Mauve + colord("rgb(170,190,255)"), // Periwinkle Ice + colord("rgb(180,180,255)"), // Pale Indigo + colord("rgb(200,170,255)"), // Lilac Bloom + colord("rgb(190,140,195)"), // Fuchsia Tint + colord("rgb(195,145,200)"), // Dusky Rose + colord("rgb(200,150,205)"), // Plum Frost + colord("rgb(205,155,210)"), // Berry Foam + colord("rgb(210,160,215)"), // Grape Cloud + colord("rgb(215,165,220)"), // Light Bloom + colord("rgb(220,170,225)"), // Cherry Blossom + colord("rgb(225,175,230)"), // Faded Rose + colord("rgb(230,180,235)"), // Dreamy Mauve + colord("rgb(235,185,240)"), // Powder Violet + colord("rgb(240,190,245)"), // Pastel Violet + colord("rgb(245,195,250)"), // Soft Magenta + colord("rgb(250,200,255)"), // Lilac Cream + colord("rgb(255,205,255)"), // Violet Bloom + colord("rgb(255,210,255)"), // Orchid Mist + colord("rgb(255,210,250)"), // Lavender Mist + colord("rgb(255,205,245)"), // Pastel Orchid + colord("rgb(255,215,245)"), // Rose Whisper + colord("rgb(220,160,255)"), // Violet Mist + colord("rgb(235,150,255)"), // Orchid Glow + colord("rgb(245,160,240)"), // Rose Lilac + colord("rgb(255,170,225)"), // Bubblegum Pink + colord("rgb(255,185,215)"), // Blush Mist + colord("rgb(255,195,235)"), // Faded Fuchsia + colord("rgb(255,200,220)"), // Cotton Rose + colord("rgb(255,210,230)"), // Pastel Blush + colord("rgb(255,220,235)"), // Pink Mist + colord("rgb(255,220,250)"), // Powder Petal + colord("rgb(255,225,255)"), // Petal Mist + colord("rgb(255,230,245)"), // Light Rose + colord("rgb(255,235,235)"), // Blushed Petal + colord("rgb(255,215,195)"), // Apricot Glow + colord("rgb(255,225,180)"), // Butter Peach + colord("rgb(255,230,190)"), + colord("rgb(255,235,200)"), // Cream Peach + colord("rgb(255,245,210)"), // Soft Banana + colord("rgb(255,240,220)"), // Pastel Sand ]; diff --git a/src/core/configuration/PastelTheme.ts b/src/core/configuration/PastelTheme.ts index 48b362121..e660e6dc2 100644 --- a/src/core/configuration/PastelTheme.ts +++ b/src/core/configuration/PastelTheme.ts @@ -17,35 +17,35 @@ export class PastelTheme implements Theme { private teamColorAllocator = new ColorAllocator(humanColors, fallbackColors); private nationColorAllocator = new ColorAllocator(nationColors, nationColors); - private background = colord({ r: 60, g: 60, b: 60 }); - private shore = colord({ r: 223, g: 187, b: 132 }); + private background = colord("rgb(60,60,60)"); + private shore = colord("rgb(204,203,158)"); private falloutColors = [ - colord({ r: 120, g: 255, b: 71 }), // Original color - colord({ r: 130, g: 255, b: 85 }), // Slightly lighter - colord({ r: 110, g: 245, b: 65 }), // Slightly darker - colord({ r: 125, g: 255, b: 75 }), // Warmer tint - colord({ r: 115, g: 250, b: 68 }), // Cooler tint + colord("rgb(120,255,71)"), // Original color + colord("rgb(130,255,85)"), // Slightly lighter + colord("rgb(110,245,65)"), // Slightly darker + colord("rgb(125,255,75)"), // Warmer tint + colord("rgb(115,250,68)"), // Cooler tint ]; - private water = colord({ r: 80, g: 76, b: 179 }); - private shorelineWater = colord({ r: 100, g: 110, b: 255 }); + private water = colord("rgb(70,132,180)"); + private shorelineWater = colord("rgb(100,143,255)"); /** Alternate View colors for self, green */ - private _selfColor = colord({ r: 0, g: 255, b: 0 }); + private _selfColor = colord("rgb(0,255,0)"); /** Alternate View colors for allies, yellow */ - private _allyColor = colord({ r: 255, g: 255, b: 0 }); + private _allyColor = colord("rgb(255,255,0)"); /** Alternate View colors for neutral, gray */ - private _neutralColor = colord({ r: 128, g: 128, b: 128 }); + private _neutralColor = colord("rgb(128,128,128)"); /** Alternate View colors for enemies, red */ - private _enemyColor = colord({ r: 255, g: 0, b: 0 }); + private _enemyColor = colord("rgb(255,0,0)"); /** Default spawn highlight colors for other players in FFA, yellow */ - private _spawnHighlightColor = colord({ r: 255, g: 213, b: 79 }); + private _spawnHighlightColor = colord("rgb(255,213,79)"); /** Added non-default spawn highlight colors for self, full white */ - private _spawnHighlightSelfColor = colord({ r: 255, g: 255, b: 255 }); + private _spawnHighlightSelfColor = colord("rgb(255,255,255)"); /** Added non-default spawn highlight colors for teammates, green */ - private _spawnHighlightTeamColor = colord({ r: 0, g: 255, b: 0 }); + private _spawnHighlightTeamColor = colord("rgb(0,255,0)"); /** Added non-default spawn highlight colors for enemies, red */ - private _spawnHighlightEnemyColor = colord({ r: 255, g: 0, b: 0 }); + private _spawnHighlightEnemyColor = colord("rgb(255,0,0)"); teamColor(team: Team): Colord { return this.teamColorAllocator.assignTeamColor(team); @@ -81,7 +81,7 @@ export class PastelTheme implements Theme { } focusedBorderColor(): Colord { - return colord({ r: 230, g: 230, b: 230 }); + return colord("rgb(230,230,230)"); } textColor(player: PlayerView): string { diff --git a/src/core/configuration/PastelThemeDark.ts b/src/core/configuration/PastelThemeDark.ts index eee5e33d6..1ece7a63c 100644 --- a/src/core/configuration/PastelThemeDark.ts +++ b/src/core/configuration/PastelThemeDark.ts @@ -4,10 +4,10 @@ import { GameMap, TileRef } from "../game/GameMap"; import { PastelTheme } from "./PastelTheme"; export class PastelThemeDark extends PastelTheme { - private darkShore = colord({ r: 134, g: 133, b: 88 }); + private darkShore = colord("rgb(134,133,88)"); - private darkWater = colord({ r: 14, g: 11, b: 30 }); - private darkShorelineWater = colord({ r: 50, g: 50, b: 50 }); + private darkWater = colord("rgb(14,11,30)"); + private darkShorelineWater = colord("rgb(50,50,50)"); terrainColor(gm: GameMap, tile: TileRef): Colord { const mag = gm.magnitude(tile);