Remove artificial Starter route, use real PokeDB starter locations

Replace the synthetic "Starter" route with actual in-game locations
(e.g. Professor Oak's Laboratory, Iki Town, Littleroot Town). Starters
now appear at their real locations with method "starter" by remapping
PokeDB's "gift" method during import. Split ruby-sapphire and
black-2-white-2 out of special_encounters aliases since their starter
locations differ from the aliased version groups.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Julian Tabel
2026-02-13 09:08:35 +01:00
parent 2655c0d64f
commit 659dcf2252
42 changed files with 302602 additions and 82522 deletions

View File

@@ -140,7 +140,20 @@ def merge_special_encounters(
))
if location_name in route_map:
route_map[location_name].encounters.extend(encounters)
existing = route_map[location_name].encounters
for enc in encounters:
# If a starter encounter matches an existing gift encounter,
# update the method to "starter" instead of adding a duplicate.
if enc.method == "starter":
match = next(
(e for e in existing
if e.pokeapi_id == enc.pokeapi_id and e.method == "gift"),
None,
)
if match:
match.method = "starter"
continue
existing.append(enc)
else:
new_route = Route(name=location_name, order=0, encounters=encounters)
routes.append(new_route)