Files
nuzlocke-tracker/backend/src/app/seeds/data/firered-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

279 lines
6.2 KiB
JSON

[
{
"name": "Brock",
"boss_type": "gym_leader",
"specialty_type": null,
"badge_name": "Boulder Badge",
"badge_image_url": "/badges/boulder-badge.png",
"level_cap": 14,
"order": 1,
"after_route_name": null,
"location": "Pewter City Gym",
"section": null,
"sprite_url": "/boss-sprites/firered/brock.png",
"pokemon": [
{
"pokeapi_id": 74,
"pokemon_name": "Geodude",
"level": 12,
"order": 1
},
{
"pokeapi_id": 95,
"pokemon_name": "Onix",
"level": 14,
"order": 2
}
]
},
{
"name": "Misty",
"boss_type": "gym_leader",
"specialty_type": null,
"badge_name": "Cascade Badge",
"badge_image_url": "/badges/cascade-badge.png",
"level_cap": 21,
"order": 2,
"after_route_name": null,
"location": "Cerulean City Gym",
"section": null,
"sprite_url": "/boss-sprites/firered/misty.png",
"pokemon": [
{
"pokeapi_id": 120,
"pokemon_name": "Staryu",
"level": 18,
"order": 1
},
{
"pokeapi_id": 121,
"pokemon_name": "Starmie",
"level": 21,
"order": 2
}
]
},
{
"name": "Lt. Surge",
"boss_type": "gym_leader",
"specialty_type": null,
"badge_name": "Thunder Badge",
"badge_image_url": "/badges/thunder-badge.png",
"level_cap": 24,
"order": 3,
"after_route_name": null,
"location": "Vermillion City Gym",
"section": null,
"sprite_url": "/boss-sprites/firered/lt-surge.png",
"pokemon": [
{
"pokeapi_id": 100,
"pokemon_name": "Voltorb",
"level": 21,
"order": 1
},
{
"pokeapi_id": 25,
"pokemon_name": "Pikachu",
"level": 18,
"order": 2
},
{
"pokeapi_id": 26,
"pokemon_name": "Raichu",
"level": 24,
"order": 3
}
]
},
{
"name": "Erika",
"boss_type": "gym_leader",
"specialty_type": null,
"badge_name": "Rainbow Badge",
"badge_image_url": "/badges/rainbow-badge.png",
"level_cap": 29,
"order": 4,
"after_route_name": null,
"location": "Celadon City Gym",
"section": null,
"sprite_url": "/boss-sprites/firered/erika.png",
"pokemon": []
},
{
"name": "Sabrina",
"boss_type": "gym_leader",
"specialty_type": null,
"badge_name": "Marsh Badge",
"badge_image_url": "/badges/marsh-badge.png",
"level_cap": 43,
"order": 5,
"after_route_name": null,
"location": "Saffron City Gym",
"section": null,
"sprite_url": "/boss-sprites/firered/sabrina.png",
"pokemon": []
},
{
"name": "Koga",
"boss_type": "gym_leader",
"specialty_type": null,
"badge_name": "Soul Badge",
"badge_image_url": "/badges/soul-badge.png",
"level_cap": 43,
"order": 6,
"after_route_name": null,
"location": "Fuchsia City Gym",
"section": null,
"sprite_url": "/boss-sprites/firered/koga.png",
"pokemon": []
},
{
"name": "Blaine",
"boss_type": "gym_leader",
"specialty_type": null,
"badge_name": "Volcano Badge",
"badge_image_url": "/badges/volcano-badge.png",
"level_cap": 47,
"order": 7,
"after_route_name": null,
"location": "Cinnabar Island Gym",
"section": null,
"sprite_url": "/boss-sprites/firered/blaine.png",
"pokemon": []
},
{
"name": "Giovanni",
"boss_type": "gym_leader",
"specialty_type": null,
"badge_name": "50",
"badge_image_url": "/badges/50.png",
"level_cap": 50,
"order": 8,
"after_route_name": null,
"location": "Viridian City Gym",
"section": null,
"sprite_url": "/boss-sprites/firered/giovanni.png",
"pokemon": []
},
{
"name": "Lorelei",
"boss_type": "elite_four",
"specialty_type": null,
"badge_name": null,
"badge_image_url": null,
"level_cap": 54,
"order": 9,
"after_route_name": null,
"location": "Indigo Plateau",
"section": null,
"sprite_url": null,
"pokemon": []
},
{
"name": "Bruno",
"boss_type": "elite_four",
"specialty_type": null,
"badge_name": null,
"badge_image_url": null,
"level_cap": 56,
"order": 10,
"after_route_name": null,
"location": "Indigo Plateau",
"section": null,
"sprite_url": null,
"pokemon": []
},
{
"name": "Agatha",
"boss_type": "elite_four",
"specialty_type": null,
"badge_name": null,
"badge_image_url": null,
"level_cap": 58,
"order": 11,
"after_route_name": null,
"location": "Indigo Plateau",
"section": null,
"sprite_url": null,
"pokemon": []
},
{
"name": "Lance",
"boss_type": "elite_four",
"specialty_type": null,
"badge_name": null,
"badge_image_url": null,
"level_cap": 60,
"order": 12,
"after_route_name": null,
"location": "Indigo Plateau",
"section": null,
"sprite_url": null,
"pokemon": []
},
{
"name": "Blue",
"boss_type": "champion",
"specialty_type": null,
"badge_name": null,
"badge_image_url": null,
"level_cap": 63,
"order": 13,
"after_route_name": "Victory Road",
"location": "Indigo Plateau",
"section": null,
"sprite_url": null,
"pokemon": [
{
"pokeapi_id": 18,
"pokemon_name": "Pidgeot",
"level": 59,
"order": 1
},
{
"pokeapi_id": 6,
"pokemon_name": "Charizard",
"level": 63,
"order": 1
},
{
"pokeapi_id": 3,
"pokemon_name": "Venusaur",
"level": 63,
"order": 1
},
{
"pokeapi_id": 9,
"pokemon_name": "Blastoise",
"level": 63,
"order": 1
},
{
"pokeapi_id": 65,
"pokemon_name": "Alakazam",
"level": 57,
"order": 2
},
{
"pokeapi_id": 112,
"pokemon_name": "Rhydon",
"level": 59,
"order": 3
},
{
"pokeapi_id": 103,
"pokemon_name": "Exeggutor",
"level": 59,
"order": 4
},
{
"pokeapi_id": 130,
"pokemon_name": "Gyarados",
"level": 61,
"order": 5
}
]
}
]