Phase 4 play-test fixes: deep caves, fuller cave spawns, strays, shared loot

From Adrian's play-test (2026-10-30):
- The Deep Dark no longer fills the deepslate layer: world/biomes.json
  splits it by temperature (Deep Dark under cold and temperate land,
  basalt deltas under the hottest, ordinary caves between); at y -52 it
  drops from 30 % to 14 % of the land, basalt 7 %.
- Cave zones fill up to their targets with lines whose primary type fits
  the cave; top stages spawn up to the band's top (Deep Dark Lv 60, Basalt
  70); no time-of-day conditions underground.
- Wild Pokemon more than 10 levels above the band of the zone they
  wander into despawn (zone/Wanderers.kt).
- Loot is shared: all players in one scoreboard team, Lootr team_loot.
- Basalt ore nodes reach the deep basalt.
Self-tests strays_despawn and loot_is_shared; the catching rules from the
previous commit are now tested too. Template rebuilt (world check passed),
island quick check passed (36 self-tests and the restart test).
Shoulder Pokemon noted for Phase 5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
claudeandClaude Opus 5.5 committed 2026-10-31 02:01:41 +01:00
1 parent 6361636da7
commit d49684a2eb
40 files changed
+8212 -9412

No files matched your search

@@ -1,7 +1,7 @@
{
"_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.",
"zone": "button_isle",
"pokemon": "pachirisu level=15 uncatchable=yes",
"pokemon": "morpeko level=15 uncatchable=yes",
"scale": 1.5,
"drops": [
{
@@ -1,7 +1,7 @@
{
"_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.",
"zone": "deep_dark",
"pokemon": "dusknoir level=65 uncatchable=yes",
"pokemon": "crobat level=65 uncatchable=yes",
"scale": 1.5,
"drops": [
{
@@ -1,7 +1,7 @@
{
"_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.",
"zone": "frostpeak",
"pokemon": "archaludon level=60 uncatchable=yes",
"pokemon": "tyranitar level=60 uncatchable=yes",
"scale": 1.5,
"drops": [
{
@@ -1,7 +1,7 @@
{
"_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.",
"zone": "mire",
"pokemon": "arcanine level=43 uncatchable=yes",
"pokemon": "swampert level=43 uncatchable=yes",
"scale": 1.5,
"drops": [
{
@@ -1,7 +1,7 @@
{
"_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.",
"zone": "southwold",
"pokemon": "sigilyph level=23 uncatchable=yes",
"pokemon": "pinsir level=23 uncatchable=yes",
"scale": 1.5,
"drops": [
{