Add per-condition encounter rates to seed data
Some checks failed
CI / backend-lint (pull_request) Successful in 9s
CI / actions-lint (pull_request) Failing after 6s
CI / frontend-lint (pull_request) Successful in 21s

Add a `condition` column to RouteEncounter so encounters can store
per-condition rates (time of day, season, weather) instead of flattening
to max(). Update the seed loader, API schemas, and frontend to support
the new `conditions` dict format in seed JSON.

Port the PoC branch's condition-aware EncounterModal UI with filter
tabs that let players see encounter rates for specific conditions.
Add horde/SOS as distinct encounter methods with their own badges.

Update the import tool to extract per-condition rates instead of
flattening, and add a merge script (tools/merge-conditions.py) that
enriches existing curated seed files with condition data from PokeDB.

Seed data updated for 22 games (5,684 encounters):
- Gen 2: Gold, Silver, Crystal (morning/day/night)
- Gen 4: HG, SS, Diamond, Pearl, Platinum, BD, SP (morning/day/night)
- Gen 5: Black, White, Black 2, White 2 (spring/summer/autumn/winter)
- Gen 7: Sun, Moon, Ultra Sun, Ultra Moon (day/night)
- Gen 8: Sword, Shield (weather)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-17 18:52:20 +01:00
parent d0fff248fe
commit 5240236759
36 changed files with 36715 additions and 11587 deletions

View File

@@ -0,0 +1,54 @@
"""add condition to route encounters
Revision ID: h9c0d1e2f3a4
Revises: g8b9c0d1e2f3
Create Date: 2026-02-17 12:00:00.000000
"""
from collections.abc import Sequence
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision: str = "h9c0d1e2f3a4"
down_revision: str | Sequence[str] | None = "g8b9c0d1e2f3"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None
def upgrade() -> None:
op.add_column(
"route_encounters",
sa.Column(
"condition",
sa.String(30),
nullable=False,
server_default="",
),
)
op.drop_constraint(
"uq_route_pokemon_method_game",
"route_encounters",
type_="unique",
)
op.create_unique_constraint(
"uq_route_pokemon_method_game_condition",
"route_encounters",
["route_id", "pokemon_id", "encounter_method", "game_id", "condition"],
)
def downgrade() -> None:
op.drop_constraint(
"uq_route_pokemon_method_game_condition",
"route_encounters",
type_="unique",
)
op.create_unique_constraint(
"uq_route_pokemon_method_game",
"route_encounters",
["route_id", "pokemon_id", "encounter_method", "game_id"],
)
op.drop_column("route_encounters", "condition")

View File

