Add starter, gift, and fossil encounters to seed data
Define special encounter data (starters, gifts, fossils) in a new special_encounters module and merge them into route seed JSON during generation. Add new route locations to ROUTE_ORDER for cities that previously had no wild encounters (Saffron City, Pewter City, etc.). Show colored method badges in the EncounterModal UI for special encounter types. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -42,6 +42,30 @@
|
||||
"encounter_rate": 40,
|
||||
"min_level": 10,
|
||||
"max_level": 20
|
||||
},
|
||||
{
|
||||
"national_dex": 1,
|
||||
"pokemon_name": "bulbasaur",
|
||||
"method": "starter",
|
||||
"encounter_rate": 100,
|
||||
"min_level": 5,
|
||||
"max_level": 5
|
||||
},
|
||||
{
|
||||
"national_dex": 4,
|
||||
"pokemon_name": "charmander",
|
||||
"method": "starter",
|
||||
"encounter_rate": 100,
|
||||
"min_level": 5,
|
||||
"max_level": 5
|
||||
},
|
||||
{
|
||||
"national_dex": 7,
|
||||
"pokemon_name": "squirtle",
|
||||
"method": "starter",
|
||||
"encounter_rate": 100,
|
||||
"min_level": 5,
|
||||
"max_level": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -461,6 +485,14 @@
|
||||
"encounter_rate": 15,
|
||||
"min_level": 8,
|
||||
"max_level": 10
|
||||
},
|
||||
{
|
||||
"national_dex": 129,
|
||||
"pokemon_name": "magikarp",
|
||||
"method": "gift",
|
||||
"encounter_rate": 100,
|
||||
"min_level": 5,
|
||||
"max_level": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1434,12 +1466,50 @@
|
||||
"encounter_rate": 50,
|
||||
"min_level": 10,
|
||||
"max_level": 10
|
||||
},
|
||||
{
|
||||
"national_dex": 133,
|
||||
"pokemon_name": "eevee",
|
||||
"method": "gift",
|
||||
"encounter_rate": 100,
|
||||
"min_level": 25,
|
||||
"max_level": 25
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Saffron City",
|
||||
"order": 31,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 131,
|
||||
"pokemon_name": "lapras",
|
||||
"method": "gift",
|
||||
"encounter_rate": 100,
|
||||
"min_level": 25,
|
||||
"max_level": 25
|
||||
},
|
||||
{
|
||||
"national_dex": 106,
|
||||
"pokemon_name": "hitmonlee",
|
||||
"method": "gift",
|
||||
"encounter_rate": 100,
|
||||
"min_level": 25,
|
||||
"max_level": 25
|
||||
},
|
||||
{
|
||||
"national_dex": 107,
|
||||
"pokemon_name": "hitmonchan",
|
||||
"method": "gift",
|
||||
"encounter_rate": 100,
|
||||
"min_level": 25,
|
||||
"max_level": 25
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Route 16",
|
||||
"order": 31,
|
||||
"order": 32,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 84,
|
||||
@@ -1485,7 +1555,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Route 17",
|
||||
"order": 32,
|
||||
"order": 33,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -1563,7 +1633,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Route 18",
|
||||
"order": 33,
|
||||
"order": 34,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -1649,7 +1719,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Fuchsia City",
|
||||
"order": 34,
|
||||
"order": 35,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -1695,12 +1765,12 @@
|
||||
},
|
||||
{
|
||||
"name": "Safari Zone",
|
||||
"order": 35,
|
||||
"order": 36,
|
||||
"encounters": [],
|
||||
"children": [
|
||||
{
|
||||
"name": "Safari Zone (Middle)",
|
||||
"order": 36,
|
||||
"order": 37,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -1826,7 +1896,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Safari Zone (Area 1 East)",
|
||||
"order": 37,
|
||||
"order": 38,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -1944,7 +2014,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Safari Zone (Area 2 North)",
|
||||
"order": 38,
|
||||
"order": 39,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -2062,7 +2132,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Safari Zone (Area 3 West)",
|
||||
"order": 39,
|
||||
"order": 40,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -2182,7 +2252,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Route 15",
|
||||
"order": 40,
|
||||
"order": 41,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 69,
|
||||
@@ -2244,7 +2314,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Route 14",
|
||||
"order": 41,
|
||||
"order": 42,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 69,
|
||||
@@ -2306,7 +2376,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Route 13",
|
||||
"order": 42,
|
||||
"order": 43,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -2432,7 +2502,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Route 12",
|
||||
"order": 43,
|
||||
"order": 44,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -2550,33 +2620,11 @@
|
||||
},
|
||||
{
|
||||
"name": "Pokemon Tower",
|
||||
"order": 44,
|
||||
"order": 45,
|
||||
"encounters": [],
|
||||
"children": [
|
||||
{
|
||||
"name": "Pokemon Tower (3F)",
|
||||
"order": 45,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 92,
|
||||
"pokemon_name": "gastly",
|
||||
"method": "walk",
|
||||
"encounter_rate": 95,
|
||||
"min_level": 18,
|
||||
"max_level": 25
|
||||
},
|
||||
{
|
||||
"national_dex": 93,
|
||||
"pokemon_name": "haunter",
|
||||
"method": "walk",
|
||||
"encounter_rate": 5,
|
||||
"min_level": 20,
|
||||
"max_level": 25
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Pokemon Tower (4F)",
|
||||
"order": 46,
|
||||
"encounters": [
|
||||
{
|
||||
@@ -2598,8 +2646,30 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Pokemon Tower (5F)",
|
||||
"name": "Pokemon Tower (4F)",
|
||||
"order": 47,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 92,
|
||||
"pokemon_name": "gastly",
|
||||
"method": "walk",
|
||||
"encounter_rate": 95,
|
||||
"min_level": 18,
|
||||
"max_level": 25
|
||||
},
|
||||
{
|
||||
"national_dex": 93,
|
||||
"pokemon_name": "haunter",
|
||||
"method": "walk",
|
||||
"encounter_rate": 5,
|
||||
"min_level": 20,
|
||||
"max_level": 25
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Pokemon Tower (5F)",
|
||||
"order": 48,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 92,
|
||||
@@ -2629,7 +2699,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Pokemon Tower (6F)",
|
||||
"order": 48,
|
||||
"order": 49,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 92,
|
||||
@@ -2659,7 +2729,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Pokemon Tower (7F)",
|
||||
"order": 49,
|
||||
"order": 50,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 92,
|
||||
@@ -2691,7 +2761,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Sea Route 19",
|
||||
"order": 50,
|
||||
"order": 51,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -2753,7 +2823,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Sea Route 20",
|
||||
"order": 51,
|
||||
"order": 52,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -2815,12 +2885,12 @@
|
||||
},
|
||||
{
|
||||
"name": "Seafoam Islands",
|
||||
"order": 52,
|
||||
"order": 53,
|
||||
"encounters": [],
|
||||
"children": [
|
||||
{
|
||||
"name": "Seafoam Islands (1F)",
|
||||
"order": 53,
|
||||
"order": 54,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 41,
|
||||
@@ -2858,7 +2928,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Seafoam Islands (B1F)",
|
||||
"order": 54,
|
||||
"order": 55,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 41,
|
||||
@@ -2912,7 +2982,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Seafoam Islands (B2F)",
|
||||
"order": 55,
|
||||
"order": 56,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 41,
|
||||
@@ -2974,7 +3044,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Seafoam Islands (B3F)",
|
||||
"order": 56,
|
||||
"order": 57,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -3092,7 +3162,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Seafoam Islands (B4F)",
|
||||
"order": 57,
|
||||
"order": 58,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -3212,7 +3282,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Cinnabar Island",
|
||||
"order": 58,
|
||||
"order": 59,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -3253,17 +3323,41 @@
|
||||
"encounter_rate": 40,
|
||||
"min_level": 15,
|
||||
"max_level": 30
|
||||
},
|
||||
{
|
||||
"national_dex": 138,
|
||||
"pokemon_name": "omanyte",
|
||||
"method": "fossil",
|
||||
"encounter_rate": 100,
|
||||
"min_level": 5,
|
||||
"max_level": 5
|
||||
},
|
||||
{
|
||||
"national_dex": 140,
|
||||
"pokemon_name": "kabuto",
|
||||
"method": "fossil",
|
||||
"encounter_rate": 100,
|
||||
"min_level": 5,
|
||||
"max_level": 5
|
||||
},
|
||||
{
|
||||
"national_dex": 142,
|
||||
"pokemon_name": "aerodactyl",
|
||||
"method": "fossil",
|
||||
"encounter_rate": 100,
|
||||
"min_level": 5,
|
||||
"max_level": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Pokemon Mansion",
|
||||
"order": 59,
|
||||
"order": 60,
|
||||
"encounters": [],
|
||||
"children": [
|
||||
{
|
||||
"name": "Pokemon Mansion (1F)",
|
||||
"order": 60,
|
||||
"order": 61,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 20,
|
||||
@@ -3301,7 +3395,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Pokemon Mansion (2F)",
|
||||
"order": 61,
|
||||
"order": 62,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 88,
|
||||
@@ -3339,7 +3433,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Pokemon Mansion (3F)",
|
||||
"order": 62,
|
||||
"order": 63,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 88,
|
||||
@@ -3377,7 +3471,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Pokemon Mansion (B1F)",
|
||||
"order": 63,
|
||||
"order": 64,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 88,
|
||||
@@ -3417,7 +3511,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Sea Route 21",
|
||||
"order": 64,
|
||||
"order": 65,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -3511,7 +3605,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Route 23",
|
||||
"order": 65,
|
||||
"order": 66,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -3597,12 +3691,12 @@
|
||||
},
|
||||
{
|
||||
"name": "Victory Road 2",
|
||||
"order": 66,
|
||||
"order": 67,
|
||||
"encounters": [],
|
||||
"children": [
|
||||
{
|
||||
"name": "Victory Road 2 (1F)",
|
||||
"order": 67,
|
||||
"order": 68,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 74,
|
||||
@@ -3640,7 +3734,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Victory Road 2 (2F)",
|
||||
"order": 68,
|
||||
"order": 69,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 74,
|
||||
@@ -3694,7 +3788,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Victory Road 2 (3F)",
|
||||
"order": 69,
|
||||
"order": 70,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 74,
|
||||
@@ -3742,12 +3836,12 @@
|
||||
},
|
||||
{
|
||||
"name": "Cerulean Cave",
|
||||
"order": 70,
|
||||
"order": 71,
|
||||
"encounters": [],
|
||||
"children": [
|
||||
{
|
||||
"name": "Cerulean Cave (1F)",
|
||||
"order": 71,
|
||||
"order": 72,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -3857,7 +3951,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Cerulean Cave (2F)",
|
||||
"order": 72,
|
||||
"order": 73,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 42,
|
||||
@@ -3927,7 +4021,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Cerulean Cave (B1F)",
|
||||
"order": 73,
|
||||
"order": 74,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 129,
|
||||
@@ -4028,5 +4122,19 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Water Labyrinth",
|
||||
"order": 75,
|
||||
"encounters": [
|
||||
{
|
||||
"national_dex": 175,
|
||||
"pokemon_name": "togepi",
|
||||
"method": "gift",
|
||||
"encounter_rate": 100,
|
||||
"min_level": 5,
|
||||
"max_level": 5
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user