Populate boss Pokemon teams in seed data

Add Pokemon teams (pokeapi_id, level, order) to all 327 boss entries
across 21 seed files, sourced from Bulbapedia. Includes starter-dependent
teams via condition_label, Mega Evolution, Dynamax/Gigantamax,
Terastallize, and single-Pokemon entries for Totems/Nobles/Titans.
Also fix _export_bosses to include condition_label in exported data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-16 21:07:48 +01:00
parent 3a64661760
commit 7aeddd61da
23 changed files with 9158 additions and 382 deletions

View File

@@ -11,7 +11,22 @@
"location": "Santalune Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/x/viola.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 283,
"pokemon_name": "Surskit",
"level": 10,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 666,
"pokemon_name": "Vivillon",
"level": 12,
"order": 2,
"condition_label": null
}
]
},
{
"name": "Grant",
@@ -25,7 +40,22 @@
"location": "Cyllage Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/x/grant.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 698,
"pokemon_name": "Amaura",
"level": 25,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 696,
"pokemon_name": "Tyrunt",
"level": 25,
"order": 2,
"condition_label": null
}
]
},
{
"name": "Korrina",
@@ -39,7 +69,29 @@
"location": "Shalour Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/x/korrina.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 619,
"pokemon_name": "Mienfoo",
"level": 29,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 67,
"pokemon_name": "Machoke",
"level": 28,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 701,
"pokemon_name": "Hawlucha",
"level": 32,
"order": 3,
"condition_label": null
}
]
},
{
"name": "Ramos",
@@ -53,7 +105,29 @@
"location": "Coumarine Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/x/ramos.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 189,
"pokemon_name": "Jumpluff",
"level": 30,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 70,
"pokemon_name": "Weepinbell",
"level": 31,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 673,
"pokemon_name": "Gogoat",
"level": 34,
"order": 3,
"condition_label": null
}
]
},
{
"name": "Clemont",
@@ -67,7 +141,29 @@
"location": "Lumiose Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/x/clemont.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 587,
"pokemon_name": "Emolga",
"level": 35,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 82,
"pokemon_name": "Magneton",
"level": 35,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 695,
"pokemon_name": "Heliolisk",
"level": 37,
"order": 3,
"condition_label": null
}
]
},
{
"name": "Valerie",
@@ -81,7 +177,29 @@
"location": "Laverre Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/x/valerie.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 303,
"pokemon_name": "Mawile",
"level": 38,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 122,
"pokemon_name": "Mr Mime",
"level": 39,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 700,
"pokemon_name": "Sylveon",
"level": 42,
"order": 3,
"condition_label": null
}
]
},
{
"name": "Olympia",
@@ -95,7 +213,29 @@
"location": "Anistar Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/x/olympia.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 561,
"pokemon_name": "Sigilyph",
"level": 44,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 199,
"pokemon_name": "Slowking",
"level": 45,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 678,
"pokemon_name": "Meowstic Male",
"level": 48,
"order": 3,
"condition_label": null
}
]
},
{
"name": "Wulfric",
@@ -109,7 +249,29 @@
"location": "Snowbelle Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/x/wulfric.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 460,
"pokemon_name": "Abomasnow",
"level": 56,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 615,
"pokemon_name": "Cryogonal",
"level": 55,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 713,
"pokemon_name": "Avalugg",
"level": 59,
"order": 3,
"condition_label": null
}
]
},
{
"name": "Malva",
@@ -123,7 +285,36 @@
"location": "Pokemon League",
"section": "Main Story",
"sprite_url": "/boss-sprites/x/malva.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 668,
"pokemon_name": "Pyroar",
"level": 63,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 324,
"pokemon_name": "Torkoal",
"level": 63,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 609,
"pokemon_name": "Chandelure",
"level": 63,
"order": 3,
"condition_label": null
},
{
"pokeapi_id": 663,
"pokemon_name": "Talonflame",
"level": 65,
"order": 4,
"condition_label": null
}
]
},
{
"name": "Siebold",
@@ -137,7 +328,36 @@
"location": "Pokemon League",
"section": "Main Story",
"sprite_url": "/boss-sprites/x/siebold.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 693,
"pokemon_name": "Clawitzer",
"level": 63,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 130,
"pokemon_name": "Gyarados",
"level": 63,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 121,
"pokemon_name": "Starmie",
"level": 63,
"order": 3,
"condition_label": null
},
{
"pokeapi_id": 689,
"pokemon_name": "Barbaracle",
"level": 65,
"order": 4,
"condition_label": null
}
]
},
{
"name": "Wikstrom",
@@ -151,7 +371,36 @@
"location": "Pokemon League",
"section": "Main Story",
"sprite_url": "/boss-sprites/x/wikstrom.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 707,
"pokemon_name": "Klefki",
"level": 63,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 476,
"pokemon_name": "Probopass",
"level": 63,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 212,
"pokemon_name": "Scizor",
"level": 63,
"order": 3,
"condition_label": null
},
{
"pokeapi_id": 681,
"pokemon_name": "Aegislash Shield",
"level": 65,
"order": 4,
"condition_label": null
}
]
},
{
"name": "Drasna",
@@ -165,7 +414,36 @@
"location": "Pokemon League",
"section": "Main Story",
"sprite_url": "/boss-sprites/x/drasna.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 691,
"pokemon_name": "Dragalge",
"level": 63,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 621,
"pokemon_name": "Druddigon",
"level": 63,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 334,
"pokemon_name": "Altaria",
"level": 63,
"order": 3,
"condition_label": null
},
{
"pokeapi_id": 715,
"pokemon_name": "Noivern",
"level": 65,
"order": 4,
"condition_label": null
}
]
},
{
"name": "Diantha",
@@ -179,6 +457,49 @@
"location": "Pokemon League",
"section": "Main Story",
"sprite_url": "/boss-sprites/x/diantha.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 701,
"pokemon_name": "Hawlucha",
"level": 64,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 697,
"pokemon_name": "Tyrantrum",
"level": 65,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 699,
"pokemon_name": "Aurorus",
"level": 65,
"order": 3,
"condition_label": null
},
{
"pokeapi_id": 711,
"pokemon_name": "Gourgeist Average",
"level": 65,
"order": 4,
"condition_label": null
},
{
"pokeapi_id": 706,
"pokemon_name": "Goodra",
"level": 66,
"order": 5,
"condition_label": null
},
{
"pokeapi_id": 10051,
"pokemon_name": "Gardevoir (Mega)",
"level": 68,
"order": 6,
"condition_label": "Mega Evolution"
}
]
}
]