@@ -69,8 +69,9 @@ async def export_game_routes(
game_encounters = [
enc for enc in route.route_encounters if enc.game_id == game_id
]
return [
{
result = []
for enc in sorted(game_encounters, key=lambda e: -e.encounter_rate):
entry: dict = {
"pokeapi_id": enc.pokemon.pokeapi_id,
"pokemon_name": enc.pokemon.name,
"method": enc.encounter_method,
@@ -78,8 +79,10 @@ async def export_game_routes(
"min_level": enc.min_level,
"max_level": enc.max_level,
}
for enc in sorted(game_encounters, key=lambda e: -e.encounter_rate)
]
if enc.condition:
entry["condition"] = enc.condition
result.append(entry)
return result
def format_route(route: Route) -> dict:
data: dict = {

View File

@@ -213,6 +213,7 @@ async def get_pokemon_encounter_locations(
route_name=enc.route.name,
encounter_method=enc.encounter_method,
encounter_rate=enc.encounter_rate,
condition=enc.condition,
min_level=enc.min_level,
max_level=enc.max_level,
)

View File

@@ -12,7 +12,8 @@ class RouteEncounter(Base):
"pokemon_id",
"encounter_method",
"game_id",
name="uq_route_pokemon_method_game",
"condition",
name="uq_route_pokemon_method_game_condition",
),
)
@@ -22,6 +23,7 @@ class RouteEncounter(Base):
game_id: Mapped[int] = mapped_column(ForeignKey("games.id"), index=True)
encounter_method: Mapped[str] = mapped_column(String(30))
encounter_rate: Mapped[int] = mapped_column(SmallInteger)
condition: Mapped[str] = mapped_column(String(30), default="", server_default="")
min_level: Mapped[int] = mapped_column(SmallInteger)
max_level: Mapped[int] = mapped_column(SmallInteger)

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

View File

@@ -844,17 +844,25 @@
"pokeapi_id": 88,
"pokemon_name": "Grimer",
"method": "surf",
"encounter_rate": 100,
"encounter_rate": null,
"min_level": 5,
"max_level": 20
"max_level": 20,
"conditions": {
"spring": 100,
"summer": 100
}
},
{
"pokeapi_id": 88,
"pokemon_name": "Grimer",
"method": "fishing",
"encounter_rate": 100,
"encounter_rate": null,
"min_level": 40,
"max_level": 70
"max_level": 70,
"conditions": {
"spring": 100,
"summer": 100
}
},
{
"pokeapi_id": 19,
@@ -884,17 +892,25 @@
"pokeapi_id": 89,
"pokemon_name": "Muk",
"method": "fishing",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 50,
"max_level": 70
"max_level": 70,
"conditions": {
"spring": 10,
"summer": 10
}
},
{
"pokeapi_id": 89,
"pokemon_name": "Muk",
"method": "surf",
"encounter_rate": 5,
"encounter_rate": null,
"min_level": 5,
"max_level": 20
"max_level": 20,
"conditions": {
"spring": 5,
"summer": 5
}
}
]
},
@@ -3294,41 +3310,63 @@
"pokeapi_id": 593,
"pokemon_name": "Jellicent",
"method": "surf",
"encounter_rate": 60,
"encounter_rate": null,
"min_level": 25,
"max_level": 40
"max_level": 40,
"conditions": {
"spring": 60,
"summer": 60,
"autumn": 60
}
},
{
"pokeapi_id": 320,
"pokemon_name": "Wailmer",
"method": "surf",
"encounter_rate": 60,
"encounter_rate": null,
"min_level": 25,
"max_level": 40
"max_level": 40,
"conditions": {
"spring": 30,
"summer": 30,
"autumn": 30,
"winter": 60
}
},
{
"pokeapi_id": 458,
"pokemon_name": "Mantyke",
"method": "surf",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 25,
"max_level": 40
"max_level": 40,
"conditions": {
"spring": 30,
"summer": 30,
"autumn": 30
}
},
{
"pokeapi_id": 364,
"pokemon_name": "Sealeo",
"method": "surf",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 25,
"max_level": 40
"max_level": 40,
"conditions": {
"winter": 30
}
},
{
"pokeapi_id": 363,
"pokemon_name": "Spheal",
"method": "surf",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 25,
"max_level": 40
"max_level": 40,
"conditions": {
"winter": 30
}
},
{
"pokeapi_id": 171,
@@ -3342,9 +3380,14 @@
"pokeapi_id": 226,
"pokemon_name": "Mantine",
"method": "surf",
"encounter_rate": 5,
"encounter_rate": null,
"min_level": 30,
"max_level": 40
"max_level": 40,
"conditions": {
"spring": 5,
"summer": 5,
"autumn": 5
}
},
{
"pokeapi_id": 224,
@@ -3374,9 +3417,12 @@
"pokeapi_id": 365,
"pokemon_name": "Walrein",
"method": "surf",
"encounter_rate": 5,
"encounter_rate": null,
"min_level": 30,
"max_level": 40
"max_level": 40,
"conditions": {
"winter": 5
}
}
]
},
@@ -7642,33 +7688,53 @@
"pokeapi_id": 536,
"pokemon_name": "Palpitoad",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"spring": 40,
"summer": 40,
"autumn": 40
}
},
{
"pokeapi_id": 616,
"pokemon_name": "Shelmet",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 54,
"max_level": 54
"max_level": 54,
"conditions": {
"spring": 20,
"summer": 20,
"autumn": 20
}
},
{
"pokeapi_id": 618,
"pokemon_name": "Stunfisk",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 55,
"max_level": 56
"max_level": 56,
"conditions": {
"spring": 20,
"summer": 20,
"autumn": 20
}
},
{
"pokeapi_id": 453,
"pokemon_name": "Croagunk",
"method": "walk",
"encounter_rate": 15,
"encounter_rate": null,
"min_level": 55,
"max_level": 56
"max_level": 56,
"conditions": {
"spring": 15,
"summer": 15,
"autumn": 15
}
},
{
"pokeapi_id": 340,
@@ -7682,9 +7748,14 @@
"pokeapi_id": 588,
"pokemon_name": "Karrablast",
"method": "walk",
"encounter_rate": 5,
"encounter_rate": null,
"min_level": 57,
"max_level": 57
"max_level": 57,
"conditions": {
"spring": 5,
"summer": 5,
"autumn": 5
}
},
{
"pokeapi_id": 537,
@@ -7728,33 +7799,53 @@
"pokeapi_id": 536,
"pokemon_name": "Palpitoad",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"spring": 40,
"summer": 40,
"autumn": 40
}
},
{
"pokeapi_id": 616,
"pokemon_name": "Shelmet",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 54,
"max_level": 54
"max_level": 54,
"conditions": {
"spring": 20,
"summer": 20,
"autumn": 20
}
},
{
"pokeapi_id": 618,
"pokemon_name": "Stunfisk",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 55,
"max_level": 56
"max_level": 56,
"conditions": {
"spring": 20,
"summer": 20,
"autumn": 20
}
},
{
"pokeapi_id": 453,
"pokemon_name": "Croagunk",
"method": "walk",
"encounter_rate": 15,
"encounter_rate": null,
"min_level": 55,
"max_level": 56
"max_level": 56,
"conditions": {
"spring": 15,
"summer": 15,
"autumn": 15
}
},
{
"pokeapi_id": 340,
@@ -7768,9 +7859,14 @@
"pokeapi_id": 588,
"pokemon_name": "Karrablast",
"method": "walk",
"encounter_rate": 5,
"encounter_rate": null,
"min_level": 57,
"max_level": 57
"max_level": 57,
"conditions": {
"spring": 5,
"summer": 5,
"autumn": 5
}
},
{
"pokeapi_id": 537,

View File

@@ -1486,7 +1486,7 @@
]
},
{
"name": "Relic Castle (Volcarona\u2019s Room and Room Outside)",
"name": "Relic Castle (Volcaronas Room and Room Outside)",
"order": 30,
"encounters": [
{
@@ -2971,25 +2971,40 @@
"pokeapi_id": 536,
"pokemon_name": "Palpitoad",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 30,
"max_level": 33
"max_level": 33,
"conditions": {
"spring": 40,
"summer": 40,
"autumn": 40
}
},
{
"pokeapi_id": 616,
"pokemon_name": "Shelmet",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 30,
"max_level": 33
"max_level": 33,
"conditions": {
"spring": 40,
"summer": 40,
"autumn": 40
}
},
{
"pokeapi_id": 618,
"pokemon_name": "Stunfisk",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 31,
"max_level": 32
"max_level": 32,
"conditions": {
"spring": 20,
"summer": 20,
"autumn": 20
}
},
{
"pokeapi_id": 340,
@@ -3439,25 +3454,40 @@
"pokeapi_id": 536,
"pokemon_name": "Palpitoad",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 30,
"max_level": 33
"max_level": 33,
"conditions": {
"spring": 40,
"summer": 40,
"autumn": 40
}
},
{
"pokeapi_id": 616,
"pokemon_name": "Shelmet",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 30,
"max_level": 33
"max_level": 33,
"conditions": {
"spring": 40,
"summer": 40,
"autumn": 40
}
},
{
"pokeapi_id": 618,
"pokemon_name": "Stunfisk",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 31,
"max_level": 32
"max_level": 32,
"conditions": {
"spring": 20,
"summer": 20,
"autumn": 20
}
},
{
"pokeapi_id": 340,
@@ -5630,9 +5660,12 @@
"pokeapi_id": 446,
"pokemon_name": "Munchlax",
"method": "trade",
"encounter_rate": 100,
"encounter_rate": null,
"min_level": 60,
"max_level": 60
"max_level": 60,
"conditions": {
"summer": 100
}
},
{
"pokeapi_id": 90,
@@ -5740,9 +5773,15 @@
"pokeapi_id": 320,
"pokemon_name": "Wailmer",
"method": "surf",
"encounter_rate": 90,
"encounter_rate": null,
"min_level": 25,
"max_level": 60
"max_level": 60,
"conditions": {
"spring": 90,
"summer": 90,
"autumn": 90,
"winter": 60
}
},
{
"pokeapi_id": 223,
@@ -5772,25 +5811,36 @@
"pokeapi_id": 458,
"pokemon_name": "Mantyke",
"method": "surf",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 25,
"max_level": 55
"max_level": 55,
"conditions": {
"spring": 30,
"summer": 30,
"autumn": 30
}
},
{
"pokeapi_id": 364,
"pokemon_name": "Sealeo",
"method": "surf",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 25,
"max_level": 60
"max_level": 60,
"conditions": {
"winter": 30
}
},
{
"pokeapi_id": 363,
"pokemon_name": "Spheal",
"method": "surf",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 25,
"max_level": 55
"max_level": 55,
"conditions": {
"winter": 30
}
},
{
"pokeapi_id": 279,
@@ -5812,9 +5862,14 @@
"pokeapi_id": 226,
"pokemon_name": "Mantine",
"method": "surf",
"encounter_rate": 5,
"encounter_rate": null,
"min_level": 25,
"max_level": 60
"max_level": 60,
"conditions": {
"spring": 5,
"summer": 5,
"autumn": 5
}
},
{
"pokeapi_id": 224,
@@ -5836,9 +5891,12 @@
"pokeapi_id": 365,
"pokemon_name": "Walrein",
"method": "surf",
"encounter_rate": 5,
"encounter_rate": null,
"min_level": 25,
"max_level": 70
"max_level": 70,
"conditions": {
"winter": 5
}
}
]
},

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -35,7 +35,7 @@
"encounters": [],
"children": [
{
"name": "Alola Route 1 (First two fields east of the player\u2019s house)",
"name": "Alola Route 1 (First two fields east of the players house)",
"order": 3,
"encounters": [
{
@@ -368,7 +368,7 @@
]
},
{
"name": "Trainer\u2019s School (Alola)",
"name": "Trainers School (Alola)",
"order": 8,
"encounters": [
{
@@ -709,17 +709,23 @@
"pokeapi_id": 425,
"pokemon_name": "Drifloon",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 7,
"max_level": 10
"max_level": 10,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 200,
"pokemon_name": "Misdreavus",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 7,
"max_level": 10
"max_level": 10,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 41,
@@ -1089,17 +1095,23 @@
"pokeapi_id": 10091,
"pokemon_name": "Rattata (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 15,
"max_level": 18
"max_level": 18,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 734,
"pokemon_name": "Yungoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 15,
"max_level": 18
"max_level": 18,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 79,
@@ -1686,9 +1698,12 @@
"pokeapi_id": 751,
"pokemon_name": "Dewpider",
"method": "surf",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 40
}
},
{
"pokeapi_id": 60,
@@ -1702,9 +1717,12 @@
"pokeapi_id": 283,
"pokemon_name": "Surskit",
"method": "surf",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"night": 40
}
},
{
"pokeapi_id": 54,
@@ -1740,25 +1758,34 @@
"pokeapi_id": 755,
"pokemon_name": "Morelull",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 46,
"pokemon_name": "Paras",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 751,
"pokemon_name": "Dewpider",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 10
}
},
{
"pokeapi_id": 60,
@@ -1772,9 +1799,12 @@
"pokeapi_id": 283,
"pokemon_name": "Surskit",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"night": 10
}
},
{
"pokeapi_id": 278,
@@ -1810,9 +1840,12 @@
"pokeapi_id": 751,
"pokemon_name": "Dewpider",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 60,
@@ -1826,9 +1859,12 @@
"pokeapi_id": 283,
"pokemon_name": "Surskit",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"night": 20
}
}
]
},
@@ -2742,17 +2778,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 20,
"max_level": 23
"max_level": 23,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 20,
"max_level": 23
"max_level": 23,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 299,
@@ -2920,33 +2962,45 @@
"pokeapi_id": 752,
"pokemon_name": "Araquanid",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 24,
"max_level": 27
"max_level": 27,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 168,
"pokemon_name": "Ariados",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 24,
"max_level": 27
"max_level": 27,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 166,
"pokemon_name": "Ledian",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 24,
"max_level": 27
"max_level": 27,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 284,
"pokemon_name": "Masquerain",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 24,
"max_level": 27
"max_level": 27,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 10107,
@@ -3076,9 +3130,13 @@
"pokeapi_id": 22,
"pokemon_name": "Fearow",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 25,
"max_level": 28
"max_level": 28,
"conditions": {
"day": 40,
"night": 30
}
},
{
"pokeapi_id": 10136,
@@ -3100,9 +3158,12 @@
"pokeapi_id": 173,
"pokemon_name": "Cleffa",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 25,
"max_level": 28
"max_level": 28,
"conditions": {
"night": 10
}
},
{
"pokeapi_id": 132,
@@ -3531,9 +3592,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 28,
"max_level": 31
"max_level": 31,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 279,
@@ -3547,9 +3611,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 28,
"max_level": 31
"max_level": 31,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 361,
@@ -3871,17 +3938,23 @@
"pokeapi_id": 168,
"pokemon_name": "Ariados",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 31,
"max_level": 34
"max_level": 34,
"conditions": {
"night": 40
}
},
{
"pokeapi_id": 166,
"pokemon_name": "Ledian",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 31,
"max_level": 34
"max_level": 34,
"conditions": {
"day": 40
}
},
{
"pokeapi_id": 741,
@@ -4103,9 +4176,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 40,
"max_level": 43
"max_level": 43,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 279,
@@ -4119,9 +4195,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 40,
"max_level": 43
"max_level": 43,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 73,
@@ -4213,9 +4292,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 40,
"max_level": 43
"max_level": 43,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 279,
@@ -4229,9 +4311,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 40,
"max_level": 43
"max_level": 43,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 210,
@@ -4706,17 +4791,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 52,
"max_level": 55
"max_level": 55,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 52,
"max_level": 55
"max_level": 55,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 732,
@@ -4792,9 +4883,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 70,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 70
}
},
{
"pokeapi_id": 548,
@@ -4808,9 +4902,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 70,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 70
}
},
{
"pokeapi_id": 297,
@@ -4854,17 +4951,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 732,
@@ -4908,17 +5011,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 97,
@@ -4994,9 +5103,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 10
}
},
{
"pokeapi_id": 241,
@@ -5010,9 +5122,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 10
}
},
{
"pokeapi_id": 128,
@@ -5040,17 +5155,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 279,
@@ -5220,9 +5341,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 56,
"max_level": 59
"max_level": 59,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 279,
@@ -5236,9 +5360,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 56,
"max_level": 59
"max_level": 59,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 210,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -35,7 +35,7 @@
"encounters": [],
"children": [
{
"name": "Alola Route 1 (First two fields east of the player\u2019s house)",
"name": "Alola Route 1 (First two fields east of the players house)",
"order": 3,
"encounters": [
{
@@ -368,7 +368,7 @@
]
},
{
"name": "Trainer\u2019s School (Alola)",
"name": "Trainers School (Alola)",
"order": 8,
"encounters": [
{
@@ -709,17 +709,23 @@
"pokeapi_id": 425,
"pokemon_name": "Drifloon",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 7,
"max_level": 10
"max_level": 10,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 200,
"pokemon_name": "Misdreavus",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 7,
"max_level": 10
"max_level": 10,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 41,
@@ -1105,17 +1111,23 @@
"pokeapi_id": 10091,
"pokemon_name": "Rattata (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 15,
"max_level": 18
"max_level": 18,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 734,
"pokemon_name": "Yungoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 15,
"max_level": 18
"max_level": 18,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 79,
@@ -1702,9 +1714,12 @@
"pokeapi_id": 751,
"pokemon_name": "Dewpider",
"method": "surf",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 40
}
},
{
"pokeapi_id": 60,
@@ -1718,9 +1733,12 @@
"pokeapi_id": 283,
"pokemon_name": "Surskit",
"method": "surf",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"night": 40
}
},
{
"pokeapi_id": 54,
@@ -1756,25 +1774,34 @@
"pokeapi_id": 755,
"pokemon_name": "Morelull",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 46,
"pokemon_name": "Paras",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 751,
"pokemon_name": "Dewpider",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 10
}
},
{
"pokeapi_id": 60,
@@ -1788,9 +1815,12 @@
"pokeapi_id": 283,
"pokemon_name": "Surskit",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"night": 10
}
},
{
"pokeapi_id": 278,
@@ -1826,9 +1856,12 @@
"pokeapi_id": 751,
"pokemon_name": "Dewpider",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 60,
@@ -1842,9 +1875,12 @@
"pokeapi_id": 283,
"pokemon_name": "Surskit",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"night": 20
}
}
]
},
@@ -2758,17 +2794,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 20,
"max_level": 23
"max_level": 23,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 20,
"max_level": 23
"max_level": 23,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 299,
@@ -2944,33 +2986,45 @@
"pokeapi_id": 752,
"pokemon_name": "Araquanid",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 24,
"max_level": 27
"max_level": 27,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 168,
"pokemon_name": "Ariados",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 24,
"max_level": 27
"max_level": 27,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 166,
"pokemon_name": "Ledian",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 24,
"max_level": 27
"max_level": 27,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 284,
"pokemon_name": "Masquerain",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 24,
"max_level": 27
"max_level": 27,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 10107,
@@ -3100,9 +3154,13 @@
"pokeapi_id": 22,
"pokemon_name": "Fearow",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 25,
"max_level": 28
"max_level": 28,
"conditions": {
"day": 40,
"night": 30
}
},
{
"pokeapi_id": 10136,
@@ -3124,9 +3182,12 @@
"pokeapi_id": 173,
"pokemon_name": "Cleffa",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 25,
"max_level": 28
"max_level": 28,
"conditions": {
"night": 10
}
},
{
"pokeapi_id": 132,
@@ -3571,9 +3632,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 28,
"max_level": 31
"max_level": 31,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 279,
@@ -3587,9 +3651,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 28,
"max_level": 31
"max_level": 31,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 361,
@@ -3911,17 +3978,23 @@
"pokeapi_id": 168,
"pokemon_name": "Ariados",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 31,
"max_level": 34
"max_level": 34,
"conditions": {
"night": 40
}
},
{
"pokeapi_id": 166,
"pokemon_name": "Ledian",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 31,
"max_level": 34
"max_level": 34,
"conditions": {
"day": 40
}
},
{
"pokeapi_id": 741,
@@ -4143,9 +4216,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 40,
"max_level": 43
"max_level": 43,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 279,
@@ -4159,9 +4235,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 40,
"max_level": 43
"max_level": 43,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 73,
@@ -4253,9 +4332,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 40,
"max_level": 43
"max_level": 43,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 279,
@@ -4269,9 +4351,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 40,
"max_level": 43
"max_level": 43,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 210,
@@ -4729,17 +4814,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 52,
"max_level": 55
"max_level": 55,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 52,
"max_level": 55
"max_level": 55,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 732,
@@ -4823,17 +4914,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 70,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 70
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 70,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 70
}
},
{
"pokeapi_id": 628,
@@ -4877,17 +4974,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 732,
@@ -4931,17 +5034,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 546,
@@ -5017,9 +5126,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 10
}
},
{
"pokeapi_id": 241,
@@ -5033,9 +5145,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 10
}
},
{
"pokeapi_id": 128,
@@ -5063,17 +5178,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 546,
@@ -5243,9 +5364,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 56,
"max_level": 59
"max_level": 59,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 279,
@@ -5259,9 +5383,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 56,
"max_level": 59
"max_level": 59,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 210,

File diff suppressed because it is too large Load Diff

View File

@@ -60,7 +60,7 @@
],
"children": [
{
"name": "Alola Route 1 (First two fields east of the player\u2019s house)",
"name": "Alola Route 1 (First two fields east of the players house)",
"order": 3,
"encounters": [
{
@@ -377,7 +377,7 @@
]
},
{
"name": "Trainer\u2019s School (Alola)",
"name": "Trainers School (Alola)",
"order": 8,
"encounters": [
{
@@ -773,7 +773,7 @@
]
},
{
"name": "Alola Route 2 (Two patches of grass southwest of the Pok\u00e9mon Center)",
"name": "Alola Route 2 (Two patches of grass southwest of the Pokémon Center)",
"order": 15,
"encounters": [
{
@@ -922,9 +922,12 @@
"pokeapi_id": 425,
"pokemon_name": "Drifloon",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 6,
"max_level": 9
"max_level": 9,
"conditions": {
"day": 40
}
},
{
"pokeapi_id": 92,
@@ -938,9 +941,12 @@
"pokeapi_id": 198,
"pokemon_name": "Murkrow",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 6,
"max_level": 9
"max_level": 9,
"conditions": {
"night": 40
}
},
{
"pokeapi_id": 41,
@@ -1342,17 +1348,23 @@
"pokeapi_id": 10091,
"pokemon_name": "Rattata (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 15,
"max_level": 18
"max_level": 18,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 734,
"pokemon_name": "Yungoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 15,
"max_level": 18
"max_level": 18,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 456,
@@ -1591,9 +1603,13 @@
"pokeapi_id": 366,
"pokemon_name": "Clamperl",
"method": "fishing",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 10,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 5,
"night": 5
}
},
{
"pokeapi_id": 222,
@@ -1613,17 +1629,25 @@
"pokeapi_id": 366,
"pokemon_name": "Clamperl",
"method": "fishing",
"encounter_rate": 55,
"encounter_rate": null,
"min_level": 10,
"max_level": 22
"max_level": 22,
"conditions": {
"day": 35,
"night": 20
}
},
{
"pokeapi_id": 222,
"pokemon_name": "Corsola",
"method": "fishing",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 10,
"max_level": 22
"max_level": 22,
"conditions": {
"day": 5,
"night": 20
}
},
{
"pokeapi_id": 370,
@@ -1707,9 +1731,13 @@
"pokeapi_id": 366,
"pokemon_name": "Clamperl",
"method": "fishing",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 10,
"max_level": 22
"max_level": 22,
"conditions": {
"day": 5,
"night": 5
}
}
]
}
@@ -2096,9 +2124,12 @@
"pokeapi_id": 751,
"pokemon_name": "Dewpider",
"method": "surf",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 40
}
},
{
"pokeapi_id": 60,
@@ -2112,33 +2143,45 @@
"pokeapi_id": 283,
"pokemon_name": "Surskit",
"method": "surf",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"night": 40
}
},
{
"pokeapi_id": 751,
"pokemon_name": "Dewpider",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 755,
"pokemon_name": "Morelull",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 46,
"pokemon_name": "Paras",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 60,
@@ -2168,9 +2211,12 @@
"pokeapi_id": 283,
"pokemon_name": "Surskit",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 278,
@@ -3263,9 +3309,13 @@
"pokeapi_id": 278,
"pokemon_name": "Wingull",
"method": "walk",
"encounter_rate": 50,
"encounter_rate": null,
"min_level": 21,
"max_level": 24
"max_level": 24,
"conditions": {
"day": 30,
"night": 50
}
},
{
"pokeapi_id": 170,
@@ -3287,17 +3337,23 @@
"pokeapi_id": 177,
"pokemon_name": "Natu",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 21,
"max_level": 24
"max_level": 24,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 21,
"max_level": 24
"max_level": 24,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 299,
@@ -3341,9 +3397,13 @@
"pokeapi_id": 771,
"pokemon_name": "Pyukumuku",
"method": "surf",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 22,
"max_level": 25
"max_level": 25,
"conditions": {
"day": 30,
"night": 30
}
},
{
"pokeapi_id": 456,
@@ -3457,33 +3517,45 @@
"pokeapi_id": 752,
"pokemon_name": "Araquanid",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 25,
"max_level": 28
"max_level": 28,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 168,
"pokemon_name": "Ariados",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 25,
"max_level": 28
"max_level": 28,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 166,
"pokemon_name": "Ledian",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 25,
"max_level": 28
"max_level": 28,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 284,
"pokemon_name": "Masquerain",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 25,
"max_level": 28
"max_level": 28,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 10107,
@@ -3861,9 +3933,13 @@
"pokeapi_id": 737,
"pokemon_name": "Charjabug",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 29,
"max_level": 32
"max_level": 32,
"conditions": {
"day": 10,
"night": 10
}
},
{
"pokeapi_id": 10110,
@@ -4013,9 +4089,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 30,
"max_level": 33
"max_level": 33,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 279,
@@ -4029,9 +4108,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 30,
"max_level": 33
"max_level": 33,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 361,
@@ -4415,9 +4497,12 @@
"pokeapi_id": 168,
"pokemon_name": "Ariados",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 33,
"max_level": 36
"max_level": 36,
"conditions": {
"night": 40
}
},
{
"pokeapi_id": 670,
@@ -4431,9 +4516,12 @@
"pokeapi_id": 166,
"pokemon_name": "Ledian",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 33,
"max_level": 36
"max_level": 36,
"conditions": {
"day": 40
}
},
{
"pokeapi_id": 741,
@@ -5418,9 +5506,12 @@
"pokeapi_id": 427,
"pokemon_name": "Buneary",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 52,
"max_level": 55
"max_level": 55,
"conditions": {
"night": 10
}
},
{
"pokeapi_id": 732,
@@ -5458,9 +5549,12 @@
"pokeapi_id": 447,
"pokemon_name": "Riolu",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 52,
"max_level": 55
"max_level": 55,
"conditions": {
"day": 10
}
}
]
},
@@ -5559,9 +5653,13 @@
"pokeapi_id": 743,
"pokemon_name": "Ribombee",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 30,
"night": 20
}
},
{
"pokeapi_id": 670,
@@ -5583,9 +5681,12 @@
"pokeapi_id": 200,
"pokemon_name": "Misdreavus",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 10
}
}
]
},
@@ -5621,17 +5722,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 70,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 70
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 70,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 70
}
},
{
"pokeapi_id": 57,
@@ -5707,17 +5814,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 732,
@@ -5761,33 +5874,47 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 297,
"pokemon_name": "Hariyama",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 20,
"night": 10
}
},
{
"pokeapi_id": 97,
"pokemon_name": "Hypno",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 10,
"night": 20
}
},
{
"pokeapi_id": 241,
@@ -5855,9 +5982,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 10
}
},
{
"pokeapi_id": 241,
@@ -5871,9 +6001,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 10
}
},
{
"pokeapi_id": 128,
@@ -5901,17 +6034,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 279,
@@ -6696,7 +6835,7 @@
]
},
{
"name": "Team Rocket\u2019s Castle",
"name": "Team Rockets Castle",
"order": 124,
"encounters": [
{

View File

@@ -60,7 +60,7 @@
],
"children": [
{
"name": "Alola Route 1 (First two fields east of the player\u2019s house)",
"name": "Alola Route 1 (First two fields east of the players house)",
"order": 3,
"encounters": [
{
@@ -377,7 +377,7 @@
]
},
{
"name": "Trainer\u2019s School (Alola)",
"name": "Trainers School (Alola)",
"order": 8,
"encounters": [
{
@@ -773,7 +773,7 @@
]
},
{
"name": "Alola Route 2 (Two patches of grass southwest of the Pok\u00e9mon Center)",
"name": "Alola Route 2 (Two patches of grass southwest of the Pokémon Center)",
"order": 15,
"encounters": [
{
@@ -922,9 +922,12 @@
"pokeapi_id": 425,
"pokemon_name": "Drifloon",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 6,
"max_level": 9
"max_level": 9,
"conditions": {
"day": 40
}
},
{
"pokeapi_id": 92,
@@ -938,9 +941,12 @@
"pokeapi_id": 198,
"pokemon_name": "Murkrow",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 6,
"max_level": 9
"max_level": 9,
"conditions": {
"night": 40
}
},
{
"pokeapi_id": 41,
@@ -1342,17 +1348,23 @@
"pokeapi_id": 10091,
"pokemon_name": "Rattata (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 15,
"max_level": 18
"max_level": 18,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 734,
"pokemon_name": "Yungoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 15,
"max_level": 18
"max_level": 18,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 456,
@@ -1591,9 +1603,13 @@
"pokeapi_id": 366,
"pokemon_name": "Clamperl",
"method": "fishing",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 10,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 5,
"night": 5
}
},
{
"pokeapi_id": 222,
@@ -1613,17 +1629,25 @@
"pokeapi_id": 366,
"pokemon_name": "Clamperl",
"method": "fishing",
"encounter_rate": 55,
"encounter_rate": null,
"min_level": 10,
"max_level": 22
"max_level": 22,
"conditions": {
"day": 35,
"night": 20
}
},
{
"pokeapi_id": 222,
"pokemon_name": "Corsola",
"method": "fishing",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 10,
"max_level": 22
"max_level": 22,
"conditions": {
"day": 5,
"night": 20
}
},
{
"pokeapi_id": 370,
@@ -1707,9 +1731,13 @@
"pokeapi_id": 366,
"pokemon_name": "Clamperl",
"method": "fishing",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 10,
"max_level": 22
"max_level": 22,
"conditions": {
"day": 5,
"night": 5
}
}
]
}
@@ -2096,9 +2124,12 @@
"pokeapi_id": 751,
"pokemon_name": "Dewpider",
"method": "surf",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 40
}
},
{
"pokeapi_id": 60,
@@ -2112,33 +2143,45 @@
"pokeapi_id": 283,
"pokemon_name": "Surskit",
"method": "surf",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"night": 40
}
},
{
"pokeapi_id": 751,
"pokemon_name": "Dewpider",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 755,
"pokemon_name": "Morelull",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 46,
"pokemon_name": "Paras",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 60,
@@ -2168,9 +2211,12 @@
"pokeapi_id": 283,
"pokemon_name": "Surskit",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 14,
"max_level": 17
"max_level": 17,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 278,
@@ -3263,9 +3309,13 @@
"pokeapi_id": 278,
"pokemon_name": "Wingull",
"method": "walk",
"encounter_rate": 50,
"encounter_rate": null,
"min_level": 21,
"max_level": 24
"max_level": 24,
"conditions": {
"day": 30,
"night": 50
}
},
{
"pokeapi_id": 170,
@@ -3287,17 +3337,23 @@
"pokeapi_id": 177,
"pokemon_name": "Natu",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 21,
"max_level": 24
"max_level": 24,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 21,
"max_level": 24
"max_level": 24,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 299,
@@ -3341,9 +3397,13 @@
"pokeapi_id": 771,
"pokemon_name": "Pyukumuku",
"method": "surf",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 22,
"max_level": 25
"max_level": 25,
"conditions": {
"day": 30,
"night": 30
}
},
{
"pokeapi_id": 456,
@@ -3457,33 +3517,45 @@
"pokeapi_id": 752,
"pokemon_name": "Araquanid",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 25,
"max_level": 28
"max_level": 28,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 168,
"pokemon_name": "Ariados",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 25,
"max_level": 28
"max_level": 28,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 166,
"pokemon_name": "Ledian",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 25,
"max_level": 28
"max_level": 28,
"conditions": {
"day": 20
}
},
{
"pokeapi_id": 284,
"pokemon_name": "Masquerain",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 25,
"max_level": 28
"max_level": 28,
"conditions": {
"night": 20
}
},
{
"pokeapi_id": 10107,
@@ -3861,9 +3933,13 @@
"pokeapi_id": 737,
"pokemon_name": "Charjabug",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 29,
"max_level": 32
"max_level": 32,
"conditions": {
"day": 10,
"night": 10
}
},
{
"pokeapi_id": 10110,
@@ -4021,9 +4097,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 30,
"max_level": 33
"max_level": 33,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 279,
@@ -4037,9 +4116,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 30,
"max_level": 33
"max_level": 33,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 361,
@@ -4423,9 +4505,12 @@
"pokeapi_id": 168,
"pokemon_name": "Ariados",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 33,
"max_level": 36
"max_level": 36,
"conditions": {
"night": 40
}
},
{
"pokeapi_id": 546,
@@ -4447,9 +4532,12 @@
"pokeapi_id": 166,
"pokemon_name": "Ledian",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 33,
"max_level": 36
"max_level": 36,
"conditions": {
"day": 40
}
},
{
"pokeapi_id": 741,
@@ -5427,9 +5515,12 @@
"pokeapi_id": 427,
"pokemon_name": "Buneary",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 52,
"max_level": 55
"max_level": 55,
"conditions": {
"night": 10
}
},
{
"pokeapi_id": 732,
@@ -5467,9 +5558,12 @@
"pokeapi_id": 447,
"pokemon_name": "Riolu",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 52,
"max_level": 55
"max_level": 55,
"conditions": {
"day": 10
}
}
]
},
@@ -5568,9 +5662,13 @@
"pokeapi_id": 743,
"pokemon_name": "Ribombee",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 30,
"night": 20
}
},
{
"pokeapi_id": 670,
@@ -5592,9 +5690,12 @@
"pokeapi_id": 200,
"pokemon_name": "Misdreavus",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 10
}
}
]
},
@@ -5630,17 +5731,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 70,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 70
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 70,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 70
}
},
{
"pokeapi_id": 57,
@@ -5716,17 +5823,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 732,
@@ -5770,33 +5883,47 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 297,
"pokemon_name": "Hariyama",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 20,
"night": 10
}
},
{
"pokeapi_id": 97,
"pokemon_name": "Hypno",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 10,
"night": 20
}
},
{
"pokeapi_id": 546,
@@ -5864,9 +5991,12 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 10
}
},
{
"pokeapi_id": 241,
@@ -5880,9 +6010,12 @@
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 10
}
},
{
"pokeapi_id": 128,
@@ -5910,17 +6043,23 @@
"pokeapi_id": 735,
"pokemon_name": "Gumshoos",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"day": 30
}
},
{
"pokeapi_id": 10092,
"pokemon_name": "Raticate (Alola)",
"method": "walk",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"night": 30
}
},
{
"pokeapi_id": 546,
@@ -6705,7 +6844,7 @@
]
},
{
"name": "Team Rocket\u2019s Castle",
"name": "Team Rockets Castle",
"order": 124,
"encounters": [
{

View File

@@ -844,17 +844,25 @@
"pokeapi_id": 88,
"pokemon_name": "Grimer",
"method": "surf",
"encounter_rate": 100,
"encounter_rate": null,
"min_level": 5,
"max_level": 20
"max_level": 20,
"conditions": {
"spring": 100,
"summer": 100
}
},
{
"pokeapi_id": 88,
"pokemon_name": "Grimer",
"method": "fishing",
"encounter_rate": 100,
"encounter_rate": null,
"min_level": 40,
"max_level": 70
"max_level": 70,
"conditions": {
"spring": 100,
"summer": 100
}
},
{
"pokeapi_id": 19,
@@ -884,17 +892,25 @@
"pokeapi_id": 89,
"pokemon_name": "Muk",
"method": "fishing",
"encounter_rate": 10,
"encounter_rate": null,
"min_level": 50,
"max_level": 70
"max_level": 70,
"conditions": {
"spring": 10,
"summer": 10
}
},
{
"pokeapi_id": 89,
"pokemon_name": "Muk",
"method": "surf",
"encounter_rate": 5,
"encounter_rate": null,
"min_level": 5,
"max_level": 20
"max_level": 20,
"conditions": {
"spring": 5,
"summer": 5
}
}
]
},
@@ -3294,41 +3310,63 @@
"pokeapi_id": 593,
"pokemon_name": "Jellicent",
"method": "surf",
"encounter_rate": 60,
"encounter_rate": null,
"min_level": 25,
"max_level": 40
"max_level": 40,
"conditions": {
"spring": 60,
"summer": 60,
"autumn": 60
}
},
{
"pokeapi_id": 320,
"pokemon_name": "Wailmer",
"method": "surf",
"encounter_rate": 60,
"encounter_rate": null,
"min_level": 25,
"max_level": 40
"max_level": 40,
"conditions": {
"spring": 30,
"summer": 30,
"autumn": 30,
"winter": 60
}
},
{
"pokeapi_id": 458,
"pokemon_name": "Mantyke",
"method": "surf",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 25,
"max_level": 40
"max_level": 40,
"conditions": {
"spring": 30,
"summer": 30,
"autumn": 30
}
},
{
"pokeapi_id": 364,
"pokemon_name": "Sealeo",
"method": "surf",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 25,
"max_level": 40
"max_level": 40,
"conditions": {
"winter": 30
}
},
{
"pokeapi_id": 363,
"pokemon_name": "Spheal",
"method": "surf",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 25,
"max_level": 40
"max_level": 40,
"conditions": {
"winter": 30
}
},
{
"pokeapi_id": 171,
@@ -3342,9 +3380,14 @@
"pokeapi_id": 226,
"pokemon_name": "Mantine",
"method": "surf",
"encounter_rate": 5,
"encounter_rate": null,
"min_level": 30,
"max_level": 40
"max_level": 40,
"conditions": {
"spring": 5,
"summer": 5,
"autumn": 5
}
},
{
"pokeapi_id": 224,
@@ -3374,9 +3417,12 @@
"pokeapi_id": 365,
"pokemon_name": "Walrein",
"method": "surf",
"encounter_rate": 5,
"encounter_rate": null,
"min_level": 30,
"max_level": 40
"max_level": 40,
"conditions": {
"winter": 5
}
}
]
},
@@ -7642,33 +7688,53 @@
"pokeapi_id": 536,
"pokemon_name": "Palpitoad",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"spring": 40,
"summer": 40,
"autumn": 40
}
},
{
"pokeapi_id": 588,
"pokemon_name": "Karrablast",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 57,
"max_level": 57
"max_level": 57,
"conditions": {
"spring": 20,
"summer": 20,
"autumn": 20
}
},
{
"pokeapi_id": 618,
"pokemon_name": "Stunfisk",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 55,
"max_level": 56
"max_level": 56,
"conditions": {
"spring": 20,
"summer": 20,
"autumn": 20
}
},
{
"pokeapi_id": 453,
"pokemon_name": "Croagunk",
"method": "walk",
"encounter_rate": 15,
"encounter_rate": null,
"min_level": 55,
"max_level": 56
"max_level": 56,
"conditions": {
"spring": 15,
"summer": 15,
"autumn": 15
}
},
{
"pokeapi_id": 340,
@@ -7690,9 +7756,14 @@
"pokeapi_id": 616,
"pokemon_name": "Shelmet",
"method": "walk",
"encounter_rate": 5,
"encounter_rate": null,
"min_level": 54,
"max_level": 54
"max_level": 54,
"conditions": {
"spring": 5,
"summer": 5,
"autumn": 5
}
}
]
},
@@ -7728,33 +7799,53 @@
"pokeapi_id": 536,
"pokemon_name": "Palpitoad",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 54,
"max_level": 57
"max_level": 57,
"conditions": {
"spring": 40,
"summer": 40,
"autumn": 40
}
},
{
"pokeapi_id": 588,
"pokemon_name": "Karrablast",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 54,
"max_level": 54
"max_level": 54,
"conditions": {
"spring": 20,
"summer": 20,
"autumn": 20
}
},
{
"pokeapi_id": 618,
"pokemon_name": "Stunfisk",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 55,
"max_level": 56
"max_level": 56,
"conditions": {
"spring": 20,
"summer": 20,
"autumn": 20
}
},
{
"pokeapi_id": 453,
"pokemon_name": "Croagunk",
"method": "walk",
"encounter_rate": 15,
"encounter_rate": null,
"min_level": 55,
"max_level": 56
"max_level": 56,
"conditions": {
"spring": 15,
"summer": 15,
"autumn": 15
}
},
{
"pokeapi_id": 340,
@@ -7776,9 +7867,14 @@
"pokeapi_id": 616,
"pokemon_name": "Shelmet",
"method": "walk",
"encounter_rate": 5,
"encounter_rate": null,
"min_level": 57,
"max_level": 57
"max_level": 57,
"conditions": {
"spring": 5,
"summer": 5,
"autumn": 5
}
}
]
},

