Add encounter condition support with rate display

Add a `condition` column to RouteEncounter for time-of-day, weather,
and season variants. Seed loader expands `conditions` dict into
per-condition rows. EncounterModal shows condition filter tabs with
per-condition encounter rates, and displays rates for all standard
encounter methods (walk, surf, fishing, etc.).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-14 22:42:49 +01:00
parent a482b27bca
commit 9029f1632a
12 changed files with 436 additions and 151 deletions

View File

@@ -42,6 +42,7 @@ class RouteEncounterResponse(CamelModel):
game_id: int
encounter_method: str
encounter_rate: int
condition: str = ""
min_level: int
max_level: int
@@ -55,6 +56,7 @@ class PokemonEncounterLocationItem(CamelModel):
route_name: str
encounter_method: str
encounter_rate: int
condition: str = ""
min_level: int
max_level: int
@@ -89,6 +91,7 @@ class RouteEncounterCreate(CamelModel):
game_id: int
encounter_method: str
encounter_rate: int
condition: str = ""
min_level: int
max_level: int
@@ -96,6 +99,7 @@ class RouteEncounterCreate(CamelModel):
class RouteEncounterUpdate(CamelModel):
encounter_method: str | None = None
encounter_rate: int | None = None
condition: str | None = None
min_level: int | None = None
max_level: int | None = None
@@ -178,6 +182,7 @@ class BulkRouteEncounterItem(BaseModel):
pokeapi_id: int
method: str
encounter_rate: int
condition: str = ""
min_level: int
max_level: int