Phase 3: strong flyers only spawn in high-level zones
- tools/zone_spawns.py: a species ridable through the air with top speed >= 60 or top stamina >= 85 never spawns in a zone whose band starts below Lv 30; lines that start as one are only placed in such zones, and the tool refuses to write pools that break the rule. Drampa moves to Sunscorch; Aerodactyl is fossil-only; Salamence never spawns wild (Bagon and Shelgon stay in the Dripstone caves). - Ride stats stay Cobblemon's until play-tested (species_additions can override riding later). - Phase 3 checklist: all steps in, approval checkpoint for Adrian. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
173203eeb5
commit
55c336f89e
12 files changed
+2115
-576
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.",
|
"_comment": "Generated by tools/zone_spawns.py from world/zones.json; do not edit by hand.",
|
||||||
"zone": "westmarch",
|
"zone": "westmarch",
|
||||||
"pokemon": "pinsir level=30 uncatchable=yes",
|
"pokemon": "scyther level=30 uncatchable=yes",
|
||||||
"scale": 1.5,
|
"scale": 1.5,
|
||||||
"drops": [
|
"drops": [
|
||||||
{
|
{
|
||||||
|
|||||||
File diff suppressed because it is too large.
Load diff
@@ -13,24 +13,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-aerodactyl-1-0",
|
"id": "lush_caves-amaura-1-0",
|
||||||
"level": "27-28",
|
|
||||||
"pokemon": "aerodactyl",
|
|
||||||
"presets": [],
|
|
||||||
"spawnablePositionType": "grounded",
|
|
||||||
"type": "pokemon",
|
|
||||||
"weight": 100.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bucket": "ultra-rare",
|
|
||||||
"condition": {
|
|
||||||
"biomes": [
|
|
||||||
"#cobblemon:is_lush"
|
|
||||||
],
|
|
||||||
"maxSkyLight": 7,
|
|
||||||
"zone": "lush_caves"
|
|
||||||
},
|
|
||||||
"id": "lush_caves-amaura-1-1",
|
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "amaura",
|
"pokemon": "amaura",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -47,7 +30,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-anorith-1-2",
|
"id": "lush_caves-anorith-1-1",
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "anorith",
|
"pokemon": "anorith",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -64,7 +47,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-anorith-2-3",
|
"id": "lush_caves-anorith-2-2",
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "anorith",
|
"pokemon": "anorith",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -83,7 +66,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-archen-1-4",
|
"id": "lush_caves-archen-1-3",
|
||||||
"level": "15-28",
|
"level": "15-28",
|
||||||
"pokemon": "archen",
|
"pokemon": "archen",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -107,7 +90,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-carnivine-2-22",
|
"id": "lush_caves-carnivine-2-21",
|
||||||
"level": "20-28",
|
"level": "20-28",
|
||||||
"pokemon": "carnivine",
|
"pokemon": "carnivine",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -124,7 +107,7 @@
|
|||||||
"maxSkyLight": 15,
|
"maxSkyLight": 15,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-cranidos-1-5",
|
"id": "lush_caves-cranidos-1-4",
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "cranidos",
|
"pokemon": "cranidos",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -148,7 +131,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-ferroseed-1-6",
|
"id": "lush_caves-ferroseed-1-5",
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "ferroseed",
|
"pokemon": "ferroseed",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -171,7 +154,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-kabuto-1-7",
|
"id": "lush_caves-kabuto-1-6",
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "kabuto",
|
"pokemon": "kabuto",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -188,7 +171,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-kabuto-2-8",
|
"id": "lush_caves-kabuto-2-7",
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "kabuto",
|
"pokemon": "kabuto",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -207,7 +190,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-lileep-1-9",
|
"id": "lush_caves-lileep-1-8",
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "lileep",
|
"pokemon": "lileep",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -226,7 +209,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-lileep-2-10",
|
"id": "lush_caves-lileep-2-9",
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "lileep",
|
"pokemon": "lileep",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -252,7 +235,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-morelull-2-23",
|
"id": "lush_caves-morelull-2-22",
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "morelull",
|
"pokemon": "morelull",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -275,7 +258,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-omanyte-1-11",
|
"id": "lush_caves-omanyte-1-10",
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "omanyte",
|
"pokemon": "omanyte",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -292,7 +275,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-omanyte-2-12",
|
"id": "lush_caves-omanyte-2-11",
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "omanyte",
|
"pokemon": "omanyte",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -318,7 +301,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-paras-1-13",
|
"id": "lush_caves-paras-1-12",
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "paras",
|
"pokemon": "paras",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -348,7 +331,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-parasect-1-14",
|
"id": "lush_caves-parasect-1-13",
|
||||||
"level": "24-28",
|
"level": "24-28",
|
||||||
"pokemon": "parasect",
|
"pokemon": "parasect",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -371,7 +354,7 @@
|
|||||||
"maxSkyLight": 15,
|
"maxSkyLight": 15,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-shieldon-1-15",
|
"id": "lush_caves-shieldon-1-14",
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "shieldon",
|
"pokemon": "shieldon",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -395,7 +378,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-shiinotic-2-24",
|
"id": "lush_caves-shiinotic-2-23",
|
||||||
"level": "24-28",
|
"level": "24-28",
|
||||||
"pokemon": "shiinotic",
|
"pokemon": "shiinotic",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -425,7 +408,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-shuckle-1-16",
|
"id": "lush_caves-shuckle-1-15",
|
||||||
"level": "16-28",
|
"level": "16-28",
|
||||||
"pokemon": "shuckle",
|
"pokemon": "shuckle",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -450,7 +433,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-shuckle-2-17",
|
"id": "lush_caves-shuckle-2-16",
|
||||||
"level": "16-28",
|
"level": "16-28",
|
||||||
"pokemon": "shuckle",
|
"pokemon": "shuckle",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -474,7 +457,7 @@
|
|||||||
"minLureLevel": 1,
|
"minLureLevel": 1,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-shuckle-3-18",
|
"id": "lush_caves-shuckle-3-17",
|
||||||
"level": "16-28",
|
"level": "16-28",
|
||||||
"pokemon": "shuckle",
|
"pokemon": "shuckle",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -496,7 +479,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-tirtouga-1-19",
|
"id": "lush_caves-tirtouga-1-18",
|
||||||
"level": "15-28",
|
"level": "15-28",
|
||||||
"pokemon": "tirtouga",
|
"pokemon": "tirtouga",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
@@ -513,7 +496,7 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-tirtouga-2-20",
|
"id": "lush_caves-tirtouga-2-19",
|
||||||
"level": "15-28",
|
"level": "15-28",
|
||||||
"pokemon": "tirtouga",
|
"pokemon": "tirtouga",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -532,13 +515,73 @@
|
|||||||
"maxSkyLight": 7,
|
"maxSkyLight": 7,
|
||||||
"zone": "lush_caves"
|
"zone": "lush_caves"
|
||||||
},
|
},
|
||||||
"id": "lush_caves-tyrunt-1-21",
|
"id": "lush_caves-tyrunt-1-20",
|
||||||
"level": "12-28",
|
"level": "12-28",
|
||||||
"pokemon": "tyrunt",
|
"pokemon": "tyrunt",
|
||||||
"presets": [],
|
"presets": [],
|
||||||
"spawnablePositionType": "grounded",
|
"spawnablePositionType": "grounded",
|
||||||
"type": "pokemon",
|
"type": "pokemon",
|
||||||
"weight": 60.0
|
"weight": 60.0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anticondition": {
|
||||||
|
"maxY": 9,
|
||||||
|
"minY": -41,
|
||||||
|
"structures": [
|
||||||
|
"cobblemon:shipwreck_coves/lush_shipwreck_cove"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"bucket": "common",
|
||||||
|
"condition": {
|
||||||
|
"biomes": [
|
||||||
|
"#cobblemon:is_lush"
|
||||||
|
],
|
||||||
|
"maxSkyLight": 7,
|
||||||
|
"zone": "lush_caves"
|
||||||
|
},
|
||||||
|
"id": "lush_caves-venipede-3-24",
|
||||||
|
"level": "12-26",
|
||||||
|
"pokemon": "venipede",
|
||||||
|
"presets": [],
|
||||||
|
"spawnablePositionType": "grounded",
|
||||||
|
"type": "pokemon",
|
||||||
|
"weight": 9.0,
|
||||||
|
"weightMultiplier": {
|
||||||
|
"condition": {
|
||||||
|
"isPokeSnack": true
|
||||||
|
},
|
||||||
|
"multiplier": 2.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anticondition": {
|
||||||
|
"maxY": 9,
|
||||||
|
"minY": -41,
|
||||||
|
"structures": [
|
||||||
|
"cobblemon:shipwreck_coves/lush_shipwreck_cove"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"bucket": "common",
|
||||||
|
"condition": {
|
||||||
|
"biomes": [
|
||||||
|
"#cobblemon:is_lush"
|
||||||
|
],
|
||||||
|
"maxSkyLight": 7,
|
||||||
|
"zone": "lush_caves"
|
||||||
|
},
|
||||||
|
"id": "lush_caves-whirlipede-3-25",
|
||||||
|
"level": "22-28",
|
||||||
|
"pokemon": "whirlipede",
|
||||||
|
"presets": [],
|
||||||
|
"spawnablePositionType": "grounded",
|
||||||
|
"type": "pokemon",
|
||||||
|
"weight": 1.8,
|
||||||
|
"weightMultiplier": {
|
||||||
|
"condition": {
|
||||||
|
"isPokeSnack": true
|
||||||
|
},
|
||||||
|
"multiplier": 2.0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-appletun-1-94",
|
"id": "mire-appletun-1-86",
|
||||||
"level": "25-38",
|
"level": "25-38",
|
||||||
"pokemon": "appletun",
|
"pokemon": "appletun",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-appletun-2-95",
|
"id": "mire-appletun-2-87",
|
||||||
"level": "25-38",
|
"level": "25-38",
|
||||||
"pokemon": "appletun",
|
"pokemon": "appletun",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-applin-1-90",
|
"id": "mire-applin-1-82",
|
||||||
"level": "25-26",
|
"level": "25-26",
|
||||||
"pokemon": "applin",
|
"pokemon": "applin",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-applin-2-91",
|
"id": "mire-applin-2-83",
|
||||||
"level": "25-26",
|
"level": "25-26",
|
||||||
"pokemon": "applin",
|
"pokemon": "applin",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -159,7 +159,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-arcanine-1-121",
|
"id": "mire-arcanine-1-113",
|
||||||
"level": "30-38",
|
"level": "30-38",
|
||||||
"pokemon": "arcanine",
|
"pokemon": "arcanine",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -471,33 +471,6 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"bucket": "rare",
|
|
||||||
"condition": {
|
|
||||||
"biomes": [
|
|
||||||
"#cobblemon:is_overworld"
|
|
||||||
],
|
|
||||||
"maxSkyLight": 15,
|
|
||||||
"minSkyLight": 8,
|
|
||||||
"zone": "mire"
|
|
||||||
},
|
|
||||||
"id": "mire-chansey-1-82",
|
|
||||||
"level": "25-38",
|
|
||||||
"pokemon": "chansey",
|
|
||||||
"presets": [
|
|
||||||
"natural",
|
|
||||||
"urban"
|
|
||||||
],
|
|
||||||
"spawnablePositionType": "grounded",
|
|
||||||
"type": "pokemon",
|
|
||||||
"weight": 62.6,
|
|
||||||
"weightMultiplier": {
|
|
||||||
"condition": {
|
|
||||||
"timeRange": "night"
|
|
||||||
},
|
|
||||||
"multiplier": 0.25
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"bucket": "common",
|
"bucket": "common",
|
||||||
"condition": {
|
"condition": {
|
||||||
@@ -542,7 +515,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-deino-2-138",
|
"id": "mire-deino-2-130",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "deino",
|
"pokemon": "deino",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -577,7 +550,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-dipplin-1-96",
|
"id": "mire-dipplin-1-88",
|
||||||
"level": "25-38",
|
"level": "25-38",
|
||||||
"pokemon": "dipplin",
|
"pokemon": "dipplin",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -605,7 +578,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-dipplin-2-97",
|
"id": "mire-dipplin-2-89",
|
||||||
"level": "25-38",
|
"level": "25-38",
|
||||||
"pokemon": "dipplin",
|
"pokemon": "dipplin",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -775,7 +748,7 @@
|
|||||||
"minY": -31,
|
"minY": -31,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-dragonair-1-128",
|
"id": "mire-dragonair-1-120",
|
||||||
"level": "30-38",
|
"level": "30-38",
|
||||||
"pokemon": "dragonair",
|
"pokemon": "dragonair",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -809,7 +782,7 @@
|
|||||||
"minY": -31,
|
"minY": -31,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-dragonair-2-129",
|
"id": "mire-dragonair-2-121",
|
||||||
"level": "30-38",
|
"level": "30-38",
|
||||||
"pokemon": "dragonair",
|
"pokemon": "dragonair",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -844,7 +817,7 @@
|
|||||||
"minY": -31,
|
"minY": -31,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-dragonair-3-130",
|
"id": "mire-dragonair-3-122",
|
||||||
"level": "30-38",
|
"level": "30-38",
|
||||||
"pokemon": "dragonair",
|
"pokemon": "dragonair",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -868,7 +841,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-dragonair-4-131",
|
"id": "mire-dragonair-4-123",
|
||||||
"level": "30-38",
|
"level": "30-38",
|
||||||
"pokemon": "dragonair",
|
"pokemon": "dragonair",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -901,7 +874,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-dragonair-5-132",
|
"id": "mire-dragonair-5-124",
|
||||||
"level": "30-38",
|
"level": "30-38",
|
||||||
"pokemon": "dragonair",
|
"pokemon": "dragonair",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -935,7 +908,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-dragonair-6-133",
|
"id": "mire-dragonair-6-125",
|
||||||
"level": "30-38",
|
"level": "30-38",
|
||||||
"pokemon": "dragonair",
|
"pokemon": "dragonair",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -960,7 +933,7 @@
|
|||||||
"minY": -31,
|
"minY": -31,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-dratini-1-122",
|
"id": "mire-dratini-1-114",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "dratini",
|
"pokemon": "dratini",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -994,7 +967,7 @@
|
|||||||
"minY": -31,
|
"minY": -31,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-dratini-2-123",
|
"id": "mire-dratini-2-115",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "dratini",
|
"pokemon": "dratini",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1029,7 +1002,7 @@
|
|||||||
"minY": -31,
|
"minY": -31,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-dratini-3-124",
|
"id": "mire-dratini-3-116",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "dratini",
|
"pokemon": "dratini",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -1053,7 +1026,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-dratini-4-125",
|
"id": "mire-dratini-4-117",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "dratini",
|
"pokemon": "dratini",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1086,7 +1059,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-dratini-5-126",
|
"id": "mire-dratini-5-118",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "dratini",
|
"pokemon": "dratini",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1120,7 +1093,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-dratini-6-127",
|
"id": "mire-dratini-6-119",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "dratini",
|
"pokemon": "dratini",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -1290,7 +1263,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-flabebe-blue-4-105",
|
"id": "mire-flabebe-blue-4-97",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "flabebe flower=blue",
|
"pokemon": "flabebe flower=blue",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1320,7 +1293,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-flabebe-orange-3-104",
|
"id": "mire-flabebe-orange-3-96",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "flabebe flower=orange",
|
"pokemon": "flabebe flower=orange",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1350,7 +1323,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-flabebe-pink-6-107",
|
"id": "mire-flabebe-pink-6-99",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "flabebe flower=pink",
|
"pokemon": "flabebe flower=pink",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1380,7 +1353,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-flabebe-red-1-102",
|
"id": "mire-flabebe-red-1-94",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "flabebe flower=red",
|
"pokemon": "flabebe flower=red",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1410,7 +1383,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-flabebe-white-5-106",
|
"id": "mire-flabebe-white-5-98",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "flabebe flower=white",
|
"pokemon": "flabebe flower=white",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1440,7 +1413,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-flabebe-yellow-2-103",
|
"id": "mire-flabebe-yellow-2-95",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "flabebe flower=yellow",
|
"pokemon": "flabebe flower=yellow",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1533,7 +1506,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-flapple-1-92",
|
"id": "mire-flapple-1-84",
|
||||||
"level": "25-38",
|
"level": "25-38",
|
||||||
"pokemon": "flapple",
|
"pokemon": "flapple",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1561,7 +1534,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-flapple-2-93",
|
"id": "mire-flapple-2-85",
|
||||||
"level": "25-38",
|
"level": "25-38",
|
||||||
"pokemon": "flapple",
|
"pokemon": "flapple",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1585,7 +1558,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-floette-blue-4-111",
|
"id": "mire-floette-blue-4-103",
|
||||||
"level": "25-37",
|
"level": "25-37",
|
||||||
"pokemon": "floette flower=blue",
|
"pokemon": "floette flower=blue",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1615,7 +1588,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-floette-orange-3-110",
|
"id": "mire-floette-orange-3-102",
|
||||||
"level": "25-37",
|
"level": "25-37",
|
||||||
"pokemon": "floette flower=orange",
|
"pokemon": "floette flower=orange",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1645,7 +1618,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-floette-pink-6-113",
|
"id": "mire-floette-pink-6-105",
|
||||||
"level": "25-37",
|
"level": "25-37",
|
||||||
"pokemon": "floette flower=pink",
|
"pokemon": "floette flower=pink",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1675,7 +1648,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-floette-red-1-108",
|
"id": "mire-floette-red-1-100",
|
||||||
"level": "25-37",
|
"level": "25-37",
|
||||||
"pokemon": "floette flower=red",
|
"pokemon": "floette flower=red",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1705,7 +1678,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-floette-white-5-112",
|
"id": "mire-floette-white-5-104",
|
||||||
"level": "25-37",
|
"level": "25-37",
|
||||||
"pokemon": "floette flower=white",
|
"pokemon": "floette flower=white",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1735,7 +1708,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-floette-yellow-2-109",
|
"id": "mire-floette-yellow-2-101",
|
||||||
"level": "25-37",
|
"level": "25-37",
|
||||||
"pokemon": "floette flower=yellow",
|
"pokemon": "floette flower=yellow",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1765,7 +1738,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-florges-blue-4-117",
|
"id": "mire-florges-blue-4-109",
|
||||||
"level": "32-38",
|
"level": "32-38",
|
||||||
"pokemon": "florges flower=blue",
|
"pokemon": "florges flower=blue",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1795,7 +1768,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-florges-orange-3-116",
|
"id": "mire-florges-orange-3-108",
|
||||||
"level": "32-38",
|
"level": "32-38",
|
||||||
"pokemon": "florges flower=orange",
|
"pokemon": "florges flower=orange",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1825,7 +1798,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-florges-pink-6-119",
|
"id": "mire-florges-pink-6-111",
|
||||||
"level": "32-38",
|
"level": "32-38",
|
||||||
"pokemon": "florges flower=pink",
|
"pokemon": "florges flower=pink",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1855,7 +1828,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-florges-red-1-114",
|
"id": "mire-florges-red-1-106",
|
||||||
"level": "32-38",
|
"level": "32-38",
|
||||||
"pokemon": "florges flower=red",
|
"pokemon": "florges flower=red",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1885,7 +1858,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-florges-white-5-118",
|
"id": "mire-florges-white-5-110",
|
||||||
"level": "32-38",
|
"level": "32-38",
|
||||||
"pokemon": "florges flower=white",
|
"pokemon": "florges flower=white",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1915,7 +1888,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-florges-yellow-2-115",
|
"id": "mire-florges-yellow-2-107",
|
||||||
"level": "32-38",
|
"level": "32-38",
|
||||||
"pokemon": "florges flower=yellow",
|
"pokemon": "florges flower=yellow",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2125,7 +2098,7 @@
|
|||||||
"minY": 0,
|
"minY": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-gabite-3-136",
|
"id": "mire-gabite-3-128",
|
||||||
"level": "25-38",
|
"level": "25-38",
|
||||||
"pokemon": "gabite",
|
"pokemon": "gabite",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2157,7 +2130,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-gabite-4-137",
|
"id": "mire-gabite-4-129",
|
||||||
"level": "25-38",
|
"level": "25-38",
|
||||||
"pokemon": "gabite",
|
"pokemon": "gabite",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2189,7 +2162,7 @@
|
|||||||
"minY": 0,
|
"minY": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-gible-3-134",
|
"id": "mire-gible-3-126",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "gible",
|
"pokemon": "gible",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2221,7 +2194,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-gible-4-135",
|
"id": "mire-gible-4-127",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "gible",
|
"pokemon": "gible",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2242,7 +2215,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-goomy-1-139",
|
"id": "mire-goomy-1-131",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "goomy",
|
"pokemon": "goomy",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2265,7 +2238,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-goomy-2-140",
|
"id": "mire-goomy-2-132",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "goomy",
|
"pokemon": "goomy",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2288,7 +2261,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-goomy-3-141",
|
"id": "mire-goomy-3-133",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "goomy",
|
"pokemon": "goomy",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2310,7 +2283,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-goomy-4-142",
|
"id": "mire-goomy-4-134",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "goomy",
|
"pokemon": "goomy",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -2328,7 +2301,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-goomy-5-143",
|
"id": "mire-goomy-5-135",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "goomy",
|
"pokemon": "goomy",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -2355,7 +2328,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-goomy-6-144",
|
"id": "mire-goomy-6-136",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "goomy",
|
"pokemon": "goomy",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -2381,7 +2354,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-goomy-hisui-12-147",
|
"id": "mire-goomy-hisui-12-139",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "goomy region_bias=hisui",
|
"pokemon": "goomy region_bias=hisui",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -2408,7 +2381,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-goomy-hisui-13-148",
|
"id": "mire-goomy-hisui-13-140",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "goomy region_bias=hisui",
|
"pokemon": "goomy region_bias=hisui",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -2434,7 +2407,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-goomy-hisui-14-149",
|
"id": "mire-goomy-hisui-14-141",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "goomy region_bias=hisui",
|
"pokemon": "goomy region_bias=hisui",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -2460,7 +2433,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-goomy-hisui-15-150",
|
"id": "mire-goomy-hisui-15-142",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "goomy region_bias=hisui",
|
"pokemon": "goomy region_bias=hisui",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -2486,7 +2459,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-goomy-hisui-16-151",
|
"id": "mire-goomy-hisui-16-143",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "goomy region_bias=hisui",
|
"pokemon": "goomy region_bias=hisui",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -2520,7 +2493,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-goomy-hisui-8-145",
|
"id": "mire-goomy-hisui-8-137",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "goomy region_bias=hisui",
|
"pokemon": "goomy region_bias=hisui",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2548,7 +2521,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-goomy-hisui-9-146",
|
"id": "mire-goomy-hisui-9-138",
|
||||||
"level": "25-30",
|
"level": "25-30",
|
||||||
"pokemon": "goomy region_bias=hisui",
|
"pokemon": "goomy region_bias=hisui",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2659,7 +2632,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-growlithe-1-120",
|
"id": "mire-growlithe-1-112",
|
||||||
"level": "25-35",
|
"level": "25-35",
|
||||||
"pokemon": "growlithe",
|
"pokemon": "growlithe",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2670,108 +2643,6 @@
|
|||||||
"type": "pokemon",
|
"type": "pokemon",
|
||||||
"weight": 92.0
|
"weight": 92.0
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"bucket": "common",
|
|
||||||
"condition": {
|
|
||||||
"biomes": [
|
|
||||||
"#cobblemon:is_freshwater",
|
|
||||||
"#cobblemon:is_ocean"
|
|
||||||
],
|
|
||||||
"canSeeSky": true,
|
|
||||||
"isPokeSnack": true,
|
|
||||||
"zone": "mire"
|
|
||||||
},
|
|
||||||
"id": "mire-gyarados-1-83",
|
|
||||||
"level": "25-38",
|
|
||||||
"pokemon": "gyarados",
|
|
||||||
"presets": [
|
|
||||||
"water"
|
|
||||||
],
|
|
||||||
"spawnablePositionType": "submerged",
|
|
||||||
"type": "pokemon",
|
|
||||||
"weight": 0.6
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bucket": "common",
|
|
||||||
"condition": {
|
|
||||||
"biomes": [
|
|
||||||
"#cobblemon:is_freshwater",
|
|
||||||
"#cobblemon:is_ocean"
|
|
||||||
],
|
|
||||||
"canSeeSky": false,
|
|
||||||
"isPokeSnack": true,
|
|
||||||
"maxSkyLight": 15,
|
|
||||||
"minSkyLight": 8,
|
|
||||||
"zone": "mire"
|
|
||||||
},
|
|
||||||
"id": "mire-gyarados-2-84",
|
|
||||||
"level": "25-38",
|
|
||||||
"pokemon": "gyarados",
|
|
||||||
"presets": [
|
|
||||||
"water"
|
|
||||||
],
|
|
||||||
"spawnablePositionType": "submerged",
|
|
||||||
"type": "pokemon",
|
|
||||||
"weight": 0.6
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bucket": "uncommon",
|
|
||||||
"condition": {
|
|
||||||
"biomes": [
|
|
||||||
"#cobblemon:is_freshwater",
|
|
||||||
"#cobblemon:is_ocean"
|
|
||||||
],
|
|
||||||
"isPokeSnack": true,
|
|
||||||
"maxSkyLight": 15,
|
|
||||||
"minSkyLight": 8,
|
|
||||||
"zone": "mire"
|
|
||||||
},
|
|
||||||
"id": "mire-gyarados-3-85",
|
|
||||||
"level": "25-38",
|
|
||||||
"pokemon": "gyarados",
|
|
||||||
"presets": [
|
|
||||||
"water"
|
|
||||||
],
|
|
||||||
"spawnablePositionType": "surface",
|
|
||||||
"type": "pokemon",
|
|
||||||
"weight": 1.6
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bucket": "common",
|
|
||||||
"condition": {
|
|
||||||
"biomes": [
|
|
||||||
"#aether:is_aether",
|
|
||||||
"#cobblemon:is_overworld"
|
|
||||||
],
|
|
||||||
"canSeeSky": true,
|
|
||||||
"zone": "mire"
|
|
||||||
},
|
|
||||||
"id": "mire-gyarados-4-86",
|
|
||||||
"level": "25-38",
|
|
||||||
"pokemon": "gyarados",
|
|
||||||
"spawnablePositionType": "fishing",
|
|
||||||
"type": "pokemon",
|
|
||||||
"weight": 10.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bucket": "common",
|
|
||||||
"condition": {
|
|
||||||
"biomes": [
|
|
||||||
"#aether:is_aether",
|
|
||||||
"#cobblemon:is_overworld"
|
|
||||||
],
|
|
||||||
"canSeeSky": false,
|
|
||||||
"maxSkyLight": 15,
|
|
||||||
"minSkyLight": 8,
|
|
||||||
"zone": "mire"
|
|
||||||
},
|
|
||||||
"id": "mire-gyarados-5-87",
|
|
||||||
"level": "25-38",
|
|
||||||
"pokemon": "gyarados",
|
|
||||||
"spawnablePositionType": "fishing",
|
|
||||||
"type": "pokemon",
|
|
||||||
"weight": 10.0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"anticondition": {
|
"anticondition": {
|
||||||
"biomes": [
|
"biomes": [
|
||||||
@@ -2791,7 +2662,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-hydrapple-1-98",
|
"id": "mire-hydrapple-1-90",
|
||||||
"level": "29-38",
|
"level": "29-38",
|
||||||
"pokemon": "hydrapple",
|
"pokemon": "hydrapple",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2819,7 +2690,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-hydrapple-2-99",
|
"id": "mire-hydrapple-2-91",
|
||||||
"level": "29-38",
|
"level": "29-38",
|
||||||
"pokemon": "hydrapple",
|
"pokemon": "hydrapple",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3363,30 +3234,6 @@
|
|||||||
"type": "pokemon",
|
"type": "pokemon",
|
||||||
"weight": 60.0
|
"weight": 60.0
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"bucket": "uncommon",
|
|
||||||
"condition": {
|
|
||||||
"biomes": [
|
|
||||||
"#aether:is_aether",
|
|
||||||
"#cobblemon:is_overworld"
|
|
||||||
],
|
|
||||||
"maxSkyLight": 15,
|
|
||||||
"minSkyLight": 8,
|
|
||||||
"neededNearbyBlocks": [
|
|
||||||
"#cobblemon:saccharine_trees"
|
|
||||||
],
|
|
||||||
"zone": "mire"
|
|
||||||
},
|
|
||||||
"id": "mire-munchlax-2-89",
|
|
||||||
"level": "25-38",
|
|
||||||
"pokemon": "munchlax",
|
|
||||||
"presets": [
|
|
||||||
"natural"
|
|
||||||
],
|
|
||||||
"spawnablePositionType": "grounded",
|
|
||||||
"type": "pokemon",
|
|
||||||
"weight": 16.8
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"bucket": "common",
|
"bucket": "common",
|
||||||
"condition": {
|
"condition": {
|
||||||
@@ -3520,30 +3367,6 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"bucket": "uncommon",
|
|
||||||
"condition": {
|
|
||||||
"biomes": [
|
|
||||||
"#aether:is_aether",
|
|
||||||
"#cobblemon:is_overworld"
|
|
||||||
],
|
|
||||||
"maxSkyLight": 15,
|
|
||||||
"minSkyLight": 8,
|
|
||||||
"neededNearbyBlocks": [
|
|
||||||
"#cobblemon:saccharine_trees"
|
|
||||||
],
|
|
||||||
"zone": "mire"
|
|
||||||
},
|
|
||||||
"id": "mire-snorlax-2-88",
|
|
||||||
"level": "34-38",
|
|
||||||
"pokemon": "snorlax",
|
|
||||||
"presets": [
|
|
||||||
"natural"
|
|
||||||
],
|
|
||||||
"spawnablePositionType": "grounded",
|
|
||||||
"type": "pokemon",
|
|
||||||
"weight": 3.2
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"bucket": "ultra-rare",
|
"bucket": "ultra-rare",
|
||||||
"condition": {
|
"condition": {
|
||||||
@@ -4046,7 +3869,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-teddiursa-2-100",
|
"id": "mire-teddiursa-2-92",
|
||||||
"level": "25-33",
|
"level": "25-33",
|
||||||
"pokemon": "teddiursa",
|
"pokemon": "teddiursa",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -4105,7 +3928,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "mire"
|
"zone": "mire"
|
||||||
},
|
},
|
||||||
"id": "mire-ursaring-2-101",
|
"id": "mire-ursaring-2-93",
|
||||||
"level": "30-38",
|
"level": "30-38",
|
||||||
"pokemon": "ursaring",
|
"pokemon": "ursaring",
|
||||||
"presets": [
|
"presets": [
|
||||||
|
|||||||
@@ -574,28 +574,6 @@
|
|||||||
"type": "pokemon",
|
"type": "pokemon",
|
||||||
"weight": 18.0
|
"weight": 18.0
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"bucket": "uncommon",
|
|
||||||
"condition": {
|
|
||||||
"biomes": [
|
|
||||||
"#cobblemon:is_overworld"
|
|
||||||
],
|
|
||||||
"maxSkyLight": 15,
|
|
||||||
"minSkyLight": 8,
|
|
||||||
"minY": 192,
|
|
||||||
"zone": "southwold"
|
|
||||||
},
|
|
||||||
"id": "southwold-drampa-2-97",
|
|
||||||
"level": "8-18",
|
|
||||||
"pokemon": "drampa",
|
|
||||||
"presets": [
|
|
||||||
"natural",
|
|
||||||
"wild"
|
|
||||||
],
|
|
||||||
"spawnablePositionType": "grounded",
|
|
||||||
"type": "pokemon",
|
|
||||||
"weight": 60.0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"anticondition": {
|
"anticondition": {
|
||||||
"biomes": [
|
"biomes": [
|
||||||
@@ -1145,7 +1123,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-koffing-1-107",
|
"id": "southwold-koffing-1-106",
|
||||||
"level": "9-18",
|
"level": "9-18",
|
||||||
"pokemon": "koffing",
|
"pokemon": "koffing",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1189,7 +1167,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-koffing-2-108",
|
"id": "southwold-koffing-2-107",
|
||||||
"level": "9-18",
|
"level": "9-18",
|
||||||
"pokemon": "koffing",
|
"pokemon": "koffing",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1835,7 +1813,7 @@
|
|||||||
"timeRange": "night",
|
"timeRange": "night",
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-munna-1-98",
|
"id": "southwold-munna-1-97",
|
||||||
"level": "8-18",
|
"level": "8-18",
|
||||||
"pokemon": "munna",
|
"pokemon": "munna",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1860,7 +1838,7 @@
|
|||||||
"timeRange": "night",
|
"timeRange": "night",
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-munna-2-99",
|
"id": "southwold-munna-2-98",
|
||||||
"level": "8-18",
|
"level": "8-18",
|
||||||
"pokemon": "munna",
|
"pokemon": "munna",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1939,7 +1917,7 @@
|
|||||||
"timeRange": "day",
|
"timeRange": "day",
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-pidove-1-100",
|
"id": "southwold-pidove-1-99",
|
||||||
"level": "8-18",
|
"level": "8-18",
|
||||||
"pokemon": "pidove",
|
"pokemon": "pidove",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1968,7 +1946,7 @@
|
|||||||
"timeRange": "day",
|
"timeRange": "day",
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-pidove-2-101",
|
"id": "southwold-pidove-2-100",
|
||||||
"level": "8-18",
|
"level": "8-18",
|
||||||
"pokemon": "pidove",
|
"pokemon": "pidove",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2000,7 +1978,7 @@
|
|||||||
"timeRange": "day",
|
"timeRange": "day",
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-pidove-3-102",
|
"id": "southwold-pidove-3-101",
|
||||||
"level": "8-18",
|
"level": "8-18",
|
||||||
"pokemon": "pidove",
|
"pokemon": "pidove",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2296,7 +2274,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-sigilyph-2-112",
|
"id": "southwold-sigilyph-2-111",
|
||||||
"level": "8-18",
|
"level": "8-18",
|
||||||
"pokemon": "sigilyph",
|
"pokemon": "sigilyph",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2390,6 +2368,32 @@
|
|||||||
"type": "pokemon",
|
"type": "pokemon",
|
||||||
"weight": 54.0
|
"weight": 54.0
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"bucket": "rare",
|
||||||
|
"condition": {
|
||||||
|
"biomes": [
|
||||||
|
"#cobblemon:is_overworld"
|
||||||
|
],
|
||||||
|
"maxSkyLight": 15,
|
||||||
|
"minSkyLight": 8,
|
||||||
|
"zone": "southwold"
|
||||||
|
},
|
||||||
|
"id": "southwold-solosis-1-112",
|
||||||
|
"level": "8-18",
|
||||||
|
"pokemon": "solosis",
|
||||||
|
"presets": [
|
||||||
|
"natural"
|
||||||
|
],
|
||||||
|
"spawnablePositionType": "grounded",
|
||||||
|
"type": "pokemon",
|
||||||
|
"weight": 12.0,
|
||||||
|
"weightMultiplier": {
|
||||||
|
"condition": {
|
||||||
|
"isPokeSnack": true
|
||||||
|
},
|
||||||
|
"multiplier": 1.25
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"anticondition": {
|
"anticondition": {
|
||||||
"biomes": [
|
"biomes": [
|
||||||
@@ -2666,7 +2670,7 @@
|
|||||||
"minY": 96,
|
"minY": 96,
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-swablu-1-110",
|
"id": "southwold-swablu-1-109",
|
||||||
"level": "8-18",
|
"level": "8-18",
|
||||||
"pokemon": "swablu",
|
"pokemon": "swablu",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2703,7 +2707,7 @@
|
|||||||
"minY": 192,
|
"minY": 192,
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-swablu-2-111",
|
"id": "southwold-swablu-2-110",
|
||||||
"level": "8-18",
|
"level": "8-18",
|
||||||
"pokemon": "swablu",
|
"pokemon": "swablu",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3024,7 +3028,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-voltorb-1-103",
|
"id": "southwold-voltorb-1-102",
|
||||||
"level": "8-18",
|
"level": "8-18",
|
||||||
"pokemon": "voltorb",
|
"pokemon": "voltorb",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3062,7 +3066,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-voltorb-2-104",
|
"id": "southwold-voltorb-2-103",
|
||||||
"level": "8-18",
|
"level": "8-18",
|
||||||
"pokemon": "voltorb",
|
"pokemon": "voltorb",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3099,7 +3103,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-voltorb-3-105",
|
"id": "southwold-voltorb-3-104",
|
||||||
"level": "8-18",
|
"level": "8-18",
|
||||||
"pokemon": "voltorb",
|
"pokemon": "voltorb",
|
||||||
"spawnablePositionType": "grounded",
|
"spawnablePositionType": "grounded",
|
||||||
@@ -3133,7 +3137,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-voltorb-hisuian-4-106",
|
"id": "southwold-voltorb-hisuian-4-105",
|
||||||
"level": "8-18",
|
"level": "8-18",
|
||||||
"pokemon": "voltorb hisuian",
|
"pokemon": "voltorb hisuian",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3174,7 +3178,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "southwold"
|
"zone": "southwold"
|
||||||
},
|
},
|
||||||
"id": "southwold-whismur-2-109",
|
"id": "southwold-whismur-2-108",
|
||||||
"level": "8-18",
|
"level": "8-18",
|
||||||
"pokemon": "whismur",
|
"pokemon": "whismur",
|
||||||
"presets": [
|
"presets": [
|
||||||
|
|||||||
@@ -451,6 +451,28 @@
|
|||||||
"multiplier": 0.25
|
"multiplier": 0.25
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"bucket": "uncommon",
|
||||||
|
"condition": {
|
||||||
|
"biomes": [
|
||||||
|
"#cobblemon:is_overworld"
|
||||||
|
],
|
||||||
|
"maxSkyLight": 15,
|
||||||
|
"minSkyLight": 8,
|
||||||
|
"minY": 192,
|
||||||
|
"zone": "sunscorch"
|
||||||
|
},
|
||||||
|
"id": "sunscorch-drampa-2-76",
|
||||||
|
"level": "30-45",
|
||||||
|
"pokemon": "drampa",
|
||||||
|
"presets": [
|
||||||
|
"natural",
|
||||||
|
"wild"
|
||||||
|
],
|
||||||
|
"spawnablePositionType": "grounded",
|
||||||
|
"type": "pokemon",
|
||||||
|
"weight": 60.0
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"bucket": "common",
|
"bucket": "common",
|
||||||
"condition": {
|
"condition": {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-alcremie-1-58",
|
"id": "westmarch-alcremie-1-57",
|
||||||
"level": "22-25",
|
"level": "22-25",
|
||||||
"pokemon": "alcremie",
|
"pokemon": "alcremie",
|
||||||
"spawnablePositionType": "grounded",
|
"spawnablePositionType": "grounded",
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-alcremie-2-59",
|
"id": "westmarch-alcremie-2-58",
|
||||||
"level": "22-25",
|
"level": "22-25",
|
||||||
"pokemon": "alcremie",
|
"pokemon": "alcremie",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-alcremie-3-60",
|
"id": "westmarch-alcremie-3-59",
|
||||||
"level": "22-25",
|
"level": "22-25",
|
||||||
"pokemon": "alcremie",
|
"pokemon": "alcremie",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -292,7 +292,7 @@
|
|||||||
"canSeeSky": false,
|
"canSeeSky": false,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-baltoy-2-77",
|
"id": "westmarch-baltoy-2-76",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "baltoy",
|
"pokemon": "baltoy",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -319,7 +319,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-boldore-1-112",
|
"id": "westmarch-boldore-1-111",
|
||||||
"level": "25-25",
|
"level": "25-25",
|
||||||
"pokemon": "boldore",
|
"pokemon": "boldore",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -344,7 +344,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-boltund-1-48",
|
"id": "westmarch-boltund-1-47",
|
||||||
"level": "25-25",
|
"level": "25-25",
|
||||||
"pokemon": "boltund",
|
"pokemon": "boltund",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -387,7 +387,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-boltund-2-49",
|
"id": "westmarch-boltund-2-48",
|
||||||
"level": "25-25",
|
"level": "25-25",
|
||||||
"pokemon": "boltund",
|
"pokemon": "boltund",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -457,7 +457,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-bronzor-2-78",
|
"id": "westmarch-bronzor-2-77",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "bronzor",
|
"pokemon": "bronzor",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -481,7 +481,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-bronzor-4-79",
|
"id": "westmarch-bronzor-4-78",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "bronzor",
|
"pokemon": "bronzor",
|
||||||
"spawnablePositionType": "grounded",
|
"spawnablePositionType": "grounded",
|
||||||
@@ -531,7 +531,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-carbink-1-87",
|
"id": "westmarch-carbink-1-86",
|
||||||
"level": "25-25",
|
"level": "25-25",
|
||||||
"pokemon": "carbink",
|
"pokemon": "carbink",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -561,7 +561,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-carkol-1-108",
|
"id": "westmarch-carkol-1-107",
|
||||||
"level": "18-25",
|
"level": "18-25",
|
||||||
"pokemon": "carkol",
|
"pokemon": "carkol",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -584,7 +584,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-charjabug-2-89",
|
"id": "westmarch-charjabug-2-88",
|
||||||
"level": "20-25",
|
"level": "20-25",
|
||||||
"pokemon": "charjabug",
|
"pokemon": "charjabug",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -750,7 +750,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-corsola-2-104",
|
"id": "westmarch-corsola-2-103",
|
||||||
"level": "16-25",
|
"level": "16-25",
|
||||||
"pokemon": "corsola",
|
"pokemon": "corsola",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -771,7 +771,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-corsola-galarian-6-105",
|
"id": "westmarch-corsola-galarian-6-104",
|
||||||
"level": "16-25",
|
"level": "16-25",
|
||||||
"pokemon": "corsola galarian",
|
"pokemon": "corsola galarian",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -798,7 +798,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-corsola-galarian-7-106",
|
"id": "westmarch-corsola-galarian-7-105",
|
||||||
"level": "16-25",
|
"level": "16-25",
|
||||||
"pokemon": "corsola galarian",
|
"pokemon": "corsola galarian",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1033,7 +1033,7 @@
|
|||||||
"timeRange": "night",
|
"timeRange": "night",
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-drifloon-1-61",
|
"id": "westmarch-drifloon-1-60",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "drifloon",
|
"pokemon": "drifloon",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1059,7 +1059,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-drilbur-1-102",
|
"id": "westmarch-drilbur-1-101",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "drilbur",
|
"pokemon": "drilbur",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1085,7 +1085,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-dunsparce-1-121",
|
"id": "westmarch-dunsparce-1-120",
|
||||||
"level": "17-25",
|
"level": "17-25",
|
||||||
"pokemon": "dunsparce",
|
"pokemon": "dunsparce",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1119,7 +1119,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-eevee-1-123",
|
"id": "westmarch-eevee-1-122",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "eevee",
|
"pokemon": "eevee",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1146,7 +1146,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-eevee-2-124",
|
"id": "westmarch-eevee-2-123",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "eevee",
|
"pokemon": "eevee",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1172,7 +1172,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-eevee-3-125",
|
"id": "westmarch-eevee-3-124",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "eevee",
|
"pokemon": "eevee",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1202,7 +1202,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-eevee-4-126",
|
"id": "westmarch-eevee-4-125",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "eevee",
|
"pokemon": "eevee",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1232,7 +1232,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-farfetchd-1-100",
|
"id": "westmarch-farfetchd-1-99",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "farfetchd",
|
"pokemon": "farfetchd",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1265,7 +1265,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-farfetchd-galarian-2-101",
|
"id": "westmarch-farfetchd-galarian-2-100",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "farfetchd galarian",
|
"pokemon": "farfetchd galarian",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1356,7 +1356,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-gastly-1-70",
|
"id": "westmarch-gastly-1-69",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "gastly",
|
"pokemon": "gastly",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1386,7 +1386,7 @@
|
|||||||
"canSeeSky": false,
|
"canSeeSky": false,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-gastly-2-71",
|
"id": "westmarch-gastly-2-70",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "gastly",
|
"pokemon": "gastly",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1412,7 +1412,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-geodude-1-51",
|
"id": "westmarch-geodude-1-50",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "geodude",
|
"pokemon": "geodude",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1438,7 +1438,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-geodude-2-52",
|
"id": "westmarch-geodude-2-51",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "geodude",
|
"pokemon": "geodude",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1458,7 +1458,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-graveler-1-53",
|
"id": "westmarch-graveler-1-52",
|
||||||
"level": "25-25",
|
"level": "25-25",
|
||||||
"pokemon": "graveler",
|
"pokemon": "graveler",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1484,7 +1484,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-graveler-2-54",
|
"id": "westmarch-graveler-2-53",
|
||||||
"level": "25-25",
|
"level": "25-25",
|
||||||
"pokemon": "graveler",
|
"pokemon": "graveler",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1531,7 +1531,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-grimer-2-62",
|
"id": "westmarch-grimer-2-61",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "grimer",
|
"pokemon": "grimer",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1574,7 +1574,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-grimer-3-63",
|
"id": "westmarch-grimer-3-62",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "grimer",
|
"pokemon": "grimer",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1612,7 +1612,7 @@
|
|||||||
"canSeeSky": true,
|
"canSeeSky": true,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-grimer-5-64",
|
"id": "westmarch-grimer-5-63",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "grimer",
|
"pokemon": "grimer",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1655,7 +1655,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-grimer-6-65",
|
"id": "westmarch-grimer-6-64",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "grimer",
|
"pokemon": "grimer",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1696,7 +1696,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-grimer-8-66",
|
"id": "westmarch-grimer-8-65",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "grimer",
|
"pokemon": "grimer",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1741,7 +1741,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-grimer-9-67",
|
"id": "westmarch-grimer-9-66",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "grimer",
|
"pokemon": "grimer",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1776,7 +1776,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-grimer-alolan-10-68",
|
"id": "westmarch-grimer-alolan-10-67",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "grimer alolan",
|
"pokemon": "grimer alolan",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1814,7 +1814,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-grimer-alolan-11-69",
|
"id": "westmarch-grimer-alolan-11-68",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "grimer alolan",
|
"pokemon": "grimer alolan",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1851,7 +1851,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-grubbin-2-88",
|
"id": "westmarch-grubbin-2-87",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "grubbin",
|
"pokemon": "grubbin",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1883,7 +1883,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-gurdurr-1-95",
|
"id": "westmarch-gurdurr-1-94",
|
||||||
"level": "25-25",
|
"level": "25-25",
|
||||||
"pokemon": "gurdurr",
|
"pokemon": "gurdurr",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1927,7 +1927,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-gurdurr-2-96",
|
"id": "westmarch-gurdurr-2-95",
|
||||||
"level": "25-25",
|
"level": "25-25",
|
||||||
"pokemon": "gurdurr",
|
"pokemon": "gurdurr",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1968,7 +1968,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-haunter-1-72",
|
"id": "westmarch-haunter-1-71",
|
||||||
"level": "25-25",
|
"level": "25-25",
|
||||||
"pokemon": "haunter",
|
"pokemon": "haunter",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -1998,7 +1998,7 @@
|
|||||||
"canSeeSky": false,
|
"canSeeSky": false,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-haunter-2-73",
|
"id": "westmarch-haunter-2-72",
|
||||||
"level": "25-25",
|
"level": "25-25",
|
||||||
"pokemon": "haunter",
|
"pokemon": "haunter",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2029,7 +2029,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-hawlucha-2-86",
|
"id": "westmarch-hawlucha-2-85",
|
||||||
"level": "25-25",
|
"level": "25-25",
|
||||||
"pokemon": "hawlucha",
|
"pokemon": "hawlucha",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2065,7 +2065,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-heracross-1-75",
|
"id": "westmarch-heracross-1-74",
|
||||||
"level": "25-25",
|
"level": "25-25",
|
||||||
"pokemon": "heracross",
|
"pokemon": "heracross",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2102,7 +2102,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-heracross-3-76",
|
"id": "westmarch-heracross-3-75",
|
||||||
"level": "25-25",
|
"level": "25-25",
|
||||||
"pokemon": "heracross",
|
"pokemon": "heracross",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2134,7 +2134,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-herdier-1-82",
|
"id": "westmarch-herdier-1-81",
|
||||||
"level": "16-25",
|
"level": "16-25",
|
||||||
"pokemon": "herdier",
|
"pokemon": "herdier",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2169,7 +2169,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-herdier-2-83",
|
"id": "westmarch-herdier-2-82",
|
||||||
"level": "16-25",
|
"level": "16-25",
|
||||||
"pokemon": "herdier",
|
"pokemon": "herdier",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2198,7 +2198,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-honedge-2-84",
|
"id": "westmarch-honedge-2-83",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "honedge",
|
"pokemon": "honedge",
|
||||||
"spawnablePositionType": "grounded",
|
"spawnablePositionType": "grounded",
|
||||||
@@ -2220,7 +2220,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-honedge-3-85",
|
"id": "westmarch-honedge-3-84",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "honedge",
|
"pokemon": "honedge",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2241,7 +2241,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-kirlia-2-117",
|
"id": "westmarch-kirlia-2-116",
|
||||||
"level": "20-25",
|
"level": "20-25",
|
||||||
"pokemon": "kirlia",
|
"pokemon": "kirlia",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2266,7 +2266,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-kirlia-3-118",
|
"id": "westmarch-kirlia-3-117",
|
||||||
"level": "20-25",
|
"level": "20-25",
|
||||||
"pokemon": "kirlia",
|
"pokemon": "kirlia",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2289,7 +2289,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-klink-2-122",
|
"id": "westmarch-klink-2-121",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "klink",
|
"pokemon": "klink",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2392,7 +2392,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-lillipup-1-80",
|
"id": "westmarch-lillipup-1-79",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "lillipup",
|
"pokemon": "lillipup",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2421,7 +2421,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-lillipup-2-81",
|
"id": "westmarch-lillipup-2-80",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "lillipup",
|
"pokemon": "lillipup",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2441,7 +2441,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-maschiff-1-97",
|
"id": "westmarch-maschiff-1-96",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "maschiff",
|
"pokemon": "maschiff",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2465,7 +2465,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-maschiff-2-98",
|
"id": "westmarch-maschiff-2-97",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "maschiff",
|
"pokemon": "maschiff",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2489,7 +2489,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-maschiff-3-99",
|
"id": "westmarch-maschiff-3-98",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "maschiff",
|
"pokemon": "maschiff",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2635,7 +2635,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-milcery-1-55",
|
"id": "westmarch-milcery-1-54",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "milcery",
|
"pokemon": "milcery",
|
||||||
"spawnablePositionType": "grounded",
|
"spawnablePositionType": "grounded",
|
||||||
@@ -2667,7 +2667,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-milcery-2-56",
|
"id": "westmarch-milcery-2-55",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "milcery",
|
"pokemon": "milcery",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2702,7 +2702,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-milcery-3-57",
|
"id": "westmarch-milcery-3-56",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "milcery",
|
"pokemon": "milcery",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2733,7 +2733,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-mimejr-1-119",
|
"id": "westmarch-mimejr-1-118",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "mimejr",
|
"pokemon": "mimejr",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2762,7 +2762,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-mimejr-2-120",
|
"id": "westmarch-mimejr-2-119",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "mimejr",
|
"pokemon": "mimejr",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -2827,6 +2827,32 @@
|
|||||||
"multiplier": 1.25
|
"multiplier": 1.25
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"anticondition": {
|
||||||
|
"biomes": [
|
||||||
|
"#cobblemon:is_deep_dark",
|
||||||
|
"minecraft:sulfur_caves"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"bucket": "uncommon",
|
||||||
|
"condition": {
|
||||||
|
"biomes": [
|
||||||
|
"#cobblemon:is_overworld"
|
||||||
|
],
|
||||||
|
"maxSkyLight": 7,
|
||||||
|
"minSkyLight": 0,
|
||||||
|
"zone": "westmarch"
|
||||||
|
},
|
||||||
|
"id": "westmarch-nosepass-1-126",
|
||||||
|
"level": "15-25",
|
||||||
|
"pokemon": "nosepass",
|
||||||
|
"presets": [
|
||||||
|
"natural"
|
||||||
|
],
|
||||||
|
"spawnablePositionType": "grounded",
|
||||||
|
"type": "pokemon",
|
||||||
|
"weight": 55.2
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"bucket": "common",
|
"bucket": "common",
|
||||||
"condition": {
|
"condition": {
|
||||||
@@ -2871,7 +2897,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-onix-1-103",
|
"id": "westmarch-onix-1-102",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "onix",
|
"pokemon": "onix",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3080,7 +3106,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-pinsir-2-74",
|
"id": "westmarch-pinsir-2-73",
|
||||||
"level": "25-25",
|
"level": "25-25",
|
||||||
"pokemon": "pinsir",
|
"pokemon": "pinsir",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3109,7 +3135,7 @@
|
|||||||
"timeRange": "night",
|
"timeRange": "night",
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-pumpkaboo-1-50",
|
"id": "westmarch-pumpkaboo-1-49",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "pumpkaboo",
|
"pokemon": "pumpkaboo",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3136,7 +3162,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-ralts-2-115",
|
"id": "westmarch-ralts-2-114",
|
||||||
"level": "15-20",
|
"level": "15-20",
|
||||||
"pokemon": "ralts",
|
"pokemon": "ralts",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3161,7 +3187,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-ralts-3-116",
|
"id": "westmarch-ralts-3-115",
|
||||||
"level": "15-20",
|
"level": "15-20",
|
||||||
"pokemon": "ralts",
|
"pokemon": "ralts",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3187,7 +3213,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-roggenrola-1-111",
|
"id": "westmarch-roggenrola-1-110",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "roggenrola",
|
"pokemon": "roggenrola",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3211,7 +3237,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-rolycoly-1-107",
|
"id": "westmarch-rolycoly-1-106",
|
||||||
"level": "15-24",
|
"level": "15-24",
|
||||||
"pokemon": "rolycoly",
|
"pokemon": "rolycoly",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3340,32 +3366,6 @@
|
|||||||
"type": "pokemon",
|
"type": "pokemon",
|
||||||
"weight": 90.0
|
"weight": 90.0
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"bucket": "rare",
|
|
||||||
"condition": {
|
|
||||||
"biomes": [
|
|
||||||
"#cobblemon:is_overworld"
|
|
||||||
],
|
|
||||||
"maxSkyLight": 15,
|
|
||||||
"minSkyLight": 8,
|
|
||||||
"zone": "westmarch"
|
|
||||||
},
|
|
||||||
"id": "westmarch-solosis-1-45",
|
|
||||||
"level": "15-25",
|
|
||||||
"pokemon": "solosis",
|
|
||||||
"presets": [
|
|
||||||
"natural"
|
|
||||||
],
|
|
||||||
"spawnablePositionType": "grounded",
|
|
||||||
"type": "pokemon",
|
|
||||||
"weight": 12.0,
|
|
||||||
"weightMultiplier": {
|
|
||||||
"condition": {
|
|
||||||
"isPokeSnack": true
|
|
||||||
},
|
|
||||||
"multiplier": 1.25
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"anticondition": {
|
"anticondition": {
|
||||||
"biomes": [
|
"biomes": [
|
||||||
@@ -3541,7 +3541,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-tentacool-2-109",
|
"id": "westmarch-tentacool-2-108",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "tentacool",
|
"pokemon": "tentacool",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3580,7 +3580,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-tentacool-5-110",
|
"id": "westmarch-tentacool-5-109",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "tentacool",
|
"pokemon": "tentacool",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -3665,7 +3665,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-timburr-1-93",
|
"id": "westmarch-timburr-1-92",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "timburr",
|
"pokemon": "timburr",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3709,7 +3709,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-timburr-2-94",
|
"id": "westmarch-timburr-2-93",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "timburr",
|
"pokemon": "timburr",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3744,7 +3744,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-toxel-1-91",
|
"id": "westmarch-toxel-1-90",
|
||||||
"level": "15-24",
|
"level": "15-24",
|
||||||
"pokemon": "toxel",
|
"pokemon": "toxel",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3765,7 +3765,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-toxel-2-92",
|
"id": "westmarch-toxel-2-91",
|
||||||
"level": "15-24",
|
"level": "15-24",
|
||||||
"pokemon": "toxel",
|
"pokemon": "toxel",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3804,7 +3804,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-tynamo-2-113",
|
"id": "westmarch-tynamo-2-112",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "tynamo",
|
"pokemon": "tynamo",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3829,7 +3829,7 @@
|
|||||||
"minSkyLight": 0,
|
"minSkyLight": 0,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-tynamo-5-114",
|
"id": "westmarch-tynamo-5-113",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "tynamo",
|
"pokemon": "tynamo",
|
||||||
"spawnablePositionType": "fishing",
|
"spawnablePositionType": "fishing",
|
||||||
@@ -3856,7 +3856,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-varoom-2-90",
|
"id": "westmarch-varoom-2-89",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "varoom",
|
"pokemon": "varoom",
|
||||||
"spawnablePositionType": "grounded",
|
"spawnablePositionType": "grounded",
|
||||||
@@ -3884,7 +3884,7 @@
|
|||||||
"minSkyLight": 8,
|
"minSkyLight": 8,
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-yamper-1-46",
|
"id": "westmarch-yamper-1-45",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "yamper",
|
"pokemon": "yamper",
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -3919,7 +3919,7 @@
|
|||||||
],
|
],
|
||||||
"zone": "westmarch"
|
"zone": "westmarch"
|
||||||
},
|
},
|
||||||
"id": "westmarch-yamper-2-47",
|
"id": "westmarch-yamper-2-46",
|
||||||
"level": "15-25",
|
"level": "15-25",
|
||||||
"pokemon": "yamper",
|
"pokemon": "yamper",
|
||||||
"presets": [
|
"presets": [
|
||||||
|
|||||||
@@ -28,6 +28,9 @@ Every tunable lives in a config file or in this table. **Placeholder** means gue
|
|||||||
| Guardian drops | Button Isle 10 Poké Balls + 4 Potions; Southwold 6 Great Balls + 4 Exp. Candy S; Westmarch and Jungle Mire Waders + 4 Pecha Berries + 2 Exp. Candy M; Mire and Highlands 3 Icy Rocks + 4 Super Potions; Sunscorch 3 Heat Rocks + 2 Exp. Candy L; Frostpeak and Deep Dark 3 Icy Rocks + 2 Exp. Candy L; Deep Sea Mystic Water + 3 Exp. Candy M | Placeholder | `world/zones.json` → `guardian.drops` | 3 rocks make one full fur or hide set |
|
| Guardian drops | Button Isle 10 Poké Balls + 4 Potions; Southwold 6 Great Balls + 4 Exp. Candy S; Westmarch and Jungle Mire Waders + 4 Pecha Berries + 2 Exp. Candy M; Mire and Highlands 3 Icy Rocks + 4 Super Potions; Sunscorch 3 Heat Rocks + 2 Exp. Candy L; Frostpeak and Deep Dark 3 Icy Rocks + 2 Exp. Candy L; Deep Sea Mystic Water + 3 Exp. Candy M | Placeholder | `world/zones.json` → `guardian.drops` | 3 rocks make one full fur or hide set |
|
||||||
| Mire poison | Poison I for 7 s, renewed every 5 s while in the Mire without Mire Waders | Placeholder | `datapacks/core/data/cobblesurvival/zone_hazards/mire.json` | Vanilla Poison stops at half a heart |
|
| Mire poison | Poison I for 7 s, renewed every 5 s while in the Mire without Mire Waders | Placeholder | `datapacks/core/data/cobblesurvival/zone_hazards/mire.json` | Vanilla Poison stops at half a heart |
|
||||||
| Level pressure | full experience up to 5 levels above the zone's band, then 10 % less per level, at least 10 % (Exp. Candy and commands exempt) | Placeholder | `world/zones.json` → `level_pressure` | E.g. on Button Isle (up to Lv 10): Lv 15 full, Lv 20 half, Lv 24+ a tenth |
|
| Level pressure | full experience up to 5 levels above the zone's band, then 10 % less per level, at least 10 % (Exp. Candy and commands exempt) | Placeholder | `world/zones.json` → `level_pressure` | E.g. on Button Isle (up to Lv 10): Lv 15 full, Lv 20 half, Lv 24+ a tenth |
|
||||||
|
| Strong flyer | ridable through the air with top speed ≥ 60 or top stamina ≥ 85 (Cobblemon ride stats) | Placeholder | `tools/zone_spawns.py` (`STRONG_FLYER_*`) | 29 species |
|
||||||
|
| High zone for strong flyers | band starts at Lv 30 or more (Sunscorch, Frostpeak, Deep Sea, Deep Dark, Basalt Furnace) | Placeholder | `tools/zone_spawns.py` (`HIGH_ZONE_LEVEL`) | |
|
||||||
|
| Ride stats (speed, stamina, ...) | Cobblemon's own | To tune after play-testing | species `riding` via `species_additions` | |
|
||||||
| Healing while sleeping | off (`healPercent` 0) | Decided (roadmap) | `config/cobblemon/main.json` | |
|
| Healing while sleeping | off (`healPercent` 0) | Decided (roadmap) | `config/cobblemon/main.json` | |
|
||||||
| Loot container refresh | 1 hour (72,000 ticks of game time) after first opened, all containers | Decided (Adrian, 2026-10-29) | `config/lootr-common.toml` | Tiering by structure/biome later |
|
| Loot container refresh | 1 hour (72,000 ticks of game time) after first opened, all containers | Decided (Adrian, 2026-10-29) | `config/lootr-common.toml` | Tiering by structure/biome later |
|
||||||
| Gamerules in the template | `doMobSpawning false` | Decided (Adrian, 2026-10-28; may be reverted later) | `world/world.json` → `gamerules` | Pokémon spawning is Cobblemon's own `doPokemonSpawning` |
|
| Gamerules in the template | `doMobSpawning false` | Decided (Adrian, 2026-10-28; may be reverted later) | `world/world.json` → `gamerules` | Pokémon spawning is Cobblemon's own `doPokemonSpawning` |
|
||||||
|
|||||||
@@ -23,7 +23,16 @@ Open `build/zone-map.png` (the island coloured by zone) and read the draft in `d
|
|||||||
|
|
||||||
- **Soft level pressure** (step 6). Pokémon far above a zone's band learn less there. Automated: `level_pressure_cuts_xp`.
|
- **Soft level pressure** (step 6). Pokémon far above a zone's band learn less there. Automated: `level_pressure_cuts_xp`.
|
||||||
|
|
||||||
Still to come: flyers.
|
- **Flyers** (step 7). Strong flyers only spawn in zones from Lv 30 up; checked by `tools/zone_spawns.py`. Ride stats are still Cobblemon's.
|
||||||
|
|
||||||
|
All Phase 3 steps are in. Done-when from the roadmap: the spawn survey shows only each zone's species and levels (`spawn_survey`), and the cold zone hurts an unprotected player but not one in the fur set (`cold_needs_fur`).
|
||||||
|
|
||||||
|
## Ask Adrian: approve Phase 3 before Phase 4
|
||||||
|
|
||||||
|
- Zone species lists (`docs/zone-species.md`), guardians and their drops, level bands: placeholders to approve or change.
|
||||||
|
- Hazard numbers: Frostpeak about 1 min bare / 14 min in fur at noon; Sunscorch about 2 / 25 min; the Mire's Poison every 5 s without waders.
|
||||||
|
- Level pressure: 10 % less experience per level beyond 5 above the band, at least 10 %.
|
||||||
|
- Flyers: ride stats unchanged until play-tested; Salamence never wild, Aerodactyl fossil-only.
|
||||||
|
|
||||||
## In-game
|
## In-game
|
||||||
|
|
||||||
@@ -36,3 +45,4 @@ Still to come: flyers.
|
|||||||
- [ ] **Guardians:** `/cobblesurvival guardians` (operator) lists each zone's guardian and spot. Walk there: a big Pokémon appears, can't be caught, and beating it puts its drops in your inventory with a gold message. It's gone for 5 hours of play.
|
- [ ] **Guardians:** `/cobblesurvival guardians` (operator) lists each zone's guardian and spot. Walk there: a big Pokémon appears, can't be caught, and beating it puts its drops in your inventory with a gold message. It's gone for 5 hours of play.
|
||||||
- [ ] **Mire:** walk into the Mangrove Mire: a green warning, then Poison keeps coming back. With Mire Waders on (from the Westmarch or Jungle guardian) nothing happens.
|
- [ ] **Mire:** walk into the Mangrove Mire: a green warning, then Poison keeps coming back. With Mire Waders on (from the Westmarch or Jungle guardian) nothing happens.
|
||||||
- [ ] **Level pressure:** bring a Lv 30 Pokémon to Button Isle and win a battle: it gains only a sliver of experience, while a Lv 10 one gains the full amount.
|
- [ ] **Level pressure:** bring a Lv 30 Pokémon to Button Isle and win a battle: it gains only a sliver of experience, while a Lv 10 one gains the full amount.
|
||||||
|
- [ ] **Flyers:** no Pokémon you can fly on turns up wild before Sunscorch or Frostpeak; mounting any flyer you own still works everywhere.
|
||||||
@@ -113,6 +113,8 @@ Order of play the bands suggest: Button Isle → Southwold → Westmarch or Jung
|
|||||||
|
|
||||||
**Soft level pressure** (Phase 3, step 6; no hard level caps): a Pokémon more than 5 levels above the band of the zone its trainer is in gets 10 % less experience per extra level, down to 10 % (`zone/LevelPressure.kt`, values in `world/zones.json` → `level_pressure`). It counts battle experience and anything else except Exp. Candy and commands. The roadmap also offered a disobedience chance; experience alone is gentler and Cobblemon has nothing to build disobedience on. Tested: `level_pressure_cuts_xp`.
|
**Soft level pressure** (Phase 3, step 6; no hard level caps): a Pokémon more than 5 levels above the band of the zone its trainer is in gets 10 % less experience per extra level, down to 10 % (`zone/LevelPressure.kt`, values in `world/zones.json` → `level_pressure`). It counts battle experience and anything else except Exp. Candy and commands. The roadmap also offered a disobedience chance; experience alone is gentler and Cobblemon has nothing to build disobedience on. Tested: `level_pressure_cuts_xp`.
|
||||||
|
|
||||||
|
**Flyers** (Phase 3, step 7): strong flyers only spawn in high-level zones. A species you can ride through the air with a top flying speed of 60 or a top stamina of 85 (Cobblemon's ride stats) never spawns in a zone whose band starts below Lv 30; its weaker pre-evolutions still do, and a line that starts as a strong flyer is only placed in such zones (`tools/zone_spawns.py`, which refuses to write pools that break this). So Drampa lives in Sunscorch, Togekiss, Staraptor and Braviary in Frostpeak, Charizard in the Basalt Furnace; Salamence never spawns (Bagon and Shelgon stay in the Dripstone caves), and Aerodactyl only comes from fossils. Ride stats stay Cobblemon's for now: they can be overridden per species with a `species_additions` file replacing `riding`, best tuned after play-testing how far a flyer takes you on a 3 km island. Nothing blocks mounting.
|
||||||
|
|
||||||
**Alpha guardians** (Phase 3, step 4; Adrian, 2026-10-29: fixed spots, back 5 hours after being beaten):
|
**Alpha guardians** (Phase 3, step 4; Adrian, 2026-10-29: fixed spots, back 5 hours after being beaten):
|
||||||
- One per zone except the Shallows, Lush Caves and Dripstone; the Basalt Furnace gets its boss in Phase 7. Each stands at its zone's sample point (deep inside the zone; a cave floor for the Deep Dark) and only appears while a player is within 96 blocks; it wanders no further than 24 blocks.
|
- One per zone except the Shallows, Lush Caves and Dripstone; the Basalt Furnace gets its boss in Phase 7. Each stands at its zone's sample point (deep inside the zone; a cave floor for the Deep Dark) and only appears while a player is within 96 blocks; it wanders no further than 24 blocks.
|
||||||
- The guardian is the strongest Pokémon that spawns walking (or, at sea, swimming) in its zone, five levels above the band, half again as big, and uncatchable: Pachirisu (Button Isle), Sigilyph (Southwold), Carbink (Westmarch), Tangrowth (Jungle), Arcanine (Mire), Cinderace (Highlands), Delphox (Sunscorch), Tyranitar (Frostpeak), Kingdra (Deep Sea), Dusknoir (Deep Dark). `world/zones.json` → `guardian.species` overrides the pick.
|
- The guardian is the strongest Pokémon that spawns walking (or, at sea, swimming) in its zone, five levels above the band, half again as big, and uncatchable: Pachirisu (Button Isle), Sigilyph (Southwold), Carbink (Westmarch), Tangrowth (Jungle), Arcanine (Mire), Cinderace (Highlands), Delphox (Sunscorch), Tyranitar (Frostpeak), Kingdra (Deep Sea), Dusknoir (Deep Dark). `world/zones.json` → `guardian.species` overrides the pick.
|
||||||
|
|||||||
+10
-10
@@ -10,17 +10,17 @@ Bidoof, Bonsly, Caterpie (Butterfree, Caterpie, Metapod), Combee, Diglett, Ditto
|
|||||||
|
|
||||||
Axew (Fraxure, Haxorus), Basculin (Basculegion, Basculin), Budew (Roselia, Roserade), Cherubi (Cherrim), Chespin (Chesnaught, Quilladin), Chikorita (Bayleef, Meganium), Chimchar (Infernape, Monferno), Cryogonal, Cufant (Copperajah), Delibird, Duraludon (Archaludon, Duraludon), Elekid (Electabuzz, Electivire), Gossifleur (Eldegoss), Larvitar (Pupitar, Tyranitar), Machop (Machamp, Machoke), Makuhita (Hariyama), Mankey (Annihilape, Primeape), Mienfoo (Mienshao), Minior, Rhyhorn (Rhydon, Rhyperior), Riolu (Lucario), Rockruff (Lycanroc), Rowlet (Dartrix, Decidueye), Rufflet (Braviary), Salandit, Sawk, Skiddo (Gogoat), Smoochum (Jynx), Sneasel (Sneasel, Sneasler), Snom (Frosmoth), Snorunt (Froslass, Glalie), Snover (Abomasnow), Spinda, Spoink (Grumpig), Sprigatito (Floragato, Meowscarada), Spritzee (Aromatisse), Starly (Staraptor), Throh, Togedemaru, Togepi (Togekiss, Togetic), Tyrogue (Hitmonchan, Hitmonlee, Hitmontop), Vanillite (Vanillish, Vanilluxe), Wooloo (Dubwool)
|
Axew (Fraxure, Haxorus), Basculin (Basculegion, Basculin), Budew (Roselia, Roserade), Cherubi (Cherrim), Chespin (Chesnaught, Quilladin), Chikorita (Bayleef, Meganium), Chimchar (Infernape, Monferno), Cryogonal, Cufant (Copperajah), Delibird, Duraludon (Archaludon, Duraludon), Elekid (Electabuzz, Electivire), Gossifleur (Eldegoss), Larvitar (Pupitar, Tyranitar), Machop (Machamp, Machoke), Makuhita (Hariyama), Mankey (Annihilape, Primeape), Mienfoo (Mienshao), Minior, Rhyhorn (Rhydon, Rhyperior), Riolu (Lucario), Rockruff (Lycanroc), Rowlet (Dartrix, Decidueye), Rufflet (Braviary), Salandit, Sawk, Skiddo (Gogoat), Smoochum (Jynx), Sneasel (Sneasel, Sneasler), Snom (Frosmoth), Snorunt (Froslass, Glalie), Snover (Abomasnow), Spinda, Spoink (Grumpig), Sprigatito (Floragato, Meowscarada), Spritzee (Aromatisse), Starly (Staraptor), Throh, Togedemaru, Togepi (Togekiss, Togetic), Tyrogue (Hitmonchan, Hitmonlee, Hitmontop), Vanillite (Vanillish, Vanilluxe), Wooloo (Dubwool)
|
||||||
|
|
||||||
## Sunscorch (Lv 30–45, 32 lines)
|
## Sunscorch (Lv 30–45, 33 lines)
|
||||||
|
|
||||||
Bramblin (Brambleghast), Cacnea (Cacnea, Cacturne), Capsakid (Capsakid, Scovillain), Cubone (Cubone, Marowak), 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)
|
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, 29 lines)
|
## Mangrove Mire (Lv 25–38, 26 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), Happiny (Chansey), Illumise, Karrablast (Escavalier, Karrablast), Magikarp (Gyarados), Misdreavus, Mudkip (Marshtomp, Mudkip, Swampert), Munchlax (Munchlax, Snorlax), Shelmet (Accelgor, Shelmet), Slowpoke, Sobble (Drizzile, Inteleon, Sobble), Surskit (Masquerain, Surskit), Tadbulb (Bellibolt, Tadbulb), Tatsugiri, Teddiursa (Teddiursa, Ursaring), Volbeat, Yanma (Yanma, Yanmega)
|
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)
|
||||||
|
|
||||||
## Verdant Jungle (Lv 18–30, 34 lines)
|
## Verdant Jungle (Lv 18–30, 35 lines)
|
||||||
|
|
||||||
Aipom, Bellsprout (Bellsprout, Weepinbell), Bounsweet (Bounsweet, Steenee, Tsareena), Bulbasaur (Bulbasaur, Ivysaur), Chatot, Darumaka, Exeggcute (Exeggcute, Exeggutor), Fomantis, Glimmet, Grookey (Grookey, Thwackey), Jangmo-o, Kecleon, Litten (Litten, Torracat), Magnemite (Magnemite, Magneton), Natu (Natu, Xatu), Noibat, Nosepass, 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, Venipede (Scolipede, Venipede, Whirlipede), 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, 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)
|
||||||
|
|
||||||
## Highland Meadows (Lv 25–35, 39 lines)
|
## Highland Meadows (Lv 25–35, 39 lines)
|
||||||
|
|
||||||
@@ -28,11 +28,11 @@ Abra (Abra, Alakazam, Kadabra), Bouffalant, Buizel (Buizel, Floatzel), Chewtle (
|
|||||||
|
|
||||||
## Westmarch (Lv 15–25, 49 lines)
|
## Westmarch (Lv 15–25, 49 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), 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), Solosis, Stunky, Tandemaus (Maushold, Tandemaus), Tentacool, Timburr (Gurdurr, Timburr), Toxel, Tynamo, Varoom, Yamper (Boltund, Yamper)
|
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)
|
||||||
|
|
||||||
## Southwold (Lv 8–18, 50 lines)
|
## Southwold (Lv 8–18, 50 lines)
|
||||||
|
|
||||||
Absol, Audino, Azurill (Azumarill, Azurill, Marill), Barboach, Bunnelby, Burmy, Chingling, Comfey, Cutiefly, Drampa, 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, Squawkabilly, Swablu, Swirlix, Taillow, Trubbish, Venonat, Voltorb, Whismur, Yamask, Yungoos, Zigzagoon
|
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
|
||||||
|
|
||||||
## Shallows (Lv 5–20, 21 lines)
|
## Shallows (Lv 5–20, 21 lines)
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ Binacle (Barbaracle, Binacle), Clamperl (Clamperl, Gorebyss, Huntail), Clauncher
|
|||||||
|
|
||||||
## Lush Caves (Lv 12–28, 16 lines)
|
## Lush Caves (Lv 12–28, 16 lines)
|
||||||
|
|
||||||
Aerodactyl, Amaura, Anorith, Archen, Carnivine, Cranidos, Ferroseed, Kabuto, Lileep, Morelull (Morelull, Shiinotic), Omanyte, Paras (Paras, Parasect), Shieldon, Shuckle, Tirtouga, Tyrunt
|
Amaura, Anorith, Archen, Carnivine, Cranidos, Ferroseed, Kabuto, Lileep, Morelull (Morelull, Shiinotic), Omanyte, Paras (Paras, Parasect), Shieldon, Shuckle, Tirtouga, Tyrunt, Venipede (Venipede, Whirlipede)
|
||||||
|
|
||||||
## Dripstone Depths (Lv 22–38, 5 lines)
|
## Dripstone Depths (Lv 22–38, 5 lines)
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ One per zone at its sample point, uncatchable, five levels above the band; it re
|
|||||||
| Mangrove Mire | Arcanine | 43 | 3× icy_rock, 4× super_potion |
|
| Mangrove Mire | Arcanine | 43 | 3× icy_rock, 4× super_potion |
|
||||||
| Verdant Jungle | Tangrowth | 35 | 1× mire_waders, 4× pecha_berry, 2× exp_candy_m |
|
| Verdant Jungle | Tangrowth | 35 | 1× mire_waders, 4× pecha_berry, 2× exp_candy_m |
|
||||||
| Highland Meadows | Cinderace | 40 | 3× icy_rock, 4× super_potion |
|
| Highland Meadows | Cinderace | 40 | 3× icy_rock, 4× super_potion |
|
||||||
| Westmarch | Pinsir | 30 | 1× mire_waders, 4× pecha_berry, 2× exp_candy_m |
|
| Westmarch | Scyther | 30 | 1× mire_waders, 4× pecha_berry, 2× exp_candy_m |
|
||||||
| Southwold | Sigilyph | 23 | 6× great_ball, 4× exp_candy_s |
|
| Southwold | Sigilyph | 23 | 6× great_ball, 4× exp_candy_s |
|
||||||
| Deep Sea | Kingdra | 55 | 1× mystic_water, 3× exp_candy_m |
|
| Deep Sea | Kingdra | 55 | 1× mystic_water, 3× exp_candy_m |
|
||||||
| Deep Dark | Dusknoir | 65 | 3× icy_rock, 2× exp_candy_l |
|
| Deep Dark | Dusknoir | 65 | 3× icy_rock, 2× exp_candy_l |
|
||||||
+47
-13
@@ -21,7 +21,8 @@ datapacks/core/data/cobblesurvival/spawn_pool_world/<zone>.json:
|
|||||||
doesn't spawn there. If no stage fits, the closest one spawns across the whole band.
|
doesn't spawn there. If no stage fits, the closest one spawns across the whole band.
|
||||||
3. world/zones.json → "species" pins a line to a zone by hand: {"pikachu": "southwold"}.
|
3. world/zones.json → "species" pins a line to a zone by hand: {"pikachu": "southwold"}.
|
||||||
4. In cave zones, sky-light minimums, "can see sky" and the "natural" ground preset are dropped.
|
4. In cave zones, sky-light minimums, "can see sky" and the "natural" ground preset are dropped.
|
||||||
5. Each zone with a "guardian" gets datapacks/core/data/cobblesurvival/guardians/<zone>.json: the
|
5. Strong flyers (STRONG_FLYER_*) only spawn in zones whose band starts at HIGH_ZONE_LEVEL or more.
|
||||||
|
6. Each zone with a "guardian" gets datapacks/core/data/cobblesurvival/guardians/<zone>.json: the
|
||||||
strongest Pokémon spawning in the zone (or "species"), uncatchable, half again as big, five levels
|
strongest Pokémon spawning in the zone (or "species"), uncatchable, half again as big, five levels
|
||||||
above the band, with the zone's boss drops and world/zones.json → guardian_respawn_hours.
|
above the band, with the zone's boss drops and world/zones.json → guardian_respawn_hours.
|
||||||
|
|
||||||
@@ -54,6 +55,13 @@ MIN_CELLS = 5 # a zone "has" a biome when at least this many grid cells of it l
|
|||||||
# tags): its biomes say nothing about a home, so it only goes to a land zone, by strength. Its cave and
|
# tags): its biomes say nothing about a home, so it only goes to a land zone, by strength. Its cave and
|
||||||
# water entries still spawn underground and in the rivers of that zone.
|
# water entries still spawn underground and in the rivers of that zone.
|
||||||
ALL_ROUNDER = 0.8
|
ALL_ROUNDER = 0.8
|
||||||
|
# Roadmap Phase 3: strong flyers only spawn in high-level zones. A species you can ride through the air with a top
|
||||||
|
# flying speed or stamina this high never spawns in a zone whose band starts below HIGH_ZONE_LEVEL (its weaker
|
||||||
|
# pre-evolutions still do), and a line that starts as one is placed in such a zone only; if none fits its habitat,
|
||||||
|
# it doesn't spawn in the wild.
|
||||||
|
STRONG_FLYER_SPEED = 60
|
||||||
|
STRONG_FLYER_STAMINA = 85
|
||||||
|
HIGH_ZONE_LEVEL = 30
|
||||||
|
|
||||||
|
|
||||||
def cobblemon_jar():
|
def cobblemon_jar():
|
||||||
@@ -98,16 +106,23 @@ def zone_biomes(plan, layout, preview):
|
|||||||
return shares
|
return shares
|
||||||
|
|
||||||
|
|
||||||
def base_stat_totals(jar):
|
def species_data(jar):
|
||||||
"""{species id: base-stat total} from Cobblemon's species files."""
|
"""({species id: base-stat total}, {species ids that are strong flyers}) from Cobblemon's species files."""
|
||||||
totals = {}
|
totals, flyers = {}, set()
|
||||||
with zipfile.ZipFile(jar) as z:
|
with zipfile.ZipFile(jar) as z:
|
||||||
for name in z.namelist():
|
for name in z.namelist():
|
||||||
m = re.fullmatch(r"data/cobblemon/species/[^/]+/([^/]+)\.json", name)
|
m = re.fullmatch(r"data/cobblemon/species/[^/]+/([^/]+)\.json", name)
|
||||||
if m:
|
if not m:
|
||||||
stats = json.loads(z.read(name)).get("baseStats", {})
|
continue
|
||||||
totals[f"cobblemon:{m[1]}"] = sum(stats.values())
|
data = json.loads(z.read(name))
|
||||||
return totals
|
totals[f"cobblemon:{m[1]}"] = sum(data.get("baseStats", {}).values())
|
||||||
|
air = ((data.get("riding") or {}).get("behaviours") or {}).get("AIR") or {}
|
||||||
|
stats = air.get("stats", {})
|
||||||
|
def top(stat):
|
||||||
|
return int(str(stats.get(stat, "0")).split("-")[-1])
|
||||||
|
if air and (top("SPEED") >= STRONG_FLYER_SPEED or top("STAMINA") >= STRONG_FLYER_STAMINA):
|
||||||
|
flyers.add(f"cobblemon:{m[1]}")
|
||||||
|
return totals, flyers
|
||||||
|
|
||||||
|
|
||||||
def load_before(zone, room, stretch, target):
|
def load_before(zone, room, stretch, target):
|
||||||
@@ -132,7 +147,7 @@ def main():
|
|||||||
species = guide["species"]
|
species = guide["species"]
|
||||||
jar = cobblemon_jar()
|
jar = cobblemon_jar()
|
||||||
entries = load_entries(jar)
|
entries = load_entries(jar)
|
||||||
bst = base_stat_totals(jar)
|
bst, strong_flyers = species_data(jar)
|
||||||
|
|
||||||
zones = {z["id"]: z for z in plan["zones"]} | {c["id"]: c for c in plan["caves"]}
|
zones = {z["id"]: z for z in plan["zones"]} | {c["id"]: c for c in plan["caves"]}
|
||||||
shares = zone_biomes(plan, layout, preview)
|
shares = zone_biomes(plan, layout, preview)
|
||||||
@@ -161,6 +176,10 @@ def main():
|
|||||||
lines[line_root(member, species)].append((entry, set(s["biomes"]), member, s["level"]))
|
lines[line_root(member, species)].append((entry, set(s["biomes"]), member, s["level"]))
|
||||||
|
|
||||||
pinned = {f"cobblemon:{k}" if ":" not in k else k: v for k, v in plan.get("species", {}).items()}
|
pinned = {f"cobblemon:{k}" if ":" not in k else k: v for k, v in plan.get("species", {}).items()}
|
||||||
|
flying_lines = {root for root in lines if root in strong_flyers}
|
||||||
|
|
||||||
|
def allowed(root, zid):
|
||||||
|
return root not in flying_lines or zones[zid]["levels"][0] >= HIGH_ZONE_LEVEL
|
||||||
wanted = {zid: z.get("lines", 20) for zid, z in zones.items()}
|
wanted = {zid: z.get("lines", 20) for zid, z in zones.items()}
|
||||||
scale = len(lines) / sum(wanted.values())
|
scale = len(lines) / sum(wanted.values())
|
||||||
target = {zid: n * scale for zid, n in wanted.items()}
|
target = {zid: n * scale for zid, n in wanted.items()}
|
||||||
@@ -191,7 +210,7 @@ def main():
|
|||||||
fit = 1 - abs(rank[root] - tier[zid])
|
fit = 1 - abs(rank[root] - tier[zid])
|
||||||
return habitat * specific ** 0.5 * fit ** 2 / (1 + load[zid] / target[zid])
|
return habitat * specific ** 0.5 * fit ** 2 / (1 + load[zid] / target[zid])
|
||||||
|
|
||||||
candidates = [zid for zid in zones if line_biomes & biomes_of[zid]]
|
candidates = [zid for zid in zones if line_biomes & biomes_of[zid] and allowed(root, zid)]
|
||||||
if candidates:
|
if candidates:
|
||||||
home[root] = max(candidates, key=score)
|
home[root] = max(candidates, key=score)
|
||||||
load[home[root]] += 1
|
load[home[root]] += 1
|
||||||
@@ -206,14 +225,21 @@ def main():
|
|||||||
for root in sorted(all_rounders, key=lambda r: rank[r]):
|
for root in sorted(all_rounders, key=lambda r: rank[r]):
|
||||||
while load[current] >= load_before(current, room, stretch, target) and current != by_tier[-1]:
|
while load[current] >= load_before(current, room, stretch, target) and current != by_tier[-1]:
|
||||||
current = next(zone_iter)
|
current = next(zone_iter)
|
||||||
home[root] = current
|
# A strong flyer skips ahead to the first high zone.
|
||||||
load[current] += 1
|
home[root] = current if allowed(root, current) else next((z for z in by_tier if allowed(root, z)), None)
|
||||||
|
if home[root] is None:
|
||||||
|
del home[root]
|
||||||
|
continue
|
||||||
|
load[home[root]] += 1
|
||||||
|
|
||||||
pools = collections.defaultdict(list)
|
pools = collections.defaultdict(list)
|
||||||
report = collections.defaultdict(list)
|
report = collections.defaultdict(list)
|
||||||
for root, zid in home.items():
|
for root, zid in home.items():
|
||||||
lo, hi = zones[zid]["levels"]
|
lo, hi = zones[zid]["levels"]
|
||||||
usable = [(e, b, m, lv) for e, b, m, lv in lines[root] if b & biomes_of[zid]]
|
high = zones[zid]["levels"][0] >= HIGH_ZONE_LEVEL
|
||||||
|
usable = [(e, b, m, lv) for e, b, m, lv in lines[root] if b & biomes_of[zid] and (high or m not in strong_flyers)]
|
||||||
|
if not usable:
|
||||||
|
continue
|
||||||
fitting = [(e, m, max(lv[0], lo), min(lv[1], hi)) for e, b, m, lv in usable if lv[0] <= hi and lv[1] >= lo]
|
fitting = [(e, m, max(lv[0], lo), min(lv[1], hi)) for e, b, m, lv in usable if lv[0] <= hi and lv[1] >= lo]
|
||||||
if not fitting:
|
if not fitting:
|
||||||
# No stage reaches the band: the closest stage spawns across all of it.
|
# No stage reaches the band: the closest stage spawns across all of it.
|
||||||
@@ -238,6 +264,11 @@ def main():
|
|||||||
names = sorted({species[m]["name"] for _, m, _, _ in fitting})
|
names = sorted({species[m]["name"] for _, m, _, _ in fitting})
|
||||||
report[zid].append((species.get(root, {}).get("name", root), names))
|
report[zid].append((species.get(root, {}).get("name", root), names))
|
||||||
|
|
||||||
|
low_flyers = [(zid, s["pokemon"]) for zid, spawns in pools.items() for s in spawns
|
||||||
|
if zones[zid]["levels"][0] < HIGH_ZONE_LEVEL and f"cobblemon:{s['pokemon'].split()[0].lower()}" in strong_flyers]
|
||||||
|
if low_flyers:
|
||||||
|
sys.exit(f"strong flyers would spawn below Lv {HIGH_ZONE_LEVEL}: {low_flyers[:5]}")
|
||||||
|
|
||||||
OUT.mkdir(parents=True, exist_ok=True)
|
OUT.mkdir(parents=True, exist_ok=True)
|
||||||
for old in OUT.glob("*.json"):
|
for old in OUT.glob("*.json"):
|
||||||
old.unlink()
|
old.unlink()
|
||||||
@@ -292,6 +323,9 @@ def main():
|
|||||||
REPORT.write_text("\n".join(lines_out) + "\n")
|
REPORT.write_text("\n".join(lines_out) + "\n")
|
||||||
|
|
||||||
unplaced = [r for r in lines if r not in home]
|
unplaced = [r for r in lines if r not in home]
|
||||||
|
grounded = sorted(species.get(r, {}).get("name", r) for r in unplaced if r in flying_lines)
|
||||||
|
if grounded:
|
||||||
|
print(f"strong flyers kept out of the wild (no high zone fits their habitat): {', '.join(grounded)}")
|
||||||
for zid, zone in zones.items():
|
for zid, zone in zones.items():
|
||||||
print(f" {zone['name']:18s} {len(report.get(zid, [])):3d} lines {len(pools.get(zid, [])):4d} spawn entries")
|
print(f" {zone['name']:18s} {len(report.get(zid, [])):3d} lines {len(pools.get(zid, [])):4d} spawn entries")
|
||||||
print(f"{len(home)} lines placed, {len(unplaced)} with no matching zone; wrote {OUT.relative_to(ROOT)} and {REPORT.relative_to(ROOT)}")
|
print(f"{len(home)} lines placed, {len(unplaced)} with no matching zone; wrote {OUT.relative_to(ROOT)} and {REPORT.relative_to(ROOT)}")
|
||||||
|
|||||||
Reference in new issue
Block a user