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,15 @@
"location": "Verdant Cavern",
"section": "Melemele Island",
"sprite_url": "/sprites/735.webp",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"level": 12,
"order": 1,
"condition_label": null
}
]
},
{
"name": "Hala",
@@ -25,7 +33,29 @@
"location": "Iki Town",
"section": "Melemele Island",
"sprite_url": "/boss-sprites/ultra-sun/hala.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 66,
"pokemon_name": "Machop",
"level": 15,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 296,
"pokemon_name": "Makuhita",
"level": 15,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 739,
"pokemon_name": "Crabrawler",
"level": 16,
"order": 3,
"condition_label": null
}
]
},
{
"name": "Totem Araquanid",
@@ -39,7 +69,15 @@
"location": "Brooklet Hill",
"section": "Akala Island",
"sprite_url": "/sprites/752.webp",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 752,
"pokemon_name": "Araquanid",
"level": 20,
"order": 1,
"condition_label": null
}
]
},
{
"name": "Totem Salazzle",
@@ -53,7 +91,15 @@
"location": "Wela Volcano Park",
"section": "Akala Island",
"sprite_url": "/sprites/758.webp",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 758,
"pokemon_name": "Salazzle",
"level": 22,
"order": 1,
"condition_label": null
}
]
},
{
"name": "Totem Lurantis",
@@ -67,7 +113,15 @@
"location": "Lush Jungle",
"section": "Akala Island",
"sprite_url": "/sprites/754.webp",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 754,
"pokemon_name": "Lurantis",
"level": 24,
"order": 1,
"condition_label": null
}
]
},
{
"name": "Olivia",
@@ -81,7 +135,29 @@
"location": "Ruins of Life",
"section": "Akala Island",
"sprite_url": "/boss-sprites/ultra-sun/olivia.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 347,
"pokemon_name": "Anorith",
"level": 27,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 345,
"pokemon_name": "Lileep",
"level": 27,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 745,
"pokemon_name": "Lycanroc Midday",
"level": 28,
"order": 3,
"condition_label": null
}
]
},
{
"name": "Totem Togedemaru",
@@ -95,7 +171,15 @@
"location": "Hokulani Observatory",
"section": "Ula'ula Island",
"sprite_url": "/sprites/777.webp",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 777,
"pokemon_name": "Togedemaru",
"level": 33,
"order": 1,
"condition_label": null
}
]
},
{
"name": "Totem Mimikyu",
@@ -109,7 +193,15 @@
"location": "Thrifty Megamart",
"section": "Ula'ula Island",
"sprite_url": "/sprites/778.webp",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 778,
"pokemon_name": "Mimikyu Disguised",
"level": 33,
"order": 1,
"condition_label": null
}
]
},
{
"name": "Nanu",
@@ -123,7 +215,29 @@
"location": "Malie City",
"section": "Ula'ula Island",
"sprite_url": "/boss-sprites/ultra-sun/nanu.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 302,
"pokemon_name": "Sableye",
"level": 43,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 552,
"pokemon_name": "Krokorok",
"level": 43,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 10108,
"pokemon_name": "Persian (Alola)",
"level": 44,
"order": 3,
"condition_label": null
}
]
},
{
"name": "Totem Kommo-o",
@@ -137,7 +251,15 @@
"location": "Vast Poni Canyon",
"section": "Poni Island",
"sprite_url": "/sprites/784.webp",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 784,
"pokemon_name": "Kommo O",
"level": 49,
"order": 1,
"condition_label": null
}
]
},
{
"name": "Totem Ribombee",
@@ -151,7 +273,15 @@
"location": "Seafolk Village",
"section": "Poni Island",
"sprite_url": "/sprites/743.webp",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 743,
"pokemon_name": "Ribombee",
"level": 55,
"order": 1,
"condition_label": null
}
]
},
{
"name": "Hapu",
@@ -165,7 +295,36 @@
"location": "Exeggutor Island",
"section": "Poni Island",
"sprite_url": "/boss-sprites/ultra-sun/hapu.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 623,
"pokemon_name": "Golurk",
"level": 53,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 423,
"pokemon_name": "Gastrodon",
"level": 53,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 330,
"pokemon_name": "Flygon",
"level": 53,
"order": 3,
"condition_label": null
},
{
"pokeapi_id": 750,
"pokemon_name": "Mudsdale",
"level": 54,
"order": 4,
"condition_label": null
}
]
},
{
"name": "Molayne",
@@ -179,7 +338,43 @@
"location": "Pokemon League",
"section": "Pokemon League",
"sprite_url": "/boss-sprites/ultra-sun/molayne.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 707,
"pokemon_name": "Klefki",
"level": 56,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 625,
"pokemon_name": "Bisharp",
"level": 56,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 462,
"pokemon_name": "Magnezone",
"level": 56,
"order": 3,
"condition_label": null
},
{
"pokeapi_id": 376,
"pokemon_name": "Metagross",
"level": 56,
"order": 4,
"condition_label": null
},
{
"pokeapi_id": 10106,
"pokemon_name": "Dugtrio (Alola)",
"level": 57,
"order": 5,
"condition_label": null
}
]
},
{
"name": "Olivia",
@@ -193,7 +388,43 @@
"location": "Pokemon League",
"section": "Pokemon League",
"sprite_url": "/boss-sprites/ultra-sun/olivia.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 348,
"pokemon_name": "Armaldo",
"level": 56,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 346,
"pokemon_name": "Cradily",
"level": 56,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 526,
"pokemon_name": "Gigalith",
"level": 56,
"order": 3,
"condition_label": null
},
{
"pokeapi_id": 476,
"pokemon_name": "Probopass",
"level": 56,
"order": 4,
"condition_label": null
},
{
"pokeapi_id": 745,
"pokemon_name": "Lycanroc Midday",
"level": 57,
"order": 5,
"condition_label": null
}
]
},
{
"name": "Acerola",
@@ -207,7 +438,43 @@
"location": "Pokemon League",
"section": "Pokemon League",
"sprite_url": "/boss-sprites/ultra-sun/acerola.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 354,
"pokemon_name": "Banette",
"level": 56,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 426,
"pokemon_name": "Drifblim",
"level": 56,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 781,
"pokemon_name": "Dhelmise",
"level": 56,
"order": 3,
"condition_label": null
},
{
"pokeapi_id": 478,
"pokemon_name": "Froslass",
"level": 56,
"order": 4,
"condition_label": null
},
{
"pokeapi_id": 770,
"pokemon_name": "Palossand",
"level": 57,
"order": 5,
"condition_label": null
}
]
},
{
"name": "Kahili",
@@ -221,7 +488,43 @@
"location": "Pokemon League",
"section": "Pokemon League",
"sprite_url": "/boss-sprites/ultra-sun/kahili.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 628,
"pokemon_name": "Braviary",
"level": 56,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 701,
"pokemon_name": "Hawlucha",
"level": 56,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 741,
"pokemon_name": "Oricorio Baile",
"level": 56,
"order": 3,
"condition_label": null
},
{
"pokeapi_id": 630,
"pokemon_name": "Mandibuzz",
"level": 56,
"order": 4,
"condition_label": null
},
{
"pokeapi_id": 733,
"pokemon_name": "Toucannon",
"level": 57,
"order": 5,
"condition_label": null
}
]
},
{
"name": "Hau",
@@ -235,6 +538,77 @@
"location": "Pokemon League",
"section": "Pokemon League",
"sprite_url": "/boss-sprites/ultra-sun/hau.png",
"pokemon": []
"pokemon": [
{
"pokeapi_id": 10100,
"pokemon_name": "Raichu (Alola)",
"level": 56,
"order": 1,
"condition_label": null
},
{
"pokeapi_id": 128,
"pokemon_name": "Tauros",
"level": 56,
"order": 2,
"condition_label": null
},
{
"pokeapi_id": 715,
"pokemon_name": "Noivern",
"level": 56,
"order": 3,
"condition_label": null
},
{
"pokeapi_id": 740,
"pokemon_name": "Crabominable",
"level": 56,
"order": 4,
"condition_label": null
},
{
"pokeapi_id": 136,
"pokemon_name": "Flareon",
"level": 56,
"order": 5,
"condition_label": "Chose Rowlet"
},
{
"pokeapi_id": 470,
"pokemon_name": "Leafeon",
"level": 56,
"order": 5,
"condition_label": "Chose Litten"
},
{
"pokeapi_id": 134,
"pokemon_name": "Vaporeon",
"level": 56,
"order": 5,
"condition_label": "Chose Popplio"
},
{
"pokeapi_id": 727,
"pokemon_name": "Incineroar",
"level": 58,
"order": 6,
"condition_label": "Chose Rowlet"
},
{
"pokeapi_id": 730,
"pokemon_name": "Primarina",
"level": 58,
"order": 6,
"condition_label": "Chose Litten"
},
{
"pokeapi_id": 724,
"pokemon_name": "Decidueye",
"level": 58,
"order": 6,
"condition_label": "Chose Popplio"
}
]
}
]
]