diff --git a/src/core/configuration/PastelTheme.ts b/src/core/configuration/PastelTheme.ts index 813687911..a5bfac6b6 100644 --- a/src/core/configuration/PastelTheme.ts +++ b/src/core/configuration/PastelTheme.ts @@ -1,5 +1,11 @@ import { Colord, colord, random } from "colord"; -import { Game, PlayerID, PlayerInfo, TerrainType } from "../game/Game"; +import { + Game, + PlayerID, + PlayerInfo, + PlayerType, + TerrainType, +} from "../game/Game"; import { Theme } from "./Config"; import { time } from "console"; import { PseudoRandom } from "../PseudoRandom"; @@ -122,6 +128,112 @@ export const pastelTheme = new (class implements Theme { colord({ r: 170, g: 150, b: 170 }), // Dusty Rose ]; + private humanColors: Colord[] = [ + // Original set + colord({ r: 235, g: 75, b: 75 }), // Bright Red + colord({ r: 67, g: 190, b: 84 }), // Fresh Green + colord({ r: 59, g: 130, b: 246 }), // Royal Blue + colord({ r: 245, g: 158, b: 11 }), // Amber + colord({ r: 236, g: 72, b: 153 }), // Deep Pink + colord({ r: 48, g: 178, b: 180 }), // Teal + colord({ r: 168, g: 85, b: 247 }), // Vibrant Purple + colord({ r: 251, g: 191, b: 36 }), // Marigold + colord({ r: 74, g: 222, b: 128 }), // Mint + colord({ r: 239, g: 68, b: 68 }), // Crimson + colord({ r: 34, g: 197, b: 94 }), // Emerald + colord({ r: 96, g: 165, b: 250 }), // Sky Blue + colord({ r: 249, g: 115, b: 22 }), // Tangerine + colord({ r: 192, g: 132, b: 252 }), // Lavender + colord({ r: 45, g: 212, b: 191 }), // Turquoise + colord({ r: 244, g: 114, b: 182 }), // Rose + colord({ r: 132, g: 204, b: 22 }), // Lime + colord({ r: 56, g: 189, b: 248 }), // Light Blue + colord({ r: 234, g: 179, b: 8 }), // Sunflower + colord({ r: 217, g: 70, b: 239 }), // Fuchsia + colord({ r: 16, g: 185, b: 129 }), // Sea Green + colord({ r: 251, g: 146, b: 60 }), // Light Orange + colord({ r: 147, g: 51, b: 234 }), // Bright Purple + colord({ r: 79, g: 70, b: 229 }), // Indigo + colord({ r: 245, g: 101, b: 101 }), // Coral + colord({ r: 134, g: 239, b: 172 }), // Light Green + colord({ r: 59, g: 130, b: 246 }), // Cerulean + colord({ r: 253, g: 164, b: 175 }), // Salmon Pink + colord({ r: 147, g: 197, b: 253 }), // Powder Blue + colord({ r: 252, g: 211, b: 77 }), // Golden + colord({ r: 190, g: 92, b: 251 }), // Amethyst + colord({ r: 82, g: 183, b: 136 }), // Jade + colord({ r: 248, g: 113, b: 113 }), // Warm Red + colord({ r: 99, g: 202, b: 253 }), // Azure + colord({ r: 240, g: 171, b: 252 }), // Orchid + colord({ r: 163, g: 230, b: 53 }), // Yellow Green + colord({ r: 234, g: 88, b: 12 }), // Burnt Orange + colord({ r: 125, g: 211, b: 252 }), // Crystal Blue + colord({ r: 251, g: 113, b: 133 }), // Watermelon + colord({ r: 52, g: 211, b: 153 }), // Spearmint + colord({ r: 167, g: 139, b: 250 }), // Periwinkle + colord({ r: 245, g: 158, b: 11 }), // Honey + colord({ r: 110, g: 231, b: 183 }), // Seafoam + colord({ r: 233, g: 213, b: 255 }), // Light Lilac + colord({ r: 202, g: 138, b: 4 }), // Rich Gold + colord({ r: 151, g: 255, b: 187 }), // Fresh Mint + colord({ r: 220, g: 38, b: 38 }), // Ruby + colord({ r: 124, g: 58, b: 237 }), // Royal Purple + colord({ r: 45, g: 212, b: 191 }), // Ocean + colord({ r: 252, g: 165, b: 165 }), // Peach + + // Additional 50 colors + colord({ r: 179, g: 136, b: 255 }), // Light Purple + colord({ r: 133, g: 77, b: 14 }), // Chocolate + colord({ r: 52, g: 211, b: 153 }), // Aquamarine + colord({ r: 234, g: 179, b: 8 }), // Mustard + colord({ r: 236, g: 72, b: 153 }), // Hot Pink + colord({ r: 147, g: 197, b: 253 }), // Sky + colord({ r: 249, g: 115, b: 22 }), // Pumpkin + colord({ r: 167, g: 139, b: 250 }), // Iris + colord({ r: 16, g: 185, b: 129 }), // Pine + colord({ r: 251, g: 146, b: 60 }), // Mango + colord({ r: 192, g: 132, b: 252 }), // Wisteria + colord({ r: 79, g: 70, b: 229 }), // Sapphire + colord({ r: 245, g: 101, b: 101 }), // Salmon + colord({ r: 134, g: 239, b: 172 }), // Spring Green + colord({ r: 59, g: 130, b: 246 }), // Ocean Blue + colord({ r: 253, g: 164, b: 175 }), // Rose Gold + colord({ r: 16, g: 185, b: 129 }), // Forest + colord({ r: 252, g: 211, b: 77 }), // Sunshine + colord({ r: 190, g: 92, b: 251 }), // Grape + colord({ r: 82, g: 183, b: 136 }), // Eucalyptus + colord({ r: 248, g: 113, b: 113 }), // Cherry + colord({ r: 99, g: 202, b: 253 }), // Arctic + colord({ r: 240, g: 171, b: 252 }), // Lilac + colord({ r: 163, g: 230, b: 53 }), // Chartreuse + colord({ r: 234, g: 88, b: 12 }), // Rust + colord({ r: 125, g: 211, b: 252 }), // Ice Blue + colord({ r: 251, g: 113, b: 133 }), // Strawberry + colord({ r: 52, g: 211, b: 153 }), // Sage + colord({ r: 167, g: 139, b: 250 }), // Violet + colord({ r: 245, g: 158, b: 11 }), // Apricot + colord({ r: 110, g: 231, b: 183 }), // Mint Green + colord({ r: 233, g: 213, b: 255 }), // Thistle + colord({ r: 202, g: 138, b: 4 }), // Bronze + colord({ r: 151, g: 255, b: 187 }), // Pistachio + colord({ r: 220, g: 38, b: 38 }), // Fire Engine + colord({ r: 124, g: 58, b: 237 }), // Electric Purple + colord({ r: 45, g: 212, b: 191 }), // Caribbean + colord({ r: 252, g: 165, b: 165 }), // Melon + colord({ r: 168, g: 85, b: 247 }), // Byzantium + colord({ r: 74, g: 222, b: 128 }), // Kelly Green + colord({ r: 239, g: 68, b: 68 }), // Cardinal + colord({ r: 34, g: 197, b: 94 }), // Shamrock + colord({ r: 96, g: 165, b: 250 }), // Marina + colord({ r: 249, g: 115, b: 22 }), // Carrot + colord({ r: 192, g: 132, b: 252 }), // Heliotrope + colord({ r: 45, g: 212, b: 191 }), // Lagoon + colord({ r: 244, g: 114, b: 182 }), // Bubble Gum + colord({ r: 132, g: 204, b: 22 }), // Apple + colord({ r: 56, g: 189, b: 248 }), // Electric Blue + colord({ r: 234, g: 179, b: 8 }), // Daffodil + ]; + private _selfColor = colord({ r: 0, g: 255, b: 0 }); private _allyColor = colord({ r: 255, g: 255, b: 0 }); private _enemyColor = colord({ r: 255, g: 0, b: 0 }); @@ -133,6 +245,11 @@ export const pastelTheme = new (class implements Theme { } territoryColor(playerInfo: PlayerInfo): Colord { + if (playerInfo.playerType == PlayerType.Human) { + return this.humanColors[ + simpleHash(playerInfo.name) % this.humanColors.length + ]; + } return this.territoryColors[ simpleHash(playerInfo.name) % this.territoryColors.length ];