docs(agents): 📝 Update combat, AI, algorithms, data, systems, Godot renderer, web, and magic development guides with markdown files
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
9141e3e1a2
commit
09ff3012dd
8 changed files with 20 additions and 20 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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/<phase>_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
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue