summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2019-10-31 21:05:45 -0400
committerGitHub <noreply@github.com>2019-10-31 21:05:45 -0400
commit193c12d401ac5b1016d77e60c36e8d9960af9d82 (patch)
tree83da7d0c549974e392aa3eb897fb038e889fbd20
parentc6cd74fed25cbb6e2fa0296960fbcda795311b06 (diff)
parentf0a7ee8d16f40707fbec80d7224f410ae455c071 (diff)
Merge pull request #137 from PikalaxALT/split_835b488
Split 835b488
-rw-r--r--.gitignore1
-rw-r--r--Makefile1
-rw-r--r--asm/field_control_avatar.s6
-rw-r--r--asm/field_player_avatar.s4
-rw-r--r--asm/trainer_see.s6
-rw-r--r--asm/wild_encounter.s1773
-rw-r--r--baserom.ipsbin537206 -> 521722 bytes
-rw-r--r--data/cable_club.s15
-rw-r--r--data/data_835B488.s37
-rw-r--r--data/event_scripts.s4
-rw-r--r--data/field_screen_effect.s15
-rw-r--r--data/specials.inc2
-rw-r--r--data/trainer_see.s97
-rw-r--r--data/unknown_serial_data.binbin0 -> 14176 bytes
-rw-r--r--graphics/map_objects/emoticons.pngbin0 -> 544 bytes
-rw-r--r--graphics_file_rules.mk3
-rw-r--r--include/event_scripts.h2
-rw-r--r--include/fieldmap.h2
-rw-r--r--include/wild_encounter.h7
-rw-r--r--json_data_rules.mk12
-rw-r--r--ld_script.txt9
-rw-r--r--src/data/wild_encounters.json12625
-rw-r--r--src/data/wild_encounters.json.txt90
-rw-r--r--src/new_game.c2
-rw-r--r--src/quest_log.c4
-rw-r--r--src/wild_encounter.c789
-rw-r--r--src/wild_pokemon_area.c2
-rw-r--r--sym_ewram.txt8
-rw-r--r--tools/jsonproc/inja.hpp275
-rw-r--r--tools/jsonproc/jsonproc.cpp24
30 files changed, 13904 insertions, 1911 deletions
diff --git a/.gitignore b/.gitignore
index 176611d4a..67e416fd7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,6 +42,7 @@ sound/**/*.bin
sound/songs/midi/*.s
src/*.s
src/data/items.h
+src/data/wild_encounters.h
tags
tools/agbcc
tools/binutils
diff --git a/Makefile b/Makefile
index b0f5659f2..f818c84ab 100644
--- a/Makefile
+++ b/Makefile
@@ -45,6 +45,7 @@ ELF = $(ROM:.gba=.elf)
MAP = $(ROM:.gba=.map)
C_SUBDIR = src
+DATA_C_SUBDIR = src/data
ASM_SUBDIR = asm
DATA_ASM_SUBDIR = data
SONG_SUBDIR = sound/songs
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index 46587dc52..dd84f75c1 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -1725,7 +1725,7 @@ sub_806D5E8: @ 806D5E8
lsls r0, 24
cmp r0, 0
bne _0806D658
- bl sub_80830B8
+ bl UpdateRepelCounter
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1956,7 +1956,7 @@ _0806D7E2:
thumb_func_start RestartWildEncounterImmunitySteps
RestartWildEncounterImmunitySteps: @ 806D7E8
push {lr}
- bl sub_80832D4
+ bl ResetEncounterRateModifiers
pop {r0}
bx r0
thumb_func_end RestartWildEncounterImmunitySteps
@@ -1964,7 +1964,7 @@ RestartWildEncounterImmunitySteps: @ 806D7E8
thumb_func_start is_it_battle_time_3
is_it_battle_time_3: @ 806D7F4
push {lr}
- bl sub_80833B0
+ bl TryStandardWildEncounter
lsls r0, 24
lsrs r0, 24
pop {r1}
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index 5e7f64670..f6b50bdc6 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -4481,7 +4481,7 @@ sub_805D508: @ 805D508
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
- bl sub_8082F78
+ bl DoesCurrentMapHaveFishingMons
lsls r0, 24
cmp r0, 0
beq _0805D53A
@@ -4791,7 +4791,7 @@ _0805D788:
ldrh r0, [r5, 0x26]
lsls r0, 24
lsrs r0, 24
- bl sub_8082FB0
+ bl FishingWildEncounter
ldr r0, _0805D7BC @ =sub_805D304
bl FindTaskIdByFunc
lsls r0, 24
diff --git a/asm/trainer_see.s b/asm/trainer_see.s
index 659e96c32..a2210173a 100644
--- a/asm/trainer_see.s
+++ b/asm/trainer_see.s
@@ -198,8 +198,8 @@ _08081C8C:
_08081C98: .4byte gUnknown_83C7248
thumb_func_end sub_8081BEC
- thumb_func_start sub_8081C9C
-sub_8081C9C: @ 8081C9C
+ thumb_func_start IsTrainerInRangeSouth
+IsTrainerInRangeSouth: @ 8081C9C
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 16
@@ -242,7 +242,7 @@ _08081CE6:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_8081C9C
+ thumb_func_end IsTrainerInRangeSouth
thumb_func_start IsTrainerInRangeNorth
IsTrainerInRangeNorth: @ 8081CEC
diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s
deleted file mode 100644
index 86e3d964f..000000000
--- a/asm/wild_encounter.s
+++ /dev/null
@@ -1,1773 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8082740
-sub_8082740: @ 8082740
- ldr r1, _08082748 @ =gUnknown_20386DC
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08082748: .4byte gUnknown_20386DC
- thumb_func_end sub_8082740
-
- thumb_func_start ChooseWildMonIndex_Land
-ChooseWildMonIndex_Land: @ 808274C
- push {lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bhi _08082768
- movs r0, 0
- b _08082802
-_08082768:
- adds r0, r1, 0
- subs r0, 0x14
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _08082778
- movs r0, 0x1
- b _08082802
-_08082778:
- adds r0, r1, 0
- subs r0, 0x28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bhi _08082788
- movs r0, 0x2
- b _08082802
-_08082788:
- adds r0, r1, 0
- subs r0, 0x32
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bhi _08082798
- movs r0, 0x3
- b _08082802
-_08082798:
- adds r0, r1, 0
- subs r0, 0x3C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bhi _080827A8
- movs r0, 0x4
- b _08082802
-_080827A8:
- adds r0, r1, 0
- subs r0, 0x46
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bhi _080827B8
- movs r0, 0x5
- b _08082802
-_080827B8:
- adds r0, r1, 0
- subs r0, 0x50
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080827C8
- movs r0, 0x6
- b _08082802
-_080827C8:
- adds r0, r1, 0
- subs r0, 0x55
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080827D8
- movs r0, 0x7
- b _08082802
-_080827D8:
- adds r0, r1, 0
- subs r0, 0x5A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _080827E8
- movs r0, 0x8
- b _08082802
-_080827E8:
- adds r0, r1, 0
- subs r0, 0x5E
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _080827F8
- movs r0, 0x9
- b _08082802
-_080827F8:
- cmp r1, 0x62
- beq _08082800
- movs r0, 0xB
- b _08082802
-_08082800:
- movs r0, 0xA
-_08082802:
- pop {r1}
- bx r1
- thumb_func_end ChooseWildMonIndex_Land
-
- thumb_func_start ChooseWildMonIndex_WaterRock
-ChooseWildMonIndex_WaterRock: @ 8082808
- push {lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, r1, 0
- cmp r1, 0x3B
- bhi _08082826
- movs r0, 0
- b _08082858
-_08082826:
- adds r0, r1, 0
- subs r0, 0x3C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1D
- bhi _08082836
- movs r0, 0x1
- b _08082858
-_08082836:
- adds r0, r1, 0
- subs r0, 0x5A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08082846
- movs r0, 0x2
- b _08082858
-_08082846:
- adds r0, r2, 0
- subs r0, 0x5F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08082856
- movs r0, 0x4
- b _08082858
-_08082856:
- movs r0, 0x3
-_08082858:
- pop {r1}
- bx r1
- thumb_func_end ChooseWildMonIndex_WaterRock
-
- thumb_func_start ChooseWildMonIndex_Fishing
-ChooseWildMonIndex_Fishing: @ 808285C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- movs r5, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r4, 0x1
- beq _08082896
- cmp r4, 0x1
- bgt _08082886
- cmp r4, 0
- beq _0808288C
- b _080828F0
-_08082886:
- cmp r6, 0x2
- beq _080828BA
- b _080828F0
-_0808288C:
- movs r5, 0x1
- cmp r1, 0x45
- bhi _080828F0
- movs r5, 0
- b _080828F0
-_08082896:
- cmp r1, 0x3B
- bhi _0808289C
- movs r5, 0x2
-_0808289C:
- adds r0, r1, 0
- subs r0, 0x3C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _080828AA
- movs r5, 0x3
-_080828AA:
- adds r0, r1, 0
- subs r0, 0x50
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _080828F0
- movs r5, 0x4
- b _080828F0
-_080828BA:
- cmp r1, 0x27
- bhi _080828C0
- movs r5, 0x5
-_080828C0:
- adds r0, r1, 0
- subs r0, 0x28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x27
- bhi _080828CE
- movs r5, 0x6
-_080828CE:
- adds r0, r1, 0
- subs r0, 0x50
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE
- bhi _080828DC
- movs r5, 0x7
-_080828DC:
- adds r0, r1, 0
- subs r0, 0x5F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _080828EA
- movs r5, 0x8
-_080828EA:
- cmp r1, 0x63
- bne _080828F0
- movs r5, 0x9
-_080828F0:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ChooseWildMonIndex_Fishing
-
- thumb_func_start ChooseWildMonLevel
-ChooseWildMonLevel: @ 80828F8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x1]
- ldrb r1, [r4]
- cmp r0, r1
- bcc _08082908
- ldrb r5, [r4]
- b _0808290C
-_08082908:
- ldrb r5, [r4, 0x1]
- ldrb r0, [r4]
-_0808290C:
- subs r4, r0, r5
- adds r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 24
- lsrs r0, 24
- adds r0, r5, r0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ChooseWildMonLevel
-
- thumb_func_start sub_8082934
-sub_8082934: @ 8082934
- push {r4-r6,lr}
- movs r4, 0
- ldr r0, _08082990 @ =gWildMonHeaders
- ldrb r1, [r0]
- adds r5, r0, 0
- cmp r1, 0xFF
- beq _080829B4
- ldr r6, _08082994 @ =0x00007a01
-_08082944:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 2
- adds r3, r0, r5
- ldrb r1, [r3]
- ldr r0, _08082998 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _080829A0
- ldrb r1, [r3, 0x1]
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _080829A0
- ldrh r0, [r2, 0x4]
- cmp r0, r6
- bne _08082980
- ldr r0, _0808299C @ =0x00004024
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bls _0808297A
- movs r0, 0
-_0808297A:
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
-_08082980:
- bl sub_80829C0
- lsls r0, 24
- cmp r0, 0
- beq _080829B4
- adds r0, r4, 0
- b _080829B6
- .align 2, 0
-_08082990: .4byte gWildMonHeaders
-_08082994: .4byte 0x00007a01
-_08082998: .4byte gSaveBlock1Ptr
-_0808299C: .4byte 0x00004024
-_080829A0:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08082944
-_080829B4:
- ldr r0, _080829BC @ =0x0000ffff
-_080829B6:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080829BC: .4byte 0x0000ffff
- thumb_func_end sub_8082934
-
- thumb_func_start sub_80829C0
-sub_80829C0: @ 80829C0
- push {lr}
- ldr r0, _080829EC @ =0x00000849
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080829F4
- ldr r0, _080829F0 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, 0x2
- bne _080829F4
- ldrb r0, [r1, 0x5]
- subs r0, 0x1B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bhi _080829F4
- movs r0, 0
- b _080829F6
- .align 2, 0
-_080829EC: .4byte 0x00000849
-_080829F0: .4byte gSaveBlock1Ptr
-_080829F4:
- movs r0, 0x1
-_080829F6:
- pop {r1}
- bx r1
- thumb_func_end sub_80829C0
-
- thumb_func_start sub_80829FC
-sub_80829FC: @ 80829FC
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- bl ZeroEnemyPartyMons
- cmp r4, 0xC9
- beq _08082A3C
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08082A38 @ =gEnemyParty
- str r0, [sp]
- adds r0, r1, 0
- adds r1, r4, 0
- adds r2, r6, 0
- movs r3, 0x20
- bl CreateMonWithNature
- b _08082A74
- .align 2, 0
-_08082A38: .4byte gEnemyParty
-_08082A3C:
- ldr r0, _08082A7C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- subs r1, 0x1B
- ldr r2, _08082A80 @ =gUnknown_83CA71C
- lsls r1, 24
- asrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5, r0
- adds r0, r2
- ldrb r0, [r0]
- bl sub_8082A88
- ldr r2, _08082A84 @ =gEnemyParty
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r2, 0
- movs r1, 0xC9
- adds r2, r6, 0
- movs r3, 0x20
- bl CreateMon
-_08082A74:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08082A7C: .4byte gSaveBlock1Ptr
-_08082A80: .4byte gUnknown_83CA71C
-_08082A84: .4byte gEnemyParty
- thumb_func_end sub_80829FC
-
- thumb_func_start sub_8082A88
-sub_8082A88: @ 8082A88
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
-_08082A8E:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsls r0, 16
- lsrs r0, 16
- orrs r4, r0
- adds r0, r4, 0
- bl GetUnownLetterByPersonalityLoByte
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- bne _08082A8E
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8082A88
-
- thumb_func_start GetUnownLetterByPersonalityLoByte
-GetUnownLetterByPersonalityLoByte: @ 8082AB8
- push {lr}
- adds r2, r0, 0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetUnownLetterByPersonalityLoByte
-
- thumb_func_start sub_8082AEC
-sub_8082AEC: @ 8082AEC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1, 0
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r6, 0
- cmp r1, 0x1
- beq _08082B1C
- cmp r1, 0x1
- bgt _08082B10
- cmp r1, 0
- beq _08082B16
- b _08082B24
-_08082B10:
- cmp r0, 0x2
- beq _08082B1C
- b _08082B24
-_08082B16:
- bl ChooseWildMonIndex_Land
- b _08082B20
-_08082B1C:
- bl ChooseWildMonIndex_WaterRock
-_08082B20:
- lsls r0, 24
- lsrs r6, r0, 24
-_08082B24:
- lsls r4, r6, 2
- ldr r0, [r7, 0x4]
- adds r0, r4
- bl ChooseWildMonLevel
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- cmp r0, 0x1
- bne _08082B48
- adds r0, r5, 0
- bl sub_808310C
- lsls r0, 24
- cmp r0, 0
- bne _08082B48
- movs r0, 0
- b _08082B58
-_08082B48:
- ldr r0, [r7, 0x4]
- adds r0, r4, r0
- ldrh r0, [r0, 0x2]
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_80829FC
- movs r0, 0x1
-_08082B58:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8082AEC
-
- thumb_func_start sub_8082B64
-sub_8082B64: @ 8082B64
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r0, r1, 24
- lsrs r0, 24
- bl ChooseWildMonIndex_Fishing
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, r4, 2
- ldr r0, [r6, 0x4]
- adds r0, r5
- bl ChooseWildMonLevel
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, [r6, 0x4]
- adds r0, r5, r0
- ldrh r0, [r0, 0x2]
- adds r2, r4, 0
- bl sub_80829FC
- ldr r0, [r6, 0x4]
- adds r5, r0
- ldrh r0, [r5, 0x2]
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8082B64
-
- thumb_func_start sub_8082BA0
-sub_8082BA0: @ 8082BA0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl sub_808322C
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xC8
- lsls r1, 3
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bcc _08082BC4
- movs r0, 0
- b _08082BC6
-_08082BC4:
- movs r0, 0x1
-_08082BC6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8082BA0
-
- thumb_func_start sub_8082BCC
-sub_8082BCC: @ 8082BCC
- push {r4,r5,lr}
- sub sp, 0x4
- str r0, [sp]
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r0, 4
- str r0, [sp]
- movs r0, 0x6
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _08082BF6
- ldr r1, [sp]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- movs r1, 0x64
- bl __udivsi3
- str r0, [sp]
-_08082BF6:
- ldr r4, _08082C24 @ =gUnknown_20386D0
- ldrh r0, [r4, 0x6]
- lsls r0, 4
- movs r1, 0xC8
- bl __divsi3
- ldr r1, [sp]
- adds r1, r0
- str r1, [sp]
- mov r0, sp
- bl sub_8083174
- mov r0, sp
- bl sub_80831D8
- cmp r5, 0
- bne _08082C34
- ldrb r0, [r4, 0x9]
- cmp r0, 0x1
- beq _08082C28
- cmp r0, 0x2
- beq _08082C2E
- b _08082C34
- .align 2, 0
-_08082C24: .4byte gUnknown_20386D0
-_08082C28:
- ldr r0, [sp]
- lsrs r0, 1
- b _08082C32
-_08082C2E:
- ldr r0, [sp]
- lsls r0, 1
-_08082C32:
- str r0, [sp]
-_08082C34:
- ldr r0, [sp]
- movs r1, 0xC8
- lsls r1, 3
- cmp r0, r1
- bls _08082C40
- str r1, [sp]
-_08082C40:
- ldr r0, [sp]
- lsls r0, 16
- lsrs r0, 16
- bl sub_8082BA0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8082BCC
-
- thumb_func_start sub_8082C58
-sub_8082C58: @ 8082C58
- push {r4,r5,lr}
- ldr r5, _08082C90 @ =gUnknown_20386D0
- movs r0, 0
- strb r0, [r5, 0x9]
- ldr r4, _08082C94 @ =gPlayerParty
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _08082C84
- adds r0, r4, 0
- bl GetMonAbility
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08082C82
- cmp r0, 0x23
- bne _08082C84
- movs r0, 0x2
-_08082C82:
- strb r0, [r5, 0x9]
-_08082C84:
- ldr r0, _08082C90 @ =gUnknown_20386D0
- ldrb r0, [r0, 0x9]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08082C90: .4byte gUnknown_20386D0
-_08082C94: .4byte gPlayerParty
- thumb_func_end sub_8082C58
-
- thumb_func_start sub_8082C98
-sub_8082C98: @ 8082C98
- push {lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3B
- bhi _08082CB4
- movs r0, 0x1
- b _08082CB6
-_08082CB4:
- movs r0, 0
-_08082CB6:
- pop {r1}
- bx r1
- thumb_func_end sub_8082C98
-
- thumb_func_start sub_8082CBC
-sub_8082CBC: @ 8082CBC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- mov r8, r7
- ldr r0, _08082D44 @ =gUnknown_20386DC
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08082CD4
- b _08082E46
-_08082CD4:
- bl sub_8082934
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _08082D48 @ =0x0000ffff
- cmp r4, r0
- bne _08082CE4
- b _08082E46
-_08082CE4:
- adds r0, r6, 0
- movs r1, 0x4
- bl sub_8058F1C
- cmp r0, 0x1
- bne _08082D78
- ldr r1, _08082D4C @ =gWildMonHeaders
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 2
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- adds r5, r2, 0
- cmp r0, 0
- bne _08082D06
- b _08082E46
-_08082D06:
- adds r0, r6, 0
- movs r1, 0
- bl sub_8058F1C
- cmp r7, r0
- beq _08082D1E
- bl sub_8082C98
- lsls r0, 24
- cmp r0, 0
- bne _08082D1E
- b _08082E46
-_08082D1E:
- ldr r1, _08082D4C @ =gWildMonHeaders
- adds r0, r5, r4
- lsls r0, 2
- adds r1, 0x4
- adds r4, r0, r1
- ldr r0, [r4]
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8082BCC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08082D50
-_08082D3A:
- ldr r0, [r4]
- ldrb r0, [r0]
- bl sub_8083410
- b _08082E46
- .align 2, 0
-_08082D44: .4byte gUnknown_20386DC
-_08082D48: .4byte 0x0000ffff
-_08082D4C: .4byte gWildMonHeaders
-_08082D50:
- bl TryStartRoamerEncounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08082DFA
- ldr r4, [r4]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- bl sub_8082AEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08082E38
- ldrb r0, [r4]
- bl sub_8083410
- b _08082E46
-_08082D78:
- adds r0, r6, 0
- movs r1, 0x4
- bl sub_8058F1C
- cmp r0, 0x2
- beq _08082DA8
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _08082E46
- adds r0, r6, 0
- movs r1, 0
- bl sub_8058F1C
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsBridge
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08082E46
-_08082DA8:
- ldr r1, _08082E18 @ =gWildMonHeaders
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 2
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- adds r5, r2, 0
- cmp r0, 0
- beq _08082E46
- adds r0, r6, 0
- movs r1, 0
- bl sub_8058F1C
- cmp r8, r0
- beq _08082DD2
- bl sub_8082C98
- lsls r0, 24
- cmp r0, 0
- beq _08082E46
-_08082DD2:
- ldr r1, _08082E18 @ =gWildMonHeaders
- adds r0, r5, r4
- lsls r0, 2
- adds r1, 0x8
- adds r4, r0, r1
- ldr r0, [r4]
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8082BCC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08082D3A
- bl TryStartRoamerEncounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08082E24
-_08082DFA:
- ldr r0, _08082E1C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08082E20 @ =0x000030d0
- adds r0, r1
- ldrb r0, [r0, 0xC]
- bl sub_808310C
- lsls r0, 24
- cmp r0, 0
- beq _08082E46
- bl BattleSetup_StartRoamerBattle
- movs r0, 0x1
- b _08082E48
- .align 2, 0
-_08082E18: .4byte gWildMonHeaders
-_08082E1C: .4byte gSaveBlock1Ptr
-_08082E20: .4byte 0x000030d0
-_08082E24:
- ldr r4, [r4]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_8082AEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08082E40
-_08082E38:
- bl BattleSetup_StartWildBattle
- movs r0, 0x1
- b _08082E48
-_08082E40:
- ldrb r0, [r4]
- bl sub_8083410
-_08082E46:
- movs r0, 0
-_08082E48:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8082CBC
-
- thumb_func_start Special_RockSmashEncounter
-Special_RockSmashEncounter: @ 8082E54
- push {r4,lr}
- bl sub_8082934
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _08082EA4 @ =0x0000ffff
- cmp r2, r0
- beq _08082EB0
- ldr r1, _08082EA8 @ =gWildMonHeaders
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- adds r1, 0xC
- adds r0, r1
- ldr r4, [r0]
- cmp r4, 0
- beq _08082E9C
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8082BCC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08082EB0
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0x1
- bl sub_8082AEC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _08082EB0
- bl BattleSetup_StartWildBattle
-_08082E9C:
- ldr r0, _08082EAC @ =gSpecialVar_Result
- strh r4, [r0]
- b _08082EB6
- .align 2, 0
-_08082EA4: .4byte 0x0000ffff
-_08082EA8: .4byte gWildMonHeaders
-_08082EAC: .4byte gSpecialVar_Result
-_08082EB0:
- ldr r1, _08082EBC @ =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
-_08082EB6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08082EBC: .4byte gSpecialVar_Result
- thumb_func_end Special_RockSmashEncounter
-
- thumb_func_start SweetScentWildEncounter
-SweetScentWildEncounter: @ 8082EC0
- push {r4,r5,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- bl sub_8082934
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _08082F14 @ =0x0000ffff
- cmp r5, r0
- beq _08082F6C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r2, 0x4
- bl sub_8058F48
- cmp r0, 0x1
- bne _08082F1C
- bl TryStartRoamerEncounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08082F3C
- ldr r1, _08082F18 @ =gWildMonHeaders
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 2
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _08082F6C
- movs r1, 0
- b _08082F58
- .align 2, 0
-_08082F14: .4byte 0x0000ffff
-_08082F18: .4byte gWildMonHeaders
-_08082F1C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r2, 0x4
- bl sub_8058F48
- cmp r0, 0x2
- bne _08082F6C
- bl TryStartRoamerEncounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08082F44
-_08082F3C:
- bl BattleSetup_StartRoamerBattle
- movs r0, 0x1
- b _08082F6E
-_08082F44:
- ldr r1, _08082F68 @ =gWildMonHeaders
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 2
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _08082F6C
- movs r1, 0x1
-_08082F58:
- movs r2, 0
- bl sub_8082AEC
- bl BattleSetup_StartWildBattle
- movs r0, 0x1
- b _08082F6E
- .align 2, 0
-_08082F68: .4byte gWildMonHeaders
-_08082F6C:
- movs r0, 0
-_08082F6E:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end SweetScentWildEncounter
-
- thumb_func_start sub_8082F78
-sub_8082F78: @ 8082F78
- push {lr}
- bl sub_8082934
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _08082FA0 @ =0x0000ffff
- cmp r2, r0
- beq _08082FA8
- ldr r0, _08082FA4 @ =gWildMonHeaders
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0x10
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- beq _08082FA8
- movs r0, 0x1
- b _08082FAA
- .align 2, 0
-_08082FA0: .4byte 0x0000ffff
-_08082FA4: .4byte gWildMonHeaders
-_08082FA8:
- movs r0, 0
-_08082FAA:
- pop {r1}
- bx r1
- thumb_func_end sub_8082F78
-
- thumb_func_start sub_8082FB0
-sub_8082FB0: @ 8082FB0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _08082FE4 @ =gWildMonHeaders
- bl sub_8082934
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r4, 0x10
- adds r1, r4
- ldr r0, [r1]
- adds r1, r5, 0
- bl sub_8082B64
- movs r0, 0xC
- bl IncrementGameStat
- bl BattleSetup_StartWildBattle
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08082FE4: .4byte gWildMonHeaders
- thumb_func_end sub_8082FB0
-
- thumb_func_start GetLocalWildMon
-GetLocalWildMon: @ 8082FE8
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r0, 0
- strb r0, [r6]
- bl sub_8082934
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _08083020 @ =0x0000ffff
- cmp r3, r0
- beq _0808301A
- ldr r2, _08083024 @ =gWildMonHeaders
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r5, [r0]
- adds r2, 0x8
- adds r1, r2
- ldr r4, [r1]
- cmp r5, 0
- bne _08083028
- cmp r4, 0
- bne _0808302E
-_0808301A:
- movs r0, 0
- b _0808306E
- .align 2, 0
-_08083020: .4byte 0x0000ffff
-_08083024: .4byte gWildMonHeaders
-_08083028:
- cmp r4, 0
- bne _0808303C
- b _08083060
-_0808302E:
- movs r0, 0x1
- strb r0, [r6]
- bl ChooseWildMonIndex_WaterRock
- lsls r0, 24
- ldr r1, [r4, 0x4]
- b _08083068
-_0808303C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4F
- bls _08083060
- movs r0, 0x1
- strb r0, [r6]
- bl ChooseWildMonIndex_WaterRock
- lsls r0, 24
- ldr r1, [r4, 0x4]
- b _08083068
-_08083060:
- bl ChooseWildMonIndex_Land
- lsls r0, 24
- ldr r1, [r5, 0x4]
-_08083068:
- lsrs r0, 22
- adds r0, r1
- ldrh r0, [r0, 0x2]
-_0808306E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetLocalWildMon
-
- thumb_func_start GetLocalWaterMon
-GetLocalWaterMon: @ 8083074
- push {r4,lr}
- bl sub_8082934
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080830A8 @ =0x0000ffff
- cmp r2, r0
- beq _080830B0
- ldr r1, _080830AC @ =gWildMonHeaders
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- adds r1, 0x8
- adds r0, r1
- ldr r4, [r0]
- cmp r4, 0
- beq _080830B0
- bl ChooseWildMonIndex_WaterRock
- lsls r0, 24
- ldr r1, [r4, 0x4]
- lsrs r0, 22
- adds r0, r1
- ldrh r0, [r0, 0x2]
- b _080830B2
- .align 2, 0
-_080830A8: .4byte 0x0000ffff
-_080830AC: .4byte gWildMonHeaders
-_080830B0:
- movs r0, 0
-_080830B2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetLocalWaterMon
-
- thumb_func_start sub_80830B8
-sub_80830B8: @ 80830B8
- push {r4,r5,lr}
- bl InUnionRoom
- cmp r0, 0x1
- beq _08083104
- ldr r0, _080830F8 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08083104
- ldr r5, _080830FC @ =0x00004020
- adds r0, r5, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _08083104
- subs r4, r0, 0x1
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl VarSet
- cmp r4, 0
- bne _08083104
- ldr r0, _08083100 @ =EventScript_1BFB65
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _08083106
- .align 2, 0
-_080830F8: .4byte gUnknown_203ADFA
-_080830FC: .4byte 0x00004020
-_08083100: .4byte EventScript_1BFB65
-_08083104:
- movs r0, 0
-_08083106:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80830B8
-
- thumb_func_start sub_808310C
-sub_808310C: @ 808310C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08083158 @ =0x00004020
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- beq _08083152
- movs r5, 0
-_08083120:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0808315C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08083160
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08083160
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bcc _0808316A
-_08083152:
- movs r0, 0x1
- b _0808316C
- .align 2, 0
-_08083158: .4byte 0x00004020
-_0808315C: .4byte gPlayerParty
-_08083160:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08083120
-_0808316A:
- movs r0, 0
-_0808316C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_808310C
-
- thumb_func_start sub_8083174
-sub_8083174: @ 8083174
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80831A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808318A
- cmp r0, 0x2
- beq _08083192
- b _08083198
-_0808318A:
- ldr r0, [r4]
- lsrs r1, r0, 1
- adds r0, r1
- b _08083196
-_08083192:
- ldr r0, [r4]
- lsrs r0, 1
-_08083196:
- str r0, [r4]
-_08083198:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8083174
-
- thumb_func_start sub_80831A0
-sub_80831A0: @ 80831A0
- push {lr}
- ldr r0, _080831B4 @ =0x00000803
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080831B8
- movs r0, 0x1
- b _080831D2
- .align 2, 0
-_080831B4: .4byte 0x00000803
-_080831B8:
- ldr r0, _080831CC @ =0x00000804
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080831D0
- movs r0, 0
- b _080831D2
- .align 2, 0
-_080831CC: .4byte 0x00000804
-_080831D0:
- movs r0, 0x2
-_080831D2:
- pop {r1}
- bx r1
- thumb_func_end sub_80831A0
-
- thumb_func_start sub_80831D8
-sub_80831D8: @ 80831D8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80831F8
- lsls r0, 24
- cmp r0, 0
- beq _080831F2
- ldr r0, [r4]
- lsls r0, 1
- movs r1, 0x3
- bl __udivsi3
- str r0, [r4]
-_080831F2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80831D8
-
- thumb_func_start sub_80831F8
-sub_80831F8: @ 80831F8
- push {lr}
- ldr r0, _08083208 @ =gUnknown_20386D0
- ldrh r0, [r0, 0xA]
- cmp r0, 0xBE
- beq _0808320C
- movs r0, 0
- b _0808320E
- .align 2, 0
-_08083208: .4byte gUnknown_20386D0
-_0808320C:
- movs r0, 0x1
-_0808320E:
- pop {r1}
- bx r1
- thumb_func_end sub_80831F8
-
- thumb_func_start sub_8083214
-sub_8083214: @ 8083214
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08083228 @ =gUnknown_20386D0
- str r0, [r1]
- bl sub_80832D4
- pop {r0}
- bx r0
- .align 2, 0
-_08083228: .4byte gUnknown_20386D0
- thumb_func_end sub_8083214
-
- thumb_func_start sub_808322C
-sub_808322C: @ 808322C
- ldr r2, _08083240 @ =gUnknown_20386D0
- ldr r1, [r2]
- ldr r0, _08083244 @ =0x41c64e6d
- muls r0, r1
- ldr r1, _08083248 @ =0x00003039
- adds r0, r1
- str r0, [r2]
- lsrs r0, 16
- bx lr
- .align 2, 0
-_08083240: .4byte gUnknown_20386D0
-_08083244: .4byte 0x41c64e6d
-_08083248: .4byte 0x00003039
- thumb_func_end sub_808322C
-
- thumb_func_start sub_808324C
-sub_808324C: @ 808324C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_8082934
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _08083284 @ =0x0000ffff
- cmp r2, r0
- beq _080832CC
- cmp r4, 0x1
- bne _0808328C
- ldr r1, _08083288 @ =gWildMonHeaders
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080832CC
- ldrb r1, [r0]
- cmp r1, 0x4F
- bhi _080832A8
- cmp r1, 0x9
- bls _080832B4
- b _080832B8
- .align 2, 0
-_08083284: .4byte 0x0000ffff
-_08083288: .4byte gWildMonHeaders
-_0808328C:
- cmp r5, 0x2
- bne _080832CC
- ldr r1, _080832AC @ =gWildMonHeaders
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080832CC
- ldrb r1, [r0]
- cmp r1, 0x4F
- bls _080832B0
-_080832A8:
- movs r0, 0
- b _080832CE
- .align 2, 0
-_080832AC: .4byte gWildMonHeaders
-_080832B0:
- cmp r1, 0x9
- bhi _080832B8
-_080832B4:
- movs r0, 0x8
- b _080832CE
-_080832B8:
- ldrb r0, [r0]
- movs r1, 0xA
- bl __udivsi3
- adds r1, r0, 0
- movs r0, 0x8
- subs r0, r1
- lsls r0, 24
- lsrs r0, 24
- b _080832CE
-_080832CC:
- movs r0, 0xFF
-_080832CE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808324C
-
- thumb_func_start sub_80832D4
-sub_80832D4: @ 80832D4
- ldr r0, _080832E0 @ =gUnknown_20386D0
- movs r2, 0
- movs r1, 0
- strh r1, [r0, 0x6]
- strb r2, [r0, 0x8]
- bx lr
- .align 2, 0
-_080832E0: .4byte gUnknown_20386D0
- thumb_func_end sub_80832D4
-
- thumb_func_start sub_80832E4
-sub_80832E4: @ 80832E4
- push {r4,r5,lr}
- movs r1, 0x4
- bl sub_8058F1C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080833A0
- bl sub_808324C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- beq _080833A0
- lsls r4, 8
- movs r5, 0xA0
- lsls r5, 3
- bl sub_80831A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08083318
- cmp r0, 0x2
- beq _08083326
- b _0808332A
-_08083318:
- lsrs r0, r4, 1
- subs r4, r0
- lsrs r0, r5, 1
- movs r1, 0xA0
- lsls r1, 3
- adds r5, r0, r1
- b _0808332A
-_08083326:
- lsls r4, 1
- lsrs r5, 1
-_0808332A:
- ldr r0, _08083368 @ =gPlayerParty
- movs r1, 0xC
- bl GetMonData
- ldr r1, _0808336C @ =gUnknown_20386D0
- strh r0, [r1, 0xA]
- bl sub_80831F8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08083356
- adds r0, r4, 0
- movs r1, 0x3
- bl __udivsi3
- adds r4, r0
- adds r0, r5, 0
- movs r1, 0x3
- bl __udivsi3
- subs r5, r0
-_08083356:
- bl sub_8082C58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08083370
- cmp r0, 0x2
- beq _08083376
- b _0808337A
- .align 2, 0
-_08083368: .4byte gPlayerParty
-_0808336C: .4byte gUnknown_20386D0
-_08083370:
- lsls r4, 1
- lsrs r5, 1
- b _0808337A
-_08083376:
- lsrs r4, 1
- lsls r5, 1
-_0808337A:
- lsrs r4, 8
- lsrs r5, 8
- ldr r1, _080833A4 @ =gUnknown_20386D0
- ldrb r0, [r1, 0x8]
- cmp r0, r4
- bcs _080833A8
- adds r0, 0x1
- strb r0, [r1, 0x8]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r5
- bcc _080833A8
-_080833A0:
- movs r0, 0
- b _080833AA
- .align 2, 0
-_080833A4: .4byte gUnknown_20386D0
-_080833A8:
- movs r0, 0x1
-_080833AA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80832E4
-
- thumb_func_start sub_80833B0
-sub_80833B0: @ 80833B0
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_80832E4
- lsls r0, 24
- cmp r0, 0
- bne _080833D4
- adds r0, r4, 0
- movs r1, 0
- bl sub_8058F1C
- ldr r1, _080833D0 @ =gUnknown_20386D0
- strh r0, [r1, 0x4]
- movs r0, 0
- b _0808340A
- .align 2, 0
-_080833D0: .4byte gUnknown_20386D0
-_080833D4:
- ldr r5, _080833F4 @ =gUnknown_20386D0
- ldrh r1, [r5, 0x4]
- adds r0, r4, 0
- bl sub_8082CBC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080833F8
- adds r0, r4, 0
- movs r1, 0
- bl sub_8058F1C
- strh r0, [r5, 0x4]
- movs r0, 0
- b _0808340A
- .align 2, 0
-_080833F4: .4byte gUnknown_20386D0
-_080833F8:
- movs r0, 0
- movs r1, 0
- strh r1, [r5, 0x6]
- strb r0, [r5, 0x8]
- adds r0, r4, 0
- bl sub_8058F1C
- strh r0, [r5, 0x4]
- movs r0, 0x1
-_0808340A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80833B0
-
- thumb_func_start sub_8083410
-sub_8083410: @ 8083410
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808342C @ =0x00004020
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _08083434
- ldr r1, _08083430 @ =gUnknown_20386D0
- ldrh r0, [r1, 0x6]
- adds r0, r4
- b _08083438
- .align 2, 0
-_0808342C: .4byte 0x00004020
-_08083430: .4byte gUnknown_20386D0
-_08083434:
- ldr r1, _08083440 @ =gUnknown_20386D0
- movs r0, 0
-_08083438:
- strh r0, [r1, 0x6]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08083440: .4byte gUnknown_20386D0
- thumb_func_end sub_8083410
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/baserom.ips b/baserom.ips
index 5fc13b159..a73fe2991 100644
--- a/baserom.ips
+++ b/baserom.ips
Binary files differ
diff --git a/data/cable_club.s b/data/cable_club.s
new file mode 100644
index 000000000..8ea8b9167
--- /dev/null
+++ b/data/cable_club.s
@@ -0,0 +1,15 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+gUnknown_83C6AB0:: @ 83C6AB0
+ .byte 0, 16, 11, 11, 2, 15
+ .2byte 0x125
+
+gUnknown_83C6AB8:: @ 83C6AB8
+ .4byte gUnknown_841DF8B
+ .4byte gUnknown_841DF92
+ .4byte gUnknown_841DF99
+ .4byte gUnknown_841DFA0
diff --git a/data/data_835B488.s b/data/data_835B488.s
index 88c12b035..623c252c6 100644
--- a/data/data_835B488.s
+++ b/data/data_835B488.s
@@ -1,43 +1,12 @@
+#include "constants/maps.h"
+#include "constants/species.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
-gUnknown_83C68E0:: @ 83C68E0
- .incbin "baserom.gba", 0x3C68E0, 0x4
-
-gUnknown_83C68E4:: @ 83C68E4
- .incbin "baserom.gba", 0x3C68E4, 0x8
-
-gUnknown_83C68EC:: @ 83C68EC
- .incbin "baserom.gba", 0x3C68EC, 0x4
-
- .section .rodata.83C6AB0
-
-gUnknown_83C6AB0:: @ 83C6AB0
- .incbin "baserom.gba", 0x3C6AB0, 0x8
-
-gUnknown_83C6AB8:: @ 83C6AB8
- .incbin "baserom.gba", 0x3C6AB8, 0x790
-
-gUnknown_83C7248:: @ 83C7248
- .incbin "baserom.gba", 0x3C7248, 0x10
-
-gUnknown_83C7258:: @ 83C7258
- .incbin "baserom.gba", 0x3C7258, 0x3C
-
-gUnknown_83C7294:: @ 83C7294
- .incbin "baserom.gba", 0x3C7294, 0xF4
-
-gUnknown_83C7388:: @ 83C7388
- .incbin "baserom.gba", 0x3C7388, 0x2930
-
-gWildMonHeaders:: @ 83C9CB8
- .incbin "baserom.gba", 0x3C9CB8, 0xA64
-
-gUnknown_83CA71C:: @ 83CA71C
- .incbin "baserom.gba", 0x3CA71C, 0xED4
+ .incbin "baserom.gba", 0x3CA770, 0xE80
gUnknown_83CB5F0:: @ 83CB5F0
.incbin "baserom.gba", 0x3CB5F0, 0x200
diff --git a/data/event_scripts.s b/data/event_scripts.s
index a3943d494..eb2c8ed60 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -10397,7 +10397,7 @@ EventScript_1BE06F:: @ 81BE06F
applymovement VAR_LAST_TALKED, Movement_1BE08F
waitmovement 0
removeobject VAR_LAST_TALKED
- special Special_RockSmashEncounter
+ special ScrSpecial_RockSmashWildEncounter
compare_var_to_value VAR_RESULT, 0
goto_if eq, EventScript_1BE08D
waitstate
@@ -11731,7 +11731,7 @@ EventScript_81BFB5F:: @ 81BFB5F
setflashradius 0
end
-EventScript_1BFB65:: @ 81BFB65
+EventScript_RepelWoreOff:: @ 81BFB65
msgbox Text_1BFB6E, 3
end
diff --git a/data/field_screen_effect.s b/data/field_screen_effect.s
new file mode 100644
index 000000000..92078287d
--- /dev/null
+++ b/data/field_screen_effect.s
@@ -0,0 +1,15 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+gUnknown_83C68E0:: @ 83C68E0
+ .4byte 4
+
+gUnknown_83C68E4:: @ 83C68E4
+ .byte 0, 0, 5, 30, 11, 15
+ .2byte 0x001
+
+gUnknown_83C68EC:: @ 83C68EC
+ .byte 0, 1, 2
diff --git a/data/specials.inc b/data/specials.inc
index 516b5f768..9da9bdfc7 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -179,7 +179,7 @@ gSpecials:: @ 815FD60
def_special sub_8113510
def_special sub_81130A8
def_special sub_8113530
- def_special Special_RockSmashEncounter
+ def_special ScrSpecial_RockSmashWildEncounter
def_special nullsub_75
def_special nullsub_75
def_special nullsub_75
diff --git a/data/trainer_see.s b/data/trainer_see.s
new file mode 100644
index 000000000..3392f090f
--- /dev/null
+++ b/data/trainer_see.s
@@ -0,0 +1,97 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+ .align 2
+
+gUnknown_83C6AC8::
+ .incbin "graphics/map_objects/emoticons.4bpp"
+
+gUnknown_83C7248:: @ 83C7248
+ .4byte IsTrainerInRangeSouth
+ .4byte IsTrainerInRangeNorth
+ .4byte IsTrainerInRangeWest
+ .4byte IsTrainerInRangeEast
+
+gUnknown_83C7258:: @ 83C7258
+ .4byte sub_8081F34
+ .4byte sub_8081F38
+ .4byte sub_8081F90
+ .4byte sub_8081FD0
+ .4byte sub_808202C
+ .4byte sub_80820BC
+ .4byte sub_8082100
+ .4byte sub_8082134
+ .4byte sub_8082150
+ .4byte sub_8082184
+ .4byte sub_80821DC
+ .4byte sub_8082250
+ .4byte sub_808226C
+ .4byte sub_80822CC
+ .4byte sub_808237C
+
+gUnknown_83C7294:: @ 83C7294
+ .4byte sub_8082150
+ .4byte sub_8082184
+ .4byte sub_80821DC
+ .4byte sub_8082250
+
+gOamData_83C72A4::
+ .4byte 0x40000000, 0x00000400
+
+gSpriteImages_83C72AC::
+ .4byte gUnknown_83C6AC8 + 0x000, 0x80
+ .4byte gUnknown_83C6AC8 + 0x080, 0x80
+ .4byte gUnknown_83C6AC8 + 0x100, 0x80
+ .4byte gUnknown_83C6AC8 + 0x300, 0x80
+ .4byte gUnknown_83C6AC8 + 0x380, 0x80
+ .4byte gUnknown_83C6AC8 + 0x400, 0x80
+ .4byte gUnknown_83C6AC8 + 0x180, 0x80
+ .4byte gUnknown_83C6AC8 + 0x200, 0x80
+ .4byte gUnknown_83C6AC8 + 0x280, 0x80
+ .4byte gUnknown_83C6AC8 + 0x480, 0x80
+ .4byte gUnknown_83C6AC8 + 0x500, 0x80
+ .4byte gUnknown_83C6AC8 + 0x580, 0x80
+ .4byte gUnknown_83C6AC8 + 0x600, 0x80
+ .4byte gUnknown_83C6AC8 + 0x680, 0x80
+ .4byte gUnknown_83C6AC8 + 0x700, 0x80
+
+gAnimCmd_83C7324::
+ obj_image_anim_frame 0x0000, 0x0004
+ obj_image_anim_frame 0x0001, 0x0004
+ obj_image_anim_frame 0x0002, 0x0034
+ obj_image_anim_end
+
+gAnimCmd_83C7334::
+ obj_image_anim_frame 0x0006, 0x0004
+ obj_image_anim_frame 0x0007, 0x0004
+ obj_image_anim_frame 0x0008, 0x0034
+ obj_image_anim_end
+
+gAnimCmd_83C7344::
+ obj_image_anim_frame 0x0003, 0x0004
+ obj_image_anim_frame 0x0004, 0x0004
+ obj_image_anim_frame 0x0005, 0x0034
+ obj_image_anim_end
+
+gAnimCmd_83C7354::
+ obj_image_anim_frame 0x0009, 0x0004
+ obj_image_anim_frame 0x000a, 0x0004
+ obj_image_anim_frame 0x000b, 0x0034
+ obj_image_anim_end
+
+gAnimCmd_83C7364::
+ obj_image_anim_frame 0x000c, 0x0004
+ obj_image_anim_frame 0x000d, 0x0004
+ obj_image_anim_frame 0x000e, 0x0034
+ obj_image_anim_end
+
+gSpriteAnimTable_83C7374::
+ .4byte gAnimCmd_83C7324
+ .4byte gAnimCmd_83C7334
+ .4byte gAnimCmd_83C7344
+ .4byte gAnimCmd_83C7354
+ .4byte gAnimCmd_83C7364
+
+gUnknown_83C7388:: @ 83C7388
+ spr_template 65535, 65535, gOamData_83C72A4, gSpriteAnimTable_83C7374, gSpriteImages_83C72AC, gDummySpriteAffineAnimTable, objc_exclamation_mark_probably
diff --git a/data/unknown_serial_data.bin b/data/unknown_serial_data.bin
new file mode 100644
index 000000000..63d26ca2a
--- /dev/null
+++ b/data/unknown_serial_data.bin
Binary files differ
diff --git a/graphics/map_objects/emoticons.png b/graphics/map_objects/emoticons.png
new file mode 100644
index 000000000..43cb818da
--- /dev/null
+++ b/graphics/map_objects/emoticons.png
Binary files differ
diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk
index 3a42a3cea..26c525272 100644
--- a/graphics_file_rules.mk
+++ b/graphics_file_rules.mk
@@ -521,3 +521,6 @@ graphics/pokemon/heracross/unk_icon.4bpp: %.4bpp: %.png
graphics/map_objects/151.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 8 -mheight 4
+
+graphics/map_objects/emoticons.4bpp: %.4bpp: %.png
+ $(GFX) $< $@ -mwidth 2 -mheight 2
diff --git a/include/event_scripts.h b/include/event_scripts.h
index c0f0300b1..e8fc40fa4 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -1186,4 +1186,6 @@ extern const u8 Text_1BCA95[];
extern const u8 Text_1BCACB[];
extern const u8 Text_1BCAF2[];
+extern const u8 EventScript_RepelWoreOff[];
+
#endif //GUARD_EVENT_SCRIPTS_H
diff --git a/include/fieldmap.h b/include/fieldmap.h
index c3709c616..4af4342f7 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -28,5 +28,7 @@ struct MapConnection * GetMapConnectionAtPos(s16 x, s16 y);
void sub_8059948(u8 a0, u8 a1);
void save_serialize_map(void);
+u32 sub_8058F1C(u32 original, u8 bit);
+u32 sub_8058F48(s16 x, s16 y, u8 z);
#endif //GUARD_FIELDMAP_H
diff --git a/include/wild_encounter.h b/include/wild_encounter.h
index 5bcab1249..d0420438a 100644
--- a/include/wild_encounter.h
+++ b/include/wild_encounter.h
@@ -34,7 +34,7 @@ struct WildPokemonHeader
extern const struct WildPokemonHeader gWildMonHeaders[];
void DisableWildEncounters(bool8 disabled);
-bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavior);
+bool8 StandardWildEncounter(u32 currMetaTileBehavior, u16 previousMetaTileBehavior);
void ScrSpecial_RockSmashWildEncounter(void);
bool8 SweetScentWildEncounter(void);
bool8 DoesCurrentMapHaveFishingMons(void);
@@ -42,9 +42,10 @@ void FishingWildEncounter(u8 rod);
u16 GetLocalWildMon(bool8 *isWaterMon);
u16 GetLocalWaterMon(void);
bool8 UpdateRepelCounter(void);
-void sub_8082740(u8);
+void DisableWildEncounters(bool8 state);
u8 GetUnownLetterByPersonalityLoByte(u32 personality);
bool8 SweetScentWildEncounter(void);
-void sub_8083214(u16 randVal);
+void SeedWildEncounterRng(u16 randVal);
+void ResetEncounterRateModifiers(void);
#endif // GUARD_WILD_ENCOUNTER_H
diff --git a/json_data_rules.mk b/json_data_rules.mk
index 980e63e88..9b5cebe5d 100644
--- a/json_data_rules.mk
+++ b/json_data_rules.mk
@@ -1,9 +1,15 @@
# JSON files are run through jsonproc, which is a tool that converts JSON data to an output file
# based on an Inja template. https://github.com/pantor/inja
-AUTO_GEN_TARGETS += src/data/items.h
+AUTO_GEN_TARGETS += $(DATA_C_SUBDIR)/items.h
-src/data/items.h: src/data/items.json src/data/items.json.txt
+$(DATA_C_SUBDIR)/items.h: $(DATA_C_SUBDIR)/items.json $(DATA_C_SUBDIR)/items.json.txt
$(JSONPROC) $^ $@
-$(C_BUILDDIR)/item.o: c_dep += src/data/items.h
+$(C_BUILDDIR)/item.o: c_dep += $(DATA_C_SUBDIR)/items.h
+
+AUTO_GEN_TARGETS += $(DATA_C_SUBDIR)/wild_encounters.h
+$(DATA_C_SUBDIR)/wild_encounters.h: $(DATA_C_SUBDIR)/wild_encounters.json $(DATA_C_SUBDIR)/wild_encounters.json.txt
+ $(JSONPROC) $^ $@
+
+$(C_BUILDDIR)/wild_encounter.o: c_dep += $(DATA_C_SUBDIR)/wild_encounters.h
diff --git a/ld_script.txt b/ld_script.txt
index f8e33aa9f..a8919e9b2 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -125,7 +125,7 @@ SECTIONS {
src/battle_setup.o(.text);
asm/cable_club.o(.text);
asm/trainer_see.o(.text);
- asm/wild_encounter.o(.text);
+ src/wild_encounter.o(.text);
asm/field_effect.o(.text);
src/scanline_effect.o(.text);
asm/option_menu.o(.text);
@@ -426,9 +426,12 @@ SECTIONS {
data/battle_anim_status_effects.o(.rodata);
src/title_screen.o(.rodata);
data/field_weather.o(.rodata);
- data/data_835B488.o(.rodata);
+ data/field_screen_effect.o(.rodata);
src/battle_setup.o(.rodata);
- data/data_835B488.o(.rodata.83C6AB0);
+ data/cable_club.o(.rodata);
+ data/trainer_see.o(.rodata);
+ src/wild_encounter.o(.rodata);
+ data/data_835B488.o(.rodata);
src/pokemon_icon.o(.rodata);
data/data_835B488.o(.rodata.83D4100);
src/item_menu_icons.o(.rodata);
diff --git a/src/data/wild_encounters.json b/src/data/wild_encounters.json
new file mode 100644
index 000000000..9030dee5f
--- /dev/null
+++ b/src/data/wild_encounters.json
@@ -0,0 +1,12625 @@
+{
+ "wild_encounter_groups": [
+ {
+ "label": "gWildMonHeaders",
+ "for_maps": true,
+ "fields": [
+ {
+ "type": "land_mons",
+ "encounter_rates": [
+ 20,
+ 20,
+ 10,
+ 10,
+ 10,
+ 10,
+ 5,
+ 5,
+ 4,
+ 4,
+ 1,
+ 1
+ ]
+ },
+ {
+ "type": "water_mons",
+ "encounter_rates": [
+ 60,
+ 30,
+ 5,
+ 4,
+ 1
+ ]
+ },
+ {
+ "type": "rock_smash_mons",
+ "encounter_rates": [
+ 60,
+ 30,
+ 5,
+ 4,
+ 1
+ ]
+ },
+ {
+ "type": "fishing_mons",
+ "encounter_rates": [
+ 70,
+ 30,
+ 60,
+ 20,
+ 20,
+ 40,
+ 40,
+ 15,
+ 4,
+ 1
+ ],
+ "groups": {
+ "old_rod": [
+ 0,
+ 1
+ ],
+ "good_rod": [
+ 2,
+ 3,
+ 4
+ ],
+ "super_rod": [
+ 5,
+ 6,
+ 7,
+ 8,
+ 9
+ ]
+ }
+ }
+ ],
+ "encounters": [
+ {
+ "map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER",
+ "base_label": "sSevenIslandTanobyRuinsMoneanChamber",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER",
+ "base_label": "sSevenIslandTanobyRuinsLiptooChamber",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER",
+ "base_label": "sSevenIslandTanobyRuinsWeepthChamber",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER",
+ "base_label": "sSevenIslandTanobyRuinsDilfordChamber",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER",
+ "base_label": "sSevenIslandTanobyRuinsScufibChamber",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER",
+ "base_label": "sSevenIslandTanobyRuinsRixyChamber",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER",
+ "base_label": "sSevenIslandTanobyRuinsViapoisChamber",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_UNOWN"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_VIRIDIAN_FOREST",
+ "base_label": "sViridianForest",
+ "land_mons": {
+ "encounter_rate": 14,
+ "mons": [
+ {
+ "min_level": 4,
+ "max_level": 4,
+ "species": "SPECIES_CATERPIE"
+ },
+ {
+ "min_level": 4,
+ "max_level": 4,
+ "species": "SPECIES_WEEDLE"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_CATERPIE"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_WEEDLE"
+ },
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_CATERPIE"
+ },
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_WEEDLE"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_METAPOD"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_KAKUNA"
+ },
+ {
+ "min_level": 4,
+ "max_level": 4,
+ "species": "SPECIES_KAKUNA"
+ },
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_PIKACHU"
+ },
+ {
+ "min_level": 6,
+ "max_level": 6,
+ "species": "SPECIES_KAKUNA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_PIKACHU"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_MT_MOON_1F",
+ "base_label": "sMtMoon1F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_CLEFAIRY"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_MT_MOON_B1F",
+ "base_label": "sMtMoonB1F",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 6,
+ "max_level": 6,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 6,
+ "max_level": 6,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_PARAS"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_MT_MOON_B2F",
+ "base_label": "sMtMoonB2F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_CLEFAIRY"
+ },
+ {
+ "min_level": 11,
+ "max_level": 11,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 11,
+ "max_level": 11,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 11,
+ "max_level": 11,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_CLEFAIRY"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SSANNE_EXTERIOR",
+ "base_label": "sSSAnneExterior",
+ "water_mons": {
+ "encounter_rate": 1,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 10,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_SHELLDER"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_DIGLETTS_CAVE_B1F",
+ "base_label": "sDiglettsCaveB1F",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_DIGLETT"
+ },
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_DIGLETT"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_DIGLETT"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_DIGLETT"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_DIGLETT"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_DIGLETT"
+ },
+ {
+ "min_level": 21,
+ "max_level": 21,
+ "species": "SPECIES_DIGLETT"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_DIGLETT"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_DIGLETT"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_DUGTRIO"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_DIGLETT"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_DUGTRIO"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_VICTORY_ROAD_1F",
+ "base_label": "sVictoryRoad1F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_ONIX"
+ },
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_ONIX"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_ONIX"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_ARBOK"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_MAROWAK"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_MAROWAK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_VICTORY_ROAD_2F",
+ "base_label": "sVictoryRoad2F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 42,
+ "max_level": 42,
+ "species": "SPECIES_PRIMEAPE"
+ },
+ {
+ "min_level": 45,
+ "max_level": 45,
+ "species": "SPECIES_ONIX"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_ONIX"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_ARBOK"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_MAROWAK"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_MAROWAK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_VICTORY_ROAD_3F",
+ "base_label": "sVictoryRoad3F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_ONIX"
+ },
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_ONIX"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_ONIX"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_ARBOK"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_MAROWAK"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_MAROWAK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_POKEMON_MANSION_1F",
+ "base_label": "sPokemonMansion1F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_KOFFING"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_RATICATE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_KOFFING"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_RATICATE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_GRIMER"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_WEEZING"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_RATTATA"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_POKEMON_MANSION_2F",
+ "base_label": "sPokemonMansion2F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_KOFFING"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_RATICATE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_KOFFING"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_RATICATE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_GRIMER"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_WEEZING"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_RATTATA"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_POKEMON_MANSION_3F",
+ "base_label": "sPokemonMansion3F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_KOFFING"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_RATICATE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_KOFFING"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_RATICATE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_GRIMER"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_WEEZING"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_RATTATA"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_POKEMON_MANSION_B1F",
+ "base_label": "sPokemonMansionB1F",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_KOFFING"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_RATICATE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_KOFFING"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_DITTO"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_RATICATE"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_GRIMER"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_WEEZING"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_RATTATA"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SAFARI_ZONE_CENTER",
+ "base_label": "sSafariZoneCenter",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_RHYHORN"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_NIDORAN_M"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_EXEGGCUTE"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_EXEGGCUTE"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_NIDORINO"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_NIDORINA"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_PARASECT"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_SCYTHER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_CHANSEY"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 30,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_SEAKING"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_DRATINI"
+ },
+ {
+ "min_level": 15,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_DRAGONAIR"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SAFARI_ZONE_EAST",
+ "base_label": "sSafariZoneEast",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_NIDORAN_M"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_DODUO"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_EXEGGCUTE"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_EXEGGCUTE"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 33,
+ "max_level": 33,
+ "species": "SPECIES_NIDORINO"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_NIDORAN_F"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_PARASECT"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_KANGASKHAN"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_SCYTHER"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 30,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_SEAKING"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_DRATINI"
+ },
+ {
+ "min_level": 15,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_DRAGONAIR"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SAFARI_ZONE_NORTH",
+ "base_label": "sSafariZoneNorth",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_RHYHORN"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_NIDORAN_M"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_EXEGGCUTE"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_EXEGGCUTE"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_NIDORINO"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_NIDORINA"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_VENOMOTH"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_CHANSEY"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_PARAS"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_TAUROS"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 30,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_SEAKING"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_DRATINI"
+ },
+ {
+ "min_level": 15,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_DRAGONAIR"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SAFARI_ZONE_WEST",
+ "base_label": "sSafariZoneWest",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_DODUO"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_NIDORAN_M"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_EXEGGCUTE"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_EXEGGCUTE"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_NIDORINO"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_NIDORAN_F"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_VENOMOTH"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_TAUROS"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_KANGASKHAN"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 30,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_SEAKING"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_DRATINI"
+ },
+ {
+ "min_level": 15,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_DRAGONAIR"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_CERULEAN_CAVE_1F",
+ "base_label": "sCeruleanCave1F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 49,
+ "max_level": 49,
+ "species": "SPECIES_MAGNETON"
+ },
+ {
+ "min_level": 49,
+ "max_level": 49,
+ "species": "SPECIES_PARASECT"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_PRIMEAPE"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_DITTO"
+ },
+ {
+ "min_level": 58,
+ "max_level": 58,
+ "species": "SPECIES_ELECTRODE"
+ },
+ {
+ "min_level": 58,
+ "max_level": 58,
+ "species": "SPECIES_PARASECT"
+ },
+ {
+ "min_level": 55,
+ "max_level": 55,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 55,
+ "max_level": 55,
+ "species": "SPECIES_WOBBUFFET"
+ },
+ {
+ "min_level": 61,
+ "max_level": 61,
+ "species": "SPECIES_PRIMEAPE"
+ },
+ {
+ "min_level": 61,
+ "max_level": 61,
+ "species": "SPECIES_DITTO"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 40,
+ "max_level": 50,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 45,
+ "max_level": 55,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 40,
+ "max_level": 50,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 40,
+ "max_level": 50,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ },
+ "rock_smash_mons": {
+ "encounter_rate": 50,
+ "mons": [
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 40,
+ "max_level": 50,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 45,
+ "max_level": 55,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 40,
+ "max_level": 50,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 40,
+ "max_level": 50,
+ "species": "SPECIES_GEODUDE"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_POLIWHIRL"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_CERULEAN_CAVE_2F",
+ "base_label": "sCeruleanCave2F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 49,
+ "max_level": 49,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 49,
+ "max_level": 49,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_MAGNETON"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_PARASECT"
+ },
+ {
+ "min_level": 55,
+ "max_level": 55,
+ "species": "SPECIES_KADABRA"
+ },
+ {
+ "min_level": 55,
+ "max_level": 55,
+ "species": "SPECIES_DITTO"
+ },
+ {
+ "min_level": 58,
+ "max_level": 58,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 58,
+ "max_level": 58,
+ "species": "SPECIES_WOBBUFFET"
+ },
+ {
+ "min_level": 61,
+ "max_level": 61,
+ "species": "SPECIES_ELECTRODE"
+ },
+ {
+ "min_level": 61,
+ "max_level": 61,
+ "species": "SPECIES_PARASECT"
+ },
+ {
+ "min_level": 64,
+ "max_level": 64,
+ "species": "SPECIES_KADABRA"
+ },
+ {
+ "min_level": 64,
+ "max_level": 64,
+ "species": "SPECIES_DITTO"
+ }
+ ]
+ },
+ "rock_smash_mons": {
+ "encounter_rate": 50,
+ "mons": [
+ {
+ "min_level": 35,
+ "max_level": 45,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 45,
+ "max_level": 55,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 60,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 45,
+ "max_level": 55,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 45,
+ "max_level": 55,
+ "species": "SPECIES_GEODUDE"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_CERULEAN_CAVE_B1F",
+ "base_label": "sCeruleanCaveB1F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 58,
+ "max_level": 58,
+ "species": "SPECIES_KADABRA"
+ },
+ {
+ "min_level": 58,
+ "max_level": 58,
+ "species": "SPECIES_DITTO"
+ },
+ {
+ "min_level": 55,
+ "max_level": 55,
+ "species": "SPECIES_MAGNETON"
+ },
+ {
+ "min_level": 55,
+ "max_level": 55,
+ "species": "SPECIES_PARASECT"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 67,
+ "max_level": 67,
+ "species": "SPECIES_KADABRA"
+ },
+ {
+ "min_level": 67,
+ "max_level": 67,
+ "species": "SPECIES_DITTO"
+ },
+ {
+ "min_level": 64,
+ "max_level": 64,
+ "species": "SPECIES_ELECTRODE"
+ },
+ {
+ "min_level": 64,
+ "max_level": 64,
+ "species": "SPECIES_PARASECT"
+ },
+ {
+ "min_level": 61,
+ "max_level": 61,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 61,
+ "max_level": 61,
+ "species": "SPECIES_WOBBUFFET"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 50,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 50,
+ "max_level": 60,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 55,
+ "max_level": 65,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 50,
+ "max_level": 60,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 50,
+ "max_level": 60,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ },
+ "rock_smash_mons": {
+ "encounter_rate": 50,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 50,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 50,
+ "max_level": 60,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 55,
+ "max_level": 65,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 60,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 50,
+ "max_level": 60,
+ "species": "SPECIES_GEODUDE"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_POLIWHIRL"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_GYARADOS"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROCK_TUNNEL_1F",
+ "base_label": "sRockTunnel1F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_MANKEY"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_MANKEY"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_ONIX"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_ONIX"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROCK_TUNNEL_B1F",
+ "base_label": "sRockTunnelB1F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_MANKEY"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_MANKEY"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_ONIX"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_ONIX"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_ONIX"
+ }
+ ]
+ },
+ "rock_smash_mons": {
+ "encounter_rate": 50,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 15,
+ "max_level": 30,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 25,
+ "max_level": 40,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GRAVELER"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEAFOAM_ISLANDS_1F",
+ "base_label": "sSeafoamIslands1F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 33,
+ "max_level": 33,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_GOLBAT"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEAFOAM_ISLANDS_B1F",
+ "base_label": "sSeafoamIslandsB1F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 33,
+ "max_level": 33,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 35,
+ "max_level": 35,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_GOLBAT"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEAFOAM_ISLANDS_B2F",
+ "base_label": "sSeafoamIslandsB2F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_GOLBAT"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEAFOAM_ISLANDS_B3F",
+ "base_label": "sSeafoamIslandsB3F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_DEWGONG"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_DEWGONG"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_GOLBAT"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 25,
+ "max_level": 30,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_DEWGONG"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_GOLDUCK"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_GYARADOS"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEAFOAM_ISLANDS_B4F",
+ "base_label": "sSeafoamIslandsB4F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_DEWGONG"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_DEWGONG"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_DEWGONG"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_GOLBAT"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 25,
+ "max_level": 30,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_DEWGONG"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_GOLDUCK"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_GYARADOS"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_POKEMON_TOWER_3F",
+ "base_label": "sPokemonTower3F",
+ "land_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_CUBONE"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_CUBONE"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_HAUNTER"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_POKEMON_TOWER_4F",
+ "base_label": "sPokemonTower4F",
+ "land_mons": {
+ "encounter_rate": 4,
+ "mons": [
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_CUBONE"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_CUBONE"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_GASTLY"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_POKEMON_TOWER_5F",
+ "base_label": "sPokemonTower5F",
+ "land_mons": {
+ "encounter_rate": 6,
+ "mons": [
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_CUBONE"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_CUBONE"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_GASTLY"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_POKEMON_TOWER_6F",
+ "base_label": "sPokemonTower6F",
+ "land_mons": {
+ "encounter_rate": 8,
+ "mons": [
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 21,
+ "max_level": 21,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_CUBONE"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_CUBONE"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_HAUNTER"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_POKEMON_TOWER_7F",
+ "base_label": "sPokemonTower7F",
+ "land_mons": {
+ "encounter_rate": 10,
+ "mons": [
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_CUBONE"
+ },
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_CUBONE"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_HAUNTER"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_POWER_PLANT",
+ "base_label": "sPowerPlant",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_VOLTORB"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MAGNEMITE"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_VOLTORB"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_MAGNEMITE"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_PIKACHU"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_PIKACHU"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_MAGNETON"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_MAGNETON"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_PIKACHU"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_ELECTABUZZ"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_PIKACHU"
+ },
+ {
+ "min_level": 35,
+ "max_level": 35,
+ "species": "SPECIES_ELECTABUZZ"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_MT_EMBER_EXTERIOR",
+ "base_label": "sMtEmberExterior",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_PONYTA"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 33,
+ "max_level": 33,
+ "species": "SPECIES_PONYTA"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 35,
+ "max_level": 35,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 33,
+ "max_level": 33,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_PONYTA"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 39,
+ "max_level": 39,
+ "species": "SPECIES_RAPIDASH"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 42,
+ "max_level": 42,
+ "species": "SPECIES_RAPIDASH"
+ }
+ ]
+ },
+ "rock_smash_mons": {
+ "encounter_rate": 50,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 15,
+ "max_level": 30,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 25,
+ "max_level": 40,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GRAVELER"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_MT_EMBER_SUMMIT_PATH_1F",
+ "base_label": "sMtEmberSummitPath1F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 33,
+ "max_level": 33,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 35,
+ "max_level": 35,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 33,
+ "max_level": 33,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 35,
+ "max_level": 35,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 39,
+ "max_level": 39,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 39,
+ "max_level": 39,
+ "species": "SPECIES_MACHOP"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_MT_EMBER_SUMMIT_PATH_2F",
+ "base_label": "sMtEmberSummitPath2F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_MACHOKE"
+ }
+ ]
+ },
+ "rock_smash_mons": {
+ "encounter_rate": 50,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 15,
+ "max_level": 30,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 25,
+ "max_level": 40,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GRAVELER"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_MT_EMBER_SUMMIT_PATH_3F",
+ "base_label": "sMtEmberSummitPath3F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 33,
+ "max_level": 33,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 35,
+ "max_level": 35,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 33,
+ "max_level": 33,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 35,
+ "max_level": 35,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 39,
+ "max_level": 39,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 39,
+ "max_level": 39,
+ "species": "SPECIES_MACHOP"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_MT_EMBER_RUBY_PATH_1F",
+ "base_label": "sMtEmberRubyPath1F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_MACHOP"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 42,
+ "max_level": 42,
+ "species": "SPECIES_MACHOKE"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 42,
+ "max_level": 42,
+ "species": "SPECIES_MACHOKE"
+ }
+ ]
+ },
+ "rock_smash_mons": {
+ "encounter_rate": 50,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 45,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 35,
+ "max_level": 50,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_MT_EMBER_RUBY_PATH_B1F",
+ "base_label": "sMtEmberRubyPathB1F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 42,
+ "max_level": 42,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 42,
+ "max_level": 42,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 42,
+ "max_level": 42,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_SLUGMA"
+ }
+ ]
+ },
+ "rock_smash_mons": {
+ "encounter_rate": 50,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 45,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 35,
+ "max_level": 50,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_MT_EMBER_RUBY_PATH_B2F",
+ "base_label": "sMtEmberRubyPathB2F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 42,
+ "max_level": 42,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_SLUGMA"
+ }
+ ]
+ },
+ "rock_smash_mons": {
+ "encounter_rate": 50,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 45,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 35,
+ "max_level": 50,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_MT_EMBER_RUBY_PATH_B3F",
+ "base_label": "sMtEmberRubyPathB3F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_SLUGMA"
+ }
+ ]
+ },
+ "rock_smash_mons": {
+ "encounter_rate": 50,
+ "mons": [
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 40,
+ "max_level": 45,
+ "species": "SPECIES_MAGCARGO"
+ },
+ {
+ "min_level": 35,
+ "max_level": 45,
+ "species": "SPECIES_MAGCARGO"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_MAGCARGO"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_MT_EMBER_RUBY_PATH_B1F_STAIRS",
+ "base_label": "sMtEmberRubyPathB1FStairs",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 42,
+ "max_level": 42,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_SLUGMA"
+ }
+ ]
+ },
+ "rock_smash_mons": {
+ "encounter_rate": 50,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 45,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 35,
+ "max_level": 50,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_MT_EMBER_RUBY_PATH_B2F_STAIRS",
+ "base_label": "sMtEmberRubyPathB2FStairs",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 42,
+ "max_level": 42,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 42,
+ "max_level": 42,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_SLUGMA"
+ },
+ {
+ "min_level": 42,
+ "max_level": 42,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_SLUGMA"
+ }
+ ]
+ },
+ "rock_smash_mons": {
+ "encounter_rate": 50,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 45,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 35,
+ "max_level": 50,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_THREE_ISLAND_BERRY_FOREST",
+ "base_label": "sThreeIslandBerryForest",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_PIDGEOTTO"
+ },
+ {
+ "min_level": 35,
+ "max_level": 35,
+ "species": "SPECIES_GLOOM"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_DROWZEE"
+ },
+ {
+ "min_level": 35,
+ "max_level": 35,
+ "species": "SPECIES_EXEGGCUTE"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_VENOMOTH"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_HYPNO"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_VENOMOTH"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_HYPNO"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 20,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_GOLDUCK"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_SEAKING"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE",
+ "base_label": "sFourIslandIcefallCaveEntrance",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 45,
+ "max_level": 45,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 45,
+ "max_level": 45,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 47,
+ "max_level": 47,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 49,
+ "max_level": 49,
+ "species": "SPECIES_DEWGONG"
+ },
+ {
+ "min_level": 51,
+ "max_level": 51,
+ "species": "SPECIES_DEWGONG"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 53,
+ "max_level": 53,
+ "species": "SPECIES_DEWGONG"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 53,
+ "max_level": 53,
+ "species": "SPECIES_DEWGONG"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 35,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 5,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_DEWGONG"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_WOOPER"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_WOOPER"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_POLIWHIRL"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F",
+ "base_label": "sFourIslandIcefallCave1F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_SWINUB"
+ },
+ {
+ "min_level": 45,
+ "max_level": 45,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 45,
+ "max_level": 45,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_SWINUB"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_SWINUB"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_DELIBIRD"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_SWINUB"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_SWINUB"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_SWINUB"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F",
+ "base_label": "sFourIslandIcefallCaveB1F",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_SWINUB"
+ },
+ {
+ "min_level": 45,
+ "max_level": 45,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 45,
+ "max_level": 45,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_SWINUB"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_SWINUB"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_DELIBIRD"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_SWINUB"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_SWINUB"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_SWINUB"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_BACK",
+ "base_label": "sFourIslandIcefallCaveBack",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 45,
+ "max_level": 45,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 45,
+ "max_level": 45,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 47,
+ "max_level": 47,
+ "species": "SPECIES_SEEL"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 49,
+ "max_level": 49,
+ "species": "SPECIES_DEWGONG"
+ },
+ {
+ "min_level": 51,
+ "max_level": 51,
+ "species": "SPECIES_DEWGONG"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 53,
+ "max_level": 53,
+ "species": "SPECIES_DEWGONG"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 53,
+ "max_level": 53,
+ "species": "SPECIES_DEWGONG"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 45,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 45,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 45,
+ "species": "SPECIES_LAPRAS"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_SHELLDER"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SIX_ISLAND_PATTERN_BUSH",
+ "base_label": "sSixIslandPatternBush",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_SPINARAK"
+ },
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_KAKUNA"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_SPINARAK"
+ },
+ {
+ "min_level": 6,
+ "max_level": 6,
+ "species": "SPECIES_CATERPIE"
+ },
+ {
+ "min_level": 6,
+ "max_level": 6,
+ "species": "SPECIES_WEEDLE"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_HERACROSS"
+ },
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_METAPOD"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_HERACROSS"
+ },
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_LEDYBA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_HERACROSS"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_LEDYBA"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_HERACROSS"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1",
+ "base_label": "sFiveIslandLostCaveRoom1",
+ "land_mons": {
+ "encounter_rate": 1,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM2",
+ "base_label": "sFiveIslandLostCaveRoom2",
+ "land_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM3",
+ "base_label": "sFiveIslandLostCaveRoom3",
+ "land_mons": {
+ "encounter_rate": 3,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM4",
+ "base_label": "sFiveIslandLostCaveRoom4",
+ "land_mons": {
+ "encounter_rate": 4,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM5",
+ "base_label": "sFiveIslandLostCaveRoom5",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM6",
+ "base_label": "sFiveIslandLostCaveRoom6",
+ "land_mons": {
+ "encounter_rate": 6,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM7",
+ "base_label": "sFiveIslandLostCaveRoom7",
+ "land_mons": {
+ "encounter_rate": 7,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM8",
+ "base_label": "sFiveIslandLostCaveRoom8",
+ "land_mons": {
+ "encounter_rate": 8,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM9",
+ "base_label": "sFiveIslandLostCaveRoom9",
+ "land_mons": {
+ "encounter_rate": 9,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM10",
+ "base_label": "sFiveIslandLostCaveRoom10",
+ "land_mons": {
+ "encounter_rate": 10,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM11",
+ "base_label": "sFiveIslandLostCaveRoom11",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM12",
+ "base_label": "sFiveIslandLostCaveRoom12",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM13",
+ "base_label": "sFiveIslandLostCaveRoom13",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM14",
+ "base_label": "sFiveIslandLostCaveRoom14",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GASTLY"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_GOLBAT"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_HAUNTER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_MURKROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ONE_ISLAND_KINDLE_ROAD",
+ "base_label": "sOneIslandKindleRoad",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_PONYTA"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_PONYTA"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_RAPIDASH"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_PERSIAN"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_RAPIDASH"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_PERSIAN"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ }
+ ]
+ },
+ "rock_smash_mons": {
+ "encounter_rate": 25,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 15,
+ "max_level": 30,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 25,
+ "max_level": 40,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GRAVELER"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ONE_ISLAND_TREASURE_BEACH",
+ "base_label": "sOneIslandTreasureBeach",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 33,
+ "max_level": 33,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 35,
+ "max_level": 35,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_PERSIAN"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_PERSIAN"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_TWO_ISLAND_CAPE_BRINK",
+ "base_label": "sTwoIslandCapeBrink",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_GLOOM"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 38,
+ "max_level": 38,
+ "species": "SPECIES_GLOOM"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_PERSIAN"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_PERSIAN"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 20,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_GOLDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_GOLDUCK"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_POLIWHIRL"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_THREE_ISLAND_BOND_BRIDGE",
+ "base_label": "sThreeIslandBondBridge",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 36,
+ "max_level": 36,
+ "species": "SPECIES_GLOOM"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_PIDGEOTTO"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 31,
+ "max_level": 31,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_PIDGEOTTO"
+ },
+ {
+ "min_level": 37,
+ "max_level": 37,
+ "species": "SPECIES_PERSIAN"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_PIDGEOTTO"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_PERSIAN"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_THREE_ISLAND_PORT",
+ "base_label": "sThreeIslandPort",
+ "land_mons": {
+ "encounter_rate": 1,
+ "mons": [
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_DUNSPARCE"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_DUNSPARCE"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_DUNSPARCE"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_DUNSPARCE"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_DUNSPARCE"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_DUNSPARCE"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_DUNSPARCE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_DUNSPARCE"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_DUNSPARCE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_DUNSPARCE"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_DUNSPARCE"
+ },
+ {
+ "min_level": 35,
+ "max_level": 35,
+ "species": "SPECIES_DUNSPARCE"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS",
+ "base_label": "sFiveIslandResortGorgeous",
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_QWILFISH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_WATER_LABYRINTH",
+ "base_label": "sFiveIslandWaterLabyrinth",
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_QWILFISH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_MEADOW",
+ "base_label": "sFiveIslandMeadow",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_SENTRET"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_PIDGEOTTO"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_SENTRET"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_PIDGEOTTO"
+ },
+ {
+ "min_level": 47,
+ "max_level": 47,
+ "species": "SPECIES_PERSIAN"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_PIDGEOTTO"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_PERSIAN"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_QWILFISH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND_MEMORIAL_PILLAR",
+ "base_label": "sFiveIslandMemorialPillar",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 6,
+ "max_level": 6,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_HOPPIP"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_QWILFISH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SIX_ISLAND_OUTCAST_ISLAND",
+ "base_label": "sSixIslandOutcastIsland",
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_QWILFISH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SIX_ISLAND_GREEN_PATH",
+ "base_label": "sSixIslandGreenPath",
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_QWILFISH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SIX_ISLAND_WATER_PATH",
+ "base_label": "sSixIslandWaterPath",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_SENTRET"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_SENTRET"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_GLOOM"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 47,
+ "max_level": 47,
+ "species": "SPECIES_PERSIAN"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_PERSIAN"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_QWILFISH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SIX_ISLAND_RUIN_VALLEY",
+ "base_label": "sSixIslandRuinValley",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_NATU"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_YANMA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_WOOPER"
+ },
+ {
+ "min_level": 49,
+ "max_level": 49,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_WOBBUFFET"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_NATU"
+ },
+ {
+ "min_level": 49,
+ "max_level": 49,
+ "species": "SPECIES_PERSIAN"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_NATU"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_PERSIAN"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_WOOPER"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_WOOPER"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_WOOPER"
+ },
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_WOOPER"
+ },
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_WOOPER"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_POLIWHIRL"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEVEN_ISLAND_TRAINER_TOWER",
+ "base_label": "sSevenIslandTrainerTower",
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_QWILFISH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE",
+ "base_label": "sSevenIslandSevaultCanyonEntrance",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_SENTRET"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_PHANPY"
+ },
+ {
+ "min_level": 48,
+ "max_level": 48,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_SENTRET"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 41,
+ "max_level": 41,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_PHANPY"
+ },
+ {
+ "min_level": 47,
+ "max_level": 47,
+ "species": "SPECIES_PERSIAN"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_PHANPY"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_PERSIAN"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON",
+ "base_label": "sSevenIslandSevaultCanyon",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_PHANPY"
+ },
+ {
+ "min_level": 46,
+ "max_level": 46,
+ "species": "SPECIES_CUBONE"
+ },
+ {
+ "min_level": 50,
+ "max_level": 50,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_MAROWAK"
+ },
+ {
+ "min_level": 43,
+ "max_level": 43,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 54,
+ "max_level": 54,
+ "species": "SPECIES_ONIX"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_SKARMORY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_LARVITAR"
+ },
+ {
+ "min_level": 49,
+ "max_level": 49,
+ "species": "SPECIES_PERSIAN"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_LARVITAR"
+ },
+ {
+ "min_level": 52,
+ "max_level": 52,
+ "species": "SPECIES_PERSIAN"
+ }
+ ]
+ },
+ "rock_smash_mons": {
+ "encounter_rate": 25,
+ "mons": [
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 45,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 35,
+ "max_level": 50,
+ "species": "SPECIES_GRAVELER"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GEODUDE"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SEVEN_ISLAND_TANOBY_RUINS",
+ "base_label": "sSevenIslandTanobyRuins",
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_QWILFISH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE1",
+ "base_label": "sRoute1",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 2,
+ "max_level": 2,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 2,
+ "max_level": 2,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 4,
+ "max_level": 4,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 4,
+ "max_level": 4,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 4,
+ "max_level": 4,
+ "species": "SPECIES_RATTATA"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE2",
+ "base_label": "sRoute2",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 4,
+ "max_level": 4,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 4,
+ "max_level": 4,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 2,
+ "max_level": 2,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 2,
+ "max_level": 2,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 4,
+ "max_level": 4,
+ "species": "SPECIES_CATERPIE"
+ },
+ {
+ "min_level": 4,
+ "max_level": 4,
+ "species": "SPECIES_WEEDLE"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_CATERPIE"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_WEEDLE"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE3",
+ "base_label": "sRoute3",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 6,
+ "max_level": 6,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 6,
+ "max_level": 6,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_MANKEY"
+ },
+ {
+ "min_level": 6,
+ "max_level": 6,
+ "species": "SPECIES_NIDORAN_M"
+ },
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_JIGGLYPUFF"
+ },
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_NIDORAN_M"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_JIGGLYPUFF"
+ },
+ {
+ "min_level": 6,
+ "max_level": 6,
+ "species": "SPECIES_NIDORAN_F"
+ },
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_JIGGLYPUFF"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE4",
+ "base_label": "sRoute4",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 6,
+ "max_level": 6,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_MANKEY"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_MANKEY"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_EKANS"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE5",
+ "base_label": "sRoute5",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_MEOWTH"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE6",
+ "base_label": "sRoute6",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_MEOWTH"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 30,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_POLIWHIRL"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE7",
+ "base_label": "sRoute7",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_MEOWTH"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE8",
+ "base_label": "sRoute8",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_MEOWTH"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_GROWLITHE"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_GROWLITHE"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE9",
+ "base_label": "sRoute9",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 11,
+ "max_level": 11,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_EKANS"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE10",
+ "base_label": "sRoute10",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_VOLTORB"
+ },
+ {
+ "min_level": 11,
+ "max_level": 11,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_VOLTORB"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_VOLTORB"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_VOLTORB"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_VOLTORB"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_EKANS"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE11",
+ "base_label": "sRoute11",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 11,
+ "max_level": 11,
+ "species": "SPECIES_DROWZEE"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_DROWZEE"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_DROWZEE"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 15,
+ "species": "SPECIES_DROWZEE"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE12",
+ "base_label": "sRoute12",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_GLOOM"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_GLOOM"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 60,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE13",
+ "base_label": "sRoute13",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_DITTO"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_PIDGEOTTO"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_GLOOM"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_PIDGEOTTO"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_GLOOM"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE14",
+ "base_label": "sRoute14",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_DITTO"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_GLOOM"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_DITTO"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_PIDGEOTTO"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_DITTO"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_PIDGEOTTO"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE15",
+ "base_label": "sRoute15",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_VENONAT"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_DITTO"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_PIDGEOTTO"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_GLOOM"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_PIDGEOTTO"
+ },
+ {
+ "min_level": 30,
+ "max_level": 30,
+ "species": "SPECIES_GLOOM"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE16",
+ "base_label": "sRoute16",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_DODUO"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_DODUO"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_DODUO"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_RATICATE"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_RATICATE"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE17",
+ "base_label": "sRoute17",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_DODUO"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_DODUO"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_RATICATE"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_RATICATE"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_DODUO"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_RATICATE"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_FEAROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE18",
+ "base_label": "sRoute18",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_DODUO"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_DODUO"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_RATICATE"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_DODUO"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_RATICATE"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_FEAROW"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE19",
+ "base_label": "sRoute19",
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE20",
+ "base_label": "sRoute20",
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE21_NORTH",
+ "base_label": "sRoute21North",
+ "land_mons": {
+ "encounter_rate": 14,
+ "mons": [
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 21,
+ "max_level": 21,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_TANGELA"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE21_SOUTH",
+ "base_label": "sRoute21South",
+ "land_mons": {
+ "encounter_rate": 14,
+ "mons": [
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 21,
+ "max_level": 21,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 17,
+ "max_level": 17,
+ "species": "SPECIES_TANGELA"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_TANGELA"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE22",
+ "base_label": "sRoute22",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_MANKEY"
+ },
+ {
+ "min_level": 4,
+ "max_level": 4,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 4,
+ "max_level": 4,
+ "species": "SPECIES_MANKEY"
+ },
+ {
+ "min_level": 2,
+ "max_level": 2,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 2,
+ "max_level": 2,
+ "species": "SPECIES_MANKEY"
+ },
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MANKEY"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_RATTATA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MANKEY"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 30,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_POLIWHIRL"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE23",
+ "base_label": "sRoute23",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_MANKEY"
+ },
+ {
+ "min_level": 40,
+ "max_level": 40,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_MANKEY"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 34,
+ "max_level": 34,
+ "species": "SPECIES_EKANS"
+ },
+ {
+ "min_level": 42,
+ "max_level": 42,
+ "species": "SPECIES_PRIMEAPE"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_ARBOK"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 42,
+ "max_level": 42,
+ "species": "SPECIES_FEAROW"
+ },
+ {
+ "min_level": 32,
+ "max_level": 32,
+ "species": "SPECIES_SPEAROW"
+ },
+ {
+ "min_level": 44,
+ "max_level": 44,
+ "species": "SPECIES_FEAROW"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 30,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_POLIWHIRL"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE24",
+ "base_label": "sRoute24",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_WEEDLE"
+ },
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_CATERPIE"
+ },
+ {
+ "min_level": 11,
+ "max_level": 11,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_ABRA"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_KAKUNA"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_ABRA"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_METAPOD"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_ABRA"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ROUTE25",
+ "base_label": "sRoute25",
+ "land_mons": {
+ "encounter_rate": 21,
+ "mons": [
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_WEEDLE"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_CATERPIE"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 11,
+ "max_level": 11,
+ "species": "SPECIES_ABRA"
+ },
+ {
+ "min_level": 11,
+ "max_level": 11,
+ "species": "SPECIES_PIDGEY"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_ODDISH"
+ },
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_KAKUNA"
+ },
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_ABRA"
+ },
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_METAPOD"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_ABRA"
+ }
+ ]
+ },
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 30,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_POLIWHIRL"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_PALLET_TOWN",
+ "base_label": "sPalletTown",
+ "water_mons": {
+ "encounter_rate": 1,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 10,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_SHELLDER"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_VIRIDIAN_CITY",
+ "base_label": "sViridianCity",
+ "water_mons": {
+ "encounter_rate": 1,
+ "mons": [
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 30,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 10,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_POLIWHIRL"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_CERULEAN_CITY",
+ "base_label": "sCeruleanCity",
+ "water_mons": {
+ "encounter_rate": 1,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 10,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_VERMILION_CITY",
+ "base_label": "sVermilionCity",
+ "water_mons": {
+ "encounter_rate": 1,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 10,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_SHELLDER"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_CELADON_CITY",
+ "base_label": "sCeladonCity",
+ "water_mons": {
+ "encounter_rate": 1,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_KOFFING"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 10,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 30,
+ "max_level": 40,
+ "species": "SPECIES_GRIMER"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FUCHSIA_CITY",
+ "base_label": "sFuchsiaCity",
+ "water_mons": {
+ "encounter_rate": 1,
+ "mons": [
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 20,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 30,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 10,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_SEAKING"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_CINNABAR_ISLAND",
+ "base_label": "sCinnabarIsland",
+ "water_mons": {
+ "encounter_rate": 1,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 10,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 10,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 30,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 10,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_KRABBY"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_SHELLDER"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_ONE_ISLAND",
+ "base_label": "sOneIsland",
+ "water_mons": {
+ "encounter_rate": 1,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 20,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 20,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 10,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_SHELLDER"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FOUR_ISLAND",
+ "base_label": "sFourIsland",
+ "water_mons": {
+ "encounter_rate": 2,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_WOOPER"
+ },
+ {
+ "min_level": 5,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_WOOPER"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_WOOPER"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_WOOPER"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 20,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_GOLDEEN"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_POLIWAG"
+ },
+ {
+ "min_level": 20,
+ "max_level": 30,
+ "species": "SPECIES_POLIWHIRL"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_PSYDUCK"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_FIVE_ISLAND",
+ "base_label": "sFiveIsland",
+ "water_mons": {
+ "encounter_rate": 1,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 35,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HOPPIP"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACOOL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ },
+ {
+ "min_level": 35,
+ "max_level": 40,
+ "species": "SPECIES_TENTACRUEL"
+ }
+ ]
+ },
+ "fishing_mons": {
+ "encounter_rate": 10,
+ "mons": [
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_MAGIKARP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 15,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_HORSEA"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_SHELLDER"
+ },
+ {
+ "min_level": 15,
+ "max_level": 25,
+ "species": "SPECIES_GYARADOS"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_SEADRA"
+ },
+ {
+ "min_level": 25,
+ "max_level": 35,
+ "species": "SPECIES_PSYDUCK"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SIX_ISLAND_ALTERING_CAVE",
+ "base_label": "sSixIslandAlteringCave",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 10,
+ "max_level": 10,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 6,
+ "max_level": 6,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 8,
+ "max_level": 8,
+ "species": "SPECIES_ZUBAT"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_ZUBAT"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SIX_ISLAND_ALTERING_CAVE",
+ "base_label": "sSixIslandAlteringCave_2",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_MAREEP"
+ },
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_MAREEP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAREEP"
+ },
+ {
+ "min_level": 11,
+ "max_level": 11,
+ "species": "SPECIES_MAREEP"
+ },
+ {
+ "min_level": 7,
+ "max_level": 7,
+ "species": "SPECIES_MAREEP"
+ },
+ {
+ "min_level": 9,
+ "max_level": 9,
+ "species": "SPECIES_MAREEP"
+ },
+ {
+ "min_level": 13,
+ "max_level": 13,
+ "species": "SPECIES_MAREEP"
+ },
+ {
+ "min_level": 3,
+ "max_level": 3,
+ "species": "SPECIES_MAREEP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAREEP"
+ },
+ {
+ "min_level": 11,
+ "max_level": 11,
+ "species": "SPECIES_MAREEP"
+ },
+ {
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MAREEP"
+ },
+ {
+ "min_level": 11,
+ "max_level": 11,
+ "species": "SPECIES_MAREEP"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SIX_ISLAND_ALTERING_CAVE",
+ "base_label": "sSixIslandAlteringCave_3",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_PINECO"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_PINECO"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_PINECO"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_PINECO"
+ },
+ {
+ "min_level": 23,
+ "max_level": 23,
+ "species": "SPECIES_PINECO"
+ },
+ {
+ "min_level": 25,
+ "max_level": 25,
+ "species": "SPECIES_PINECO"
+ },
+ {
+ "min_level": 29,
+ "max_level": 29,
+ "species": "SPECIES_PINECO"
+ },
+ {
+ "min_level": 19,
+ "max_level": 19,
+ "species": "SPECIES_PINECO"
+ },
+ {
+ "min_level": 21,
+ "max_level": 21,
+ "species": "SPECIES_PINECO"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_PINECO"
+ },
+ {
+ "min_level": 21,
+ "max_level": 21,
+ "species": "SPECIES_PINECO"
+ },
+ {
+ "min_level": 27,
+ "max_level": 27,
+ "species": "SPECIES_PINECO"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SIX_ISLAND_ALTERING_CAVE",
+ "base_label": "sSixIslandAlteringCave_4",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_HOUNDOUR"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_HOUNDOUR"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_HOUNDOUR"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_HOUNDOUR"
+ },
+ {
+ "min_level": 16,
+ "max_level": 16,
+ "species": "SPECIES_HOUNDOUR"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_HOUNDOUR"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_HOUNDOUR"
+ },
+ {
+ "min_level": 12,
+ "max_level": 12,
+ "species": "SPECIES_HOUNDOUR"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_HOUNDOUR"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_HOUNDOUR"
+ },
+ {
+ "min_level": 14,
+ "max_level": 14,
+ "species": "SPECIES_HOUNDOUR"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_HOUNDOUR"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SIX_ISLAND_ALTERING_CAVE",
+ "base_label": "sSixIslandAlteringCave_5",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_TEDDIURSA"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_TEDDIURSA"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_TEDDIURSA"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_TEDDIURSA"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_TEDDIURSA"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_TEDDIURSA"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_TEDDIURSA"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_TEDDIURSA"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_TEDDIURSA"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_TEDDIURSA"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_TEDDIURSA"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_TEDDIURSA"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SIX_ISLAND_ALTERING_CAVE",
+ "base_label": "sSixIslandAlteringCave_6",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_AIPOM"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_AIPOM"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_AIPOM"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_AIPOM"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_AIPOM"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_AIPOM"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_AIPOM"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_AIPOM"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_AIPOM"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_AIPOM"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_AIPOM"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_AIPOM"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SIX_ISLAND_ALTERING_CAVE",
+ "base_label": "sSixIslandAlteringCave_7",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_SHUCKLE"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_SHUCKLE"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_SHUCKLE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_SHUCKLE"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_SHUCKLE"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_SHUCKLE"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_SHUCKLE"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_SHUCKLE"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_SHUCKLE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_SHUCKLE"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_SHUCKLE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_SHUCKLE"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SIX_ISLAND_ALTERING_CAVE",
+ "base_label": "sSixIslandAlteringCave_8",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_STANTLER"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_STANTLER"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_STANTLER"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_STANTLER"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_STANTLER"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_STANTLER"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_STANTLER"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_STANTLER"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_STANTLER"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_STANTLER"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_STANTLER"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_STANTLER"
+ }
+ ]
+ }
+ },
+ {
+ "map": "MAP_SIX_ISLAND_ALTERING_CAVE",
+ "base_label": "sSixIslandAlteringCave_9",
+ "land_mons": {
+ "encounter_rate": 5,
+ "mons": [
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_SMEARGLE"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_SMEARGLE"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_SMEARGLE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_SMEARGLE"
+ },
+ {
+ "min_level": 22,
+ "max_level": 22,
+ "species": "SPECIES_SMEARGLE"
+ },
+ {
+ "min_level": 24,
+ "max_level": 24,
+ "species": "SPECIES_SMEARGLE"
+ },
+ {
+ "min_level": 28,
+ "max_level": 28,
+ "species": "SPECIES_SMEARGLE"
+ },
+ {
+ "min_level": 18,
+ "max_level": 18,
+ "species": "SPECIES_SMEARGLE"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_SMEARGLE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_SMEARGLE"
+ },
+ {
+ "min_level": 20,
+ "max_level": 20,
+ "species": "SPECIES_SMEARGLE"
+ },
+ {
+ "min_level": 26,
+ "max_level": 26,
+ "species": "SPECIES_SMEARGLE"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/data/wild_encounters.json.txt b/src/data/wild_encounters.json.txt
new file mode 100644
index 000000000..bf848249f
--- /dev/null
+++ b/src/data/wild_encounters.json.txt
@@ -0,0 +1,90 @@
+{{ doNotModifyHeader }}
+
+## for wild_encounter_group in wild_encounter_groups
+{% if wild_encounter_group.for_maps %}
+## for wild_encounter_field in wild_encounter_group.fields
+{% if not existsIn(wild_encounter_field, "groups") %}
+## for encounter_rate in wild_encounter_field.encounter_rates
+{% if loop.index == 0 %}
+#define ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_SLOT_{{ loop.index }} {{ encounter_rate }} {% else %}#define ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_SLOT_{{ loop.index }} ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_SLOT_{{ subtract(loop.index, 1) }} + {{ encounter_rate }}{% endif %} {{ setVarInt(wild_encounter_field.type, loop.index) }}
+## endfor
+#define ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_TOTAL (ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_SLOT_{{ getVar(wild_encounter_field.type) }})
+{% else %}
+## for field_subgroup_key, field_subgroup_subarray in wild_encounter_field.groups
+## for field_subgroup_index in field_subgroup_subarray
+{% if loop.index == 0 %}
+#define ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_{{ upper(field_subgroup_key) }}_SLOT_{{ field_subgroup_index }} {{ at(wild_encounter_field.encounter_rates, field_subgroup_index) }} {% else %}#define ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_{{ upper(field_subgroup_key) }}_SLOT_{{ field_subgroup_index }} ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_{{ upper(field_subgroup_key) }}_SLOT_{{ getVar("previous_slot") }} + {{ at(wild_encounter_field.encounter_rates, field_subgroup_index) }}{% endif %}{{ setVarInt(concat(wild_encounter_field.type, field_subgroup_key), field_subgroup_index) }}{{ setVarInt("previous_slot", field_subgroup_index) }}
+## endfor
+#define ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_{{ upper(field_subgroup_key) }}_TOTAL (ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_{{ upper(field_subgroup_key) }}_SLOT_{{ getVar(concat(wild_encounter_field.type, field_subgroup_key)) }})
+## endfor
+{% endif %}
+## endfor
+{% endif %}
+
+
+
+## for encounter in wild_encounter_group.encounters
+{% if existsIn(encounter, "land_mons") %}
+const struct WildPokemon {{ encounter.base_label }}_LandMons[] =
+{
+## for wild_mon in encounter.land_mons.mons
+ { {{ wild_mon.min_level }}, {{ wild_mon.max_level }}, {{ wild_mon.species }} },
+## endfor
+};
+
+const struct WildPokemonInfo {{ encounter.base_label }}_LandMonsInfo = { {{encounter.land_mons.encounter_rate}}, {{ encounter.base_label }}_LandMons };
+{% endif %}
+{% if existsIn(encounter, "water_mons") %}
+const struct WildPokemon {{ encounter.base_label }}_WaterMons[] =
+{
+## for wild_mon in encounter.water_mons.mons
+ { {{ wild_mon.min_level }}, {{ wild_mon.max_level }}, {{ wild_mon.species }} },
+## endfor
+};
+
+const struct WildPokemonInfo {{ encounter.base_label }}_WaterMonsInfo = { {{encounter.water_mons.encounter_rate}}, {{ encounter.base_label }}_WaterMons };
+{% endif %}
+{% if existsIn(encounter, "rock_smash_mons") %}
+const struct WildPokemon {{ encounter.base_label }}_RockSmashMons[] =
+{
+## for wild_mon in encounter.rock_smash_mons.mons
+ { {{ wild_mon.min_level }}, {{ wild_mon.max_level }}, {{ wild_mon.species }} },
+## endfor
+};
+
+const struct WildPokemonInfo {{ encounter.base_label }}_RockSmashMonsInfo = { {{encounter.rock_smash_mons.encounter_rate}}, {{ encounter.base_label }}_RockSmashMons };
+{% endif %}
+{% if existsIn(encounter, "fishing_mons") %}
+const struct WildPokemon {{ encounter.base_label }}_FishingMons[] =
+{
+## for wild_mon in encounter.fishing_mons.mons
+ { {{ wild_mon.min_level }}, {{ wild_mon.max_level }}, {{ wild_mon.species }} },
+## endfor
+};
+
+const struct WildPokemonInfo {{ encounter.base_label }}_FishingMonsInfo = { {{encounter.fishing_mons.encounter_rate}}, {{ encounter.base_label }}_FishingMons };
+{% endif %}
+## endfor
+
+const struct WildPokemonHeader {{ wild_encounter_group.label }}[] =
+{
+## for encounter in wild_encounter_group.encounters
+ {
+ .mapGroup = {% if wild_encounter_group.for_maps %}MAP_GROUP({{ removePrefix(encounter.map, "MAP_") }}){% else %}0{% endif %},
+ .mapNum = {% if wild_encounter_group.for_maps %}MAP_NUM({{ removePrefix(encounter.map, "MAP_") }}){% else %}{{ loop.index1 }}{% endif %},
+ .landMonsInfo = {% if existsIn(encounter, "land_mons") %}&{{ encounter.base_label }}_LandMonsInfo{% else %}NULL{% endif %},
+ .waterMonsInfo = {% if existsIn(encounter, "water_mons") %}&{{ encounter.base_label }}_WaterMonsInfo{% else %}NULL{% endif %},
+ .rockSmashMonsInfo = {% if existsIn(encounter, "rock_smash_mons") %}&{{ encounter.base_label }}_RockSmashMonsInfo{% else %}NULL{% endif %},
+ .fishingMonsInfo = {% if existsIn(encounter, "fishing_mons") %}&{{ encounter.base_label }}_FishingMonsInfo{% else %}NULL{% endif %},
+ },
+## endfor
+ {
+ .mapGroup = MAP_GROUP(UNDEFINED),
+ .mapNum = MAP_NUM(UNDEFINED),
+ .landMonsInfo = NULL,
+ .waterMonsInfo = NULL,
+ .rockSmashMonsInfo = NULL,
+ .fishingMonsInfo = NULL,
+ },
+};
+## endfor
diff --git a/src/new_game.c b/src/new_game.c
index e27c862bb..4c1dc2dbf 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -102,7 +102,7 @@ void ResetMenuAndMonGlobals(void)
ResetTMCaseCursorPos();
BerryPouch_CursorResetToTop();
sub_811089C();
- sub_8083214(Random());
+ SeedWildEncounterRng(Random());
ResetSpecialVars();
}
diff --git a/src/quest_log.c b/src/quest_log.c
index 896a44d17..d76a6173d 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -870,7 +870,7 @@ static void sub_8110F90(u8 unused)
gSaveBlock1Ptr->location.warpId = -1;
gUnknown_203ADF8 = 0;
gDisableMapMusicChangeOnMapLoad = 1;
- sub_8082740(1);
+ DisableWildEncounters(TRUE);
sub_8111368();
}
@@ -1600,7 +1600,7 @@ static void sub_81120AC(u8 taskId)
ScriptContext2_Disable();
gTextFlags.autoScroll = FALSE;
gUnknown_2036E28 = 0;
- sub_8082740(0);
+ DisableWildEncounters(FALSE);
gHelpSystemEnabled = TRUE;
DestroyTask(taskId);
break;
diff --git a/src/wild_encounter.c b/src/wild_encounter.c
new file mode 100644
index 000000000..f17e1f79b
--- /dev/null
+++ b/src/wild_encounter.c
@@ -0,0 +1,789 @@
+#include "global.h"
+#include "random.h"
+#include "wild_encounter.h"
+#include "event_data.h"
+#include "fieldmap.h"
+#include "roamer.h"
+#include "field_player_avatar.h"
+#include "battle_setup.h"
+#include "overworld.h"
+#include "metatile_behavior.h"
+#include "event_scripts.h"
+#include "script.h"
+#include "link.h"
+#include "quest_log.h"
+#include "constants/species.h"
+#include "constants/maps.h"
+#include "constants/vars.h"
+#include "constants/abilities.h"
+#include "constants/items.h"
+
+struct WildEncounterData
+{
+ u32 rngState;
+ u16 prevMetatileBehavior;
+ u16 encounterRateBuff;
+ u8 stepsSinceLastEncounter;
+ u8 abilityEffect;
+ u16 leadMonHeldItem;
+};
+
+static EWRAM_DATA struct WildEncounterData sWildEncounterData = {};
+static EWRAM_DATA bool8 sWildEncountersDisabled = FALSE;
+
+static bool8 UnlockedTanobyOrAreNotInTanoby(void);
+static u32 GenerateUnownPersonalityByLetter(u8 letter);
+static bool8 IsWildLevelAllowedByRepel(u8 level);
+static void ApplyFluteEncounterRateMod(u32 *rate);
+static u8 GetFluteEncounterRateModType(void);
+static void ApplyCleanseTagEncounterRateMod(u32 *rate);
+static bool8 IsLeadMonHoldingCleanseTag(void);
+static u16 WildEncounterRandom(void);
+static void AddToWildEncounterRateBuff(u8 encouterRate);
+
+#include "data/wild_encounters.h"
+
+static const u8 sUnownLetterSlots[][12] = {
+ // A A A A A A A A A A A ?
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27},
+ // C C C D D D H H H U U O
+ { 2, 2, 2, 3, 3, 3, 7, 7, 7, 20, 20, 14},
+ // N N N N S S S S I I E E
+ {13, 13, 13, 13, 18, 18, 18, 18, 8, 8, 4, 4},
+ // P P L L J J R R R Q Q Q
+ {15, 15, 11, 11, 9, 9, 17, 17, 17, 16, 16, 16},
+ // Y Y T T G G G F F F K K
+ {24, 24, 19, 19, 6, 6, 6, 5, 5, 5, 10, 10},
+ // V V V W W W X X M M B B
+ {21, 21, 21, 22, 22, 22, 23, 23, 12, 12, 1, 1},
+ // Z Z Z Z Z Z Z Z Z Z Z !
+ {25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26},
+};
+
+void DisableWildEncounters(bool8 state)
+{
+ sWildEncountersDisabled = state;
+}
+
+static u8 ChooseWildMonIndex_Land(void)
+{
+ u8 rand = Random() % ENCOUNTER_CHANCE_LAND_MONS_TOTAL;
+
+ if (rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_0)
+ return 0;
+ else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_0 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_1)
+ return 1;
+ else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_1 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_2)
+ return 2;
+ else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_2 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_3)
+ return 3;
+ else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_3 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_4)
+ return 4;
+ else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_4 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_5)
+ return 5;
+ else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_5 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_6)
+ return 6;
+ else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_6 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_7)
+ return 7;
+ else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_7 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_8)
+ return 8;
+ else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_8 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_9)
+ return 9;
+ else if (rand == ENCOUNTER_CHANCE_LAND_MONS_SLOT_9)
+ return 10;
+ else
+ return 11;
+}
+
+static u8 ChooseWildMonIndex_WaterRock(void)
+{
+ u8 rand = Random() % ENCOUNTER_CHANCE_WATER_MONS_TOTAL;
+
+ if (rand < ENCOUNTER_CHANCE_WATER_MONS_SLOT_0)
+ return 0;
+ else if (rand >= ENCOUNTER_CHANCE_WATER_MONS_SLOT_0 && rand < ENCOUNTER_CHANCE_WATER_MONS_SLOT_1)
+ return 1;
+ else if (rand >= ENCOUNTER_CHANCE_WATER_MONS_SLOT_1 && rand < ENCOUNTER_CHANCE_WATER_MONS_SLOT_2)
+ return 2;
+ else if (rand >= ENCOUNTER_CHANCE_WATER_MONS_SLOT_2 && rand < ENCOUNTER_CHANCE_WATER_MONS_SLOT_3)
+ return 3;
+ else
+ return 4;
+}
+
+enum
+{
+ OLD_ROD,
+ GOOD_ROD,
+ SUPER_ROD
+};
+
+static u8 ChooseWildMonIndex_Fishing(u8 rod)
+{
+ u8 wildMonIndex = 0;
+ u8 rand = Random() % max(max(ENCOUNTER_CHANCE_FISHING_MONS_OLD_ROD_TOTAL, ENCOUNTER_CHANCE_FISHING_MONS_GOOD_ROD_TOTAL),
+ ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_TOTAL);
+
+ switch (rod)
+ {
+ case OLD_ROD:
+ if (rand < ENCOUNTER_CHANCE_FISHING_MONS_OLD_ROD_SLOT_0)
+ wildMonIndex = 0;
+ else
+ wildMonIndex = 1;
+ break;
+ case GOOD_ROD:
+ if (rand < ENCOUNTER_CHANCE_FISHING_MONS_GOOD_ROD_SLOT_2)
+ wildMonIndex = 2;
+ if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_GOOD_ROD_SLOT_2 && rand < ENCOUNTER_CHANCE_FISHING_MONS_GOOD_ROD_SLOT_3)
+ wildMonIndex = 3;
+ if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_GOOD_ROD_SLOT_3 && rand < ENCOUNTER_CHANCE_FISHING_MONS_GOOD_ROD_SLOT_4)
+ wildMonIndex = 4;
+ break;
+ case SUPER_ROD:
+ if (rand < ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_5)
+ wildMonIndex = 5;
+ if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_5 && rand < ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_6)
+ wildMonIndex = 6;
+ if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_6 && rand < ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_7)
+ wildMonIndex = 7;
+ if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_7 && rand < ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_8)
+ wildMonIndex = 8;
+ if (rand == ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_8)
+ wildMonIndex = 9;
+ break;
+ }
+ return wildMonIndex;
+}
+
+static u8 ChooseWildMonLevel(const struct WildPokemon * info)
+{
+ u8 lo;
+ u8 hi;
+ u8 mod;
+ u8 res;
+ if (info->maxLevel >= info->minLevel)
+ {
+ lo = info->minLevel;
+ hi = info->maxLevel;
+ }
+ else
+ {
+ lo = info->maxLevel;
+ hi = info->minLevel;
+ }
+ mod = hi - lo + 1;
+ res = Random() % mod;
+ return lo + res;
+}
+
+static u16 GetCurrentMapWildMonHeaderId(void)
+{
+ u16 i;
+
+ for (i = 0; ; i++)
+ {
+ const struct WildPokemonHeader * wildHeader = &gWildMonHeaders[i];
+ if (wildHeader->mapGroup == 0xFF)
+ break;
+
+ if (gWildMonHeaders[i].mapGroup == gSaveBlock1Ptr->location.mapGroup &&
+ gWildMonHeaders[i].mapNum == gSaveBlock1Ptr->location.mapNum)
+ {
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SIX_ISLAND_ALTERING_CAVE) &&
+ gSaveBlock1Ptr->location.mapNum == MAP_NUM(SIX_ISLAND_ALTERING_CAVE))
+ {
+ u16 alteringCaveId = VarGet(VAR_ALTERING_CAVE_WILD_SET);
+ if (alteringCaveId > 8)
+ alteringCaveId = 0;
+
+ i += alteringCaveId;
+ }
+
+ if (!UnlockedTanobyOrAreNotInTanoby())
+ break;
+ return i;
+ }
+ }
+
+ return -1;
+}
+
+static bool8 UnlockedTanobyOrAreNotInTanoby(void)
+{
+ if (FlagGet(FLAG_SYS_UNLOCKED_TANOBY_RUINS))
+ return TRUE;
+ if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER))
+ return TRUE;
+ if (!(gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER)
+ || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER)
+ || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER)
+ || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER)
+ || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER)
+ || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER)
+ || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER)
+ ))
+ return TRUE;
+ return FALSE;
+}
+
+static void GenerateWildMon(u16 species, u8 level, u8 slot)
+{
+ u32 personality;
+ s8 chamber;
+ ZeroEnemyPartyMons();
+ if (species != SPECIES_UNOWN)
+ {
+ CreateMonWithNature(&gEnemyParty[0], species, level, 32, Random() % 25);
+ }
+ else
+ {
+ chamber = gSaveBlock1Ptr->location.mapNum - MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER);
+ personality = GenerateUnownPersonalityByLetter(sUnownLetterSlots[chamber][slot]);
+ CreateMon(&gEnemyParty[0], species, level, 32, TRUE, personality, FALSE, 0);
+ }
+}
+
+static u32 GenerateUnownPersonalityByLetter(u8 letter)
+{
+ u32 personality;
+ do
+ {
+ personality = (Random() << 16) | Random();
+ } while (GetUnownLetterByPersonalityLoByte(personality) != letter);
+ return personality;
+}
+
+u8 GetUnownLetterByPersonalityLoByte(u32 personality)
+{
+ return (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 0x3)) % 0x1C;
+}
+
+enum
+{
+ WILD_AREA_LAND,
+ WILD_AREA_WATER,
+ WILD_AREA_ROCKS,
+ WILD_AREA_FISHING,
+};
+
+#define WILD_CHECK_REPEL 0x1
+#define WILD_CHECK_KEEN_EYE 0x2
+
+static bool8 TryGenerateWildMon(const struct WildPokemonInfo * info, u8 area, u8 flags)
+{
+ u8 slot = 0;
+ u8 level;
+ switch (area)
+ {
+ case WILD_AREA_LAND:
+ slot = ChooseWildMonIndex_Land();
+ break;
+ case WILD_AREA_WATER:
+ slot = ChooseWildMonIndex_WaterRock();
+ break;
+ case WILD_AREA_ROCKS:
+ slot = ChooseWildMonIndex_WaterRock();
+ break;
+ }
+ level = ChooseWildMonLevel(&info->wildPokemon[slot]);
+ if (flags == WILD_CHECK_REPEL && !IsWildLevelAllowedByRepel(level))
+ {
+ return FALSE;
+ }
+ GenerateWildMon(info->wildPokemon[slot].species, level, slot);
+ return TRUE;
+}
+
+static u16 GenerateFishingEncounter(const struct WildPokemonInfo * info, u8 rod)
+{
+ u8 slot = ChooseWildMonIndex_Fishing(rod);
+ u8 level = ChooseWildMonLevel(&info->wildPokemon[slot]);
+ GenerateWildMon(info->wildPokemon[slot].species, level, slot);
+ return info->wildPokemon[slot].species;
+}
+
+static bool8 DoWildEncounterRateDiceRoll(u16 a0)
+{
+ if (WildEncounterRandom() % 1600 < a0)
+ return TRUE;
+ return FALSE;
+}
+
+static bool8 DoWildEncounterRateTest(u32 encounterRate, bool8 ignoreAbility)
+{
+ encounterRate *= 16;
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE))
+ encounterRate = encounterRate * 80 / 100;
+ encounterRate += sWildEncounterData.encounterRateBuff * 16 / 200;
+ ApplyFluteEncounterRateMod(&encounterRate);
+ ApplyCleanseTagEncounterRateMod(&encounterRate);
+ if (!ignoreAbility)
+ {
+ switch (sWildEncounterData.abilityEffect)
+ {
+ case 1:
+ encounterRate /= 2;
+ break;
+ case 2:
+ encounterRate *= 2;
+ break;
+ }
+ }
+ if (encounterRate > 1600)
+ encounterRate = 1600;
+ return DoWildEncounterRateDiceRoll(encounterRate);
+}
+
+static u8 GetAbilityEncounterRateModType(void)
+{
+ sWildEncounterData.abilityEffect = 0;
+ if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG))
+ {
+ u8 ability = GetMonAbility(&gPlayerParty[0]);
+ if (ability == ABILITY_STENCH)
+ sWildEncounterData.abilityEffect = 1;
+ else if (ability == ABILITY_ILLUMINATE)
+ sWildEncounterData.abilityEffect = 2;
+ }
+ return sWildEncounterData.abilityEffect;
+}
+
+static bool8 DoGlobalWildEncounterDiceRoll(void)
+{
+ if ((Random() % 100) >= 60)
+ return FALSE;
+ return TRUE;
+}
+
+bool8 StandardWildEncounter(u32 currMetatileBehavior, u16 previousMetatileBehavior)
+{
+ u16 headerId;
+ struct Roamer * roamer;
+
+ if (sWildEncountersDisabled == TRUE)
+ return FALSE;
+
+ headerId = GetCurrentMapWildMonHeaderId();
+ if (headerId != 0xFFFF)
+ {
+ if (sub_8058F1C(currMetatileBehavior, 4) == TRUE)
+ {
+ if (gWildMonHeaders[headerId].landMonsInfo == NULL)
+ return FALSE;
+ else if (previousMetatileBehavior != sub_8058F1C(currMetatileBehavior, 0) && !DoGlobalWildEncounterDiceRoll())
+ return FALSE;
+ if (DoWildEncounterRateTest(gWildMonHeaders[headerId].landMonsInfo->encounterRate, FALSE) != TRUE)
+ {
+ AddToWildEncounterRateBuff(gWildMonHeaders[headerId].landMonsInfo->encounterRate);
+ return FALSE;
+ }
+
+ else if (TryStartRoamerEncounter() == TRUE)
+ {
+ roamer = &gSaveBlock1Ptr->roamer;
+ if (!IsWildLevelAllowedByRepel(roamer->level))
+ {
+ return FALSE;
+ }
+
+ BattleSetup_StartRoamerBattle();
+ return TRUE;
+ }
+ else
+ {
+
+ // try a regular wild land encounter
+ if (TryGenerateWildMon(gWildMonHeaders[headerId].landMonsInfo, WILD_AREA_LAND, WILD_CHECK_REPEL) == TRUE)
+ {
+ BattleSetup_StartWildBattle();
+ return TRUE;
+ }
+ else
+ {
+ AddToWildEncounterRateBuff(gWildMonHeaders[headerId].landMonsInfo->encounterRate);
+ }
+ }
+ }
+ else if (sub_8058F1C(currMetatileBehavior, 4) == 2
+ || (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) && MetatileBehavior_IsBridge(sub_8058F1C(currMetatileBehavior, 0)) == TRUE))
+ {
+ if (gWildMonHeaders[headerId].waterMonsInfo == NULL)
+ return FALSE;
+ else if (previousMetatileBehavior != sub_8058F1C(currMetatileBehavior, 0) && !DoGlobalWildEncounterDiceRoll())
+ return FALSE;
+ else if (DoWildEncounterRateTest(gWildMonHeaders[headerId].waterMonsInfo->encounterRate, FALSE) != TRUE)
+ {
+ AddToWildEncounterRateBuff(gWildMonHeaders[headerId].waterMonsInfo->encounterRate);
+ return FALSE;
+ }
+
+ if (TryStartRoamerEncounter() == TRUE)
+ {
+ roamer = &gSaveBlock1Ptr->roamer;
+ if (!IsWildLevelAllowedByRepel(roamer->level))
+ {
+ return FALSE;
+ }
+
+ BattleSetup_StartRoamerBattle();
+ return TRUE;
+ }
+ else // try a regular surfing encounter
+ {
+ if (TryGenerateWildMon(gWildMonHeaders[headerId].waterMonsInfo, WILD_AREA_WATER, WILD_CHECK_REPEL) == TRUE)
+ {
+ BattleSetup_StartWildBattle();
+ return TRUE;
+ }
+ else
+ {
+ AddToWildEncounterRateBuff(gWildMonHeaders[headerId].waterMonsInfo->encounterRate);
+ }
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+void ScrSpecial_RockSmashWildEncounter(void)
+{
+ u16 headerIdx = GetCurrentMapWildMonHeaderId();
+ if (headerIdx == 0xFFFF)
+ gSpecialVar_Result = FALSE;
+ else if (gWildMonHeaders[headerIdx].rockSmashMonsInfo == NULL)
+ gSpecialVar_Result = FALSE;
+ else if (DoWildEncounterRateTest(gWildMonHeaders[headerIdx].rockSmashMonsInfo->encounterRate, TRUE) != TRUE)
+ gSpecialVar_Result = FALSE;
+ else if (TryGenerateWildMon(gWildMonHeaders[headerIdx].rockSmashMonsInfo, WILD_AREA_ROCKS, WILD_CHECK_REPEL) == TRUE)
+ {
+ BattleSetup_StartWildBattle();
+ gSpecialVar_Result = TRUE;
+ }
+ else
+ gSpecialVar_Result = FALSE;
+}
+
+bool8 SweetScentWildEncounter(void)
+{
+ s16 x, y;
+ u16 headerId;
+
+ PlayerGetDestCoords(&x, &y);
+ headerId = GetCurrentMapWildMonHeaderId();
+ if (headerId != 0xFFFF)
+ {
+ if (sub_8058F48(x, y, 4) == 1)
+ {
+ if (TryStartRoamerEncounter() == TRUE)
+ {
+ BattleSetup_StartRoamerBattle();
+ return TRUE;
+ }
+
+ if (gWildMonHeaders[headerId].landMonsInfo == NULL)
+ return FALSE;
+
+ TryGenerateWildMon(gWildMonHeaders[headerId].landMonsInfo, WILD_AREA_LAND, 0);
+
+ BattleSetup_StartWildBattle();
+ return TRUE;
+ }
+ else if (sub_8058F48(x, y, 4) == 2)
+ {
+ if (TryStartRoamerEncounter() == TRUE)
+ {
+ BattleSetup_StartRoamerBattle();
+ return TRUE;
+ }
+
+ if (gWildMonHeaders[headerId].waterMonsInfo == NULL)
+ return FALSE;
+
+ TryGenerateWildMon(gWildMonHeaders[headerId].waterMonsInfo, WILD_AREA_WATER, 0);
+ BattleSetup_StartWildBattle();
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+bool8 DoesCurrentMapHaveFishingMons(void)
+{
+ u16 headerIdx = GetCurrentMapWildMonHeaderId();
+ if (headerIdx == 0xFFFF)
+ return FALSE;
+ if (gWildMonHeaders[headerIdx].fishingMonsInfo == NULL)
+ return FALSE;
+ return TRUE;
+}
+
+void FishingWildEncounter(u8 rod)
+{
+ GenerateFishingEncounter(gWildMonHeaders[GetCurrentMapWildMonHeaderId()].fishingMonsInfo, rod);
+ IncrementGameStat(GAME_STAT_FISHING_CAPTURES);
+ BattleSetup_StartWildBattle();
+}
+
+u16 GetLocalWildMon(bool8 *isWaterMon)
+{
+ u16 headerId;
+ const struct WildPokemonInfo * landMonsInfo;
+ const struct WildPokemonInfo * waterMonsInfo;
+
+ *isWaterMon = FALSE;
+ headerId = GetCurrentMapWildMonHeaderId();
+ if (headerId == 0xFFFF)
+ return SPECIES_NONE;
+ landMonsInfo = gWildMonHeaders[headerId].landMonsInfo;
+ waterMonsInfo = gWildMonHeaders[headerId].waterMonsInfo;
+ // Neither
+ if (landMonsInfo == NULL && waterMonsInfo == NULL)
+ return SPECIES_NONE;
+ // Land Pokemon
+ else if (landMonsInfo != NULL && waterMonsInfo == NULL)
+ return landMonsInfo->wildPokemon[ChooseWildMonIndex_Land()].species;
+ // Water Pokemon
+ else if (landMonsInfo == NULL && waterMonsInfo != NULL)
+ {
+ *isWaterMon = TRUE;
+ return waterMonsInfo->wildPokemon[ChooseWildMonIndex_WaterRock()].species;
+ }
+ // Either land or water Pokemon
+ if ((Random() % 100) < 80)
+ {
+ return landMonsInfo->wildPokemon[ChooseWildMonIndex_Land()].species;
+ }
+ else
+ {
+ *isWaterMon = TRUE;
+ return waterMonsInfo->wildPokemon[ChooseWildMonIndex_WaterRock()].species;
+ }
+}
+
+u16 GetLocalWaterMon(void)
+{
+ u16 headerId = GetCurrentMapWildMonHeaderId();
+
+ if (headerId != 0xFFFF)
+ {
+ const struct WildPokemonInfo * waterMonsInfo = gWildMonHeaders[headerId].waterMonsInfo;
+
+ if (waterMonsInfo)
+ return waterMonsInfo->wildPokemon[ChooseWildMonIndex_WaterRock()].species;
+ }
+ return SPECIES_NONE;
+}
+
+bool8 UpdateRepelCounter(void)
+{
+ u16 steps;
+
+ if (InUnionRoom() == TRUE)
+ return FALSE;
+
+ if (gUnknown_203ADFA == 2)
+ return FALSE;
+
+ steps = VarGet(VAR_REPEL_STEP_COUNT);
+
+ if (steps != 0)
+ {
+ steps--;
+ VarSet(VAR_REPEL_STEP_COUNT, steps);
+ if (steps == 0)
+ {
+ ScriptContext1_SetupScript(EventScript_RepelWoreOff);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static bool8 IsWildLevelAllowedByRepel(u8 wildLevel)
+{
+ u8 i;
+
+ if (!VarGet(VAR_REPEL_STEP_COUNT))
+ return TRUE;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_HP) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG))
+ {
+ u8 ourLevel = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL);
+
+ if (wildLevel < ourLevel)
+ return FALSE;
+ else
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+static void ApplyFluteEncounterRateMod(u32 *encounterRate)
+{
+ switch (GetFluteEncounterRateModType())
+ {
+ case 1:
+ *encounterRate += *encounterRate / 2;
+ break;
+ case 2:
+ *encounterRate = *encounterRate / 2;
+ break;
+ }
+}
+
+static u8 GetFluteEncounterRateModType(void)
+{
+ if (FlagGet(FLAG_SYS_WHITE_FLUTE_ACTIVE) == TRUE)
+ return 1;
+ else if (FlagGet(FLAG_SYS_BLACK_FLUTE_ACTIVE) == TRUE)
+ return 2;
+ else
+ return 0;
+}
+
+static void ApplyCleanseTagEncounterRateMod(u32 *encounterRate)
+{
+ if (IsLeadMonHoldingCleanseTag())
+ *encounterRate = *encounterRate * 2 / 3;
+}
+
+static bool8 IsLeadMonHoldingCleanseTag(void)
+{
+ if (sWildEncounterData.leadMonHeldItem == ITEM_CLEANSE_TAG)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void SeedWildEncounterRng(u16 seed)
+{
+ sWildEncounterData.rngState = seed;
+ ResetEncounterRateModifiers();
+}
+
+static u16 WildEncounterRandom(void)
+{
+ sWildEncounterData.rngState *= 1103515245;
+ sWildEncounterData.rngState += 12345;
+ return sWildEncounterData.rngState >> 16;
+}
+
+static u8 GetMapBaseEncounterCooldown(u8 a0)
+{
+ u16 headerIdx = GetCurrentMapWildMonHeaderId();
+ if (headerIdx == 0xFFFF)
+ return 0xFF;
+ if (a0 == 1)
+ {
+ if (gWildMonHeaders[headerIdx].landMonsInfo == NULL)
+ return 0xFF;
+ if (gWildMonHeaders[headerIdx].landMonsInfo->encounterRate >= 80)
+ return 0;
+ if (gWildMonHeaders[headerIdx].landMonsInfo->encounterRate < 10)
+ return 8;
+ return 8 - (gWildMonHeaders[headerIdx].landMonsInfo->encounterRate / 10);
+ }
+ if (a0 == 2)
+ {
+ if (gWildMonHeaders[headerIdx].waterMonsInfo == NULL)
+ return 0xFF;
+ if (gWildMonHeaders[headerIdx].waterMonsInfo->encounterRate >= 80)
+ return 0;
+ if (gWildMonHeaders[headerIdx].waterMonsInfo->encounterRate < 10)
+ return 8;
+ return 8 - (gWildMonHeaders[headerIdx].waterMonsInfo->encounterRate / 10);
+ }
+ return 0xFF;
+}
+
+void ResetEncounterRateModifiers(void)
+{
+ sWildEncounterData.encounterRateBuff = 0;
+ sWildEncounterData.stepsSinceLastEncounter = 0;
+}
+
+static bool8 HandleWildEncounterCooldown(u32 currMetatileBehavior)
+{
+ u8 unk = sub_8058F1C(currMetatileBehavior, 4);
+ u32 minSteps;
+ u32 encRate;
+ if (unk == 0)
+ return FALSE;
+ minSteps = GetMapBaseEncounterCooldown(unk);
+ if (minSteps == 0xFF)
+ return FALSE;
+ minSteps *= 256;
+ encRate = 5 * 256;
+ switch (GetFluteEncounterRateModType())
+ {
+ case 1:
+ minSteps -= minSteps / 2;
+ encRate += encRate / 2;
+ break;
+ case 2:
+ minSteps *= 2;
+ encRate /= 2;
+ break;
+ }
+ sWildEncounterData.leadMonHeldItem = GetMonData(&gPlayerParty[0], MON_DATA_HELD_ITEM);
+ if (IsLeadMonHoldingCleanseTag() == TRUE)
+ {
+ minSteps += minSteps / 3;
+ encRate -= encRate / 3;
+ }
+ switch (GetAbilityEncounterRateModType())
+ {
+ case 1:
+ minSteps *= 2;
+ encRate /= 2;
+ break;
+ case 2:
+ minSteps /= 2;
+ encRate *= 2;
+ break;
+ }
+ minSteps /= 256;
+ encRate /= 256;
+ if (sWildEncounterData.stepsSinceLastEncounter >= minSteps)
+ return TRUE;
+ sWildEncounterData.stepsSinceLastEncounter++;
+ if ((Random() % 100) < encRate)
+ return TRUE;
+ return FALSE;
+}
+
+bool8 TryStandardWildEncounter(u32 currMetatileBehavior)
+{
+ if (!HandleWildEncounterCooldown(currMetatileBehavior))
+ {
+ sWildEncounterData.prevMetatileBehavior = sub_8058F1C(currMetatileBehavior, 0);
+ return FALSE;
+ }
+ else if (StandardWildEncounter(currMetatileBehavior, sWildEncounterData.prevMetatileBehavior) == TRUE)
+ {
+ sWildEncounterData.encounterRateBuff = 0;
+ sWildEncounterData.stepsSinceLastEncounter = 0;
+ sWildEncounterData.prevMetatileBehavior = sub_8058F1C(currMetatileBehavior, 0);
+ return TRUE;
+ }
+ else
+ {
+ sWildEncounterData.prevMetatileBehavior = sub_8058F1C(currMetatileBehavior, 0);
+ return FALSE;
+ }
+}
+
+static void AddToWildEncounterRateBuff(u8 encounterRate)
+{
+ if (VarGet(VAR_REPEL_STEP_COUNT) == 0)
+ sWildEncounterData.encounterRateBuff += encounterRate;
+ else
+ sWildEncounterData.encounterRateBuff = 0;
+}
diff --git a/src/wild_pokemon_area.c b/src/wild_pokemon_area.c
index df8f9b8d9..fc4df06ed 100644
--- a/src/wild_pokemon_area.c
+++ b/src/wild_pokemon_area.c
@@ -265,7 +265,7 @@ static bool32 PokemonInAnyEncounterTableInMap(const struct WildPokemonHeader * d
return TRUE;
if (PokemonInEncounterTable(data->waterMonsInfo, species, 5))
return TRUE;
- if (PokemonInEncounterTable(data->fishingMonsInfo, species, 12))
+ if (PokemonInEncounterTable(data->fishingMonsInfo, species, 12)) // 10
return TRUE;
if (PokemonInEncounterTable(data->rockSmashMonsInfo, species, 5))
return TRUE;
diff --git a/sym_ewram.txt b/sym_ewram.txt
index d4c25d15f..51501e162 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -213,13 +213,9 @@ gUnknown_20386A8: @ 20386A8
.include "src/battle_setup.o"
.align 2
+ .include "src/wild_encounter.o"
-gUnknown_20386D0: @ 20386D0
- .space 0xC
-
-gUnknown_20386DC: @ 20386DC
- .space 0x4
-
+ .align 2
gFieldEffectArguments: @ 20386E0
.space 0x20
diff --git a/tools/jsonproc/inja.hpp b/tools/jsonproc/inja.hpp
index 3b7263546..d5bf5bcba 100644
--- a/tools/jsonproc/inja.hpp
+++ b/tools/jsonproc/inja.hpp
@@ -517,7 +517,7 @@ public:
typedef const_pointer iterator;
typedef const_pointer const_iterator;
typedef std::reverse_iterator< const_iterator > reverse_iterator;
- typedef std::reverse_iterator< const_iterator > const_reverse_iterator;
+ typedef std::reverse_iterator< const_iterator > const_reverse_iterator;
typedef std::size_t size_type;
typedef std::ptrdiff_t difference_type;
@@ -1411,6 +1411,9 @@ enum class ElementNotation {
Pointer
};
+/*!
+ * \brief Class for lexer configuration.
+ */
struct LexerConfig {
std::string statement_open {"{%"};
std::string statement_close {"%}"};
@@ -1421,6 +1424,9 @@ struct LexerConfig {
std::string comment_close {"#}"};
std::string open_chars {"#{"};
+ bool trim_blocks {false};
+ bool lstrip_blocks {false};
+
void update_open_chars() {
open_chars = "";
if (open_chars.find(line_statement[0]) == std::string::npos) {
@@ -1438,6 +1444,9 @@ struct LexerConfig {
}
};
+/*!
+ * \brief Class for parser configuration.
+ */
struct ParserConfig {
ElementNotation notation {ElementNotation::Dot};
};
@@ -1450,10 +1459,13 @@ struct ParserConfig {
#ifndef PANTOR_INJA_FUNCTION_STORAGE_HPP
#define PANTOR_INJA_FUNCTION_STORAGE_HPP
+#include <vector>
+
// #include "bytecode.hpp"
#ifndef PANTOR_INJA_BYTECODE_HPP
#define PANTOR_INJA_BYTECODE_HPP
+#include <string>
#include <utility>
#include <nlohmann/json.hpp>
@@ -1464,7 +1476,7 @@ struct ParserConfig {
namespace inja {
-using namespace nlohmann;
+using json = nlohmann::json;
struct Bytecode {
@@ -1492,6 +1504,7 @@ struct Bytecode {
GreaterEqual,
Less,
LessEqual,
+ At,
Different,
DivisibleBy,
Even,
@@ -1594,6 +1607,9 @@ using namespace nlohmann;
using Arguments = std::vector<const json*>;
using CallbackFunction = std::function<json(Arguments& args)>;
+/*!
+ * \brief Class for builtin functions and user-defined callbacks.
+ */
class FunctionStorage {
public:
void add_builtin(nonstd::string_view name, unsigned int num_args, Bytecode::Op op) {
@@ -1658,6 +1674,9 @@ class FunctionStorage {
#define PANTOR_INJA_PARSER_HPP
#include <limits>
+#include <string>
+#include <utility>
+#include <vector>
// #include "bytecode.hpp"
@@ -1678,12 +1697,17 @@ class FunctionStorage {
#ifndef PANTOR_INJA_TOKEN_HPP
#define PANTOR_INJA_TOKEN_HPP
+#include <string>
+
// #include "string_view.hpp"
namespace inja {
+/*!
+ * \brief Helper-class for the inja Parser.
+ */
struct Token {
enum class Kind {
Text,
@@ -1737,13 +1761,17 @@ struct Token {
}
-#endif // PANTOR_INJA_TOKEN_HPP
+#endif // PANTOR_INJA_TOKEN_HPP
// #include "utils.hpp"
#ifndef PANTOR_INJA_UTILS_HPP
#define PANTOR_INJA_UTILS_HPP
+#include <algorithm>
+#include <fstream>
#include <stdexcept>
+#include <string>
+#include <utility>
// #include "string_view.hpp"
@@ -1755,11 +1783,22 @@ inline void inja_throw(const std::string& type, const std::string& message) {
throw std::runtime_error("[inja.exception." + type + "] " + message);
}
+inline std::ifstream open_file_or_throw(const std::string& path) {
+ std::ifstream file;
+ file.exceptions(std::ifstream::failbit | std::ifstream::badbit);
+ try {
+ file.open(path);
+ } catch(const std::ios_base::failure& e) {
+ inja_throw("file_error", "failed accessing file at '" + path + "'");
+ }
+ return file;
+}
+
namespace string_view {
inline nonstd::string_view slice(nonstd::string_view view, size_t start, size_t end) {
start = std::min(start, view.size());
end = std::min(std::max(start, end), view.size());
- return view.substr(start, end - start); // StringRef(Data + Start, End - Start);
+ return view.substr(start, end - start); // StringRef(Data + Start, End - Start);
}
inline std::pair<nonstd::string_view, nonstd::string_view> split(nonstd::string_view view, char Separator) {
@@ -1783,6 +1822,9 @@ namespace string_view {
namespace inja {
+/*!
+ * \brief Class for lexing an inja Template.
+ */
class Lexer {
enum class State {
Text,
@@ -1831,12 +1873,15 @@ class Lexer {
// try to match one of the opening sequences, and get the close
nonstd::string_view open_str = m_in.substr(m_pos);
+ bool must_lstrip = false;
if (inja::string_view::starts_with(open_str, m_config.expression_open)) {
m_state = State::ExpressionStart;
} else if (inja::string_view::starts_with(open_str, m_config.statement_open)) {
m_state = State::StatementStart;
+ must_lstrip = m_config.lstrip_blocks;
} else if (inja::string_view::starts_with(open_str, m_config.comment_open)) {
m_state = State::CommentStart;
+ must_lstrip = m_config.lstrip_blocks;
} else if ((m_pos == 0 || m_in[m_pos - 1] == '\n') &&
inja::string_view::starts_with(open_str, m_config.line_statement)) {
m_state = State::LineStart;
@@ -1844,8 +1889,13 @@ class Lexer {
m_pos += 1; // wasn't actually an opening sequence
goto again;
}
- if (m_pos == m_tok_start) goto again; // don't generate empty token
- return make_token(Token::Kind::Text);
+
+ nonstd::string_view text = string_view::slice(m_in, m_tok_start, m_pos);
+ if (must_lstrip)
+ text = clear_final_line_if_whitespace(text);
+
+ if (text.empty()) goto again; // don't generate empty token
+ return Token(Token::Kind::Text, text);
}
case State::ExpressionStart: {
m_state = State::ExpressionBody;
@@ -1872,7 +1922,7 @@ class Lexer {
case State::LineBody:
return scan_body("\n", Token::Kind::LineStatementClose);
case State::StatementBody:
- return scan_body(m_config.statement_close, Token::Kind::StatementClose);
+ return scan_body(m_config.statement_close, Token::Kind::StatementClose, m_config.trim_blocks);
case State::CommentBody: {
// fast-scan to comment close
size_t end = m_in.substr(m_pos).find(m_config.comment_close);
@@ -1883,7 +1933,10 @@ class Lexer {
// return the entire comment in the close token
m_state = State::Text;
m_pos += end + m_config.comment_close.size();
- return make_token(Token::Kind::CommentClose);
+ Token tok = make_token(Token::Kind::CommentClose);
+ if (m_config.trim_blocks)
+ skip_newline();
+ return tok;
}
}
}
@@ -1891,7 +1944,7 @@ class Lexer {
const LexerConfig& get_config() const { return m_config; }
private:
- Token scan_body(nonstd::string_view close, Token::Kind closeKind) {
+ Token scan_body(nonstd::string_view close, Token::Kind closeKind, bool trim = false) {
again:
// skip whitespace (except for \n as it might be a close)
if (m_tok_start >= m_in.size()) return make_token(Token::Kind::Eof);
@@ -1905,7 +1958,10 @@ class Lexer {
if (inja::string_view::starts_with(m_in.substr(m_tok_start), close)) {
m_state = State::Text;
m_pos = m_tok_start + close.size();
- return make_token(closeKind);
+ Token tok = make_token(closeKind);
+ if (trim)
+ skip_newline();
+ return tok;
}
// skip \n
@@ -2026,6 +2082,34 @@ class Lexer {
Token make_token(Token::Kind kind) const {
return Token(kind, string_view::slice(m_in, m_tok_start, m_pos));
}
+
+ void skip_newline() {
+ if (m_pos < m_in.size()) {
+ char ch = m_in[m_pos];
+ if (ch == '\n')
+ m_pos += 1;
+ else if (ch == '\r') {
+ m_pos += 1;
+ if (m_pos < m_in.size() && m_in[m_pos] == '\n')
+ m_pos += 1;
+ }
+ }
+ }
+
+ static nonstd::string_view clear_final_line_if_whitespace(nonstd::string_view text)
+ {
+ nonstd::string_view result = text;
+ while (!result.empty()) {
+ char ch = result.back();
+ if (ch == ' ' || ch == '\t')
+ result.remove_suffix(1);
+ else if (ch == '\n' || ch == '\r')
+ break;
+ else
+ return text;
+ }
+ return result;
+ }
};
}
@@ -2036,6 +2120,7 @@ class Lexer {
#ifndef PANTOR_INJA_TEMPLATE_HPP
#define PANTOR_INJA_TEMPLATE_HPP
+#include <map>
#include <string>
#include <vector>
@@ -2045,6 +2130,9 @@ class Lexer {
namespace inja {
+/*!
+ * \brief The main inja Template.
+ */
struct Template {
std::vector<Bytecode> bytecodes;
std::string content;
@@ -2054,7 +2142,7 @@ using TemplateStorage = std::map<std::string, Template>;
}
-#endif // PANTOR_INJA_TEMPLATE_HPP
+#endif // PANTOR_INJA_TEMPLATE_HPP
// #include "token.hpp"
@@ -2068,6 +2156,7 @@ namespace inja {
class ParserStatic {
ParserStatic() {
+ functions.add_builtin("at", 2, Bytecode::Op::At);
functions.add_builtin("default", 2, Bytecode::Op::Default);
functions.add_builtin("divisibleBy", 2, Bytecode::Op::DivisibleBy);
functions.add_builtin("even", 1, Bytecode::Op::Even);
@@ -2107,13 +2196,16 @@ class ParserStatic {
FunctionStorage functions;
};
+/*!
+ * \brief Class for parsing an inja Template.
+ */
class Parser {
public:
explicit Parser(const ParserConfig& parser_config, const LexerConfig& lexer_config, TemplateStorage& included_templates): m_config(parser_config), m_lexer(lexer_config), m_included_templates(included_templates), m_static(ParserStatic::get_instance()) { }
bool parse_expression(Template& tmpl) {
if (!parse_expression_and(tmpl)) return false;
- if (m_tok.kind != Token::Kind::Id || m_tok.text != "or") return true;
+ if (m_tok.kind != Token::Kind::Id || m_tok.text != static_cast<decltype(m_tok.text)>("or")) return true;
get_next_token();
if (!parse_expression_and(tmpl)) return false;
append_function(tmpl, Bytecode::Op::Or, 2);
@@ -2122,7 +2214,7 @@ class Parser {
bool parse_expression_and(Template& tmpl) {
if (!parse_expression_not(tmpl)) return false;
- if (m_tok.kind != Token::Kind::Id || m_tok.text != "and") return true;
+ if (m_tok.kind != Token::Kind::Id || m_tok.text != static_cast<decltype(m_tok.text)>("and")) return true;
get_next_token();
if (!parse_expression_not(tmpl)) return false;
append_function(tmpl, Bytecode::Op::And, 2);
@@ -2130,7 +2222,7 @@ class Parser {
}
bool parse_expression_not(Template& tmpl) {
- if (m_tok.kind == Token::Kind::Id && m_tok.text == "not") {
+ if (m_tok.kind == Token::Kind::Id && m_tok.text == static_cast<decltype(m_tok.text)>("not")) {
get_next_token();
if (!parse_expression_not(tmpl)) return false;
append_function(tmpl, Bytecode::Op::Not, 1);
@@ -2145,7 +2237,7 @@ class Parser {
Bytecode::Op op;
switch (m_tok.kind) {
case Token::Kind::Id:
- if (m_tok.text == "in")
+ if (m_tok.text == static_cast<decltype(m_tok.text)>("in"))
op = Bytecode::Op::In;
else
return true;
@@ -2233,7 +2325,9 @@ class Parser {
append_callback(tmpl, func_token.text, num_args);
return true;
}
- } else if (m_tok.text == "true" || m_tok.text == "false" || m_tok.text == "null") {
+ } else if (m_tok.text == static_cast<decltype(m_tok.text)>("true") ||
+ m_tok.text == static_cast<decltype(m_tok.text)>("false") ||
+ m_tok.text == static_cast<decltype(m_tok.text)>("null")) {
// true, false, null are json literals
if (brace_level == 0 && bracket_level == 0) {
json_first = m_tok.text;
@@ -2312,7 +2406,7 @@ class Parser {
bool parse_statement(Template& tmpl, nonstd::string_view path) {
if (m_tok.kind != Token::Kind::Id) return false;
- if (m_tok.text == "if") {
+ if (m_tok.text == static_cast<decltype(m_tok.text)>("if")) {
get_next_token();
// evaluate expression
@@ -2323,7 +2417,7 @@ class Parser {
// conditional jump; destination will be filled in by else or endif
tmpl.bytecodes.emplace_back(Bytecode::Op::ConditionalJump);
- } else if (m_tok.text == "endif") {
+ } else if (m_tok.text == static_cast<decltype(m_tok.text)>("endif")) {
if (m_if_stack.empty()) {
inja_throw("parser_error", "endif without matching if");
}
@@ -2342,7 +2436,7 @@ class Parser {
// pop if stack
m_if_stack.pop_back();
- } else if (m_tok.text == "else") {
+ } else if (m_tok.text == static_cast<decltype(m_tok.text)>("else")) {
if (m_if_stack.empty())
inja_throw("parser_error", "else without matching if");
auto& if_data = m_if_stack.back();
@@ -2358,7 +2452,7 @@ class Parser {
if_data.prev_cond_jump = std::numeric_limits<unsigned int>::max();
// chained else if
- if (m_tok.kind == Token::Kind::Id && m_tok.text == "if") {
+ if (m_tok.kind == Token::Kind::Id && m_tok.text == static_cast<decltype(m_tok.text)>("if")) {
get_next_token();
// evaluate expression
@@ -2370,7 +2464,7 @@ class Parser {
// conditional jump; destination will be filled in by else or endif
tmpl.bytecodes.emplace_back(Bytecode::Op::ConditionalJump);
}
- } else if (m_tok.text == "for") {
+ } else if (m_tok.text == static_cast<decltype(m_tok.text)>("for")) {
get_next_token();
// options: for a in arr; for a, b in obj
@@ -2389,7 +2483,7 @@ class Parser {
get_next_token();
}
- if (m_tok.kind != Token::Kind::Id || m_tok.text != "in")
+ if (m_tok.kind != Token::Kind::Id || m_tok.text != static_cast<decltype(m_tok.text)>("in"))
inja_throw("parser_error",
"expected 'in', got '" + m_tok.describe() + "'");
get_next_token();
@@ -2403,7 +2497,7 @@ class Parser {
tmpl.bytecodes.back().value = key_token.text;
}
tmpl.bytecodes.back().str = static_cast<std::string>(value_token.text);
- } else if (m_tok.text == "endfor") {
+ } else if (m_tok.text == static_cast<decltype(m_tok.text)>("endfor")) {
get_next_token();
if (m_loop_stack.empty()) {
inja_throw("parser_error", "endfor without matching for");
@@ -2415,7 +2509,7 @@ class Parser {
tmpl.bytecodes.emplace_back(Bytecode::Op::EndLoop);
tmpl.bytecodes.back().args = m_loop_stack.back() + 1; // loop body
m_loop_stack.pop_back();
- } else if (m_tok.text == "include") {
+ } else if (m_tok.text == static_cast<decltype(m_tok.text)>("include")) {
get_next_token();
if (m_tok.kind != Token::Kind::String) {
@@ -2431,8 +2525,10 @@ class Parser {
}
// sys::path::remove_dots(pathname, true, sys::path::Style::posix);
- Template include_template = parse_template(pathname);
- m_included_templates.emplace(pathname, include_template);
+ if (m_included_templates.find(pathname) == m_included_templates.end()) {
+ Template include_template = parse_template(pathname);
+ m_included_templates.emplace(pathname, include_template);
+ }
// generate a reference bytecode
tmpl.bytecodes.emplace_back(Bytecode::Op::Include, json(pathname), Bytecode::Flag::ValueImmediate);
@@ -2552,10 +2648,10 @@ class Parser {
}
std::string load_file(nonstd::string_view filename) {
- std::ifstream file(static_cast<std::string>(filename));
- std::string text((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
- return text;
- }
+ std::ifstream file = open_file_or_throw(static_cast<std::string>(filename));
+ std::string text((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
+ return text;
+ }
private:
const ParserConfig& m_config;
@@ -2605,6 +2701,7 @@ class Parser {
#if __cplusplus < 201402L
#include <cstddef>
+#include <memory>
#include <type_traits>
#include <utility>
@@ -2655,6 +2752,9 @@ namespace stdinja = std;
#include <algorithm>
#include <numeric>
+#include <string>
+#include <utility>
+#include <vector>
#include <nlohmann/json.hpp>
@@ -2679,6 +2779,9 @@ inline nonstd::string_view convert_dot_to_json_pointer(nonstd::string_view dot,
return nonstd::string_view(out.data(), out.size());
}
+/*!
+ * \brief Class for rendering a Template with data.
+ */
class Renderer {
std::vector<const json*>& get_args(const Bytecode& bc) {
m_tmp_args.clear();
@@ -2765,7 +2868,7 @@ class Renderer {
LoopLevel& level = m_loop_stack.back();
if (level.loop_type == LoopLevel::Type::Array) {
- level.data[static_cast<std::string>(level.value_name)] = level.values.at(level.index); // *level.it;
+ level.data[static_cast<std::string>(level.value_name)] = level.values.at(level.index); // *level.it;
auto& loopData = level.data["loop"];
loopData["index"] = level.index;
loopData["index1"] = level.index + 1;
@@ -2787,8 +2890,8 @@ class Renderer {
enum class Type { Map, Array };
Type loop_type;
- nonstd::string_view key_name; // variable name for keys
- nonstd::string_view value_name; // variable name for values
+ nonstd::string_view key_name; // variable name for keys
+ nonstd::string_view value_name; // variable name for values
json data; // data with loop info added
json values; // values to iterate over
@@ -2800,8 +2903,8 @@ class Renderer {
// loop over map
using KeyValue = std::pair<nonstd::string_view, json*>;
using MapValues = std::vector<KeyValue>;
- MapValues map_values; // values to iterate over
- MapValues::iterator map_it; // iterator over values
+ MapValues map_values; // values to iterate over
+ MapValues::iterator map_it; // iterator over values
};
@@ -2835,11 +2938,11 @@ class Renderer {
}
case Bytecode::Op::PrintValue: {
const json& val = *get_args(bc)[0];
- if (val.is_string())
+ if (val.is_string()) {
os << val.get_ref<const std::string&>();
- else
+ } else {
os << val.dump();
- // val.dump(os);
+ }
pop_args(bc);
break;
}
@@ -2870,7 +2973,15 @@ class Renderer {
break;
}
case Bytecode::Op::Length: {
- auto result = get_args(bc)[0]->size();
+ const json& val = *get_args(bc)[0];
+
+ int result;
+ if (val.is_string()) {
+ result = val.get_ref<const std::string&>().length();
+ } else {
+ result = val.size();
+ }
+
pop_args(bc);
m_stack.emplace_back(result);
break;
@@ -2882,6 +2993,13 @@ class Renderer {
m_stack.emplace_back(std::move(result));
break;
}
+ case Bytecode::Op::At: {
+ auto args = get_args(bc);
+ auto result = args[0]->at(args[1]->get<int>());
+ pop_args(bc);
+ m_stack.emplace_back(result);
+ break;
+ }
case Bytecode::Op::First: {
auto result = get_args(bc)[0]->front();
pop_args(bc);
@@ -3091,7 +3209,7 @@ class Renderer {
break;
}
case Bytecode::Op::Include:
- Renderer(m_included_templates, m_callbacks).render_to(os, m_included_templates.find(get_imm(bc)->get_ref<const std::string&>())->second, data);
+ Renderer(m_included_templates, m_callbacks).render_to(os, m_included_templates.find(get_imm(bc)->get_ref<const std::string&>())->second, *m_data);
break;
case Bytecode::Op::Callback: {
auto callback = m_callbacks.find_callback(bc.str, bc.args);
@@ -3216,12 +3334,17 @@ class Renderer {
// #include "template.hpp"
+// #include "utils.hpp"
+
namespace inja {
using namespace nlohmann;
+/*!
+ * \brief Class for changing the configuration.
+ */
class Environment {
class Impl {
public:
@@ -3238,7 +3361,7 @@ class Environment {
std::unique_ptr<Impl> m_impl;
public:
- Environment(): Environment("./") { }
+ Environment(): Environment("") { }
explicit Environment(const std::string& global_path): m_impl(stdinja::make_unique<Impl>()) {
m_impl->input_path = global_path;
@@ -3277,6 +3400,16 @@ class Environment {
m_impl->lexer_config.update_open_chars();
}
+ /// Sets whether to remove the first newline after a block
+ void set_trim_blocks(bool trim_blocks) {
+ m_impl->lexer_config.trim_blocks = trim_blocks;
+ }
+
+ /// Sets whether to strip the spaces and tabs from the start of a line to a block
+ void set_lstrip_blocks(bool lstrip_blocks) {
+ m_impl->lexer_config.lstrip_blocks = lstrip_blocks;
+ }
+
/// Sets the element notation syntax
void set_element_notation(ElementNotation notation) {
m_impl->parser_config.notation = notation;
@@ -3290,8 +3423,8 @@ class Environment {
Template parse_template(const std::string& filename) {
Parser parser(m_impl->parser_config, m_impl->lexer_config, m_impl->included_templates);
- return parser.parse_template(m_impl->input_path + static_cast<std::string>(filename));
- }
+ return parser.parse_template(m_impl->input_path + static_cast<std::string>(filename));
+ }
std::string render(nonstd::string_view input, const json& data) {
return render(parse(input), data);
@@ -3304,35 +3437,35 @@ class Environment {
}
std::string render_file(const std::string& filename, const json& data) {
- return render(parse_template(filename), data);
- }
+ return render(parse_template(filename), data);
+ }
std::string render_file_with_json_file(const std::string& filename, const std::string& filename_data) {
- const json data = load_json(filename_data);
- return render_file(filename, data);
- }
+ const json data = load_json(filename_data);
+ return render_file(filename, data);
+ }
void write(const std::string& filename, const json& data, const std::string& filename_out) {
- std::ofstream file(m_impl->output_path + filename_out);
- file << render_file(filename, data);
- file.close();
- }
+ std::ofstream file(m_impl->output_path + filename_out);
+ file << render_file(filename, data);
+ file.close();
+ }
void write(const Template& temp, const json& data, const std::string& filename_out) {
- std::ofstream file(m_impl->output_path + filename_out);
- file << render(temp, data);
- file.close();
- }
+ std::ofstream file(m_impl->output_path + filename_out);
+ file << render(temp, data);
+ file.close();
+ }
- void write_with_json_file(const std::string& filename, const std::string& filename_data, const std::string& filename_out) {
- const json data = load_json(filename_data);
- write(filename, data, filename_out);
- }
+ void write_with_json_file(const std::string& filename, const std::string& filename_data, const std::string& filename_out) {
+ const json data = load_json(filename_data);
+ write(filename, data, filename_out);
+ }
- void write_with_json_file(const Template& temp, const std::string& filename_data, const std::string& filename_out) {
- const json data = load_json(filename_data);
- write(temp, data, filename_out);
- }
+ void write_with_json_file(const Template& temp, const std::string& filename_data, const std::string& filename_out) {
+ const json data = load_json(filename_data);
+ write(temp, data, filename_out);
+ }
std::ostream& render_to(std::ostream& os, const Template& tmpl, const json& data) {
Renderer(m_impl->included_templates, m_impl->callbacks).render_to(os, tmpl, data);
@@ -3341,15 +3474,15 @@ class Environment {
std::string load_file(const std::string& filename) {
Parser parser(m_impl->parser_config, m_impl->lexer_config, m_impl->included_templates);
- return parser.load_file(m_impl->input_path + filename);
- }
+ return parser.load_file(m_impl->input_path + filename);
+ }
json load_json(const std::string& filename) {
- std::ifstream file(m_impl->input_path + filename);
- json j;
- file >> j;
- return j;
- }
+ std::ifstream file = open_file_or_throw(m_impl->input_path + filename);
+ json j;
+ file >> j;
+ return j;
+ }
void add_callback(const std::string& name, unsigned int numArgs, const CallbackFunction& callback) {
m_impl->callbacks.add_callback(name, numArgs, callback);
diff --git a/tools/jsonproc/jsonproc.cpp b/tools/jsonproc/jsonproc.cpp
index efe48f39f..2ba5fd082 100644
--- a/tools/jsonproc/jsonproc.cpp
+++ b/tools/jsonproc/jsonproc.cpp
@@ -5,7 +5,7 @@
#include <map>
#include <string>
-using std::string;
+using std::string; using std::to_string;
#include <inja.hpp>
using namespace inja;
@@ -36,7 +36,14 @@ int main(int argc, char *argv[])
// Add custom command callbacks.
env.add_callback("doNotModifyHeader", 0, [jsonfilepath, templateFilepath](Arguments& args) {
- return "//\n// DO NOT MODIFY THIS FILE! IT IS AUTO-GENERATED FROM " + jsonfilepath +" and Inja template " + templateFilepath + "\n//\n";
+ return "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from " + jsonfilepath +" and Inja template " + templateFilepath + "\n//\n";
+ });
+
+ env.add_callback("subtract", 2, [](Arguments& args) {
+ int minuend = args.at(0)->get<int>();
+ int subtrahend = args.at(1)->get<int>();
+
+ return minuend - subtrahend;
});
env.add_callback("setVar", 2, [=](Arguments& args) {
@@ -46,6 +53,13 @@ int main(int argc, char *argv[])
return "";
});
+ env.add_callback("setVarInt", 2, [=](Arguments& args) {
+ string key = args.at(0)->get<string>();
+ string value = to_string(args.at(1)->get<int>());
+ set_custom_var(key, value);
+ return "";
+ });
+
env.add_callback("getVar", 1, [=](Arguments& args) {
string key = args.at(0)->get<string>();
return get_custom_var(key);
@@ -67,7 +81,6 @@ int main(int argc, char *argv[])
return rawValue.erase(0, prefix.length());
});
- // Add custom command callbacks.
env.add_callback("removeSuffix", 2, [](Arguments& args) {
string rawValue = args.at(0)->get<string>();
string suffix = args.at(1)->get<string>();
@@ -78,6 +91,11 @@ int main(int argc, char *argv[])
return rawValue.substr(0, i);
});
+ // single argument is a json object
+ env.add_callback("isEmpty", 1, [](Arguments& args) {
+ return args.at(0)->empty();
+ });
+
try
{
env.write_with_json_file(templateFilepath, jsonfilepath, outputFilepath);