Phase 9: safe start island, better quest book, every useful item obtainable

- Button Isle is peaceful: wild Pokémon only fight a player who hit them first
  (tuning/server.json peaceful_zones); its apricorns and coal make Poké Balls
  (4 apricorns + coal or charcoal), and the world report checks it has enough.
- Quest book: no boilerplate; each zone page says what is particular to it, and
  every zone that needs gear or a field move to be safe has its own quest. New
  page on the bigger mods (Cold Sweat, Fight or Flight, Cobblebase, breeding,
  veins, shared loot, maps and info).
- The Mire's poison stops 10 blocks below the surface.
- Player battles never cost a Pokémon (CobbleHardcoreMon config, mixins, and the
  companion mod's own permadeath).
- tools/item_audit.py: every item with a use has a source on the island; new
  sources for the gaps it found (species additions, three recipes).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
claudeandClaude Opus 5.5 committed 2026-11-10 15:04:09 +01:00
1 parent 6ace26e012
commit d29e177f9d
65 files changed
+1920 -364

No files matched your search

+5
View File
@@ -102,6 +102,11 @@ python3 tools/fieldguide/build.py
```
Writes the field guide to `build/field-guide/` (open `index.html`): where each Pokémon spawns on the island, how to get every mod item and what it's for, with items that have no source on the island flagged. Also generates FTB Quests chapters and a Pokédex text override under `build/field-guide/ingame/` (not installed). Details in [docs/field-guide.md](docs/field-guide.md).
```bash
python3 tools/item_audit.py
```
Every item in the pack that has a use can be had on the island (Adrian, 2026-11-10). Reads the field guide (run `tools/fieldguide/build.py` first) and fails on any item without a source, unless `NO_USE` in the script says why it needs none (decoration, creative-only, left over, or something Cobblemon can't make yet). Sources that only code knows go in `tools/fieldguide/manual_sources.json`.
```bash
python3 tools/smoke_test.py --load-only
```