View File

@@ -1486,7 +1486,7 @@
]
},
{
"name": "Relic Castle (Volcarona\u2019s Room and Room Outside)",
"name": "Relic Castle (Volcaronas Room and Room Outside)",
"order": 30,
"encounters": [
{
@@ -2971,25 +2971,40 @@
"pokeapi_id": 536,
"pokemon_name": "Palpitoad",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 30,
"max_level": 33
"max_level": 33,
"conditions": {
"spring": 40,
"summer": 40,
"autumn": 40
}
},
{
"pokeapi_id": 616,
"pokemon_name": "Shelmet",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 30,
"max_level": 33
"max_level": 33,
"conditions": {
"spring": 40,
"summer": 40,
"autumn": 40
}
},
{
"pokeapi_id": 618,
"pokemon_name": "Stunfisk",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 31,
"max_level": 32
"max_level": 32,
"conditions": {
"spring": 20,
"summer": 20,
"autumn": 20
}
},
{
"pokeapi_id": 340,
@@ -3439,25 +3454,40 @@
"pokeapi_id": 536,
"pokemon_name": "Palpitoad",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 30,
"max_level": 33
"max_level": 33,
"conditions": {
"spring": 40,
"summer": 40,
"autumn": 40
}
},
{
"pokeapi_id": 616,
"pokemon_name": "Shelmet",
"method": "walk",
"encounter_rate": 40,
"encounter_rate": null,
"min_level": 30,
"max_level": 33
"max_level": 33,
"conditions": {
"spring": 40,
"summer": 40,
"autumn": 40
}
},
{
"pokeapi_id": 618,
"pokemon_name": "Stunfisk",
"method": "walk",
"encounter_rate": 20,
"encounter_rate": null,
"min_level": 31,
"max_level": 32
"max_level": 32,
"conditions": {
"spring": 20,
"summer": 20,
"autumn": 20
}
},
{
"pokeapi_id": 340,
@@ -5630,9 +5660,12 @@
"pokeapi_id": 446,
"pokemon_name": "Munchlax",
"method": "trade",
"encounter_rate": 100,
"encounter_rate": null,
"min_level": 60,
"max_level": 60
"max_level": 60,
"conditions": {
"summer": 100
}
},
{
"pokeapi_id": 90,
@@ -5740,9 +5773,15 @@
"pokeapi_id": 320,
"pokemon_name": "Wailmer",
"method": "surf",
"encounter_rate": 90,
"encounter_rate": null,
"min_level": 25,
"max_level": 60
"max_level": 60,
"conditions": {
"spring": 90,
"summer": 90,
"autumn": 90,
"winter": 60
}
},
{
"pokeapi_id": 223,
@@ -5772,25 +5811,36 @@
"pokeapi_id": 458,
"pokemon_name": "Mantyke",
"method": "surf",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 25,
"max_level": 55
"max_level": 55,
"conditions": {
"spring": 30,
"summer": 30,
"autumn": 30
}
},
{
"pokeapi_id": 364,
"pokemon_name": "Sealeo",
"method": "surf",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 25,
"max_level": 60
"max_level": 60,
"conditions": {
"winter": 30
}
},
{
"pokeapi_id": 363,
"pokemon_name": "Spheal",
"method": "surf",
"encounter_rate": 30,
"encounter_rate": null,
"min_level": 25,
"max_level": 55
"max_level": 55,
"conditions": {
"winter": 30
}
},
{
"pokeapi_id": 279,
@@ -5812,9 +5862,14 @@
"pokeapi_id": 226,
"pokemon_name": "Mantine",
"method": "surf",
"encounter_rate": 5,
"encounter_rate": null,
"min_level": 25,
"max_level": 60
"max_level": 60,
"conditions": {
"spring": 5,
"summer": 5,
"autumn": 5
}
},
{
"pokeapi_id": 224,
@@ -5836,9 +5891,12 @@
"pokeapi_id": 365,
"pokemon_name": "Walrein",
"method": "surf",
"encounter_rate": 5,
"encounter_rate": null,
"min_level": 25,
"max_level": 70
"max_level": 70,
"conditions": {
"winter": 5
}
}
]
},

