Skip to content

Commit 2b44b68

Browse files
authored
Feature - Improve Structure Color Contrast (#2454)
If this PR fixes an issue, link it below. If not, delete these two lines. Resolves #2447 ## Description: This PR updates the logic used to generate structure fill and border colors. Currently, (v0.26.16 and earlier), some light territory colors have structures that are difficult to see and identify. This PR ensures that all territory colors have structures that are easily visible. Instead of using `Colord.lighten()` and `Colord.darken()` to generate structure colors, the logic now: - queries the territory color and border color of the structure owner - Converts these colors to the [LAB color space](https://en.wikipedia.org/wiki/CIELAB_color_space) (which is a human-perception-uniform color space). - Darkens the border color (by decreasing LAB luminance) and sometimes lightens the territory color (by increasing LAB luminance) until a specific `Color Delta` is achieved (currently `delta > 0.5`) - This ensures contrast between the structure and the territory background. Additionally, this PR re-organizes colors in the `Colors.ts` file for better visibility and removes redundant colors from the `nationColors` list. This PR is an implementation of the proposed mock-up posted on imgur in issue #2447. Screenshots of the original, final, and side-by-side comparison of structure colors (for all available player colors) are in the [imgur album](https://imgur.com/a/openfront-color-playground-4cxSbbj). I'd recommend inclusion as a feature/fix for v27. ## 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
1 parent 7373a28 commit 2b44b68

File tree

5 files changed

+190
-182
lines changed

5 files changed

+190
-182
lines changed

src/client/graphics/layers/StructureDrawingUtils.ts

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -253,26 +253,13 @@ export class SpriteFactory {
253253
structureCanvas.height = Math.ceil(iconSize);
254254
const context = structureCanvas.getContext("2d")!;
255255

256-
const tc = owner.territoryColor();
257-
const bc = owner.borderColor();
258-
259-
// Potentially change logic here. Some TC/BC combinations do not provide good color contrast.
260-
const darker = bc.luminance() < tc.luminance() ? bc : tc;
261-
const lighter = bc.luminance() < tc.luminance() ? tc : bc;
262-
263-
let borderColor: string;
264-
if (isConstruction) {
265-
context.fillStyle = "rgb(198, 198, 198)";
266-
borderColor = "rgb(128, 127, 127)";
267-
} else {
268-
context.fillStyle = lighter
269-
.lighten(0.13)
270-
.alpha(renderIcon ? 0.65 : 1)
271-
.toRgbString();
272-
const darken = darker.isLight() ? 0.17 : 0.15;
273-
borderColor = darker.darken(darken).toRgbString();
274-
}
275-
context.strokeStyle = borderColor;
256+
// Use structureColors defined from the PlayerView.
257+
context.fillStyle = isConstruction
258+
? "rgb(198,198,198)"
259+
: owner.structureColors().light.toRgbString();
260+
context.strokeStyle = isConstruction
261+
? "rgb(127,127, 127)"
262+
: owner.structureColors().dark.toRgbString();
276263
context.lineWidth = 1;
277264
const halfIconSize = iconSize / 2;
278265

@@ -400,7 +387,10 @@ export class SpriteFactory {
400387
};
401388
const [offsetX, offsetY] = SHAPE_OFFSETS[shape] || [0, 0];
402389
context.drawImage(
403-
this.getImageColored(structureInfo.image, borderColor),
390+
this.getImageColored(
391+
structureInfo.image,
392+
owner.structureColors().dark.toRgbString(),
393+
),
404394
offsetX,
405395
offsetY,
406396
);

src/core/configuration/Colors.ts

Lines changed: 112 additions & 160 deletions
Original file line numberDiff line numberDiff line change
@@ -42,222 +42,174 @@ function generateTeamColors(baseColor: Colord): Colord[] {
4242
}
4343

4444
export const nationColors: Colord[] = [
45-
colord("rgb(230,100,100)"), // Bright Red
46-
colord("rgb(100,180,230)"), // Sky Blue
47-
colord("rgb(230,180,80)"), // Golden Yellow
48-
colord("rgb(180,100,230)"), // Purple
49-
colord("rgb(80,200,120)"), // Emerald Green
50-
colord("rgb(230,130,180)"), // Pink
51-
colord("rgb(100,160,80)"), // Olive Green
52-
colord("rgb(230,150,100)"), // Peach
53-
colord("rgb(80,130,190)"), // Navy Blue
5445
colord("rgb(210,210,100)"), // Lime Yellow
55-
colord("rgb(190,100,130)"), // Maroon
56-
colord("rgb(100,210,210)"), // Turquoise
57-
colord("rgb(210,140,80)"), // Light Orange
58-
colord("rgb(150,110,190)"), // Lavender
5946
colord("rgb(180,210,120)"), // Light Green
60-
colord("rgb(210,100,160)"), // Hot Pink
61-
colord("rgb(100,140,110)"), // Sea Green
62-
colord("rgb(230,180,180)"), // Light Pink
63-
colord("rgb(120,120,190)"), // Periwinkle
64-
colord("rgb(190,170,100)"), // Sand
65-
colord("rgb(100,180,160)"), // Aquamarine
66-
colord("rgb(210,160,200)"), // Orchid
6747
colord("rgb(170,190,100)"), // Yellow Green
68-
colord("rgb(100,130,150)"), // Steel Blue
69-
colord("rgb(230,140,140)"), // Salmon
70-
colord("rgb(140,180,220)"), // Light Blue
71-
colord("rgb(200,160,110)"), // Tan
72-
colord("rgb(180,130,180)"), // Plum
48+
colord("rgb(80,200,120)"), // Emerald Green
7349
colord("rgb(130,200,130)"), // Light Sea Green
74-
colord("rgb(220,120,120)"), // Coral
75-
colord("rgb(120,160,200)"), // Cornflower Blue
76-
colord("rgb(200,200,140)"), // Khaki
77-
colord("rgb(160,120,160)"), // Purple Gray
7850
colord("rgb(140,180,140)"), // Dark Sea Green
79-
colord("rgb(200,130,110)"), // Dark Salmon
80-
colord("rgb(130,170,190)"), // Cadet Blue
81-
colord("rgb(190,180,160)"), // Tan Gray
82-
colord("rgb(170,140,190)"), // Medium Purple
8351
colord("rgb(160,190,160)"), // Pale Green
84-
colord("rgb(190,150,130)"), // Rosy Brown
85-
colord("rgb(140,150,180)"), // Light Slate Gray
86-
colord("rgb(180,170,140)"), // Dark Khaki
87-
colord("rgb(150,130,150)"), // Thistle
88-
colord("rgb(170,190,180)"), // Pale Blue Green
89-
colord("rgb(190,140,150)"), // Puce
90-
colord("rgb(130,180,170)"), // Medium Aquamarine
91-
colord("rgb(180,160,180)"), // Mauve
9252
colord("rgb(160,180,140)"), // Dark Olive Green
93-
colord("rgb(170,150,170)"), // Dusty Rose
94-
colord("rgb(100,180,230)"), // Sky Blue
95-
colord("rgb(230,180,80)"), // Golden Yellow
96-
colord("rgb(180,100,230)"), // Purple
97-
colord("rgb(80,200,120)"), // Emerald Green
98-
colord("rgb(230,130,180)"), // Pink
9953
colord("rgb(100,160,80)"), // Olive Green
100-
colord("rgb(230,150,100)"), // Peach
101-
colord("rgb(80,130,190)"), // Navy Blue
102-
colord("rgb(210,210,100)"), // Lime Yellow
103-
colord("rgb(190,100,130)"), // Maroon
104-
colord("rgb(100,210,210)"), // Turquoise
105-
colord("rgb(210,140,80)"), // Light Orange
106-
colord("rgb(150,110,190)"), // Lavender
107-
colord("rgb(180,210,120)"), // Light Green
108-
colord("rgb(210,100,160)"), // Hot Pink
10954
colord("rgb(100,140,110)"), // Sea Green
110-
colord("rgb(230,180,180)"), // Light Pink
111-
colord("rgb(120,120,190)"), // Periwinkle
112-
colord("rgb(190,170,100)"), // Sand
11355
colord("rgb(100,180,160)"), // Aquamarine
114-
colord("rgb(210,160,200)"), // Orchid
115-
colord("rgb(170,190,100)"), // Yellow Green
56+
colord("rgb(130,180,170)"), // Medium Aquamarine
57+
colord("rgb(170,190,180)"), // Pale Blue Green
11658
colord("rgb(100,130,150)"), // Steel Blue
117-
colord("rgb(230,140,140)"), // Salmon
118-
colord("rgb(140,180,220)"), // Light Blue
119-
colord("rgb(200,160,110)"), // Tan
120-
colord("rgb(180,130,180)"), // Plum
121-
colord("rgb(130,200,130)"), // Light Sea Green
122-
colord("rgb(220,120,120)"), // Coral
12359
colord("rgb(120,160,200)"), // Cornflower Blue
124-
colord("rgb(200,200,140)"), // Khaki
125-
colord("rgb(160,120,160)"), // Purple Gray
126-
colord("rgb(140,180,140)"), // Dark Sea Green
127-
colord("rgb(200,130,110)"), // Dark Salmon
60+
colord("rgb(140,150,180)"), // Light Slate Gray
61+
colord("rgb(100,210,210)"), // Turquoise
62+
colord("rgb(140,180,220)"), // Light Blue
12863
colord("rgb(130,170,190)"), // Cadet Blue
129-
colord("rgb(190,180,160)"), // Tan Gray
64+
colord("rgb(100,180,230)"), // Sky Blue
65+
colord("rgb(80,130,190)"), // Navy Blue
66+
colord("rgb(120,120,190)"), // Periwinkle
67+
colord("rgb(150,110,190)"), // Lavender
68+
colord("rgb(160,120,160)"), // Purple Gray
13069
colord("rgb(170,140,190)"), // Medium Purple
131-
colord("rgb(160,190,160)"), // Pale Green
132-
colord("rgb(190,150,130)"), // Rosy Brown
133-
colord("rgb(140,150,180)"), // Light Slate Gray
134-
colord("rgb(180,170,140)"), // Dark Khaki
135-
colord("rgb(150,130,150)"), // Thistle
136-
colord("rgb(170,190,180)"), // Pale Blue Green
70+
colord("rgb(180,130,180)"), // Plum
13771
colord("rgb(190,140,150)"), // Puce
138-
colord("rgb(130,180,170)"), // Medium Aquamarine
72+
colord("rgb(180,100,230)"), // Purple
13973
colord("rgb(180,160,180)"), // Mauve
140-
colord("rgb(160,180,140)"), // Dark Olive Green
14174
colord("rgb(170,150,170)"), // Dusty Rose
75+
colord("rgb(150,130,150)"), // Thistle
76+
colord("rgb(230,180,180)"), // Light Pink
77+
colord("rgb(210,160,200)"), // Orchid
78+
colord("rgb(230,130,180)"), // Pink
79+
colord("rgb(210,100,160)"), // Hot Pink
80+
colord("rgb(190,100,130)"), // Maroon
81+
colord("rgb(220,120,120)"), // Coral
82+
colord("rgb(200,130,110)"), // Dark Salmon
83+
colord("rgb(230,140,140)"), // Salmon
84+
colord("rgb(230,100,100)"), // Bright Red
85+
colord("rgb(230,150,100)"), // Peach
86+
colord("rgb(210,140,80)"), // Light Orange
87+
colord("rgb(230,180,80)"), // Golden Yellow
88+
colord("rgb(200,160,110)"), // Tan
89+
colord("rgb(190,150,130)"), // Rosy Brown
90+
colord("rgb(190,180,160)"), // Tan Gray
91+
colord("rgb(180,170,140)"), // Dark Khaki
92+
colord("rgb(200,200,140)"), // Khaki
93+
colord("rgb(190,170,100)"), // Sand
14294
];
14395

14496
// Bright pastel theme with 64 colors
14597
export const humanColors: Colord[] = [
98+
colord("rgb(163,230,53)"), // Yellow Green
99+
colord("rgb(132,204,22)"), // Lime
146100
colord("rgb(16,185,129)"), // Sea Green
147-
colord("rgb(34,197,94)"), // Emerald
101+
colord("rgb(52,211,153)"), // Spearmint
148102
colord("rgb(45,212,191)"), // Turquoise
103+
colord("rgb(74,222,128)"), // Mint
104+
colord("rgb(110,231,183)"), // Seafoam
105+
colord("rgb(134,239,172)"), // Light Green
106+
colord("rgb(151,255,187)"), // Fresh Mint
107+
colord("rgb(186,255,201)"), // Pale Emerald
108+
colord("rgb(230,250,210)"), // Pastel Lime
109+
colord("rgb(34,197,94)"), // Emerald
110+
colord("rgb(67,190,84)"), // Fresh Green
111+
colord("rgb(82,183,136)"), // Jade
149112
colord("rgb(48,178,180)"), // Teal
150-
colord("rgb(52,211,153)"), // Spearmint
113+
colord("rgb(230,255,250)"), // Mint Whisper
114+
colord("rgb(220,240,250)"), // Ice Blue
115+
colord("rgb(233,213,255)"), // Light Lilac
116+
colord("rgb(204,204,255)"), // Soft Lavender Blue
117+
colord("rgb(220,220,255)"), // Meringue Blue
118+
colord("rgb(202,225,255)"), // Baby Blue
119+
colord("rgb(147,197,253)"), // Powder Blue
120+
colord("rgb(125,211,252)"), // Crystal Blue
121+
colord("rgb(99,202,253)"), // Azure
151122
colord("rgb(56,189,248)"), // Light Blue
123+
colord("rgb(96,165,250)"), // Sky Blue
152124
colord("rgb(59,130,246)"), // Royal Blue
153-
colord("rgb(67,190,84)"), // Fresh Green
154-
colord("rgb(74,222,128)"), // Mint
155125
colord("rgb(79,70,229)"), // Indigo
156-
colord("rgb(82,183,136)"), // Jade
157-
colord("rgb(96,165,250)"), // Sky Blue
158-
colord("rgb(99,202,253)"), // Azure
159-
colord("rgb(110,231,183)"), // Seafoam
160126
colord("rgb(124,58,237)"), // Royal Purple
161-
colord("rgb(125,211,252)"), // Crystal Blue
162-
colord("rgb(132,204,22)"), // Lime
163-
colord("rgb(133,77,14)"), // Chocolate
164-
colord("rgb(134,239,172)"), // Light Green
165127
colord("rgb(147,51,234)"), // Bright Purple
166-
colord("rgb(147,197,253)"), // Powder Blue
167-
colord("rgb(151,255,187)"), // Fresh Mint
168-
colord("rgb(163,230,53)"), // Yellow Green
128+
colord("rgb(179,136,255)"), // Light Purple
169129
colord("rgb(167,139,250)"), // Periwinkle
130+
colord("rgb(217,70,239)"), // Fuchsia
170131
colord("rgb(168,85,247)"), // Vibrant Purple
171-
colord("rgb(179,136,255)"), // Light Purple
172-
colord("rgb(186,255,201)"), // Pale Emerald
173132
colord("rgb(190,92,251)"), // Amethyst
174133
colord("rgb(192,132,252)"), // Lavender
175-
colord("rgb(202,138,4)"), // Rich Gold
176-
colord("rgb(202,225,255)"), // Baby Blue
177-
colord("rgb(204,204,255)"), // Soft Lavender Blue
178-
colord("rgb(217,70,239)"), // Fuchsia
179-
colord("rgb(220,38,38)"), // Ruby
180-
colord("rgb(220,220,255)"), // Meringue Blue
181-
colord("rgb(220,240,250)"), // Ice Blue
182-
colord("rgb(230,250,210)"), // Pastel Lime
183-
colord("rgb(230,255,250)"), // Mint Whisper
184-
colord("rgb(233,213,255)"), // Light Lilac
185-
colord("rgb(234,88,12)"), // Burnt Orange
186-
colord("rgb(234,179,8)"), // Sunflower
187-
colord("rgb(235,75,75)"), // Bright Red
188-
colord("rgb(236,72,153)"), // Deep Pink
189-
colord("rgb(239,68,68)"), // Crimson
190134
colord("rgb(240,171,252)"), // Orchid
191-
colord("rgb(240,240,200)"), // Light Khaki
192135
colord("rgb(244,114,182)"), // Rose
136+
colord("rgb(236,72,153)"), // Deep Pink
137+
colord("rgb(220,38,38)"), // Ruby
138+
colord("rgb(239,68,68)"), // Crimson
139+
colord("rgb(235,75,75)"), // Bright Red
193140
colord("rgb(245,101,101)"), // Coral
194-
colord("rgb(245,158,11)"), // Amber
195141
colord("rgb(248,113,113)"), // Warm Red
196-
colord("rgb(249,115,22)"), // Tangerine
197-
colord("rgb(250,215,225)"), // Cotton Candy
198-
colord("rgb(250,250,210)"), // Pastel Lemon
199142
colord("rgb(251,113,133)"), // Watermelon
200-
colord("rgb(251,146,60)"), // Light Orange
201-
colord("rgb(251,191,36)"), // Marigold
202-
colord("rgb(251,235,245)"), // Rose Powder
203-
colord("rgb(252,165,165)"), // Peach
204-
colord("rgb(252,211,77)"), // Golden
205143
colord("rgb(253,164,175)"), // Salmon Pink
144+
colord("rgb(252,165,165)"), // Peach
206145
colord("rgb(255,204,229)"), // Blush Pink
207-
colord("rgb(255,223,186)"), // Apricot Cream
146+
colord("rgb(250,215,225)"), // Cotton Candy
147+
colord("rgb(251,235,245)"), // Rose Powder
148+
colord("rgb(240,240,200)"), // Light Khaki
149+
colord("rgb(250,250,210)"), // Pastel Lemon
208150
colord("rgb(255,240,200)"), // Vanilla
151+
colord("rgb(255,223,186)"), // Apricot Cream
152+
colord("rgb(252,211,77)"), // Golden
153+
colord("rgb(251,191,36)"), // Marigold
154+
colord("rgb(234,179,8)"), // Sunflower
155+
colord("rgb(202,138,4)"), // Rich Gold
156+
colord("rgb(245,158,11)"), // Amber
157+
colord("rgb(251,146,60)"), // Light Orange
158+
colord("rgb(249,115,22)"), // Tangerine
159+
colord("rgb(234,88,12)"), // Burnt Orange
160+
colord("rgb(133,77,14)"), // Chocolate
209161
];
210162

211163
export const botColors: Colord[] = [
212-
colord("rgb(190,120,120)"), // Muted Red
213-
colord("rgb(120,160,190)"), // Muted Sky Blue
214-
colord("rgb(190,160,100)"), // Muted Golden Yellow
215-
colord("rgb(160,120,190)"), // Muted Purple
216-
colord("rgb(100,170,130)"), // Muted Emerald Green
217-
colord("rgb(190,130,160)"), // Muted Pink
218-
colord("rgb(120,150,100)"), // Muted Olive Green
219-
colord("rgb(190,140,120)"), // Muted Peach
220-
colord("rgb(100,120,160)"), // Muted Navy Blue
164+
colord("rgb(150,160,140)"), // Muted Dark Olive Green
165+
colord("rgb(160,160,150)"), // Muted Tan Gray
166+
colord("rgb(170,170,140)"), // Muted Khaki
221167
colord("rgb(170,170,120)"), // Muted Lime Yellow
222-
colord("rgb(160,120,130)"), // Muted Maroon
223-
colord("rgb(120,170,170)"), // Muted Turquoise
224-
colord("rgb(170,140,100)"), // Muted Light Orange
225-
colord("rgb(140,120,160)"), // Muted Lavender
168+
colord("rgb(150,160,120)"), // Muted Yellow Green
226169
colord("rgb(150,170,130)"), // Muted Light Green
227-
colord("rgb(170,120,140)"), // Muted Hot Pink
170+
colord("rgb(150,170,150)"), // Muted Pale Green
171+
colord("rgb(130,170,130)"), // Muted Light Sea Green
172+
colord("rgb(140,160,140)"), // Muted Dark Sea Green
173+
colord("rgb(120,150,100)"), // Muted Olive Green
228174
colord("rgb(120,140,120)"), // Muted Sea Green
229-
colord("rgb(180,160,160)"), // Muted Light Pink
230-
colord("rgb(130,130,160)"), // Muted Periwinkle
231-
colord("rgb(160,150,120)"), // Muted Sand
175+
colord("rgb(100,170,130)"), // Muted Emerald Green
232176
colord("rgb(120,160,150)"), // Muted Aquamarine
233-
colord("rgb(170,150,170)"), // Muted Orchid
234-
colord("rgb(150,160,120)"), // Muted Yellow Green
235-
colord("rgb(120,130,140)"), // Muted Steel Blue
236-
colord("rgb(180,140,140)"), // Muted Salmon
237-
colord("rgb(140,160,170)"), // Muted Light Blue
238-
colord("rgb(170,150,130)"), // Muted Tan
239-
colord("rgb(160,130,160)"), // Muted Plum
240-
colord("rgb(130,170,130)"), // Muted Light Sea Green
241-
colord("rgb(170,130,130)"), // Muted Coral
177+
colord("rgb(130,160,150)"), // Muted Medium Aquamarine
178+
colord("rgb(120,170,170)"), // Muted Turquoise
179+
colord("rgb(120,160,190)"), // Muted Sky Blue
242180
colord("rgb(130,150,170)"), // Muted Cornflower Blue
243-
colord("rgb(170,170,140)"), // Muted Khaki
244-
colord("rgb(150,130,150)"), // Muted Purple Gray
245-
colord("rgb(140,160,140)"), // Muted Dark Sea Green
246-
colord("rgb(170,130,120)"), // Muted Dark Salmon
247181
colord("rgb(130,150,160)"), // Muted Cadet Blue
248-
colord("rgb(160,160,150)"), // Muted Tan Gray
182+
colord("rgb(140,150,160)"), // Muted Light Slate Gray
183+
colord("rgb(140,160,170)"), // Muted Light Blue
184+
colord("rgb(150,160,160)"), // Muted Pale Blue Green
185+
colord("rgb(100,120,160)"), // Muted Navy Blue
186+
colord("rgb(120,130,140)"), // Muted Steel Blue
187+
colord("rgb(130,130,160)"), // Muted Periwinkle
188+
colord("rgb(140,130,140)"), // Muted Thistle
189+
colord("rgb(140,120,160)"), // Muted Lavender
190+
colord("rgb(150,130,150)"), // Muted Purple Gray
249191
colord("rgb(150,140,160)"), // Muted Medium Purple
250-
colord("rgb(150,170,150)"), // Muted Pale Green
192+
colord("rgb(160,130,160)"), // Muted Plum
193+
colord("rgb(170,150,170)"), // Muted Orchid
194+
colord("rgb(160,120,190)"), // Muted Purple
195+
colord("rgb(160,120,130)"), // Muted Maroon
196+
colord("rgb(170,120,140)"), // Muted Hot Pink
197+
colord("rgb(170,130,120)"), // Muted Dark Salmon
198+
colord("rgb(170,130,130)"), // Muted Coral
199+
colord("rgb(180,140,140)"), // Muted Salmon
200+
colord("rgb(190,130,160)"), // Muted Pink
201+
colord("rgb(190,120,120)"), // Muted Red
202+
colord("rgb(190,140,120)"), // Muted Peach
203+
colord("rgb(190,160,100)"), // Muted Golden Yellow
204+
colord("rgb(170,140,100)"), // Muted Light Orange
251205
colord("rgb(160,140,130)"), // Muted Rosy Brown
252-
colord("rgb(140,150,160)"), // Muted Light Slate Gray
206+
colord("rgb(170,150,130)"), // Muted Tan
207+
colord("rgb(160,150,120)"), // Muted Sand
253208
colord("rgb(160,150,140)"), // Muted Dark Khaki
254-
colord("rgb(140,130,140)"), // Muted Thistle
255-
colord("rgb(150,160,160)"), // Muted Pale Blue Green
256209
colord("rgb(160,140,150)"), // Muted Puce
257-
colord("rgb(130,160,150)"), // Muted Medium Aquamarine
258210
colord("rgb(160,150,160)"), // Muted Mauve
259-
colord("rgb(150,160,140)"), // Muted Dark Olive Green
260211
colord("rgb(150,140,150)"), // Muted Dusty Rose
212+
colord("rgb(180,160,160)"), // Muted Light Pink
261213
];
262214

263215
// Fallback colors for when the color palette is exhausted.

src/core/configuration/Config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,8 @@ export interface Theme {
190190
// Don't call directly, use PlayerView
191191
territoryColor(playerInfo: PlayerView): Colord;
192192
// Don't call directly, use PlayerView
193+
structureColors(territoryColor: Colord): { light: Colord; dark: Colord };
194+
// Don't call directly, use PlayerView
193195
borderColor(territoryColor: Colord): Colord;
194196
// Don't call directly, use PlayerView
195197
defendedBorderColors(territoryColor: Colord): { light: Colord; dark: Colord };

0 commit comments

Comments
 (0)