Exact source used by this build. SHA-256: e31f467989e108c65781efbf949cf5585f03e8e791088d45c8087465d5f1b47f.

1 import palettesJson from "../../../data/seasons/palettes.json";
2 import { AREA_MAPS } from "../maps";
3 import { SeasonalPalettesSchema } from "./schema";
4 import type { Season, SeasonAppearance } from "./schema";
5 import type { ContentDomain } from "../types";
6 
7 export * from "./schema";
8 export const SEASONAL_PALETTES = SeasonalPalettesSchema.parse(palettesJson);
9 export function getSeasonAppearance(areaId: string, season: Season): SeasonAppearance {
10   const appearance = SEASONAL_PALETTES[areaId]?.[season];
11   if (!appearance) throw new Error(`Missing ${season} appearance for ${areaId}`);
12   return appearance;
13 }
14 export const seasonsDomain: ContentDomain = {
15   id: "seasons", data: SEASONAL_PALETTES,
16   validate() {
17     SeasonalPalettesSchema.parse(palettesJson);
18     for (const map of Object.values(AREA_MAPS)) if (map.outdoor && !SEASONAL_PALETTES[map.id]) throw new Error(`Missing seasonal appearance for ${map.id}`);
19   },
20 };
21