Files
nuzlocke-tracker/backend/src/app/seeds/data/crystal-bosses.json
Julian Tabel 8bd4ad1ecf Download badge and boss sprite images locally during export
The seed export command now downloads badge images and boss sprites
from remote URLs and stores them in frontend/public/, rewriting the
JSON URLs to local paths. Sprites are namespaced by game version
(e.g. /boss-sprites/red/brock.png) so each generation can have
its own sprite style.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 22:13:30 +01:00

311 lines
7.9 KiB
JSON

[
{
"name": "Falkner",
"boss_type": "gym_leader",
"specialty_type": "flying",
"badge_name": "Zephyr Badge",
"badge_image_url": "/badges/zephyr-badge.png",
"level_cap": 9,
"order": 1,
"after_route_name": "Violet City",
"location": "Violet Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/crystal/falkner.png",
"pokemon": []
},
{
"name": "Bugsy",
"boss_type": "gym_leader",
"specialty_type": "bug",
"badge_name": "Hive Badge",
"badge_image_url": "/badges/hive-badge.png",
"level_cap": 16,
"order": 2,
"after_route_name": "Slowpoke Well",
"location": "Azalea Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/crystal/bugsy.png",
"pokemon": []
},
{
"name": "Whitney",
"boss_type": "gym_leader",
"specialty_type": "normal",
"badge_name": "Plain Badge",
"badge_image_url": "/badges/plain-badge.png",
"level_cap": 20,
"order": 3,
"after_route_name": "Goldenrod City",
"location": "Goldenrod Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/crystal/whitney.png",
"pokemon": []
},
{
"name": "Morty",
"boss_type": "gym_leader",
"specialty_type": "ghost",
"badge_name": "Fog Badge",
"badge_image_url": "/badges/fog-badge.png",
"level_cap": 25,
"order": 4,
"after_route_name": null,
"location": "Ecruteak Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/crystal/morty.png",
"pokemon": []
},
{
"name": "Chuck",
"boss_type": "gym_leader",
"specialty_type": "fighting",
"badge_name": "Storm Badge",
"badge_image_url": "/badges/storm-badge.png",
"level_cap": 30,
"order": 5,
"after_route_name": "Cianwood City",
"location": "Cianwood Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/crystal/chuck.png",
"pokemon": []
},
{
"name": "Jasmine",
"boss_type": "gym_leader",
"specialty_type": "steel",
"badge_name": "Mineral Badge",
"badge_image_url": "/badges/mineral-badge.png",
"level_cap": 35,
"order": 6,
"after_route_name": "Cianwood City",
"location": "Olivine Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/crystal/jasmine.png",
"pokemon": []
},
{
"name": "Pryce",
"boss_type": "gym_leader",
"specialty_type": "ice",
"badge_name": "Glacier Badge",
"badge_image_url": "/badges/glacier-badge.png",
"level_cap": 31,
"order": 7,
"after_route_name": "Lake Of Rage",
"location": "Mahogany Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/crystal/pryce.png",
"pokemon": []
},
{
"name": "Clair",
"boss_type": "gym_leader",
"specialty_type": "dragon",
"badge_name": "Rising Badge",
"badge_image_url": "/badges/rising-badge.png",
"level_cap": 40,
"order": 8,
"after_route_name": "Blackthorn City",
"location": "Blackthorn Gym",
"section": "Main Story",
"sprite_url": "/boss-sprites/crystal/clair.png",
"pokemon": []
},
{
"name": "Will",
"boss_type": "elite_four",
"specialty_type": "psychic",
"badge_name": null,
"badge_image_url": null,
"level_cap": 42,
"order": 9,
"after_route_name": "Victory Road 1",
"location": "Indigo Plateau",
"section": "Main Story",
"sprite_url": null,
"pokemon": []
},
{
"name": "Koga",
"boss_type": "elite_four",
"specialty_type": "poison",
"badge_name": null,
"badge_image_url": null,
"level_cap": 44,
"order": 10,
"after_route_name": "Victory Road 1",
"location": "Indigo Plateau",
"section": "Main Story",
"sprite_url": null,
"pokemon": []
},
{
"name": "Bruno",
"boss_type": "elite_four",
"specialty_type": "fighting",
"badge_name": null,
"badge_image_url": null,
"level_cap": 46,
"order": 11,
"after_route_name": "Victory Road 1",
"location": "Indigo Plateau",
"section": "Main Story",
"sprite_url": null,
"pokemon": []
},
{
"name": "Karen",
"boss_type": "elite_four",
"specialty_type": "dark",
"badge_name": null,
"badge_image_url": null,
"level_cap": 47,
"order": 12,
"after_route_name": "Victory Road 1",
"location": "Indigo Plateau",
"section": "Main Story",
"sprite_url": null,
"pokemon": []
},
{
"name": "Lance",
"boss_type": "champion",
"specialty_type": "dragon",
"badge_name": null,
"badge_image_url": null,
"level_cap": 50,
"order": 13,
"after_route_name": "Victory Road 1",
"location": "Indigo Plateau",
"section": "Main Story",
"sprite_url": null,
"pokemon": []
},
{
"name": "Lt. Surge",
"boss_type": "gym_leader",
"specialty_type": "electric",
"badge_name": "Thunder Badge",
"badge_image_url": "/badges/thunder-badge.png",
"level_cap": 46,
"order": 14,
"after_route_name": "Vermilion City",
"location": "Vermilion Gym",
"section": "Endgame",
"sprite_url": "/boss-sprites/crystal/lt-surge.png",
"pokemon": []
},
{
"name": "Sabrina",
"boss_type": "gym_leader",
"specialty_type": "psychic",
"badge_name": "Marsh Badge",
"badge_image_url": "/badges/marsh-badge.png",
"level_cap": 48,
"order": 15,
"after_route_name": "Route 6",
"location": "Saffron Gym",
"section": "Endgame",
"sprite_url": "/boss-sprites/crystal/sabrina.png",
"pokemon": []
},
{
"name": "Misty",
"boss_type": "gym_leader",
"specialty_type": "water",
"badge_name": "Cascade Badge",
"badge_image_url": "/badges/cascade-badge.png",
"level_cap": 47,
"order": 16,
"after_route_name": "Cerulean City",
"location": "Cerulean Gym",
"section": "Endgame",
"sprite_url": "/boss-sprites/crystal/misty.png",
"pokemon": []
},
{
"name": "Erika",
"boss_type": "gym_leader",
"specialty_type": "grass",
"badge_name": "Rainbow Badge",
"badge_image_url": "/badges/rainbow-badge.png",
"level_cap": 46,
"order": 17,
"after_route_name": "Route 7",
"location": "Celadon Gym",
"section": "Endgame",
"sprite_url": "/boss-sprites/crystal/erika.png",
"pokemon": []
},
{
"name": "Janine",
"boss_type": "gym_leader",
"specialty_type": "poison",
"badge_name": "Soul Badge",
"badge_image_url": "/badges/soul-badge.png",
"level_cap": 39,
"order": 18,
"after_route_name": "Fuchsia City",
"location": "Fuchsia Gym",
"section": "Endgame",
"sprite_url": "/boss-sprites/crystal/janine.png",
"pokemon": []
},
{
"name": "Brock",
"boss_type": "gym_leader",
"specialty_type": "rock",
"badge_name": "Boulder Badge",
"badge_image_url": "/badges/boulder-badge.png",
"level_cap": 44,
"order": 19,
"after_route_name": "Pewter City",
"location": "Pewter Gym",
"section": "Endgame",
"sprite_url": "/boss-sprites/crystal/brock.png",
"pokemon": []
},
{
"name": "Blaine",
"boss_type": "gym_leader",
"specialty_type": "fire",
"badge_name": "Volcano Badge",
"badge_image_url": "/badges/volcano-badge.png",
"level_cap": 50,
"order": 20,
"after_route_name": "Cinnabar Island",
"location": "Cinnabar Gym",
"section": "Endgame",
"sprite_url": "/boss-sprites/crystal/blaine.png",
"pokemon": []
},
{
"name": "Blue",
"boss_type": "gym_leader",
"specialty_type": null,
"badge_name": "Earth Badge",
"badge_image_url": "/badges/earth-badge.png",
"level_cap": 58,
"order": 21,
"after_route_name": null,
"location": "Viridian Gym",
"section": "Endgame",
"sprite_url": "/boss-sprites/crystal/blue.png",
"pokemon": []
},
{
"name": "Red",
"boss_type": "other",
"specialty_type": null,
"badge_name": null,
"badge_image_url": null,
"level_cap": 81,
"order": 22,
"after_route_name": "Mt Silver",
"location": "Silver Cave",
"section": "Endgame",
"sprite_url": null,
"pokemon": []
}
]