View File

@@ -192,6 +192,41 @@ async def upsert_routes(
return {row.name: row.id for row in result}
async def _upsert_single_encounter(
session: AsyncSession,
route_id: int,
pokemon_id: int,
game_id: int,
method: str,
encounter_rate: int,
min_level: int,
max_level: int,
condition: str = "",
) -> None:
stmt = (
insert(RouteEncounter)
.values(
route_id=route_id,
pokemon_id=pokemon_id,
game_id=game_id,
encounter_method=method,
encounter_rate=encounter_rate,
condition=condition,
min_level=min_level,
max_level=max_level,
)
.on_conflict_do_update(
constraint="uq_route_pokemon_method_game_condition",
set_={
"encounter_rate": encounter_rate,
"min_level": min_level,
"max_level": max_level,
},
)
)
await session.execute(stmt)
async def upsert_route_encounters(
session: AsyncSession,
route_id: int,
@@ -207,28 +242,33 @@ async def upsert_route_encounters(
print(f" Warning: no pokemon_id for pokeapi_id {enc['pokeapi_id']}")
continue
stmt = (
insert(RouteEncounter)
.values(
route_id=route_id,
pokemon_id=pokemon_id,
game_id=game_id,
encounter_method=enc["method"],
encounter_rate=enc["encounter_rate"],
min_level=enc["min_level"],
max_level=enc["max_level"],
conditions = enc.get("conditions")
if conditions:
for condition_name, rate in conditions.items():
await _upsert_single_encounter(
session,
route_id,
pokemon_id,
game_id,
enc["method"],
rate,
enc["min_level"],
enc["max_level"],
condition=condition_name,
)
count += 1
else:
await _upsert_single_encounter(
session,
route_id,
pokemon_id,
game_id,
enc["method"],
enc["encounter_rate"],
enc["min_level"],
enc["max_level"],
)
.on_conflict_do_update(
constraint="uq_route_pokemon_method_game",
set_={
"encounter_rate": enc["encounter_rate"],
"min_level": enc["min_level"],
"max_level": enc["max_level"],
},
)
)
await session.execute(stmt)
count += 1
count += 1
return count