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

+22 -22
View File
@@ -4,7 +4,7 @@ Generated by `tools/zone_spawns.py` from Cobblemon's spawn data and `world/zones
## Button Isle (Lv 2–10, 26 lines)
Bidoof, Bonsly, Caterpie (Butterfree, Caterpie, Metapod), Combee, Diglett, Ditto, Gimmighoul, Hoothoot, Kricketot (Kricketot, Kricketune), Ledyba, Mawile, Meditite, Nincada, Pachirisu, Rattata, Sableye, Scatterbug (Scatterbug, Spewpa), Skitty, Smeargle, Spinarak, Sunkern, Tarountula, Weedle (Beedrill, Kakuna, Weedle), Wooper, Wurmple (Beautifly, Cascoon, Dustox, Silcoon, Wurmple), Wynaut
Bidoof, Bonsly, Caterpie (Butterfree, Caterpie, Metapod), Combee, Ditto, Gimmighoul, Hoothoot, Kricketot (Kricketot, Kricketune), Ledyba, Meditite, Meowth, Morpeko, Nincada, Pachirisu, Rattata, Sableye, Scatterbug (Scatterbug, Spewpa), Skitty, Smeargle, Spinarak, Sunkern, Tarountula, Weedle (Beedrill, Kakuna, Weedle), Wooper, Wurmple (Beautifly, Cascoon, Dustox, Silcoon, Wurmple), Wynaut
## Frostpeak Range (Lv 40–55, 43 lines)
@@ -14,25 +14,25 @@ Axew (Fraxure, Haxorus), Basculin (Basculegion, Basculin), Budew (Roselia, Roser
Bramblin (Brambleghast), Cacnea (Cacnea, Cacturne), Capsakid (Capsakid, Scovillain), Cubone (Cubone, Marowak), Drampa, Dwebble (Crustle, Dwebble), Ekans (Arbok), Falinks, Fennekin (Braixen, Delphox, Fennekin), Flittle (Espathra), Fuecoco (Crocalor, Fuecoco, Skeledirge), Helioptile (Heliolisk), Hippopotas (Hippopotas, Hippowdon), Klawf, Larvesta, Maractus, Nacli (Garganacl, Naclstack), Numel (Camerupt, Numel), Pawniard, Phanpy (Donphan, Phanpy), Poltchageist (Poltchageist, Sinistcha), Rellor (Rabsca), Sandile (Krokorok, Krookodile), Sandshrew (Sandshrew, Sandslash), Scraggy (Scrafty, Scraggy), Shinx (Luxio, Luxray), Silicobra (Sandaconda, Silicobra), Skarmory, Skorupi (Drapion, Skorupi), Spearow (Fearow), Totodile (Croconaw, Feraligatr, Totodile), Trapinch (Flygon, Vibrava), Tympole (Palpitoad, Seismitoad)
## Mangrove Mire (Lv 25–38, 26 lines)
## Mangrove Mire (Lv 25–38, 18 lines)
Applin (Appletun, Applin, Dipplin, Flapple, Hydrapple), Arrokuda (Arrokuda, Barraskewda), Croagunk (Croagunk, Toxicroak), Deino, Dondozo, Dratini (Dragonair, Dratini), Ducklett (Ducklett, Swanna), Flabébé (Flabébé, Floette, Florges), Flamigo, Froakie (Froakie, Frogadier, Greninja), Gible (Gabite, Gible), Goomy, Growlithe (Arcanine, Growlithe), Illumise, Karrablast (Escavalier, Karrablast), Misdreavus, Mudkip (Marshtomp, Mudkip, Swampert), Shelmet (Accelgor, Shelmet), Slowpoke, Sobble (Drizzile, Inteleon, Sobble), Surskit (Masquerain, Surskit), Tadbulb (Bellibolt, Tadbulb), Tatsugiri, Teddiursa (Teddiursa, Ursaring), Volbeat, Yanma (Yanma, Yanmega)
Arrokuda (Arrokuda, Barraskewda), Croagunk (Croagunk, Toxicroak), Dondozo, Ducklett (Ducklett, Swanna), Flamigo, Froakie (Froakie, Frogadier, Greninja), Illumise, Karrablast (Escavalier, Karrablast), Misdreavus, Mudkip (Marshtomp, Mudkip, Swampert), Shelmet (Accelgor, Shelmet), Slowpoke, Sobble (Drizzile, Inteleon, Sobble), Surskit (Masquerain, Surskit), Tadbulb (Bellibolt, Tadbulb), Tatsugiri, Volbeat, Yanma (Yanma, Yanmega)
## Verdant Jungle (Lv 18–30, 35 lines)
## Verdant Jungle (Lv 18–30, 26 lines)
Aipom, Bellsprout (Bellsprout, Weepinbell), Bounsweet (Bounsweet, Steenee, Tsareena), Bulbasaur (Bulbasaur, Ivysaur), Chatot, Darumaka, Exeggcute (Exeggcute, Exeggutor), Fomantis, Glimmet, Grookey (Grookey, Thwackey), Happiny (Chansey, Happiny), Jangmo-o, Kecleon, Litten (Litten, Torracat), Magikarp (Gyarados, Magikarp), Magnemite (Magnemite, Magneton), Munchlax, Natu (Natu, Xatu), Noibat, Panpour (Panpour, Simipour), Pansage (Pansage, Simisage), Pansear (Pansear, Simisear), Pikipek (Pikipek, Toucannon, Trumbeak), Porygon, Shroodle (Grafaiai, Shroodle), Slakoth (Slakoth, Vigoroth), Snivy (Servine, Snivy), Stunfisk, Tangela (Tangela, Tangrowth), Treecko (Grovyle, Treecko), Tropius, Unown, Wimpod (Golisopod, Wimpod), Woobat (Swoobat, Woobat), Zubat (Golbat, Zubat)
Aipom, Bellsprout (Bellsprout, Weepinbell), Bounsweet (Bounsweet, Steenee, Tsareena), Bulbasaur (Bulbasaur, Ivysaur), Chatot, Darumaka, Exeggcute (Exeggcute, Exeggutor), Fomantis, Grookey (Grookey, Thwackey), Jangmo-o, Kecleon, Litten (Litten, Torracat), Natu (Natu, Xatu), Panpour (Panpour, Simipour), Pansage (Pansage, Simisage), Pansear (Pansear, Simisear), Pikipek (Pikipek, Toucannon, Trumbeak), Shroodle (Grafaiai, Shroodle), Slakoth (Slakoth, Vigoroth), Snivy (Servine, Snivy), Stunfisk, Tangela (Tangela, Tangrowth), Treecko (Grovyle, Treecko), Tropius, Unown, Woobat (Swoobat, Woobat)
## Highland Meadows (Lv 25–35, 39 lines)
Abra (Abra, Alakazam, Kadabra), Bouffalant, Buizel (Buizel, Floatzel), Chewtle (Chewtle, Drednaw), Cottonee (Cottonee, Whimsicott), Cyclizar, Cyndaquil (Cyndaquil, Quilava), Electrike (Electrike, Manectric), Golett, Hoppip (Hoppip, Jumpluff, Skiploom), Igglybuff (Jigglypuff, Wigglytuff), Lechonk (Lechonk, Oinkologne), Lickitung (Lickilicky, Lickitung), Mareep (Ampharos, Flaaffy, Mareep), Miltank, Mudbray (Mudbray, Mudsdale), Nymble (Lokix), Oddish (Bellossom, Gloom, Oddish, Vileplume), Pidgey (Pidgeotto, Pidgey), Poliwag (Politoed, Poliwag, Poliwhirl, Poliwrath), Ponyta, Poochyena (Mightyena), Psyduck (Golduck, Psyduck), Quaxly (Quaxly, Quaxwell), Scorbunny (Cinderace, Raboot, Scorbunny), Seviper, Sewaddle (Leavanny, Sewaddle, Swadloon), Sinistea (Polteageist, Sinistea), Spiritomb, Squirtle (Squirtle, Wartortle), Stonjourner, Tauros, Tepig (Pignite, Tepig), Tinkatink (Tinkatink, Tinkatuff), Torchic (Combusken, Torchic), Turtwig (Grotle, Torterra, Turtwig), Vulpix (Ninetales, Vulpix), Zangoose, Zorua (Zoroark, Zorua)
Abra (Abra, Alakazam, Kadabra), Bouffalant, Buizel (Buizel, Floatzel), Chewtle (Chewtle, Drednaw), Cottonee (Cottonee, Whimsicott), Cyclizar, Cyndaquil (Cyndaquil, Quilava), Electrike (Electrike, Manectric), Fletchling (Fletchinder, Fletchling, Talonflame), Golett, Hoppip (Hoppip, Jumpluff, Skiploom), Igglybuff (Jigglypuff, Wigglytuff), Lechonk (Lechonk, Oinkologne), Lickitung (Lickilicky, Lickitung), Mareep (Ampharos, Flaaffy, Mareep), Miltank, Mudbray (Mudbray, Mudsdale), Nymble (Lokix), Oddish (Bellossom, Gloom, Oddish, Vileplume), Pidgey (Pidgeotto, Pidgey), Poliwag (Politoed, Poliwag, Poliwhirl, Poliwrath), Ponyta, Poochyena (Mightyena), Psyduck (Golduck, Psyduck), Quaxly (Quaxly, Quaxwell), Scorbunny (Cinderace, Raboot, Scorbunny), Seviper, Sinistea (Polteageist, Sinistea), Spiritomb, Squirtle (Squirtle, Wartortle), Stonjourner, Tauros, Tepig (Pignite, Tepig), Tinkatink (Tinkatink, Tinkatuff), Torchic (Combusken, Torchic), Turtwig (Grotle, Torterra, Turtwig), Vulpix (Ninetales, Vulpix), Zangoose, Zorua (Zoroark, Zorua)
## Westmarch (Lv 15–25, 49 lines)
## Westmarch (Lv 15–25, 23 lines)
Baltoy, Bronzor, Buneary, Carbink, Corphish, Corsola, Deerling, Dewpider (Araquanid, Dewpider), Drifloon, Drilbur, Dunsparce, Eevee, Farfetch'd, Fletchling (Fletchinder, Fletchling), Gastly (Gastly, Haunter), Geodude (Geodude, Graveler), Grimer, Grubbin (Charjabug, Grubbin), Hawlucha, Heracross, Honedge, Klink, Lillipup (Herdier, Lillipup), Maschiff, Milcery (Alcremie, Milcery), Mime Jr., Nickit (Nickit, Thievul), Nosepass, Onix, Petilil (Lilligant, Petilil), Phantump, Pichu (Pichu, Pikachu), Pinsir, Pumpkaboo, Ralts (Kirlia, Ralts), Roggenrola (Boldore, Roggenrola), Rolycoly (Carkol, Rolycoly), Scyther, Seedot (Nuzleaf, Seedot), Shroomish (Breloom, Shroomish), Skwovet (Greedent, Skwovet), Stunky, Tandemaus (Maushold, Tandemaus), Tentacool, Timburr (Gurdurr, Timburr), Toxel, Tynamo, Varoom, Yamper (Boltund, Yamper)
Applin (Appletun, Applin, Dipplin, Flapple), Buneary, Corphish, Deerling, Dewpider (Araquanid, Dewpider), Dratini, Flabébé (Flabébé, Floette), Gible (Gabite, Gible), Goomy, Magikarp (Gyarados, Magikarp), Munchlax, Nickit (Nickit, Thievul), Petilil (Lilligant, Petilil), Phantump, Pichu (Pichu, Pikachu), Scyther, Seedot (Nuzleaf, Seedot), Sewaddle (Sewaddle, Swadloon), Shroomish (Breloom, Shroomish), Skwovet (Greedent, Skwovet), Stunky, Tandemaus (Maushold, Tandemaus), Teddiursa
## Southwold (Lv 8–18, 50 lines)
Absol, Audino, Azurill (Azumarill, Azurill, Marill), Barboach, Bunnelby, Burmy, Chingling, Comfey, Cutiefly, Drowzee, Druddigon, Elgyem, Espurr, Fidough, Furfrou, Glameow, Goldeen, Indeedee, Joltik, Klefki, Koffing, Lotad (Lombre, Lotad), Meowth, Minccino, Minun, Morpeko, Munna, Orthworm, Patrat, Pidove, Plusle, Purrloin, Relicanth, Sentret (Furret, Sentret), Shuppet, Sigilyph, Slugma, Snubbull, Solosis, Squawkabilly, Swablu, Swirlix, Taillow, Trubbish, Venonat, Voltorb, Whismur, Yamask, Yungoos, Zigzagoon
Audino, Azurill (Azumarill, Azurill, Marill), Bunnelby, Burmy, Chingling, Corsola, Drifloon, Dunsparce, Eevee, Farfetch'd, Furfrou, Gastly, Glameow, Goldeen, Grimer, Grubbin, Happiny (Chansey, Happiny), Hawlucha, Heracross, Koffing, Lillipup (Herdier, Lillipup), Lotad (Lombre, Lotad), Magnemite, Minccino, Minun, Noibat, Patrat, Pidove, Pinsir, Plusle, Porygon, Pumpkaboo, Relicanth, Sentret (Furret, Sentret), Shuppet, Squawkabilly, Swablu, Taillow, Tentacool, Timburr, Toxel, Tynamo, Venonat, Voltorb, Whismur, Wimpod, Yamask, Yamper, Yungoos, Zigzagoon
## Shallows (Lv 5–20, 21 lines)
@@ -42,21 +42,21 @@ Alomomola, Bruxish, Carvanha, Chinchou, Clobbopus, Crabrawler, Cramorant, Finize
Binacle (Barbaracle, Binacle), Clamperl (Clamperl, Gorebyss, Huntail), Clauncher (Clauncher, Clawitzer), Dhelmise, Dreepy (Drakloak), Frillish (Frillish, Jellicent), Horsea (Horsea, Kingdra, Seadra), Lapras, Mantyke (Mantine, Mantyke), Oshawott (Dewott, Oshawott, Samurott), Popplio (Brionne, Popplio, Primarina), Remoraid (Octillery, Remoraid), Shellder (Cloyster, Shellder), Skrelp (Dragalge, Skrelp), Staryu (Starmie, Staryu), Veluza, Wailmer (Wailmer, Wailord), Wattrel (Kilowattrel)
## Lush Caves (Lv 12–28, 16 lines)
## Lush Caves (Lv 12–28, 21 lines)
Amaura, Anorith, Archen, Carnivine, Cranidos, Ferroseed, Kabuto, Lileep, Morelull (Morelull, Shiinotic), Omanyte, Paras (Paras, Parasect), Shieldon, Shuckle, Tirtouga, Tyrunt, Venipede (Venipede, Whirlipede)
Amaura, Anorith, Archen, Barboach, Carnivine, Cranidos, Cutiefly (Cutiefly, Ribombee), Ferroseed, Joltik, Kabuto, Lileep, Morelull (Morelull, Shiinotic), Omanyte, Paras (Paras, Parasect), Shieldon, Shuckle, Snubbull (Granbull, Snubbull), Tirtouga, Trubbish, Tyrunt, Venipede (Venipede, Whirlipede)
## Dripstone Depths (Lv 22–38, 5 lines)
## Dripstone Depths (Lv 22–38, 21 lines)
Bagon (Bagon, Shelgon), Beldum (Beldum, Metang), Cleffa (Clefable, Clefairy, Cleffa), Lunatone, Solrock
Bagon (Bagon, Shelgon), Baltoy (Baltoy, Claydol), Beldum (Beldum, Metang), Cleffa (Clefable, Clefairy, Cleffa), Comfey, Drowzee (Drowzee, Hypno), Druddigon, Elgyem, Espurr (Espurr, Meowstic), Fidough (Dachsbun, Fidough), Geodude (Geodude, Golem, Graveler), Indeedee, Klefki, Lunatone, Milcery (Alcremie, Milcery), Munna (Munna, Musharna), Orthworm, Sigilyph, Solosis (Duosion, Solosis), Solrock, Swirlix (Slurpuff, Swirlix)
## Deep Dark (Lv 45–60, 6 lines)
## Deep Dark (Lv 45–60, 21 lines)
Duskull (Dusclops, Dusknoir), Feebas (Milotic), Greavard (Houndstone), Mimikyu, Murkrow (Honchkrow), Rookidee (Corviknight)
Bronzor (Bronzong), Carbink, Deino (Zweilous), Duskull (Dusclops, Dusknoir), Feebas (Milotic), Glimmet (Glimmora), Greavard (Houndstone), Honedge (Aegislash, Doublade), Klink (Klinklang), Maschiff (Mabosstiff), Mime Jr. (Mr. Mime, Mr. Rime), Mimikyu, Murkrow (Honchkrow), Nosepass (Probopass), Onix (Steelix), Ralts (Gallade, Gardevoir), Roggenrola (Gigalith), Rolycoly (Coalossal), Rookidee (Corviknight), Varoom (Revavroom), Zubat (Crobat, Golbat)
## Basalt Furnace (Lv 55–70, 9 lines)
## Basalt Furnace (Lv 55–70, 16 lines)
Charmander (Charizard), Durant, Gligar (Gliscor), Heatmor, Houndour (Houndoom), Magby (Magmortar), Sizzlipede (Centiskorch), Torkoal, Turtonator
Absol, Charmander (Charizard), Diglett (Dugtrio), Drilbur (Excadrill), Durant, Gligar (Gliscor), Growlithe (Arcanine), Heatmor, Houndour (Houndoom), Magby (Magmortar), Mawile, Purrloin (Liepard), Sizzlipede (Centiskorch), Slugma (Magcargo), Torkoal, Turtonator
## Alpha guardians
@@ -64,13 +64,13 @@ One per zone at its sample point, uncatchable, five levels above the band; it re
| Zone | Guardian | Level | Drops |
| --- | --- | --- | --- |
| Button Isle | Pachirisu | 15 | 10× poke_ball, 4× potion |
| Frostpeak Range | Archaludon | 60 | 3× icy_rock, 2× exp_candy_l |
| Button Isle | Morpeko | 15 | 10× poke_ball, 4× potion |
| Frostpeak Range | Tyranitar | 60 | 3× icy_rock, 2× exp_candy_l |
| Sunscorch | Delphox | 50 | 3× heat_rock, 2× exp_candy_l |
| Mangrove Mire | Arcanine | 43 | 3× icy_rock, 4× super_potion |
| Mangrove Mire | Swampert | 43 | 3× icy_rock, 4× super_potion |
| Verdant Jungle | Tangrowth | 35 | 1× mire_waders, 4× pecha_berry, 2× exp_candy_m |
| Highland Meadows | Cinderace | 40 | 3× icy_rock, 4× super_potion |
| Westmarch | Scyther | 30 | 1× mire_waders, 4× pecha_berry, 2× exp_candy_m |
| Southwold | Sigilyph | 23 | 6× great_ball, 4× exp_candy_s |
| Southwold | Pinsir | 23 | 6× great_ball, 4× exp_candy_s |
| Deep Sea | Kingdra | 55 | 1× mystic_water, 3× exp_candy_m |
| Deep Dark | Dusknoir | 65 | 3× icy_rock, 2× exp_candy_l |
| Deep Dark | Crobat | 65 | 3× icy_rock, 2× exp_candy_l |