diff --git a/.claude/agents/combat-dev.md b/.claude/agents/combat-dev.md index 00db44a5..945f376f 100644 --- a/.claude/agents/combat-dev.md +++ b/.claude/agents/combat-dev.md @@ -36,11 +36,11 @@ Military units project ZOC into all 6 adjacent hexes. Moving between two hexes i ## Keywords -Keywords are discrete composable behaviors defined in `games/age-of-four/data/keywords.json`. Each keyword modifies combat resolution in a specific way (first_strike, trample, life_drain, flying, etc.). Check the data file for the complete list — do not maintain a separate list here. +Keywords are discrete composable behaviors defined in `games/age-of-dwarves/data/keywords.json`. Each keyword modifies combat resolution in a specific way (first_strike, trample, life_drain, flying, etc.). Check the data file for the complete list — do not maintain a separate list here. ## Promotions -Branching promotion trees defined in `games/age-of-four/data/promotions.json`. Heal on promotion. Validate compatible branches (no mutually exclusive combos). +Branching promotion trees defined in `games/age-of-dwarves/data/promotions.json`. Heal on promotion. Validate compatible branches (no mutually exclusive combos). ## City Siege diff --git a/.claude/agents/game-ai.md b/.claude/agents/game-ai.md index 616eb28a..2e5afd26 100644 --- a/.claude/agents/game-ai.md +++ b/.claude/agents/game-ai.md @@ -38,8 +38,8 @@ Each race's AI adapts to its strategic profile from `races.json` — high-growth ## Difficulty & Personality -- **Difficulty**: defined in `games/age-of-four/data/difficulty.json` — yield multipliers, starting bonuses, etc. -- **Personality**: defined in `games/age-of-four/data/ai_personalities.json` — trait vectors that modify scoring weights +- **Difficulty**: defined in `games/age-of-dwarves/data/difficulty.json` — yield multipliers, starting bonuses, etc. +- **Personality**: defined in `games/age-of-dwarves/data/ai_personalities.json` — trait vectors that modify scoring weights ## Key Scoring Functions (ai_evaluators.gd) diff --git a/.claude/agents/game-algorithms.md b/.claude/agents/game-algorithms.md index eda53cfc..909f6147 100644 --- a/.claude/agents/game-algorithms.md +++ b/.claude/agents/game-algorithms.md @@ -46,7 +46,7 @@ Multi-stage pipeline — each stage feeds the next: 1. Landmass generation — continent/ocean via noise + island mask 2. Elevation/climate noise — temperature (latitude + elevation), rainfall 3. Terrain assignment — elevation × temperature × rainfall → terrain type lookup -4. Shape variants from `games/age-of-four/data/map_types.json` +4. Shape variants from `games/age-of-dwarves/data/map_types.json` 5. Natural wonder placement — unique tiles, min distance constraints 6. Mana node placement — school-colored, per terrain affinity 7. Resource overlay placement — valid terrain types, density @@ -56,7 +56,7 @@ Multi-stage pipeline — each stage feeds the next: ## Tech Web -`tech_web.gd` implements a directed graph from `games/age-of-four/data/techs/*.json`. Tracks research state per player. Handles: +`tech_web.gd` implements a directed graph from `games/age-of-dwarves/data/techs/*.json`. Tracks research state per player. Handles: - Prerequisite validation (including cross-pillar intersections) - Magic school 2-school lock enforcement - Heritage tech injection at game start (cost 0) diff --git a/.claude/agents/game-data.md b/.claude/agents/game-data.md index 4291e0b0..6f1d30bf 100644 --- a/.claude/agents/game-data.md +++ b/.claude/agents/game-data.md @@ -1,6 +1,6 @@ --- name: game-data -description: Use for authoring all JSON data files in games/age-of-four/data/ — terrain, units, buildings, spells, techs, races, resources, promotions, keywords, wilds, villages, eras, governments, map_types, setup, ai_personalities, vocabulary.json. Also for cross-reference validation scripts. +description: Use for authoring all JSON data files in games/age-of-dwarves/data/ — terrain, units, buildings, spells, techs, races, resources, promotions, keywords, wilds, villages, eras, governments, map_types, setup, ai_personalities, vocabulary.json. Also for cross-reference validation scripts. --- You are the data specialist for Magic Civilization. You own all JSON game content files. You are the first agent to act (zero blockers) and all other agents depend on your output. Your files must be complete, schema-correct, and internally consistent before any GDScript is written. @@ -8,13 +8,13 @@ You are the data specialist for Magic Civilization. You own all JSON game conten ## Your Domain ``` -games/age-of-four/ +games/age-of-dwarves/ data/ — all game data, organized by category game.json — game manifest (id, name, version, theme) vocabulary.json — engine term → display name mappings ``` -**Always check the actual directory structure** before creating or modifying files — `ls games/age-of-four/data/` and its subdirectories. The data layout uses both single files and split directories. Do not assume filenames — verify what exists. +**Always check the actual directory structure** before creating or modifying files — `ls games/age-of-dwarves/data/` and its subdirectories. The data layout uses both single files and split directories. Do not assume filenames — verify what exists. ## Data Architecture @@ -41,7 +41,7 @@ The engine uses generic terms; the fantasy theme maps them to display names: | `synthesis` | `Fusion` | | `realm` | `Empire` | -Check `games/age-of-four/vocabulary.json` for the full mapping. +Check `games/age-of-dwarves/vocabulary.json` for the full mapping. ## Schema Patterns diff --git a/.claude/agents/game-systems.md b/.claude/agents/game-systems.md index c25269f7..f3063db4 100644 --- a/.claude/agents/game-systems.md +++ b/.claude/agents/game-systems.md @@ -51,5 +51,5 @@ Culture accumulates per city from buildings. At threshold, claims highest-yield ## World Wonders -First-to-build mechanic. School wonders defined in `games/age-of-four/data/buildings/`. SmallWonders are one-per-player. +First-to-build mechanic. School wonders defined in `games/age-of-dwarves/data/buildings/`. SmallWonders are one-per-player. diff --git a/.claude/agents/godot-renderer.md b/.claude/agents/godot-renderer.md index dbb5bad5..804df117 100644 --- a/.claude/agents/godot-renderer.md +++ b/.claude/agents/godot-renderer.md @@ -24,7 +24,7 @@ engine/src/rendering/ - **Isometric hex** layout (wide-diamond shape) - **Coordinate mapping**: axial → odd-q offset → TileMap cell -- **Terrain sprites**: one per terrain type defined in `games/age-of-four/data/terrain/*.json` +- **Terrain sprites**: one per terrain type defined in `games/age-of-dwarves/data/terrain/*.json` - **Variants**: multiple per terrain type via position-hash + UV flip for visual variety - **Edge sprites**: static edge sprites for terrain blending (6 directions × terrain pairs × variants) @@ -57,7 +57,7 @@ Each player has a race color (from `races.json` → `color`). Applied to: city b ## Proof Scene Pattern Each phase has a proof scene at `engine/scenes/tests/_proof.tscn` that: -1. Loads game data (`DataLoader.load_game("age-of-four")`) +1. Loads game data (`DataLoader.load_game("age-of-dwarves")`) 2. Sets up minimal game state 3. Renders ALL claimed visual features 4. Auto-captures screenshot and quits diff --git a/.claude/agents/guide-web.md b/.claude/agents/guide-web.md index 635350c2..1e38ff92 100644 --- a/.claude/agents/guide-web.md +++ b/.claude/agents/guide-web.md @@ -1,6 +1,6 @@ --- name: guide-web -description: Use for the player guide web app — guide/age-of-four/ (React app shell, all pages), guide/engine/ (@magic-civ/guide-engine package: shared UI components, types, utils, climate sim), Vite config, pnpm workspace, Vitest tests, TypeScript. +description: Use for the player guide web app — guide/age-of-dwarves/ (React app shell, all pages), guide/engine/ (@magic-civ/guide-engine package: shared UI components, types, utils, climate sim), Vite config, pnpm workspace, Vitest tests, TypeScript. --- You are the web guide specialist for Magic Civilization. You own the player-facing web guide — a React/TypeScript app that documents the game and hosts the interactive climate simulation. @@ -15,7 +15,7 @@ guide/ types/ — shared TypeScript types utils/ — shared utilities index.ts — re-exports all public API - age-of-four/ — @magic-civilization/guide-age-of-four (app) + age-of-dwarves/ — @magic-civilization/guide-age-of-dwarves (app) src/ App.tsx — app shell pages/ — guide pages @@ -27,11 +27,11 @@ packages/engine-ts/ — @magic-civ/engine-ts (auto-generated climate TS) index.ts — re-exports ``` -Game data is accessed via a symlink: `guide/themes/fantasy/` → `games/age-of-four/`. This means there's a single source of truth — no data duplication. +Game data is accessed via a symlink: `guide/themes/fantasy/` → `games/age-of-dwarves/`. This means there's a single source of truth — no data duplication. ## pnpm Workspace -Both guide packages are in `pnpm-workspace.yaml`. `guide/age-of-four` depends on `@magic-civ/guide-engine: "workspace:*"` and `@magic-civ/engine-ts: "workspace:*"`. +Both guide packages are in `pnpm-workspace.yaml`. `guide/age-of-dwarves` depends on `@magic-civ/guide-engine: "workspace:*"` and `@magic-civ/engine-ts: "workspace:*"`. ## Climate Simulation @@ -40,7 +40,7 @@ Both guide packages are in `pnpm-workspace.yaml`. `guide/age-of-four` depends on ## Key Rules - **GDScript is source of truth** for the climate simulation -- **@magic-civ/guide-engine imports** — `guide/age-of-four` imports from `@magic-civ/guide-engine`, never via relative paths to `../engine/` +- **@magic-civ/guide-engine imports** — `guide/age-of-dwarves` imports from `@magic-civ/guide-engine`, never via relative paths to `../engine/` - **No `file:` or `link:` deps** — workspace:* only - **Vitest** for all tests — not Jest - **Strong types** — no `any` diff --git a/.claude/agents/magic-dev.md b/.claude/agents/magic-dev.md index 95909348..6d575b7e 100644 --- a/.claude/agents/magic-dev.md +++ b/.claude/agents/magic-dev.md @@ -34,11 +34,11 @@ Pool with cap, colored mana by school, income from buildings + Archons + terrain ## Spells -8 spells per school, defined in `games/age-of-four/data/spells/*.json` (one file per school). Check those data files for the complete spell list — do not maintain a separate list here. +8 spells per school, defined in `games/age-of-dwarves/data/spells/*.json` (one file per school). Check those data files for the complete spell list — do not maintain a separate list here. **Scope**: `"global"` = High Archon overworld casting. `"local"` = specialist unit combat casting. -**School tier gates**: lower-tier spells unlocked by Mysticism/Arcane Lore, higher tiers by school techs. Check `games/age-of-four/data/techs/` for gating details. +**School tier gates**: lower-tier spells unlocked by Mysticism/Arcane Lore, higher tiers by school techs. Check `games/age-of-dwarves/data/techs/` for gating details. ## Casting