diff --git a/.beans/nuzlocke-tracker-sgp4--fetch-and-store-badge-images-locally.md b/.beans/nuzlocke-tracker-sgp4--fetch-and-store-badge-images-locally.md index 8d744cd..4b6d3fc 100644 --- a/.beans/nuzlocke-tracker-sgp4--fetch-and-store-badge-images-locally.md +++ b/.beans/nuzlocke-tracker-sgp4--fetch-and-store-badge-images-locally.md @@ -1,11 +1,11 @@ --- # nuzlocke-tracker-sgp4 title: Fetch and store badge images locally -status: in-progress +status: completed type: task priority: normal created_at: 2026-02-08T20:57:15Z -updated_at: 2026-02-08T20:57:41Z +updated_at: 2026-02-08T21:13:34Z --- Badge images are currently loaded via remote URLs, which can lead to missing images if the remote source is unavailable. Download all badge images and store them locally as part of the seed script's export function. diff --git a/.beans/nuzlocke-tracker-xa5k--display-encounter-less-locations-for-egg-hatching.md b/.beans/nuzlocke-tracker-xa5k--display-encounter-less-locations-for-egg-hatching.md index 802602d..45e0ab0 100644 --- a/.beans/nuzlocke-tracker-xa5k--display-encounter-less-locations-for-egg-hatching.md +++ b/.beans/nuzlocke-tracker-xa5k--display-encounter-less-locations-for-egg-hatching.md @@ -1,11 +1,11 @@ --- # nuzlocke-tracker-xa5k title: Add egg encounter logging -status: in-progress +status: completed type: feature priority: normal created_at: 2026-02-08T14:49:50Z -updated_at: 2026-02-08T21:17:56Z +updated_at: 2026-02-08T21:26:24Z --- Allow players to log egg hatches at any location, similar to how shiny encounters work. A "Log Egg" button (next to "Log Shiny") opens a modal that shows all locations — including those without wild encounters — so the player can record where an egg hatched. diff --git a/backend/src/app/seeds/data/black-2.json b/backend/src/app/seeds/data/black-2.json index 1f28cd6..2003343 100644 --- a/backend/src/app/seeds/data/black-2.json +++ b/backend/src/app/seeds/data/black-2.json @@ -2005,20 +2005,6 @@ } ] }, - { - "name": "Dragonspiral Tower (2F)", - "order": 40, - "encounters": [ - { - "pokeapi_id": 623, - "pokemon_name": "Golurk", - "method": "walk", - "encounter_rate": 100, - "min_level": 55, - "max_level": 58 - } - ] - }, { "name": "Dragonspiral Tower (Entrance)", "order": 40, @@ -2072,6 +2058,20 @@ "max_level": 58 } ] + }, + { + "name": "Dragonspiral Tower (2F)", + "order": 40, + "encounters": [ + { + "pokeapi_id": 623, + "pokemon_name": "Golurk", + "method": "walk", + "encounter_rate": 100, + "min_level": 55, + "max_level": 58 + } + ] } ] }, diff --git a/backend/src/app/seeds/data/black.json b/backend/src/app/seeds/data/black.json index 42128ff..f89390f 100644 --- a/backend/src/app/seeds/data/black.json +++ b/backend/src/app/seeds/data/black.json @@ -1965,6 +1965,20 @@ } ] }, + { + "name": "Dragonspiral Tower (2F)", + "order": 44, + "encounters": [ + { + "pokeapi_id": 622, + "pokemon_name": "Golett", + "method": "walk", + "encounter_rate": 100, + "min_level": 30, + "max_level": 33 + } + ] + }, { "name": "Dragonspiral Tower (Entrance)", "order": 44, @@ -2018,20 +2032,6 @@ "max_level": 33 } ] - }, - { - "name": "Dragonspiral Tower (2F)", - "order": 44, - "encounters": [ - { - "pokeapi_id": 622, - "pokemon_name": "Golett", - "method": "walk", - "encounter_rate": 100, - "min_level": 30, - "max_level": 33 - } - ] } ] }, @@ -2192,44 +2192,6 @@ } ] }, - { - "name": "Victory Road (Unknown Area 54)", - "order": 50, - "encounters": [ - { - "pokeapi_id": 632, - "pokemon_name": "Durant", - "method": "walk", - "encounter_rate": 40, - "min_level": 37, - "max_level": 40 - }, - { - "pokeapi_id": 525, - "pokemon_name": "Boldore", - "method": "walk", - "encounter_rate": 30, - "min_level": 37, - "max_level": 39 - }, - { - "pokeapi_id": 527, - "pokemon_name": "Woobat", - "method": "walk", - "encounter_rate": 20, - "min_level": 37, - "max_level": 40 - }, - { - "pokeapi_id": 619, - "pokemon_name": "Mienfoo", - "method": "walk", - "encounter_rate": 10, - "min_level": 39, - "max_level": 39 - } - ] - }, { "name": "Victory Road (4F Middle Room)", "order": 50, @@ -2268,6 +2230,44 @@ } ] }, + { + "name": "Victory Road (Unknown Area 54)", + "order": 50, + "encounters": [ + { + "pokeapi_id": 632, + "pokemon_name": "Durant", + "method": "walk", + "encounter_rate": 40, + "min_level": 37, + "max_level": 40 + }, + { + "pokeapi_id": 525, + "pokemon_name": "Boldore", + "method": "walk", + "encounter_rate": 30, + "min_level": 37, + "max_level": 39 + }, + { + "pokeapi_id": 527, + "pokemon_name": "Woobat", + "method": "walk", + "encounter_rate": 20, + "min_level": 37, + "max_level": 40 + }, + { + "pokeapi_id": 619, + "pokemon_name": "Mienfoo", + "method": "walk", + "encounter_rate": 10, + "min_level": 39, + "max_level": 39 + } + ] + }, { "name": "Victory Road (Unknown Area 55)", "order": 51, diff --git a/backend/src/app/seeds/data/firered.json b/backend/src/app/seeds/data/firered.json index 9742825..2053e62 100644 --- a/backend/src/app/seeds/data/firered.json +++ b/backend/src/app/seeds/data/firered.json @@ -4312,12 +4312,12 @@ ] }, { - "name": "Victory Road 2", + "name": "Victory Road", "order": 87, "encounters": [], "children": [ { - "name": "Victory Road 2 (1F)", + "name": "Victory Road (1F)", "order": 89, "encounters": [ { @@ -4387,7 +4387,7 @@ ] }, { - "name": "Victory Road 2 (2F)", + "name": "Victory Road (2F)", "order": 91, "encounters": [ { @@ -4465,7 +4465,7 @@ ] }, { - "name": "Victory Road 2 (3F)", + "name": "Victory Road (3F)", "order": 93, "encounters": [ { diff --git a/backend/src/app/seeds/data/heartgold.json b/backend/src/app/seeds/data/heartgold.json index 90238a7..406c20d 100644 --- a/backend/src/app/seeds/data/heartgold.json +++ b/backend/src/app/seeds/data/heartgold.json @@ -4808,76 +4808,6 @@ } ] }, - { - "name": "Mt Mortar (Lower Cave)", - "order": 61, - "encounters": [ - { - "pokeapi_id": 74, - "pokemon_name": "Geodude", - "method": "walk", - "encounter_rate": 50, - "min_level": 13, - "max_level": 15 - }, - { - "pokeapi_id": 66, - "pokemon_name": "Machop", - "method": "walk", - "encounter_rate": 35, - "min_level": 13, - "max_level": 15 - }, - { - "pokeapi_id": 359, - "pokemon_name": "Absol", - "method": "walk", - "encounter_rate": 20, - "min_level": 13, - "max_level": 13 - }, - { - "pokeapi_id": 436, - "pokemon_name": "Bronzor", - "method": "walk", - "encounter_rate": 20, - "min_level": 13, - "max_level": 13 - }, - { - "pokeapi_id": 433, - "pokemon_name": "Chingling", - "method": "walk", - "encounter_rate": 20, - "min_level": 15, - "max_level": 15 - }, - { - "pokeapi_id": 296, - "pokemon_name": "Makuhita", - "method": "walk", - "encounter_rate": 20, - "min_level": 15, - "max_level": 15 - }, - { - "pokeapi_id": 19, - "pokemon_name": "Rattata", - "method": "walk", - "encounter_rate": 10, - "min_level": 14, - "max_level": 14 - }, - { - "pokeapi_id": 41, - "pokemon_name": "Zubat", - "method": "walk", - "encounter_rate": 5, - "min_level": 14, - "max_level": 14 - } - ] - }, { "name": "Mt Mortar (B1F)", "order": 61, @@ -5027,6 +4957,76 @@ "max_level": 16 } ] + }, + { + "name": "Mt Mortar (Lower Cave)", + "order": 61, + "encounters": [ + { + "pokeapi_id": 74, + "pokemon_name": "Geodude", + "method": "walk", + "encounter_rate": 50, + "min_level": 13, + "max_level": 15 + }, + { + "pokeapi_id": 66, + "pokemon_name": "Machop", + "method": "walk", + "encounter_rate": 35, + "min_level": 13, + "max_level": 15 + }, + { + "pokeapi_id": 359, + "pokemon_name": "Absol", + "method": "walk", + "encounter_rate": 20, + "min_level": 13, + "max_level": 13 + }, + { + "pokeapi_id": 436, + "pokemon_name": "Bronzor", + "method": "walk", + "encounter_rate": 20, + "min_level": 13, + "max_level": 13 + }, + { + "pokeapi_id": 433, + "pokemon_name": "Chingling", + "method": "walk", + "encounter_rate": 20, + "min_level": 15, + "max_level": 15 + }, + { + "pokeapi_id": 296, + "pokemon_name": "Makuhita", + "method": "walk", + "encounter_rate": 20, + "min_level": 15, + "max_level": 15 + }, + { + "pokeapi_id": 19, + "pokemon_name": "Rattata", + "method": "walk", + "encounter_rate": 10, + "min_level": 14, + "max_level": 14 + }, + { + "pokeapi_id": 41, + "pokemon_name": "Zubat", + "method": "walk", + "encounter_rate": 5, + "min_level": 14, + "max_level": 14 + } + ] } ] }, @@ -9409,164 +9409,6 @@ } ] }, - { - "name": "Mt Silver (Outside)", - "order": 108, - "encounters": [ - { - "pokeapi_id": 61, - "pokemon_name": "Poliwhirl", - "method": "surf", - "encounter_rate": 91, - "min_level": 30, - "max_level": 48 - }, - { - "pokeapi_id": 129, - "pokemon_name": "Magikarp", - "method": "old-rod", - "encounter_rate": 85, - "min_level": 10, - "max_level": 10 - }, - { - "pokeapi_id": 60, - "pokemon_name": "Poliwag", - "method": "super-rod", - "encounter_rate": 80, - "min_level": 40, - "max_level": 40 - }, - { - "pokeapi_id": 60, - "pokemon_name": "Poliwag", - "method": "good-rod", - "encounter_rate": 60, - "min_level": 20, - "max_level": 20 - }, - { - "pokeapi_id": 129, - "pokemon_name": "Magikarp", - "method": "good-rod", - "encounter_rate": 40, - "min_level": 20, - "max_level": 20 - }, - { - "pokeapi_id": 77, - "pokemon_name": "Ponyta", - "method": "walk", - "encounter_rate": 30, - "min_level": 42, - "max_level": 42 - }, - { - "pokeapi_id": 114, - "pokemon_name": "Tangela", - "method": "walk", - "encounter_rate": 30, - "min_level": 41, - "max_level": 41 - }, - { - "pokeapi_id": 399, - "pokemon_name": "Bidoof", - "method": "walk", - "encounter_rate": 20, - "min_level": 42, - "max_level": 42 - }, - { - "pokeapi_id": 418, - "pokemon_name": "Buizel", - "method": "walk", - "encounter_rate": 20, - "min_level": 41, - "max_level": 42 - }, - { - "pokeapi_id": 232, - "pokemon_name": "Donphan", - "method": "walk", - "encounter_rate": 20, - "min_level": 42, - "max_level": 42 - }, - { - "pokeapi_id": 264, - "pokemon_name": "Linoone", - "method": "walk", - "encounter_rate": 20, - "min_level": 42, - "max_level": 42 - }, - { - "pokeapi_id": 129, - "pokemon_name": "Magikarp", - "method": "super-rod", - "encounter_rate": 20, - "min_level": 40, - "max_level": 40 - }, - { - "pokeapi_id": 293, - "pokemon_name": "Whismur", - "method": "walk", - "encounter_rate": 20, - "min_level": 41, - "max_level": 42 - }, - { - "pokeapi_id": 60, - "pokemon_name": "Poliwag", - "method": "old-rod", - "encounter_rate": 15, - "min_level": 10, - "max_level": 10 - }, - { - "pokeapi_id": 85, - "pokemon_name": "Dodrio", - "method": "walk", - "encounter_rate": 10, - "min_level": 43, - "max_level": 43 - }, - { - "pokeapi_id": 84, - "pokemon_name": "Doduo", - "method": "walk", - "encounter_rate": 10, - "min_level": 41, - "max_level": 41 - }, - { - "pokeapi_id": 78, - "pokemon_name": "Rapidash", - "method": "walk", - "encounter_rate": 10, - "min_level": 44, - "max_level": 44 - }, - { - "pokeapi_id": 215, - "pokemon_name": "Sneasel", - "method": "walk", - "encounter_rate": 10, - "min_level": 41, - "max_level": 43 - }, - { - "pokeapi_id": 60, - "pokemon_name": "Poliwag", - "method": "surf", - "encounter_rate": 9, - "min_level": 30, - "max_level": 40 - } - ] - }, { "name": "Mt Silver (4F)", "order": 108, @@ -9733,6 +9575,164 @@ } ] }, + { + "name": "Mt Silver (Outside)", + "order": 108, + "encounters": [ + { + "pokeapi_id": 61, + "pokemon_name": "Poliwhirl", + "method": "surf", + "encounter_rate": 91, + "min_level": 30, + "max_level": 48 + }, + { + "pokeapi_id": 129, + "pokemon_name": "Magikarp", + "method": "old-rod", + "encounter_rate": 85, + "min_level": 10, + "max_level": 10 + }, + { + "pokeapi_id": 60, + "pokemon_name": "Poliwag", + "method": "super-rod", + "encounter_rate": 80, + "min_level": 40, + "max_level": 40 + }, + { + "pokeapi_id": 60, + "pokemon_name": "Poliwag", + "method": "good-rod", + "encounter_rate": 60, + "min_level": 20, + "max_level": 20 + }, + { + "pokeapi_id": 129, + "pokemon_name": "Magikarp", + "method": "good-rod", + "encounter_rate": 40, + "min_level": 20, + "max_level": 20 + }, + { + "pokeapi_id": 77, + "pokemon_name": "Ponyta", + "method": "walk", + "encounter_rate": 30, + "min_level": 42, + "max_level": 42 + }, + { + "pokeapi_id": 114, + "pokemon_name": "Tangela", + "method": "walk", + "encounter_rate": 30, + "min_level": 41, + "max_level": 41 + }, + { + "pokeapi_id": 399, + "pokemon_name": "Bidoof", + "method": "walk", + "encounter_rate": 20, + "min_level": 42, + "max_level": 42 + }, + { + "pokeapi_id": 418, + "pokemon_name": "Buizel", + "method": "walk", + "encounter_rate": 20, + "min_level": 41, + "max_level": 42 + }, + { + "pokeapi_id": 232, + "pokemon_name": "Donphan", + "method": "walk", + "encounter_rate": 20, + "min_level": 42, + "max_level": 42 + }, + { + "pokeapi_id": 264, + "pokemon_name": "Linoone", + "method": "walk", + "encounter_rate": 20, + "min_level": 42, + "max_level": 42 + }, + { + "pokeapi_id": 129, + "pokemon_name": "Magikarp", + "method": "super-rod", + "encounter_rate": 20, + "min_level": 40, + "max_level": 40 + }, + { + "pokeapi_id": 293, + "pokemon_name": "Whismur", + "method": "walk", + "encounter_rate": 20, + "min_level": 41, + "max_level": 42 + }, + { + "pokeapi_id": 60, + "pokemon_name": "Poliwag", + "method": "old-rod", + "encounter_rate": 15, + "min_level": 10, + "max_level": 10 + }, + { + "pokeapi_id": 85, + "pokemon_name": "Dodrio", + "method": "walk", + "encounter_rate": 10, + "min_level": 43, + "max_level": 43 + }, + { + "pokeapi_id": 84, + "pokemon_name": "Doduo", + "method": "walk", + "encounter_rate": 10, + "min_level": 41, + "max_level": 41 + }, + { + "pokeapi_id": 78, + "pokemon_name": "Rapidash", + "method": "walk", + "encounter_rate": 10, + "min_level": 44, + "max_level": 44 + }, + { + "pokeapi_id": 215, + "pokemon_name": "Sneasel", + "method": "walk", + "encounter_rate": 10, + "min_level": 41, + "max_level": 43 + }, + { + "pokeapi_id": 60, + "pokemon_name": "Poliwag", + "method": "surf", + "encounter_rate": 9, + "min_level": 30, + "max_level": 40 + } + ] + }, { "name": "Mt Silver (1F)", "order": 110, diff --git a/backend/src/app/seeds/data/leafgreen.json b/backend/src/app/seeds/data/leafgreen.json index a9210ee..7405484 100644 --- a/backend/src/app/seeds/data/leafgreen.json +++ b/backend/src/app/seeds/data/leafgreen.json @@ -4312,12 +4312,12 @@ ] }, { - "name": "Victory Road 2", + "name": "Victory Road", "order": 87, "encounters": [], "children": [ { - "name": "Victory Road 2 (1F)", + "name": "Victory Road (1F)", "order": 89, "encounters": [ { @@ -4387,7 +4387,7 @@ ] }, { - "name": "Victory Road 2 (2F)", + "name": "Victory Road (2F)", "order": 91, "encounters": [ { @@ -4465,7 +4465,7 @@ ] }, { - "name": "Victory Road 2 (3F)", + "name": "Victory Road (3F)", "order": 93, "encounters": [ { diff --git a/backend/src/app/seeds/data/legends-z-a.json b/backend/src/app/seeds/data/legends-z-a.json index 4654f0d..056300a 100644 --- a/backend/src/app/seeds/data/legends-z-a.json +++ b/backend/src/app/seeds/data/legends-z-a.json @@ -1057,14 +1057,6 @@ "name": "Wild Zone 18", "order": 18, "encounters": [ - { - "pokeapi_id": 714, - "pokemon_name": "Noibat", - "method": "walk", - "encounter_rate": 100, - "min_level": 44, - "max_level": 45 - }, { "pokeapi_id": 653, "pokemon_name": "Fennekin", @@ -1104,6 +1096,14 @@ "encounter_rate": 100, "min_level": 44, "max_level": 45 + }, + { + "pokeapi_id": 714, + "pokemon_name": "Noibat", + "method": "walk", + "encounter_rate": 100, + "min_level": 44, + "max_level": 45 } ] }, @@ -1119,6 +1119,14 @@ "min_level": 48, "max_level": 49 }, + { + "pokeapi_id": 173, + "pokemon_name": "Cleffa", + "method": "walk", + "encounter_rate": 100, + "min_level": 49, + "max_level": 50 + }, { "pokeapi_id": 676, "pokemon_name": "Furfrou", @@ -1158,14 +1166,6 @@ "encounter_rate": 100, "min_level": 48, "max_level": 50 - }, - { - "pokeapi_id": 173, - "pokemon_name": "Cleffa", - "method": "walk", - "encounter_rate": 100, - "min_level": 49, - "max_level": 50 } ] }, @@ -1213,6 +1213,38 @@ "min_level": 54, "max_level": 55 }, + { + "pokeapi_id": 7, + "pokemon_name": "Squirtle", + "method": "walk", + "encounter_rate": 100, + "min_level": 53, + "max_level": 54 + }, + { + "pokeapi_id": 158, + "pokemon_name": "Totodile", + "method": "walk", + "encounter_rate": 100, + "min_level": 54, + "max_level": 55 + }, + { + "pokeapi_id": 687, + "pokemon_name": "Malamar", + "method": "walk", + "encounter_rate": 100, + "min_level": 54, + "max_level": 55 + }, + { + "pokeapi_id": 691, + "pokemon_name": "Dragalge", + "method": "walk", + "encounter_rate": 100, + "min_level": 53, + "max_level": 54 + }, { "pokeapi_id": 407, "pokemon_name": "Roserade", @@ -1260,38 +1292,6 @@ "encounter_rate": 100, "min_level": 54, "max_level": 55 - }, - { - "pokeapi_id": 7, - "pokemon_name": "Squirtle", - "method": "walk", - "encounter_rate": 100, - "min_level": 53, - "max_level": 54 - }, - { - "pokeapi_id": 158, - "pokemon_name": "Totodile", - "method": "walk", - "encounter_rate": 100, - "min_level": 54, - "max_level": 55 - }, - { - "pokeapi_id": 687, - "pokemon_name": "Malamar", - "method": "walk", - "encounter_rate": 100, - "min_level": 54, - "max_level": 55 - }, - { - "pokeapi_id": 691, - "pokemon_name": "Dragalge", - "method": "walk", - "encounter_rate": 100, - "min_level": 53, - "max_level": 54 } ] } diff --git a/backend/src/app/seeds/data/platinum.json b/backend/src/app/seeds/data/platinum.json index f509760..588593b 100644 --- a/backend/src/app/seeds/data/platinum.json +++ b/backend/src/app/seeds/data/platinum.json @@ -5423,7 +5423,7 @@ ] }, { - "name": "Old Chateau (Dining Room)", + "name": "Old Chateau (2F Left Room)", "order": 103, "encounters": [ { @@ -5437,7 +5437,7 @@ ] }, { - "name": "Old Chateau (2F Left Room)", + "name": "Old Chateau (Dining Room)", "order": 103, "encounters": [ { diff --git a/backend/src/app/seeds/data/ruby-bosses.json b/backend/src/app/seeds/data/ruby-bosses.json index b1e4cfe..fd02b94 100644 --- a/backend/src/app/seeds/data/ruby-bosses.json +++ b/backend/src/app/seeds/data/ruby-bosses.json @@ -122,7 +122,7 @@ "after_route_name": "Victory Road", "location": "Ever Grande City", "section": "Main Story", - "sprite_url": null, + "sprite_url": "/boss-sprites/ruby/sydney.png", "pokemon": [] }, { @@ -136,7 +136,7 @@ "after_route_name": "Victory Road", "location": "Ever Grande City", "section": "Main Story", - "sprite_url": null, + "sprite_url": "/boss-sprites/ruby/phoebe.png", "pokemon": [] }, { @@ -150,7 +150,7 @@ "after_route_name": "Victory Road", "location": "Ever Grande City", "section": "Main Story", - "sprite_url": null, + "sprite_url": "/boss-sprites/ruby/glacia.png", "pokemon": [] }, { @@ -164,7 +164,7 @@ "after_route_name": "Victory Road", "location": "Ever Grande City", "section": "Main Story", - "sprite_url": null, + "sprite_url": "/boss-sprites/ruby/drake.png", "pokemon": [] }, { @@ -178,7 +178,7 @@ "after_route_name": "Victory Road", "location": "Ever Grande City", "section": "Main Story", - "sprite_url": null, + "sprite_url": "/boss-sprites/ruby/steven.png", "pokemon": [] } ] diff --git a/backend/src/app/seeds/data/soulsilver.json b/backend/src/app/seeds/data/soulsilver.json index 3c3d55c..9d5e7ab 100644 --- a/backend/src/app/seeds/data/soulsilver.json +++ b/backend/src/app/seeds/data/soulsilver.json @@ -4792,76 +4792,6 @@ } ] }, - { - "name": "Mt Mortar (Lower Cave)", - "order": 61, - "encounters": [ - { - "pokeapi_id": 74, - "pokemon_name": "Geodude", - "method": "walk", - "encounter_rate": 50, - "min_level": 13, - "max_level": 15 - }, - { - "pokeapi_id": 66, - "pokemon_name": "Machop", - "method": "walk", - "encounter_rate": 35, - "min_level": 13, - "max_level": 15 - }, - { - "pokeapi_id": 359, - "pokemon_name": "Absol", - "method": "walk", - "encounter_rate": 20, - "min_level": 13, - "max_level": 13 - }, - { - "pokeapi_id": 436, - "pokemon_name": "Bronzor", - "method": "walk", - "encounter_rate": 20, - "min_level": 13, - "max_level": 13 - }, - { - "pokeapi_id": 433, - "pokemon_name": "Chingling", - "method": "walk", - "encounter_rate": 20, - "min_level": 15, - "max_level": 15 - }, - { - "pokeapi_id": 296, - "pokemon_name": "Makuhita", - "method": "walk", - "encounter_rate": 20, - "min_level": 15, - "max_level": 15 - }, - { - "pokeapi_id": 19, - "pokemon_name": "Rattata", - "method": "walk", - "encounter_rate": 10, - "min_level": 14, - "max_level": 14 - }, - { - "pokeapi_id": 41, - "pokemon_name": "Zubat", - "method": "walk", - "encounter_rate": 5, - "min_level": 14, - "max_level": 14 - } - ] - }, { "name": "Mt Mortar (B1F)", "order": 61, @@ -5011,6 +4941,76 @@ "max_level": 16 } ] + }, + { + "name": "Mt Mortar (Lower Cave)", + "order": 61, + "encounters": [ + { + "pokeapi_id": 74, + "pokemon_name": "Geodude", + "method": "walk", + "encounter_rate": 50, + "min_level": 13, + "max_level": 15 + }, + { + "pokeapi_id": 66, + "pokemon_name": "Machop", + "method": "walk", + "encounter_rate": 35, + "min_level": 13, + "max_level": 15 + }, + { + "pokeapi_id": 359, + "pokemon_name": "Absol", + "method": "walk", + "encounter_rate": 20, + "min_level": 13, + "max_level": 13 + }, + { + "pokeapi_id": 436, + "pokemon_name": "Bronzor", + "method": "walk", + "encounter_rate": 20, + "min_level": 13, + "max_level": 13 + }, + { + "pokeapi_id": 433, + "pokemon_name": "Chingling", + "method": "walk", + "encounter_rate": 20, + "min_level": 15, + "max_level": 15 + }, + { + "pokeapi_id": 296, + "pokemon_name": "Makuhita", + "method": "walk", + "encounter_rate": 20, + "min_level": 15, + "max_level": 15 + }, + { + "pokeapi_id": 19, + "pokemon_name": "Rattata", + "method": "walk", + "encounter_rate": 10, + "min_level": 14, + "max_level": 14 + }, + { + "pokeapi_id": 41, + "pokemon_name": "Zubat", + "method": "walk", + "encounter_rate": 5, + "min_level": 14, + "max_level": 14 + } + ] } ] }, @@ -9425,164 +9425,6 @@ } ] }, - { - "name": "Mt Silver (Outside)", - "order": 108, - "encounters": [ - { - "pokeapi_id": 61, - "pokemon_name": "Poliwhirl", - "method": "surf", - "encounter_rate": 91, - "min_level": 30, - "max_level": 48 - }, - { - "pokeapi_id": 129, - "pokemon_name": "Magikarp", - "method": "old-rod", - "encounter_rate": 85, - "min_level": 10, - "max_level": 10 - }, - { - "pokeapi_id": 60, - "pokemon_name": "Poliwag", - "method": "super-rod", - "encounter_rate": 80, - "min_level": 40, - "max_level": 40 - }, - { - "pokeapi_id": 60, - "pokemon_name": "Poliwag", - "method": "good-rod", - "encounter_rate": 60, - "min_level": 20, - "max_level": 20 - }, - { - "pokeapi_id": 129, - "pokemon_name": "Magikarp", - "method": "good-rod", - "encounter_rate": 40, - "min_level": 20, - "max_level": 20 - }, - { - "pokeapi_id": 77, - "pokemon_name": "Ponyta", - "method": "walk", - "encounter_rate": 30, - "min_level": 42, - "max_level": 42 - }, - { - "pokeapi_id": 114, - "pokemon_name": "Tangela", - "method": "walk", - "encounter_rate": 30, - "min_level": 41, - "max_level": 41 - }, - { - "pokeapi_id": 399, - "pokemon_name": "Bidoof", - "method": "walk", - "encounter_rate": 20, - "min_level": 42, - "max_level": 42 - }, - { - "pokeapi_id": 418, - "pokemon_name": "Buizel", - "method": "walk", - "encounter_rate": 20, - "min_level": 41, - "max_level": 42 - }, - { - "pokeapi_id": 264, - "pokemon_name": "Linoone", - "method": "walk", - "encounter_rate": 20, - "min_level": 42, - "max_level": 42 - }, - { - "pokeapi_id": 129, - "pokemon_name": "Magikarp", - "method": "super-rod", - "encounter_rate": 20, - "min_level": 40, - "max_level": 40 - }, - { - "pokeapi_id": 217, - "pokemon_name": "Ursaring", - "method": "walk", - "encounter_rate": 20, - "min_level": 42, - "max_level": 42 - }, - { - "pokeapi_id": 293, - "pokemon_name": "Whismur", - "method": "walk", - "encounter_rate": 20, - "min_level": 41, - "max_level": 42 - }, - { - "pokeapi_id": 60, - "pokemon_name": "Poliwag", - "method": "old-rod", - "encounter_rate": 15, - "min_level": 10, - "max_level": 10 - }, - { - "pokeapi_id": 85, - "pokemon_name": "Dodrio", - "method": "walk", - "encounter_rate": 10, - "min_level": 43, - "max_level": 43 - }, - { - "pokeapi_id": 84, - "pokemon_name": "Doduo", - "method": "walk", - "encounter_rate": 10, - "min_level": 41, - "max_level": 41 - }, - { - "pokeapi_id": 78, - "pokemon_name": "Rapidash", - "method": "walk", - "encounter_rate": 10, - "min_level": 44, - "max_level": 44 - }, - { - "pokeapi_id": 215, - "pokemon_name": "Sneasel", - "method": "walk", - "encounter_rate": 10, - "min_level": 41, - "max_level": 43 - }, - { - "pokeapi_id": 60, - "pokemon_name": "Poliwag", - "method": "surf", - "encounter_rate": 9, - "min_level": 30, - "max_level": 40 - } - ] - }, { "name": "Mt Silver (4F)", "order": 108, @@ -9749,6 +9591,164 @@ } ] }, + { + "name": "Mt Silver (Outside)", + "order": 108, + "encounters": [ + { + "pokeapi_id": 61, + "pokemon_name": "Poliwhirl", + "method": "surf", + "encounter_rate": 91, + "min_level": 30, + "max_level": 48 + }, + { + "pokeapi_id": 129, + "pokemon_name": "Magikarp", + "method": "old-rod", + "encounter_rate": 85, + "min_level": 10, + "max_level": 10 + }, + { + "pokeapi_id": 60, + "pokemon_name": "Poliwag", + "method": "super-rod", + "encounter_rate": 80, + "min_level": 40, + "max_level": 40 + }, + { + "pokeapi_id": 60, + "pokemon_name": "Poliwag", + "method": "good-rod", + "encounter_rate": 60, + "min_level": 20, + "max_level": 20 + }, + { + "pokeapi_id": 129, + "pokemon_name": "Magikarp", + "method": "good-rod", + "encounter_rate": 40, + "min_level": 20, + "max_level": 20 + }, + { + "pokeapi_id": 77, + "pokemon_name": "Ponyta", + "method": "walk", + "encounter_rate": 30, + "min_level": 42, + "max_level": 42 + }, + { + "pokeapi_id": 114, + "pokemon_name": "Tangela", + "method": "walk", + "encounter_rate": 30, + "min_level": 41, + "max_level": 41 + }, + { + "pokeapi_id": 399, + "pokemon_name": "Bidoof", + "method": "walk", + "encounter_rate": 20, + "min_level": 42, + "max_level": 42 + }, + { + "pokeapi_id": 418, + "pokemon_name": "Buizel", + "method": "walk", + "encounter_rate": 20, + "min_level": 41, + "max_level": 42 + }, + { + "pokeapi_id": 264, + "pokemon_name": "Linoone", + "method": "walk", + "encounter_rate": 20, + "min_level": 42, + "max_level": 42 + }, + { + "pokeapi_id": 129, + "pokemon_name": "Magikarp", + "method": "super-rod", + "encounter_rate": 20, + "min_level": 40, + "max_level": 40 + }, + { + "pokeapi_id": 217, + "pokemon_name": "Ursaring", + "method": "walk", + "encounter_rate": 20, + "min_level": 42, + "max_level": 42 + }, + { + "pokeapi_id": 293, + "pokemon_name": "Whismur", + "method": "walk", + "encounter_rate": 20, + "min_level": 41, + "max_level": 42 + }, + { + "pokeapi_id": 60, + "pokemon_name": "Poliwag", + "method": "old-rod", + "encounter_rate": 15, + "min_level": 10, + "max_level": 10 + }, + { + "pokeapi_id": 85, + "pokemon_name": "Dodrio", + "method": "walk", + "encounter_rate": 10, + "min_level": 43, + "max_level": 43 + }, + { + "pokeapi_id": 84, + "pokemon_name": "Doduo", + "method": "walk", + "encounter_rate": 10, + "min_level": 41, + "max_level": 41 + }, + { + "pokeapi_id": 78, + "pokemon_name": "Rapidash", + "method": "walk", + "encounter_rate": 10, + "min_level": 44, + "max_level": 44 + }, + { + "pokeapi_id": 215, + "pokemon_name": "Sneasel", + "method": "walk", + "encounter_rate": 10, + "min_level": 41, + "max_level": 43 + }, + { + "pokeapi_id": 60, + "pokemon_name": "Poliwag", + "method": "surf", + "encounter_rate": 9, + "min_level": 30, + "max_level": 40 + } + ] + }, { "name": "Mt Silver (1F)", "order": 110, diff --git a/backend/src/app/seeds/data/white-2.json b/backend/src/app/seeds/data/white-2.json index 8949e92..f534242 100644 --- a/backend/src/app/seeds/data/white-2.json +++ b/backend/src/app/seeds/data/white-2.json @@ -2005,20 +2005,6 @@ } ] }, - { - "name": "Dragonspiral Tower (2F)", - "order": 40, - "encounters": [ - { - "pokeapi_id": 623, - "pokemon_name": "Golurk", - "method": "walk", - "encounter_rate": 100, - "min_level": 55, - "max_level": 58 - } - ] - }, { "name": "Dragonspiral Tower (Entrance)", "order": 40, @@ -2072,6 +2058,20 @@ "max_level": 58 } ] + }, + { + "name": "Dragonspiral Tower (2F)", + "order": 40, + "encounters": [ + { + "pokeapi_id": 623, + "pokemon_name": "Golurk", + "method": "walk", + "encounter_rate": 100, + "min_level": 55, + "max_level": 58 + } + ] } ] }, diff --git a/backend/src/app/seeds/data/white.json b/backend/src/app/seeds/data/white.json index a8cf543..fb85eb4 100644 --- a/backend/src/app/seeds/data/white.json +++ b/backend/src/app/seeds/data/white.json @@ -1965,6 +1965,20 @@ } ] }, + { + "name": "Dragonspiral Tower (2F)", + "order": 44, + "encounters": [ + { + "pokeapi_id": 622, + "pokemon_name": "Golett", + "method": "walk", + "encounter_rate": 100, + "min_level": 30, + "max_level": 33 + } + ] + }, { "name": "Dragonspiral Tower (Entrance)", "order": 44, @@ -2018,20 +2032,6 @@ "max_level": 33 } ] - }, - { - "name": "Dragonspiral Tower (2F)", - "order": 44, - "encounters": [ - { - "pokeapi_id": 622, - "pokemon_name": "Golett", - "method": "walk", - "encounter_rate": 100, - "min_level": 30, - "max_level": 33 - } - ] } ] }, @@ -2192,44 +2192,6 @@ } ] }, - { - "name": "Victory Road (Unknown Area 54)", - "order": 50, - "encounters": [ - { - "pokeapi_id": 632, - "pokemon_name": "Durant", - "method": "walk", - "encounter_rate": 40, - "min_level": 37, - "max_level": 40 - }, - { - "pokeapi_id": 525, - "pokemon_name": "Boldore", - "method": "walk", - "encounter_rate": 30, - "min_level": 37, - "max_level": 39 - }, - { - "pokeapi_id": 527, - "pokemon_name": "Woobat", - "method": "walk", - "encounter_rate": 20, - "min_level": 37, - "max_level": 40 - }, - { - "pokeapi_id": 619, - "pokemon_name": "Mienfoo", - "method": "walk", - "encounter_rate": 10, - "min_level": 39, - "max_level": 39 - } - ] - }, { "name": "Victory Road (4F Middle Room)", "order": 50, @@ -2268,6 +2230,44 @@ } ] }, + { + "name": "Victory Road (Unknown Area 54)", + "order": 50, + "encounters": [ + { + "pokeapi_id": 632, + "pokemon_name": "Durant", + "method": "walk", + "encounter_rate": 40, + "min_level": 37, + "max_level": 40 + }, + { + "pokeapi_id": 525, + "pokemon_name": "Boldore", + "method": "walk", + "encounter_rate": 30, + "min_level": 37, + "max_level": 39 + }, + { + "pokeapi_id": 527, + "pokemon_name": "Woobat", + "method": "walk", + "encounter_rate": 20, + "min_level": 37, + "max_level": 40 + }, + { + "pokeapi_id": 619, + "pokemon_name": "Mienfoo", + "method": "walk", + "encounter_rate": 10, + "min_level": 39, + "max_level": 39 + } + ] + }, { "name": "Victory Road (Unknown Area 55)", "order": 51, diff --git a/frontend/public/badges/50.png b/frontend/public/badges/50.png deleted file mode 100644 index 60a9fa2..0000000 Binary files a/frontend/public/badges/50.png and /dev/null differ diff --git a/frontend/public/boss-sprites/ruby/brawly.png b/frontend/public/boss-sprites/ruby/brawly.png index 7b1b920..d27c5b1 100644 Binary files a/frontend/public/boss-sprites/ruby/brawly.png and b/frontend/public/boss-sprites/ruby/brawly.png differ diff --git a/frontend/public/boss-sprites/ruby/drake.png b/frontend/public/boss-sprites/ruby/drake.png new file mode 100644 index 0000000..d8b220c Binary files /dev/null and b/frontend/public/boss-sprites/ruby/drake.png differ diff --git a/frontend/public/boss-sprites/ruby/glacia.png b/frontend/public/boss-sprites/ruby/glacia.png new file mode 100644 index 0000000..9e97c64 Binary files /dev/null and b/frontend/public/boss-sprites/ruby/glacia.png differ diff --git a/frontend/public/boss-sprites/ruby/phoebe.png b/frontend/public/boss-sprites/ruby/phoebe.png new file mode 100644 index 0000000..d658e1d Binary files /dev/null and b/frontend/public/boss-sprites/ruby/phoebe.png differ diff --git a/frontend/public/boss-sprites/ruby/steven.png b/frontend/public/boss-sprites/ruby/steven.png new file mode 100644 index 0000000..a322cbe Binary files /dev/null and b/frontend/public/boss-sprites/ruby/steven.png differ diff --git a/frontend/public/boss-sprites/ruby/sydney.png b/frontend/public/boss-sprites/ruby/sydney.png new file mode 100644 index 0000000..7d9726e Binary files /dev/null and b/frontend/public/boss-sprites/ruby/sydney.png differ