diff --git a/guide/age-of-dwarves/src/hooks/useSimulationWorker.ts b/guide/age-of-dwarves/src/hooks/useSimulationWorker.ts index a87182fd..948f3f7b 100644 --- a/guide/age-of-dwarves/src/hooks/useSimulationWorker.ts +++ b/guide/age-of-dwarves/src/hooks/useSimulationWorker.ts @@ -346,7 +346,19 @@ export function useSimulationWorker(): UseSimulationWorkerResult { '@data/climate_spec.json', { eager: true, import: 'default' }, ) as Record> - const spec = Object.values(specMods)[0] ?? {} + + // Load ecological event category specs (volcanic, impact, seismic, etc.) + const eventMods = import.meta.glob( + '@data/events/*.json', + { eager: true, import: 'default' }, + ) as Record> + const ecological_events: Record = {} + for (const [filePath, mod] of Object.entries(eventMods)) { + const category = filePath.split('/').pop()?.replace('.json', '') + if (category) ecological_events[category] = mod + } + + const spec: Record = { ...(Object.values(specMods)[0] ?? {}), ecological_events } // Load seed_easter_eggs.json (game-pack-owned — engine just supports the interface) type RawEasterEggs = Record }> diff --git a/tools/sprite-generation/engine/ranker.py b/tools/sprite-generation/engine/ranker.py index 8b1a435f..8cd62b63 100644 --- a/tools/sprite-generation/engine/ranker.py +++ b/tools/sprite-generation/engine/ranker.py @@ -100,12 +100,18 @@ _GATE_DESCRIPTIONS: dict[str, str] = { "a plain walking figure with no visible weapons, armor, or role-identifying equipment fails." ), "is_fantasy_dressed": ( - "Is this character dressed in MEDIEVAL or FANTASY attire? Acceptable: armor, chainmail, " - "leather gear, fantasy robes, tabards, fur cloaks, medieval work clothes with leather aprons. " - "Answer FALSE if wearing MODERN clothing: t-shirts, hoodies, jeans, sneakers, tracksuits, " - "hard hats, hi-vis vests, safety goggles, cargo pants, sports jackets. " + "Is this character dressed in MEDIEVAL or FANTASY attire from a pre-industrial world? " + "Acceptable: plate armor, chainmail, leather armor with metal studs, fantasy robes, " + "tabards over mail, fur cloaks, rough-spun tunics, medieval blacksmith aprons. " + "Answer FALSE if wearing MODERN or CONTEMPORARY clothing or gear: t-shirts, hoodies, " + "jeans, sneakers, tracksuits, hard hats, hi-vis vests, safety goggles, cargo pants, " + "modern tool belts with nylon pouches, utility belts with snap closures, " + "modern leather holsters, construction worker gear, rubber boots, backpacks with zippers. " + "Also FALSE for Fortnite/Team Fortress/Overwatch style characters — these look like " + "modern cartoon characters in costumes, NOT medieval fantasy inhabitants. " "Also FALSE for featureless 3D mannequins with no clothing detail. " - "The character MUST look like they belong in a medieval/fantasy game world." + "The character MUST look like a medieval craftsman, warrior, or peasant — NOT a modern " + "person wearing a costume or a video game character from a contemporary setting." ), "dwarf_proportions": ( "Does this character have DWARF proportions? Dwarves are SHORT and STOCKY — roughly " @@ -115,10 +121,10 @@ _GATE_DESCRIPTIONS: dict[str, str] = { "Answer TRUE if the character is visibly short, wide, and stocky like a fantasy dwarf." ), "not_photorealistic": ( - "Is this STYLIZED game art, NOT photorealistic or glossy 3D? " - "Acceptable styles: hand-painted fantasy art, Warcraft III renders, bold illustrated art, " - "DOTA 2 style, 2D cartoon illustration. " - "Answer FALSE if: (1) it looks like a real-world photograph with real skin, photographic " + "Is this PAINTED or ILLUSTRATED game art, NOT 3D-rendered or photorealistic? " + "Acceptable styles: hand-painted fantasy art (like classic Magic: The Gathering card art), " + "Warcraft III concept art, bold 2D illustration, digital painting with visible brushwork. " + "Answer FALSE if: (1) it looks like a real-world photograph with real skin, photographic" "lighting, studio-quality realism, OR (2) it is a GLOSSY PLASTIC 3D RENDER like Pixar, " "Fortnite, Clash Royale, or mobile game 3D art — smooth shiny surfaces, subsurface " "scattering on skin, plastic-looking materials, cartoon 3D modeling. " diff --git a/tools/sprite-generation/spritegen.db-shm b/tools/sprite-generation/spritegen.db-shm index be81c44a..af7eaa35 100644 Binary files a/tools/sprite-generation/spritegen.db-shm and b/tools/sprite-generation/spritegen.db-shm differ diff --git a/tools/sprite-generation/spritegen.db-wal b/tools/sprite-generation/spritegen.db-wal index 4a4fc5dd..160f88a8 100644 Binary files a/tools/sprite-generation/spritegen.db-wal and b/tools/sprite-generation/spritegen.db-wal differ