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>
This commit is contained in:
@@ -4,13 +4,13 @@
|
||||
"boss_type": "gym_leader",
|
||||
"specialty_type": null,
|
||||
"badge_name": "Boulder Badge",
|
||||
"badge_image_url": "https://archives.bulbagarden.net/media/upload/thumb/d/dd/Boulder_Badge.png/50px-Boulder_Badge.png",
|
||||
"badge_image_url": "/badges/boulder-badge.png",
|
||||
"level_cap": 14,
|
||||
"order": 1,
|
||||
"after_route_name": null,
|
||||
"location": "Pewter City Gym",
|
||||
"section": null,
|
||||
"sprite_url": "https://archives.bulbagarden.net/media/upload/thumb/d/dd/Boulder_Badge.png/50px-Boulder_Badge.png",
|
||||
"sprite_url": "/boss-sprites/firered/brock.png",
|
||||
"pokemon": [
|
||||
{
|
||||
"pokeapi_id": 74,
|
||||
@@ -31,13 +31,13 @@
|
||||
"boss_type": "gym_leader",
|
||||
"specialty_type": null,
|
||||
"badge_name": "Cascade Badge",
|
||||
"badge_image_url": "https://archives.bulbagarden.net/media/upload/thumb/9/9c/Cascade_Badge.png/50px-Cascade_Badge.png",
|
||||
"badge_image_url": "/badges/cascade-badge.png",
|
||||
"level_cap": 21,
|
||||
"order": 2,
|
||||
"after_route_name": null,
|
||||
"location": "Cerulean City Gym",
|
||||
"section": null,
|
||||
"sprite_url": "https://archives.bulbagarden.net/media/upload/thumb/9/9c/Cascade_Badge.png/50px-Cascade_Badge.png",
|
||||
"sprite_url": "/boss-sprites/firered/misty.png",
|
||||
"pokemon": [
|
||||
{
|
||||
"pokeapi_id": 120,
|
||||
@@ -58,13 +58,13 @@
|
||||
"boss_type": "gym_leader",
|
||||
"specialty_type": null,
|
||||
"badge_name": "Thunder Badge",
|
||||
"badge_image_url": "https://archives.bulbagarden.net/media/upload/thumb/a/a6/Thunder_Badge.png/50px-Thunder_Badge.png",
|
||||
"badge_image_url": "/badges/thunder-badge.png",
|
||||
"level_cap": 24,
|
||||
"order": 3,
|
||||
"after_route_name": null,
|
||||
"location": "Vermillion City Gym",
|
||||
"section": null,
|
||||
"sprite_url": "https://archives.bulbagarden.net/media/upload/thumb/a/a6/Thunder_Badge.png/50px-Thunder_Badge.png",
|
||||
"sprite_url": "/boss-sprites/firered/lt-surge.png",
|
||||
"pokemon": [
|
||||
{
|
||||
"pokeapi_id": 100,
|
||||
@@ -91,13 +91,13 @@
|
||||
"boss_type": "gym_leader",
|
||||
"specialty_type": null,
|
||||
"badge_name": "Rainbow Badge",
|
||||
"badge_image_url": "https://archives.bulbagarden.net/media/upload/thumb/b/b5/Rainbow_Badge.png/50px-Rainbow_Badge.png",
|
||||
"badge_image_url": "/badges/rainbow-badge.png",
|
||||
"level_cap": 29,
|
||||
"order": 4,
|
||||
"after_route_name": null,
|
||||
"location": "Celadon City Gym",
|
||||
"section": null,
|
||||
"sprite_url": "https://archives.bulbagarden.net/media/upload/thumb/b/b5/Rainbow_Badge.png/50px-Rainbow_Badge.png",
|
||||
"sprite_url": "/boss-sprites/firered/erika.png",
|
||||
"pokemon": []
|
||||
},
|
||||
{
|
||||
@@ -105,13 +105,13 @@
|
||||
"boss_type": "gym_leader",
|
||||
"specialty_type": null,
|
||||
"badge_name": "Marsh Badge",
|
||||
"badge_image_url": "https://archives.bulbagarden.net/media/upload/thumb/6/6b/Marsh_Badge.png/50px-Marsh_Badge.png",
|
||||
"badge_image_url": "/badges/marsh-badge.png",
|
||||
"level_cap": 43,
|
||||
"order": 5,
|
||||
"after_route_name": null,
|
||||
"location": "Saffron City Gym",
|
||||
"section": null,
|
||||
"sprite_url": "https://archives.bulbagarden.net/media/upload/thumb/6/6b/Marsh_Badge.png/50px-Marsh_Badge.png",
|
||||
"sprite_url": "/boss-sprites/firered/sabrina.png",
|
||||
"pokemon": []
|
||||
},
|
||||
{
|
||||
@@ -119,13 +119,13 @@
|
||||
"boss_type": "gym_leader",
|
||||
"specialty_type": null,
|
||||
"badge_name": "Soul Badge",
|
||||
"badge_image_url": "https://archives.bulbagarden.net/media/upload/thumb/7/7d/Soul_Badge.png/50px-Soul_Badge.png",
|
||||
"badge_image_url": "/badges/soul-badge.png",
|
||||
"level_cap": 43,
|
||||
"order": 6,
|
||||
"after_route_name": null,
|
||||
"location": "Fuchsia City Gym",
|
||||
"section": null,
|
||||
"sprite_url": "https://archives.bulbagarden.net/media/upload/thumb/7/7d/Soul_Badge.png/50px-Soul_Badge.png",
|
||||
"sprite_url": "/boss-sprites/firered/koga.png",
|
||||
"pokemon": []
|
||||
},
|
||||
{
|
||||
@@ -133,13 +133,13 @@
|
||||
"boss_type": "gym_leader",
|
||||
"specialty_type": null,
|
||||
"badge_name": "Volcano Badge",
|
||||
"badge_image_url": "https://archives.bulbagarden.net/media/upload/thumb/1/12/Volcano_Badge.png/50px-Volcano_Badge.png",
|
||||
"badge_image_url": "/badges/volcano-badge.png",
|
||||
"level_cap": 47,
|
||||
"order": 7,
|
||||
"after_route_name": null,
|
||||
"location": "Cinnabar Island Gym",
|
||||
"section": null,
|
||||
"sprite_url": "https://archives.bulbagarden.net/media/upload/thumb/1/12/Volcano_Badge.png/50px-Volcano_Badge.png",
|
||||
"sprite_url": "/boss-sprites/firered/blaine.png",
|
||||
"pokemon": []
|
||||
},
|
||||
{
|
||||
@@ -147,13 +147,13 @@
|
||||
"boss_type": "gym_leader",
|
||||
"specialty_type": null,
|
||||
"badge_name": "50",
|
||||
"badge_image_url": "https://archives.bulbagarden.net/media/upload/thumb/7/78/Earth_Badge.png/50px-Earth_Badge.png",
|
||||
"badge_image_url": "/badges/50.png",
|
||||
"level_cap": 50,
|
||||
"order": 8,
|
||||
"after_route_name": null,
|
||||
"location": "Viridian City Gym",
|
||||
"section": null,
|
||||
"sprite_url": "https://archives.bulbagarden.net/media/upload/thumb/7/78/Earth_Badge.png/50px-Earth_Badge.png",
|
||||
"sprite_url": "/boss-sprites/firered/giovanni.png",
|
||||
"pokemon": []
|
||||
},
|
||||
{
|
||||
@@ -220,7 +220,7 @@
|
||||
"badge_image_url": null,
|
||||
"level_cap": 63,
|
||||
"order": 13,
|
||||
"after_route_name": null,
|
||||
"after_route_name": "Victory Road",
|
||||
"location": "Indigo Plateau",
|
||||
"section": null,
|
||||
"sprite_url": null,
|
||||
@@ -231,6 +231,24 @@
|
||||
"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",
|
||||
@@ -254,12 +272,6 @@
|
||||
"pokemon_name": "Gyarados",
|
||||
"level": 61,
|
||||
"order": 5
|
||||
},
|
||||
{
|
||||
"pokeapi_id": 6,
|
||||
"pokemon_name": "Charizard",
|
||||
"level": 63,
|
||||
"order": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user