diff --git a/.gitignore b/.gitignore index 38c3e02d67..de5b0c743a 100644 --- a/.gitignore +++ b/.gitignore @@ -33,4 +33,5 @@ porymap.project.cfg .vscode/ *.a .fuse_hidden* +.ccls-cache/* *.sna diff --git a/data/maps/map_groups.json b/data/maps/map_groups.json index 4268abbef5..4a5196b503 100644 --- a/data/maps/map_groups.json +++ b/data/maps/map_groups.json @@ -1,4 +1,5 @@ { + "layouts_table_label": "gMapLayouts", "group_order": [ "gMapGroup0", "gMapGroup1", diff --git a/gen3.png b/gen3.png new file mode 100644 index 0000000000..ad2f2fb90c Binary files /dev/null and b/gen3.png differ diff --git a/graphics/object_events/palettes/marshtomp.pal b/graphics/object_events/palettes/marshtomp.pal new file mode 100644 index 0000000000..8f3efce883 --- /dev/null +++ b/graphics/object_events/palettes/marshtomp.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +136 184 104 +0 0 0 +72 56 16 +32 80 88 +48 80 96 +160 72 16 +192 88 16 +64 128 128 +96 120 128 +240 128 16 +128 160 176 +88 184 176 +176 192 208 +232 232 248 +0 0 0 +0 0 0 diff --git a/graphics/object_events/pics/pokemon/altaria.png b/graphics/object_events/pics/pokemon/altaria.png new file mode 100644 index 0000000000..3414eafb7e Binary files /dev/null and b/graphics/object_events/pics/pokemon/altaria.png differ diff --git a/graphics/object_events/pics/pokemon/marshtomp.png b/graphics/object_events/pics/pokemon/marshtomp.png new file mode 100644 index 0000000000..03875540ed Binary files /dev/null and b/graphics/object_events/pics/pokemon/marshtomp.png differ diff --git a/graphics/object_events/pics/pokemon/palette.py b/graphics/object_events/pics/pokemon/palette.py new file mode 100755 index 0000000000..70f1a17108 --- /dev/null +++ b/graphics/object_events/pics/pokemon/palette.py @@ -0,0 +1,25 @@ +#!/usr/bin/python3 +import sys +import os.path +import png + +PAL_PRELUDE = 'JASC-PAL\n0100\n' + + +def extract_palette(path): + r = png.Reader(path) + r.read() + root, _ = os.path.splitext(path) + out_path = root + '.pal' + with open(out_path, 'w', newline='\r\n') as f: + f.write(PAL_PRELUDE) + colors = r.palette() + if len(colors) < 16: + colors += [(0, 0, 0) for _ in range(16-len(colors))] + f.write(f'{len(colors)}\n') + for r, g, b in colors: + f.write(f'{r} {g} {b}\n') + + +if __name__ == '__main__': + extract_palette(*sys.argv[1:]) diff --git a/include/constants/event_object_movement.h b/include/constants/event_object_movement.h index 2236500810..25f133f0e1 100755 --- a/include/constants/event_object_movement.h +++ b/include/constants/event_object_movement.h @@ -82,6 +82,7 @@ #define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP 0x4E #define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT 0x4F #define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT 0x50 +#define MOVEMENT_TYPE_FOLLOW_PLAYER 0x51 #define MOVEMENT_ACTION_FACE_DOWN 0x0 #define MOVEMENT_ACTION_FACE_UP 0x1 diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h index 8e026ef2dc..deb775271f 100644 --- a/include/constants/event_objects.h +++ b/include/constants/event_objects.h @@ -240,8 +240,10 @@ #define OBJ_EVENT_GFX_LINK_RS_MAY 236 #define OBJ_EVENT_GFX_LUGIA 237 #define OBJ_EVENT_GFX_HOOH 238 +#define OBJ_EVENT_GFX_MARSHTOMP 239 +#define OBJ_EVENT_GFX_ALTARIA 240 -#define NUM_OBJ_EVENT_GFX 239 +#define NUM_OBJ_EVENT_GFX 241 // These are dynamic object gfx ids. diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 1e754dcd93..a6264419c4 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -94,6 +94,7 @@ u8 GetFaceDirectionAnimNum(u8); void SetSpritePosToOffsetMapCoords(s16 *, s16 *, s16, s16); void ObjectEventClearHeldMovement(struct ObjectEvent *); void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *); +u8 SpawnFollowingPokemon(void); void TrySpawnObjectEvents(s16, s16); u8 CreateObjectSprite(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction); u8 AddPseudoObjectEvent(u16, void (*)(struct Sprite *), s16 x, s16 y, u8 subpriority); @@ -261,6 +262,7 @@ void MovementType_JogInPlace(struct Sprite *); void MovementType_RunInPlace(struct Sprite *); void MovementType_Invisible(struct Sprite *); void MovementType_WalkSlowlyInPlace(struct Sprite *); +void MovementType_FollowPlayer(struct Sprite *); u8 GetSlideMovementAction(u32); u8 GetJumpInPlaceMovementAction(u32); u8 GetJumpMovementAction(u32); @@ -412,6 +414,20 @@ bool8 CopyablePlayerMovement_Slide(struct ObjectEvent *, struct Sprite *, u8, bo bool8 cph_IM_DIFFERENT(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); bool8 CopyablePlayerMovement_GoSpeed4(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); bool8 CopyablePlayerMovement_Jump(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); + +u8 MovementType_FollowPlayer_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FollowPlayer_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementType_FollowPlayer_Step2(struct ObjectEvent *, struct Sprite *); + +bool8 FollowablePlayerMovement_Idle(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 FollowablePlayerMovement_FaceDirection(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 FollowablePlayerMovement_GoSpeed0(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 FollowablePlayerMovement_GoSpeed1(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 FollowablePlayerMovement_GoSpeed2(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 FollowablePlayerMovement_Slide(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 fph_IM_DIFFERENT(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 FollowablePlayerMovement_GoSpeed4(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); +bool8 FollowablePlayerMovement_Jump(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); u8 MovementType_CopyPlayerInGrass_Step1(struct ObjectEvent *, struct Sprite *); u8 MovementType_Buried_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementType_WalkInPlace_Step0(struct ObjectEvent *, struct Sprite *); diff --git a/ld_script.txt b/ld_script.txt index 0b8702d966..88b59295ea 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -6,9 +6,6 @@ gMaxLines = 0; /* Modify the following load addresses as needed to make more room. Alternately, delete both the declarations below and their references further down to get rid of the gaps. */ -__anim_mon_load_address = 0x8b00000; -__gfx_load_address = 0x8c00000; - SECTIONS { . = 0x2000000; @@ -1256,13 +1253,13 @@ SECTIONS { data/multiboot_pokemon_colosseum.o(.rodata); } =0 - anim_mon_front_pic_data __anim_mon_load_address : + anim_mon_front_pic_data : ALIGN(4) { src/anim_mon_front_pics.o(.rodata); } =0 - gfx_data __gfx_load_address : + gfx_data : ALIGN(4) { src/graphics.o(.rodata); diff --git a/spritesheet_rules.mk b/spritesheet_rules.mk index ae79719602..e030a66c5a 100644 --- a/spritesheet_rules.mk +++ b/spritesheet_rules.mk @@ -468,7 +468,11 @@ $(OBJEVENTGFXDIR)/pokemon/wingull.4bpp: %.4bpp: %.png $(OBJEVENTGFXDIR)/pokemon/zigzagoon.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 +$(OBJEVENTGFXDIR)/pokemon/marshtomp.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 4 +$(OBJEVENTGFXDIR)/pokemon/altaria.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 $(OBJEVENTGFXDIR)/berry_trees/aguav.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 4 diff --git a/src/data/object_events/movement_type_func_tables.h b/src/data/object_events/movement_type_func_tables.h index f4890d6846..083e69432a 100755 --- a/src/data/object_events/movement_type_func_tables.h +++ b/src/data/object_events/movement_type_func_tables.h @@ -401,6 +401,26 @@ bool8 (*const gCopyPlayerMovementFuncs[])(struct ObjectEvent *, struct Sprite *, CopyablePlayerMovement_None, }; +u8 (*const gMovementTypeFuncs_FollowPlayer[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_FollowPlayer_Step0, + MovementType_FollowPlayer_Step1, + MovementType_FollowPlayer_Step2, +}; + +bool8 (*const gFollowPlayerMovementFuncs[])(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)) = { + FollowablePlayerMovement_Idle, + FollowablePlayerMovement_Idle, + FollowablePlayerMovement_GoSpeed0, + FollowablePlayerMovement_GoSpeed1, + FollowablePlayerMovement_GoSpeed2, + FollowablePlayerMovement_Slide, + fph_IM_DIFFERENT, + FollowablePlayerMovement_GoSpeed4, + FollowablePlayerMovement_Jump, + FollowablePlayerMovement_Idle, + FollowablePlayerMovement_Idle, +}; + u8 (*const gMovementTypeFuncs_CopyPlayerInGrass[])(struct ObjectEvent *, struct Sprite *) = { MovementType_CopyPlayer_Step0, MovementType_CopyPlayerInGrass_Step1, diff --git a/src/data/object_events/object_event_anims.h b/src/data/object_events/object_event_anims.h index b319c2845f..f443ea572b 100755 --- a/src/data/object_events/object_event_anims.h +++ b/src/data/object_events/object_event_anims.h @@ -208,6 +208,15 @@ const union AnimCmd gObjectEventImageAnim_GoSouth[] = ANIMCMD_JUMP(0), }; +const union AnimCmd gObjectEventImageAnim_GoSouth2F[] = +{ + ANIMCMD_FRAME(3, 6), + ANIMCMD_FRAME(4, 6), + ANIMCMD_FRAME(4, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_JUMP(0), +}; + const union AnimCmd gObjectEventImageAnim_GoNorth[] = { ANIMCMD_FRAME(5, 8), @@ -217,6 +226,15 @@ const union AnimCmd gObjectEventImageAnim_GoNorth[] = ANIMCMD_JUMP(0), }; +const union AnimCmd gObjectEventImageAnim_GoNorth2F[] = +{ + ANIMCMD_FRAME(5, 6), + ANIMCMD_FRAME(6, 6), + ANIMCMD_FRAME(6, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_JUMP(0), +}; + const union AnimCmd gObjectEventImageAnim_GoWest[] = { ANIMCMD_FRAME(7, 8), @@ -226,6 +244,15 @@ const union AnimCmd gObjectEventImageAnim_GoWest[] = ANIMCMD_JUMP(0), }; +const union AnimCmd gObjectEventImageAnim_GoWest2F[] = +{ + ANIMCMD_FRAME(7, 6), + ANIMCMD_FRAME(8, 6), + ANIMCMD_FRAME(8, 6), + ANIMCMD_FRAME(2, 6), + ANIMCMD_JUMP(0), +}; + const union AnimCmd gObjectEventImageAnim_GoEast[] = { ANIMCMD_FRAME(7, 8, .hFlip = TRUE), @@ -235,6 +262,15 @@ const union AnimCmd gObjectEventImageAnim_GoEast[] = ANIMCMD_JUMP(0), }; +const union AnimCmd gObjectEventImageAnim_GoEast2F[] = +{ + ANIMCMD_FRAME(7, 6, .hFlip = TRUE), + ANIMCMD_FRAME(8, 6, .hFlip = TRUE), + ANIMCMD_FRAME(8, 6, .hFlip = TRUE), + ANIMCMD_FRAME(2, 6, .hFlip = TRUE), + ANIMCMD_JUMP(0), +}; + const union AnimCmd gObjectEventImageAnim_GoFastSouth[] = { ANIMCMD_FRAME(3, 4), @@ -845,6 +881,29 @@ const union AnimCmd *const gObjectEventImageAnimTable_Standard[] = { gObjectEventImageAnim_GoFastestEast, }; +const union AnimCmd *const gObjectEventImageAnimTable_Following[] = { + gObjectEventImageAnim_FaceSouth, + gObjectEventImageAnim_FaceNorth, + gObjectEventImageAnim_FaceWest, + gObjectEventImageAnim_FaceEast, + gObjectEventImageAnim_GoSouth2F, + gObjectEventImageAnim_GoNorth2F, + gObjectEventImageAnim_GoWest2F, + gObjectEventImageAnim_GoEast2F, + gObjectEventImageAnim_GoFastSouth, + gObjectEventImageAnim_GoFastNorth, + gObjectEventImageAnim_GoFastWest, + gObjectEventImageAnim_GoFastEast, + gObjectEventImageAnim_GoFasterSouth, + gObjectEventImageAnim_GoFasterNorth, + gObjectEventImageAnim_GoFasterWest, + gObjectEventImageAnim_GoFasterEast, + gObjectEventImageAnim_GoFastestSouth, + gObjectEventImageAnim_GoFastestNorth, + gObjectEventImageAnim_GoFastestWest, + gObjectEventImageAnim_GoFastestEast, +}; + const union AnimCmd *const gObjectEventImageAnimTable_HoOh[] = { gObjectEventImageAnim_FaceSouth, gObjectEventImageAnim_FaceNorth, diff --git a/src/data/object_events/object_event_graphics.h b/src/data/object_events/object_event_graphics.h index 81d83a8563..47d15eac0a 100755 --- a/src/data/object_events/object_event_graphics.h +++ b/src/data/object_events/object_event_graphics.h @@ -68,6 +68,7 @@ const u16 gObjectEventPal_Npc1Reflection[] = INCBIN_U16("graphics/object_events/ const u16 gObjectEventPal_Npc2Reflection[] = INCBIN_U16("graphics/object_events/palettes/npc_2_reflection.gbapal"); const u16 gObjectEventPal_Npc3Reflection[] = INCBIN_U16("graphics/object_events/palettes/npc_3_reflection.gbapal"); const u16 gObjectEventPal_Npc4Reflection[] = INCBIN_U16("graphics/object_events/palettes/npc_4_reflection.gbapal"); +const u16 gObjectEventPaletteMarshtomp[] = INCBIN_U16("graphics/object_events/palettes/marshtomp.gbapal"); const u32 gObjectEventPic_NinjaBoy[] = INCBIN_U32("graphics/object_events/pics/people/ninja_boy.4bpp"); const u32 gObjectEventPic_Twin[] = INCBIN_U32("graphics/object_events/pics/people/twin.4bpp"); const u32 gObjectEventPic_Boy1[] = INCBIN_U32("graphics/object_events/pics/people/boy_1.4bpp"); @@ -360,3 +361,6 @@ const u32 gObjectEventPic_Lugia[] = INCBIN_U32("graphics/object_events/pics/poke const u16 gObjectEventPal_Lugia[] = INCBIN_U16("graphics/object_events/palettes/lugia.gbapal"); const u32 gObjectEventPic_HoOh[] = INCBIN_U32("graphics/object_events/pics/pokemon/ho_oh.4bpp"); const u16 gObjectEventPal_HoOh[] = INCBIN_U16("graphics/object_events/palettes/ho_oh.gbapal"); +const u32 gObjectEventPic_Marshtomp[] = INCBIN_U32("graphics/object_events/pics/pokemon/marshtomp.4bpp"); +const u32 gObjectEventPic_Altaria[] = INCBIN_U32("graphics/object_events/pics/pokemon/altaria.4bpp"); +const u16 gObjectEventPalette31[] = INCBIN_U16("graphics/object_events/palettes/31.gbapal"); diff --git a/src/data/object_events/object_event_graphics_info.h b/src/data/object_events/object_event_graphics_info.h index c6c78dca99..661db38c46 100755 --- a/src/data/object_events/object_event_graphics_info.h +++ b/src/data/object_events/object_event_graphics_info.h @@ -243,3 +243,5 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireBrenda const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireMay = {0xFFFF, OBJ_EVENT_PAL_TAG_RS_MAY, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RubySapphireMay, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia = {0xFFFF, OBJ_EVENT_PAL_TAG_LUGIA, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lugia, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh = {0xFFFF, OBJ_EVENT_PAL_TAG_HO_OH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_HoOh, gObjectEventPicTable_HoOh, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Marshtomp = {0xFFFF, OBJ_EVENT_PAL_TAG_MARSHTOMP, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Marshtomp, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Altaria = {0xFFFF, OBJ_EVENT_PAL_TAG_MARSHTOMP, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Altaria, gDummySpriteAffineAnimTable}; diff --git a/src/data/object_events/object_event_graphics_info_pointers.h b/src/data/object_events/object_event_graphics_info_pointers.h index 0ca70fa337..cb94026ee9 100755 --- a/src/data/object_events/object_event_graphics_info_pointers.h +++ b/src/data/object_events/object_event_graphics_info_pointers.h @@ -237,6 +237,9 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireBrenda const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireMay; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Marshtomp; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Altaria; + const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bard; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hipster; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Trader; @@ -486,6 +489,8 @@ const struct ObjectEventGraphicsInfo *const gObjectEventGraphicsInfoPointers[NUM [OBJ_EVENT_GFX_LINK_RS_MAY] = &gObjectEventGraphicsInfo_RubySapphireMay, [OBJ_EVENT_GFX_LUGIA] = &gObjectEventGraphicsInfo_Lugia, [OBJ_EVENT_GFX_HOOH] = &gObjectEventGraphicsInfo_HoOh, + [OBJ_EVENT_GFX_MARSHTOMP] = &gObjectEventGraphicsInfo_Marshtomp, + [OBJ_EVENT_GFX_ALTARIA] = &gObjectEventGraphicsInfo_Altaria, }; const struct ObjectEventGraphicsInfo *const gMauvilleOldManGraphicsInfoPointers[] = { diff --git a/src/data/object_events/object_event_pic_tables.h b/src/data/object_events/object_event_pic_tables.h index 9cfdca7c16..f63f265278 100755 --- a/src/data/object_events/object_event_pic_tables.h +++ b/src/data/object_events/object_event_pic_tables.h @@ -2149,6 +2149,30 @@ const struct SpriteFrameImage gObjectEventPicTable_HoOh[] = { overworld_frame(gObjectEventPic_HoOh, 4, 4, 1), }; +const struct SpriteFrameImage gObjectEventPicTable_Marshtomp[] = { + overworld_frame(gObjectEventPic_Marshtomp, 2, 4, 0), + overworld_frame(gObjectEventPic_Marshtomp, 2, 4, 1), + overworld_frame(gObjectEventPic_Marshtomp, 2, 4, 2), + overworld_frame(gObjectEventPic_Marshtomp, 2, 4, 3), + overworld_frame(gObjectEventPic_Marshtomp, 2, 4, 4), + overworld_frame(gObjectEventPic_Marshtomp, 2, 4, 5), + overworld_frame(gObjectEventPic_Marshtomp, 2, 4, 6), + overworld_frame(gObjectEventPic_Marshtomp, 2, 4, 7), + overworld_frame(gObjectEventPic_Marshtomp, 2, 4, 8), +}; + +const struct SpriteFrameImage gObjectEventPicTable_Altaria[] = { + overworld_frame(gObjectEventPic_Altaria, 4, 4, 0), + overworld_frame(gObjectEventPic_Altaria, 4, 4, 1), + overworld_frame(gObjectEventPic_Altaria, 4, 4, 2), + overworld_frame(gObjectEventPic_Altaria, 4, 4, 3), + overworld_frame(gObjectEventPic_Altaria, 4, 4, 4), + overworld_frame(gObjectEventPic_Altaria, 4, 4, 5), + overworld_frame(gObjectEventPic_Altaria, 4, 4, 6), + overworld_frame(gObjectEventPic_Altaria, 4, 4, 7), + overworld_frame(gObjectEventPic_Altaria, 4, 4, 8), +}; + const struct SpriteFrameImage gObjectEventPicTable_RubySapphireBrendan[] = { overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 0), overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 1), diff --git a/src/data/wild_encounters.json b/src/data/wild_encounters.json index 0b30c0f65b..463dadd0b6 100755 --- a/src/data/wild_encounters.json +++ b/src/data/wild_encounters.json @@ -7,30 +7,71 @@ { "type": "land_mons", "encounter_rates": [ - 20, 20, 10, 10, 10, 10, 5, 5, 4, 4, 1, 1 + 20, + 20, + 10, + 10, + 10, + 10, + 5, + 5, + 4, + 4, + 1, + 1 ] }, { "type": "water_mons", "encounter_rates": [ - 60, 30, 5, 4, 1 + 60, + 30, + 5, + 4, + 1 ] }, { "type": "rock_smash_mons", "encounter_rates": [ - 60, 30, 5, 4, 1 + 60, + 30, + 5, + 4, + 1 ] }, { "type": "fishing_mons", "encounter_rates": [ - 70, 30, 60, 20, 20, 40, 40, 15, 4, 1 + 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] + "good_rod": [ + 2, + 3, + 4 + ], + "old_rod": [ + 0, + 1 + ], + "super_rod": [ + 5, + 6, + 7, + 8, + 9 + ] } } ], @@ -107,6 +148,61 @@ { "map": "MAP_ROUTE102", "base_label": "gRoute102", + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_CORPHISH" + } + ] + }, "land_mons": { "encounter_rate": 20, "mons": [ @@ -201,7 +297,11 @@ "species": "SPECIES_GOLDEEN" } ] - }, + } + }, + { + "map": "MAP_ROUTE103", + "base_label": "gRoute103", "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -213,7 +313,7 @@ { "min_level": 5, "max_level": 10, - "species": "SPECIES_GOLDEEN" + "species": "SPECIES_TENTACOOL" }, { "min_level": 10, @@ -223,44 +323,40 @@ { "min_level": 10, "max_level": 30, - "species": "SPECIES_GOLDEEN" + "species": "SPECIES_TENTACOOL" }, { "min_level": 10, "max_level": 30, - "species": "SPECIES_CORPHISH" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_CORPHISH" + "species": "SPECIES_WAILMER" }, { "min_level": 30, "max_level": 35, - "species": "SPECIES_CORPHISH" + "species": "SPECIES_SHARPEDO" }, { - "min_level": 20, - "max_level": 25, - "species": "SPECIES_CORPHISH" + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" }, { "min_level": 35, "max_level": 40, - "species": "SPECIES_CORPHISH" + "species": "SPECIES_WAILMER" }, { "min_level": 40, "max_level": 45, - "species": "SPECIES_CORPHISH" + "species": "SPECIES_WAILMER" } ] - } - }, - { - "map": "MAP_ROUTE103", - "base_label": "gRoute103", + }, "land_mons": { "encounter_rate": 20, "mons": [ @@ -355,7 +451,11 @@ "species": "SPECIES_PELIPPER" } ] - }, + } + }, + { + "map": "MAP_ROUTE104", + "base_label": "gRoute104", "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -367,7 +467,7 @@ { "min_level": 5, "max_level": 10, - "species": "SPECIES_TENTACOOL" + "species": "SPECIES_MAGIKARP" }, { "min_level": 10, @@ -377,44 +477,40 @@ { "min_level": 10, "max_level": 30, - "species": "SPECIES_TENTACOOL" + "species": "SPECIES_MAGIKARP" }, { "min_level": 10, "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_SHARPEDO" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_WAILMER" + "species": "SPECIES_MAGIKARP" }, { "min_level": 25, "max_level": 30, - "species": "SPECIES_WAILMER" + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_MAGIKARP" }, { "min_level": 35, "max_level": 40, - "species": "SPECIES_WAILMER" + "species": "SPECIES_MAGIKARP" }, { "min_level": 40, "max_level": 45, - "species": "SPECIES_WAILMER" + "species": "SPECIES_MAGIKARP" } ] - } - }, - { - "map": "MAP_ROUTE104", - "base_label": "gRoute104", + }, "land_mons": { "encounter_rate": 20, "mons": [ @@ -509,7 +605,11 @@ "species": "SPECIES_PELIPPER" } ] - }, + } + }, + { + "map": "MAP_ROUTE105", + "base_label": "gRoute105", "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -521,7 +621,7 @@ { "min_level": 5, "max_level": 10, - "species": "SPECIES_MAGIKARP" + "species": "SPECIES_TENTACOOL" }, { "min_level": 10, @@ -531,44 +631,40 @@ { "min_level": 10, "max_level": 30, - "species": "SPECIES_MAGIKARP" + "species": "SPECIES_TENTACOOL" }, { "min_level": 10, "max_level": 30, - "species": "SPECIES_MAGIKARP" + "species": "SPECIES_WAILMER" }, { "min_level": 25, "max_level": 30, - "species": "SPECIES_MAGIKARP" + "species": "SPECIES_WAILMER" }, { "min_level": 30, "max_level": 35, - "species": "SPECIES_MAGIKARP" + "species": "SPECIES_WAILMER" }, { "min_level": 20, "max_level": 25, - "species": "SPECIES_MAGIKARP" + "species": "SPECIES_WAILMER" }, { "min_level": 35, "max_level": 40, - "species": "SPECIES_MAGIKARP" + "species": "SPECIES_WAILMER" }, { "min_level": 40, "max_level": 45, - "species": "SPECIES_MAGIKARP" + "species": "SPECIES_WAILMER" } ] - } - }, - { - "map": "MAP_ROUTE105", - "base_label": "gRoute105", + }, "water_mons": { "encounter_rate": 4, "mons": [ @@ -598,7 +694,11 @@ "species": "SPECIES_PELIPPER" } ] - }, + } + }, + { + "map": "MAP_ROUTE110", + "base_label": "gRoute110", "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -653,11 +753,7 @@ "species": "SPECIES_WAILMER" } ] - } - }, - { - "map": "MAP_ROUTE110", - "base_label": "gRoute110", + }, "land_mons": { "encounter_rate": 20, "mons": [ @@ -752,7 +848,11 @@ "species": "SPECIES_PELIPPER" } ] - }, + } + }, + { + "map": "MAP_ROUTE111", + "base_label": "gRoute111", "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -764,7 +864,7 @@ { "min_level": 5, "max_level": 10, - "species": "SPECIES_TENTACOOL" + "species": "SPECIES_GOLDEEN" }, { "min_level": 10, @@ -774,44 +874,40 @@ { "min_level": 10, "max_level": 30, - "species": "SPECIES_TENTACOOL" + "species": "SPECIES_GOLDEEN" }, { "min_level": 10, "max_level": 30, - "species": "SPECIES_WAILMER" + "species": "SPECIES_BARBOACH" }, { "min_level": 25, "max_level": 30, - "species": "SPECIES_WAILMER" + "species": "SPECIES_BARBOACH" }, { "min_level": 30, "max_level": 35, - "species": "SPECIES_WAILMER" + "species": "SPECIES_BARBOACH" }, { "min_level": 20, "max_level": 25, - "species": "SPECIES_WAILMER" + "species": "SPECIES_BARBOACH" }, { "min_level": 35, "max_level": 40, - "species": "SPECIES_WAILMER" + "species": "SPECIES_BARBOACH" }, { "min_level": 40, "max_level": 45, - "species": "SPECIES_WAILMER" + "species": "SPECIES_BARBOACH" } ] - } - }, - { - "map": "MAP_ROUTE111", - "base_label": "gRoute111", + }, "land_mons": { "encounter_rate": 10, "mons": [ @@ -877,36 +973,6 @@ } ] }, - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 20, - "max_level": 30, - "species": "SPECIES_MARILL" - }, - { - "min_level": 10, - "max_level": 20, - "species": "SPECIES_MARILL" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_MARILL" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MARILL" - }, - { - "min_level": 20, - "max_level": 30, - "species": "SPECIES_GOLDEEN" - } - ] - }, "rock_smash_mons": { "encounter_rate": 20, "mons": [ @@ -937,58 +1003,33 @@ } ] }, - "fishing_mons": { - "encounter_rate": 30, + "water_mons": { + "encounter_rate": 4, "mons": [ { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_GOLDEEN" + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" }, { "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_BARBOACH" + "max_level": 20, + "species": "SPECIES_MARILL" }, { "min_level": 30, "max_level": 35, - "species": "SPECIES_BARBOACH" + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" }, { "min_level": 20, - "max_level": 25, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 40, - "max_level": 45, - "species": "SPECIES_BARBOACH" + "max_level": 30, + "species": "SPECIES_GOLDEEN" } ] } @@ -1134,6 +1175,61 @@ { "map": "MAP_ROUTE114", "base_label": "gRoute114", + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_BARBOACH" + } + ] + }, "land_mons": { "encounter_rate": 20, "mons": [ @@ -1199,36 +1295,6 @@ } ] }, - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 20, - "max_level": 30, - "species": "SPECIES_MARILL" - }, - { - "min_level": 10, - "max_level": 20, - "species": "SPECIES_MARILL" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_MARILL" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MARILL" - }, - { - "min_level": 20, - "max_level": 30, - "species": "SPECIES_GOLDEEN" - } - ] - }, "rock_smash_mons": { "encounter_rate": 20, "mons": [ @@ -1259,58 +1325,33 @@ } ] }, - "fishing_mons": { - "encounter_rate": 30, + "water_mons": { + "encounter_rate": 4, "mons": [ { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_GOLDEEN" + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" }, { "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_BARBOACH" + "max_level": 20, + "species": "SPECIES_MARILL" }, { "min_level": 30, "max_level": 35, - "species": "SPECIES_BARBOACH" + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" }, { "min_level": 20, - "max_level": 25, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 40, - "max_level": 45, - "species": "SPECIES_BARBOACH" + "max_level": 30, + "species": "SPECIES_GOLDEEN" } ] } @@ -1387,6 +1428,61 @@ { "map": "MAP_ROUTE117", "base_label": "gRoute117", + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_CORPHISH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_CORPHISH" + } + ] + }, "land_mons": { "encounter_rate": 20, "mons": [ @@ -1481,7 +1577,11 @@ "species": "SPECIES_GOLDEEN" } ] - }, + } + }, + { + "map": "MAP_ROUTE118", + "base_label": "gRoute118", "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -1493,7 +1593,7 @@ { "min_level": 5, "max_level": 10, - "species": "SPECIES_GOLDEEN" + "species": "SPECIES_TENTACOOL" }, { "min_level": 10, @@ -1503,44 +1603,40 @@ { "min_level": 10, "max_level": 30, - "species": "SPECIES_GOLDEEN" + "species": "SPECIES_TENTACOOL" }, { "min_level": 10, "max_level": 30, - "species": "SPECIES_CORPHISH" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_CORPHISH" + "species": "SPECIES_CARVANHA" }, { "min_level": 30, "max_level": 35, - "species": "SPECIES_CORPHISH" + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CARVANHA" }, { "min_level": 20, "max_level": 25, - "species": "SPECIES_CORPHISH" + "species": "SPECIES_CARVANHA" }, { "min_level": 35, "max_level": 40, - "species": "SPECIES_CORPHISH" + "species": "SPECIES_CARVANHA" }, { "min_level": 40, "max_level": 45, - "species": "SPECIES_CORPHISH" + "species": "SPECIES_CARVANHA" } ] - } - }, - { - "map": "MAP_ROUTE118", - "base_label": "gRoute118", + }, "land_mons": { "encounter_rate": 20, "mons": [ @@ -1635,7 +1731,11 @@ "species": "SPECIES_PELIPPER" } ] - }, + } + }, + { + "map": "MAP_ROUTE124", + "base_label": "gRoute124", "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -1662,7 +1762,7 @@ { "min_level": 10, "max_level": 30, - "species": "SPECIES_CARVANHA" + "species": "SPECIES_WAILMER" }, { "min_level": 30, @@ -1672,29 +1772,25 @@ { "min_level": 30, "max_level": 35, - "species": "SPECIES_CARVANHA" + "species": "SPECIES_WAILMER" }, { - "min_level": 20, - "max_level": 25, - "species": "SPECIES_CARVANHA" + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" }, { "min_level": 35, "max_level": 40, - "species": "SPECIES_CARVANHA" + "species": "SPECIES_WAILMER" }, { "min_level": 40, "max_level": 45, - "species": "SPECIES_CARVANHA" + "species": "SPECIES_WAILMER" } ] - } - }, - { - "map": "MAP_ROUTE124", - "base_label": "gRoute124", + }, "water_mons": { "encounter_rate": 4, "mons": [ @@ -1724,61 +1820,6 @@ "species": "SPECIES_PELIPPER" } ] - }, - "fishing_mons": { - "encounter_rate": 30, - "mons": [ - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_SHARPEDO" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 40, - "max_level": 45, - "species": "SPECIES_WAILMER" - } - ] } }, { @@ -2301,36 +2342,6 @@ { "map": "MAP_ABANDONED_SHIP_ROOMS_B1F", "base_label": "gAbandonedShip_Rooms_B1F", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_TENTACRUEL" - } - ] - }, "fishing_mons": { "encounter_rate": 20, "mons": [ @@ -2385,6 +2396,36 @@ "species": "SPECIES_TENTACRUEL" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_TENTACRUEL" + } + ] } }, { @@ -2558,6 +2599,61 @@ { "map": "MAP_METEOR_FALLS_B1F_2R", "base_label": "gMeteorFalls_B1F_2R", + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WHISCASH" + } + ] + }, "land_mons": { "encounter_rate": 10, "mons": [ @@ -2652,61 +2748,6 @@ "species": "SPECIES_SOLROCK" } ] - }, - "fishing_mons": { - "encounter_rate": 30, - "mons": [ - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_WHISCASH" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_WHISCASH" - }, - { - "min_level": 40, - "max_level": 45, - "species": "SPECIES_WHISCASH" - } - ] } }, { @@ -2781,36 +2822,6 @@ { "map": "MAP_ROUTE106", "base_label": "gRoute106", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - } - ] - }, "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -2865,41 +2876,41 @@ "species": "SPECIES_WAILMER" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] } }, { "map": "MAP_ROUTE107", "base_label": "gRoute107", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - } - ] - }, "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -2954,41 +2965,41 @@ "species": "SPECIES_WAILMER" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] } }, { "map": "MAP_ROUTE108", "base_label": "gRoute108", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - } - ] - }, "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -3043,41 +3054,41 @@ "species": "SPECIES_WAILMER" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] } }, { "map": "MAP_ROUTE109", "base_label": "gRoute109", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - } - ] - }, "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -3132,11 +3143,96 @@ "species": "SPECIES_WAILMER" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] } }, { "map": "MAP_ROUTE115", "base_label": "gRoute115", + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + }, "land_mons": { "encounter_rate": 20, "mons": [ @@ -3231,61 +3327,6 @@ "species": "SPECIES_PELIPPER" } ] - }, - "fishing_mons": { - "encounter_rate": 30, - "mons": [ - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 20, - "max_level": 25, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 40, - "max_level": 45, - "species": "SPECIES_WAILMER" - } - ] } }, { @@ -3360,6 +3401,61 @@ { "map": "MAP_ROUTE119", "base_label": "gRoute119", + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_CARVANHA" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_CARVANHA" + } + ] + }, "land_mons": { "encounter_rate": 15, "mons": [ @@ -3454,7 +3550,11 @@ "species": "SPECIES_PELIPPER" } ] - }, + } + }, + { + "map": "MAP_ROUTE120", + "base_label": "gRoute120", "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -3466,7 +3566,7 @@ { "min_level": 5, "max_level": 10, - "species": "SPECIES_TENTACOOL" + "species": "SPECIES_GOLDEEN" }, { "min_level": 10, @@ -3476,44 +3576,40 @@ { "min_level": 10, "max_level": 30, - "species": "SPECIES_TENTACOOL" + "species": "SPECIES_GOLDEEN" }, { "min_level": 10, "max_level": 30, - "species": "SPECIES_CARVANHA" + "species": "SPECIES_BARBOACH" }, { "min_level": 25, "max_level": 30, - "species": "SPECIES_CARVANHA" + "species": "SPECIES_BARBOACH" }, { "min_level": 30, "max_level": 35, - "species": "SPECIES_CARVANHA" + "species": "SPECIES_BARBOACH" }, { "min_level": 20, "max_level": 25, - "species": "SPECIES_CARVANHA" + "species": "SPECIES_BARBOACH" }, { "min_level": 35, "max_level": 40, - "species": "SPECIES_CARVANHA" + "species": "SPECIES_BARBOACH" }, { "min_level": 40, "max_level": 45, - "species": "SPECIES_CARVANHA" + "species": "SPECIES_BARBOACH" } ] - } - }, - { - "map": "MAP_ROUTE120", - "base_label": "gRoute120", + }, "land_mons": { "encounter_rate": 20, "mons": [ @@ -3608,7 +3704,11 @@ "species": "SPECIES_GOLDEEN" } ] - }, + } + }, + { + "map": "MAP_ROUTE121", + "base_label": "gRoute121", "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -3620,7 +3720,7 @@ { "min_level": 5, "max_level": 10, - "species": "SPECIES_GOLDEEN" + "species": "SPECIES_TENTACOOL" }, { "min_level": 10, @@ -3630,44 +3730,40 @@ { "min_level": 10, "max_level": 30, - "species": "SPECIES_GOLDEEN" + "species": "SPECIES_TENTACOOL" }, { "min_level": 10, "max_level": 30, - "species": "SPECIES_BARBOACH" + "species": "SPECIES_WAILMER" }, { "min_level": 25, "max_level": 30, - "species": "SPECIES_BARBOACH" + "species": "SPECIES_WAILMER" }, { "min_level": 30, "max_level": 35, - "species": "SPECIES_BARBOACH" + "species": "SPECIES_WAILMER" }, { "min_level": 20, "max_level": 25, - "species": "SPECIES_BARBOACH" + "species": "SPECIES_WAILMER" }, { "min_level": 35, "max_level": 40, - "species": "SPECIES_BARBOACH" + "species": "SPECIES_WAILMER" }, { "min_level": 40, "max_level": 45, - "species": "SPECIES_BARBOACH" + "species": "SPECIES_WAILMER" } ] - } - }, - { - "map": "MAP_ROUTE121", - "base_label": "gRoute121", + }, "land_mons": { "encounter_rate": 20, "mons": [ @@ -3762,96 +3858,11 @@ "species": "SPECIES_PELIPPER" } ] - }, - "fishing_mons": { - "encounter_rate": 30, - "mons": [ - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 20, - "max_level": 25, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 40, - "max_level": 45, - "species": "SPECIES_WAILMER" - } - ] } }, { "map": "MAP_ROUTE122", "base_label": "gRoute122", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - } - ] - }, "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -3906,11 +3917,96 @@ "species": "SPECIES_WAILMER" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] } }, { "map": "MAP_ROUTE123", "base_label": "gRoute123", + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + }, "land_mons": { "encounter_rate": 20, "mons": [ @@ -4005,61 +4101,6 @@ "species": "SPECIES_PELIPPER" } ] - }, - "fishing_mons": { - "encounter_rate": 30, - "mons": [ - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 20, - "max_level": 25, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 40, - "max_level": 45, - "species": "SPECIES_WAILMER" - } - ] } }, { @@ -4617,36 +4658,6 @@ { "map": "MAP_ROUTE125", "base_label": "gRoute125", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - } - ] - }, "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -4701,41 +4712,41 @@ "species": "SPECIES_WAILMER" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] } }, { "map": "MAP_ROUTE126", "base_label": "gRoute126", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - } - ] - }, "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -4790,41 +4801,41 @@ "species": "SPECIES_WAILMER" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] } }, { "map": "MAP_ROUTE127", "base_label": "gRoute127", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - } - ] - }, "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -4879,11 +4890,7 @@ "species": "SPECIES_WAILMER" } ] - } - }, - { - "map": "MAP_ROUTE128", - "base_label": "gRoute128", + }, "water_mons": { "encounter_rate": 4, "mons": [ @@ -4913,7 +4920,11 @@ "species": "SPECIES_PELIPPER" } ] - }, + } + }, + { + "map": "MAP_ROUTE128", + "base_label": "gRoute128", "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -4968,11 +4979,7 @@ "species": "SPECIES_WAILMER" } ] - } - }, - { - "map": "MAP_ROUTE129", - "base_label": "gRoute129", + }, "water_mons": { "encounter_rate": 4, "mons": [ @@ -4999,10 +5006,14 @@ { "min_level": 25, "max_level": 30, - "species": "SPECIES_WAILORD" + "species": "SPECIES_PELIPPER" } ] - }, + } + }, + { + "map": "MAP_ROUTE129", + "base_label": "gRoute129", "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -5057,11 +5068,96 @@ "species": "SPECIES_WAILMER" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILORD" + } + ] } }, { "map": "MAP_ROUTE130", "base_label": "gRoute130", + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SHARPEDO" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + }, "land_mons": { "encounter_rate": 20, "mons": [ @@ -5156,7 +5252,11 @@ "species": "SPECIES_PELIPPER" } ] - }, + } + }, + { + "map": "MAP_ROUTE131", + "base_label": "gRoute131", "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -5211,11 +5311,7 @@ "species": "SPECIES_WAILMER" } ] - } - }, - { - "map": "MAP_ROUTE131", - "base_label": "gRoute131", + }, "water_mons": { "encounter_rate": 4, "mons": [ @@ -5245,96 +5341,11 @@ "species": "SPECIES_PELIPPER" } ] - }, - "fishing_mons": { - "encounter_rate": 30, - "mons": [ - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_SHARPEDO" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 40, - "max_level": 45, - "species": "SPECIES_WAILMER" - } - ] } }, { "map": "MAP_ROUTE132", "base_label": "gRoute132", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - } - ] - }, "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -5389,41 +5400,41 @@ "species": "SPECIES_WAILMER" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] } }, { "map": "MAP_ROUTE133", "base_label": "gRoute133", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - } - ] - }, "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -5478,41 +5489,41 @@ "species": "SPECIES_WAILMER" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] } }, { "map": "MAP_ROUTE134", "base_label": "gRoute134", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - } - ] - }, "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -5567,11 +5578,7 @@ "species": "SPECIES_WAILMER" } ] - } - }, - { - "map": "MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS", - "base_label": "gAbandonedShip_HiddenFloorCorridors", + }, "water_mons": { "encounter_rate": 4, "mons": [ @@ -5581,27 +5588,31 @@ "species": "SPECIES_TENTACOOL" }, { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" }, { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" }, { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" }, { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_TENTACRUEL" + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" } ] - }, + } + }, + { + "map": "MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS", + "base_label": "gAbandonedShip_HiddenFloorCorridors", "fishing_mons": { "encounter_rate": 20, "mons": [ @@ -5656,6 +5667,36 @@ "species": "SPECIES_TENTACRUEL" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_TENTACRUEL" + } + ] } }, { @@ -6006,6 +6047,61 @@ { "map": "MAP_SEAFLOOR_CAVERN_ROOM6", "base_label": "gSeafloorCavern_Room6", + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + }, "land_mons": { "encounter_rate": 4, "mons": [ @@ -6100,66 +6196,66 @@ "species": "SPECIES_GOLBAT" } ] - }, - "fishing_mons": { - "encounter_rate": 10, - "mons": [ - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 20, - "max_level": 25, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 40, - "max_level": 45, - "species": "SPECIES_WAILMER" - } - ] } }, { "map": "MAP_SEAFLOOR_CAVERN_ROOM7", "base_label": "gSeafloorCavern_Room7", + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + }, "land_mons": { "encounter_rate": 4, "mons": [ @@ -6254,61 +6350,6 @@ "species": "SPECIES_GOLBAT" } ] - }, - "fishing_mons": { - "encounter_rate": 10, - "mons": [ - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 20, - "max_level": 25, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 40, - "max_level": 45, - "species": "SPECIES_WAILMER" - } - ] } }, { @@ -6383,36 +6424,6 @@ { "map": "MAP_SEAFLOOR_CAVERN_ENTRANCE", "base_label": "gSeafloorCavern_Entrance", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_ZUBAT" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_ZUBAT" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_GOLBAT" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_GOLBAT" - } - ] - }, "fishing_mons": { "encounter_rate": 10, "mons": [ @@ -6467,6 +6478,36 @@ "species": "SPECIES_WAILMER" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_ZUBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLBAT" + } + ] } }, { @@ -6886,6 +6927,61 @@ { "map": "MAP_SAFARI_ZONE_SOUTHWEST", "base_label": "gSafariZone_Southwest", + "fishing_mons": { + "encounter_rate": 35, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 25, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SEAKING" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_SEAKING" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_SEAKING" + } + ] + }, "land_mons": { "encounter_rate": 25, "mons": [ @@ -6980,61 +7076,6 @@ "species": "SPECIES_PSYDUCK" } ] - }, - "fishing_mons": { - "encounter_rate": 35, - "mons": [ - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 25, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_SEAKING" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_SEAKING" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_SEAKING" - } - ] } }, { @@ -7139,6 +7180,61 @@ { "map": "MAP_SAFARI_ZONE_NORTHWEST", "base_label": "gSafariZone_Northwest", + "fishing_mons": { + "encounter_rate": 35, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 25, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_SEAKING" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_SEAKING" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_SEAKING" + } + ] + }, "land_mons": { "encounter_rate": 25, "mons": [ @@ -7233,61 +7329,6 @@ "species": "SPECIES_GOLDUCK" } ] - }, - "fishing_mons": { - "encounter_rate": 35, - "mons": [ - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 25, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_SEAKING" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_SEAKING" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_SEAKING" - } - ] } }, { @@ -7392,6 +7433,61 @@ { "map": "MAP_VICTORY_ROAD_B2F", "base_label": "gVictoryRoad_B2F", + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WHISCASH" + } + ] + }, "land_mons": { "encounter_rate": 10, "mons": [ @@ -7486,7 +7582,11 @@ "species": "SPECIES_GOLBAT" } ] - }, + } + }, + { + "map": "MAP_METEOR_FALLS_1F_1R", + "base_label": "gMeteorFalls_1F_1R", "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -7526,26 +7626,22 @@ "species": "SPECIES_BARBOACH" }, { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_WHISCASH" + "min_level": 20, + "max_level": 25, + "species": "SPECIES_BARBOACH" }, { "min_level": 35, "max_level": 40, - "species": "SPECIES_WHISCASH" + "species": "SPECIES_BARBOACH" }, { "min_level": 40, "max_level": 45, - "species": "SPECIES_WHISCASH" + "species": "SPECIES_BARBOACH" } ] - } - }, - { - "map": "MAP_METEOR_FALLS_1F_1R", - "base_label": "gMeteorFalls_1F_1R", + }, "land_mons": { "encounter_rate": 10, "mons": [ @@ -7640,7 +7736,11 @@ "species": "SPECIES_SOLROCK" } ] - }, + } + }, + { + "map": "MAP_METEOR_FALLS_1F_2R", + "base_label": "gMeteorFalls_1F_2R", "fishing_mons": { "encounter_rate": 30, "mons": [ @@ -7680,26 +7780,22 @@ "species": "SPECIES_BARBOACH" }, { - "min_level": 20, - "max_level": 25, - "species": "SPECIES_BARBOACH" + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WHISCASH" }, { "min_level": 35, "max_level": 40, - "species": "SPECIES_BARBOACH" + "species": "SPECIES_WHISCASH" }, { "min_level": 40, "max_level": 45, - "species": "SPECIES_BARBOACH" + "species": "SPECIES_WHISCASH" } ] - } - }, - { - "map": "MAP_METEOR_FALLS_1F_2R", - "base_label": "gMeteorFalls_1F_2R", + }, "land_mons": { "encounter_rate": 10, "mons": [ @@ -7794,66 +7890,66 @@ "species": "SPECIES_SOLROCK" } ] - }, - "fishing_mons": { - "encounter_rate": 30, - "mons": [ - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_WHISCASH" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_WHISCASH" - }, - { - "min_level": 40, - "max_level": 45, - "species": "SPECIES_WHISCASH" - } - ] } }, { "map": "MAP_METEOR_FALLS_B1F_1R", "base_label": "gMeteorFalls_B1F_1R", + "fishing_mons": { + "encounter_rate": 30, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_BARBOACH" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WHISCASH" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WHISCASH" + } + ] + }, "land_mons": { "encounter_rate": 10, "mons": [ @@ -7948,61 +8044,6 @@ "species": "SPECIES_SOLROCK" } ] - }, - "fishing_mons": { - "encounter_rate": 30, - "mons": [ - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_BARBOACH" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_WHISCASH" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_WHISCASH" - }, - { - "min_level": 40, - "max_level": 45, - "species": "SPECIES_WHISCASH" - } - ] } }, { @@ -8146,6 +8187,61 @@ { "map": "MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM", "base_label": "gShoalCave_LowTideInnerRoom", + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + }, "land_mons": { "encounter_rate": 10, "mons": [ @@ -8240,66 +8336,66 @@ "species": "SPECIES_SPHEAL" } ] - }, - "fishing_mons": { - "encounter_rate": 10, - "mons": [ - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 20, - "max_level": 25, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 40, - "max_level": 45, - "species": "SPECIES_WAILMER" - } - ] } }, { "map": "MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM", "base_label": "gShoalCave_LowTideEntranceRoom", + "fishing_mons": { + "encounter_rate": 10, + "mons": [ + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 20, + "max_level": 25, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_WAILMER" + }, + { + "min_level": 40, + "max_level": 45, + "species": "SPECIES_WAILMER" + } + ] + }, "land_mons": { "encounter_rate": 10, "mons": [ @@ -8394,96 +8490,11 @@ "species": "SPECIES_SPHEAL" } ] - }, - "fishing_mons": { - "encounter_rate": 10, - "mons": [ - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 20, - "max_level": 25, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_WAILMER" - }, - { - "min_level": 40, - "max_level": 45, - "species": "SPECIES_WAILMER" - } - ] } }, { "map": "MAP_LILYCOVE_CITY", "base_label": "gLilycoveCity", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - } - ] - }, "fishing_mons": { "encounter_rate": 10, "mons": [ @@ -8538,11 +8549,7 @@ "species": "SPECIES_WAILMER" } ] - } - }, - { - "map": "MAP_DEWFORD_TOWN", - "base_label": "gDewfordTown", + }, "water_mons": { "encounter_rate": 4, "mons": [ @@ -8572,7 +8579,11 @@ "species": "SPECIES_PELIPPER" } ] - }, + } + }, + { + "map": "MAP_DEWFORD_TOWN", + "base_label": "gDewfordTown", "fishing_mons": { "encounter_rate": 10, "mons": [ @@ -8627,41 +8638,41 @@ "species": "SPECIES_WAILMER" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] } }, { "map": "MAP_SLATEPORT_CITY", "base_label": "gSlateportCity", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - } - ] - }, "fishing_mons": { "encounter_rate": 10, "mons": [ @@ -8716,11 +8727,7 @@ "species": "SPECIES_WAILMER" } ] - } - }, - { - "map": "MAP_MOSSDEEP_CITY", - "base_label": "gMossdeepCity", + }, "water_mons": { "encounter_rate": 4, "mons": [ @@ -8750,7 +8757,11 @@ "species": "SPECIES_PELIPPER" } ] - }, + } + }, + { + "map": "MAP_MOSSDEEP_CITY", + "base_label": "gMossdeepCity", "fishing_mons": { "encounter_rate": 10, "mons": [ @@ -8805,41 +8816,41 @@ "species": "SPECIES_WAILMER" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] } }, { "map": "MAP_PACIFIDLOG_TOWN", "base_label": "gPacifidlogTown", - "water_mons": { - "encounter_rate": 4, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_TENTACOOL" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_WINGULL" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_PELIPPER" - } - ] - }, "fishing_mons": { "encounter_rate": 10, "mons": [ @@ -8894,11 +8905,7 @@ "species": "SPECIES_WAILMER" } ] - } - }, - { - "map": "MAP_EVER_GRANDE_CITY", - "base_label": "gEverGrandeCity", + }, "water_mons": { "encounter_rate": 4, "mons": [ @@ -8928,7 +8935,11 @@ "species": "SPECIES_PELIPPER" } ] - }, + } + }, + { + "map": "MAP_EVER_GRANDE_CITY", + "base_label": "gEverGrandeCity", "fishing_mons": { "encounter_rate": 10, "mons": [ @@ -8983,41 +8994,41 @@ "species": "SPECIES_WAILMER" } ] + }, + "water_mons": { + "encounter_rate": 4, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_TENTACOOL" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_WINGULL" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_PELIPPER" + } + ] } }, { "map": "MAP_PETALBURG_CITY", "base_label": "gPetalburgCity", - "water_mons": { - "encounter_rate": 1, - "mons": [ - { - "min_level": 20, - "max_level": 30, - "species": "SPECIES_MARILL" - }, - { - "min_level": 10, - "max_level": 20, - "species": "SPECIES_MARILL" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_MARILL" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MARILL" - }, - { - "min_level": 5, - "max_level": 10, - "species": "SPECIES_MARILL" - } - ] - }, "fishing_mons": { "encounter_rate": 10, "mons": [ @@ -9072,6 +9083,36 @@ "species": "SPECIES_CORPHISH" } ] + }, + "water_mons": { + "encounter_rate": 1, + "mons": [ + { + "min_level": 20, + "max_level": 30, + "species": "SPECIES_MARILL" + }, + { + "min_level": 10, + "max_level": 20, + "species": "SPECIES_MARILL" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + }, + { + "min_level": 5, + "max_level": 10, + "species": "SPECIES_MARILL" + } + ] } }, { @@ -9249,36 +9290,6 @@ { "map": "MAP_SOOTOPOLIS_CITY", "base_label": "gSootopolisCity", - "water_mons": { - "encounter_rate": 1, - "mons": [ - { - "min_level": 5, - "max_level": 35, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 10, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 15, - "max_level": 25, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - } - ] - }, "fishing_mons": { "encounter_rate": 10, "mons": [ @@ -9333,6 +9344,36 @@ "species": "SPECIES_GYARADOS" } ] + }, + "water_mons": { + "encounter_rate": 1, + "mons": [ + { + "min_level": 5, + "max_level": 35, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 10, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 15, + "max_level": 25, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + } + ] } }, { @@ -9476,6 +9517,61 @@ { "map": "MAP_SAFARI_ZONE_SOUTHEAST", "base_label": "gSafariZone_Southeast", + "fishing_mons": { + "encounter_rate": 35, + "mons": [ + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_MAGIKARP" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_REMORAID" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_GOLDEEN" + }, + { + "min_level": 25, + "max_level": 30, + "species": "SPECIES_REMORAID" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_REMORAID" + }, + { + "min_level": 30, + "max_level": 35, + "species": "SPECIES_REMORAID" + }, + { + "min_level": 35, + "max_level": 40, + "species": "SPECIES_OCTILLERY" + } + ] + }, "land_mons": { "encounter_rate": 25, "mons": [ @@ -9570,61 +9666,6 @@ "species": "SPECIES_QUAGSIRE" } ] - }, - "fishing_mons": { - "encounter_rate": 35, - "mons": [ - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_MAGIKARP" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_REMORAID" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_GOLDEEN" - }, - { - "min_level": 25, - "max_level": 30, - "species": "SPECIES_REMORAID" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_REMORAID" - }, - { - "min_level": 30, - "max_level": 35, - "species": "SPECIES_REMORAID" - }, - { - "min_level": 35, - "max_level": 40, - "species": "SPECIES_OCTILLERY" - } - ] } }, { @@ -11454,8 +11495,6 @@ ] }, { - "label": "gBattlePyramidWildMonHeaders", - "for_maps": false, "encounters": [ { "base_label": "gBattlePyramid_1", @@ -11463,63 +11502,63 @@ "encounter_rate": 4, "mons": [ { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_BULBASAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_BULBASAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_BULBASAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_BULBASAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_IVYSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_IVYSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_VENUSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_VENUSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_VENUSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMANDER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_VENUSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMANDER" } ] @@ -11531,63 +11570,63 @@ "encounter_rate": 4, "mons": [ { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_IVYSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_IVYSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_IVYSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_IVYSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_VENUSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_VENUSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMANDER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMANDER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMANDER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMANDER" } ] @@ -11599,63 +11638,63 @@ "encounter_rate": 4, "mons": [ { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_VENUSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_VENUSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_VENUSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_VENUSAUR" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMANDER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMANDER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARIZARD" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARIZARD" } ] @@ -11667,63 +11706,63 @@ "encounter_rate": 4, "mons": [ { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMANDER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMANDER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMANDER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMANDER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARIZARD" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARIZARD" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARIZARD" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SQUIRTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARIZARD" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SQUIRTLE" } ] @@ -11735,63 +11774,63 @@ "encounter_rate": 4, "mons": [ { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARIZARD" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARIZARD" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SQUIRTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SQUIRTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SQUIRTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WARTORTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SQUIRTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WARTORTLE" } ] @@ -11803,63 +11842,63 @@ "encounter_rate": 4, "mons": [ { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARIZARD" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARIZARD" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARIZARD" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SQUIRTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SQUIRTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WARTORTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WARTORTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WARTORTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WARTORTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WARTORTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WARTORTLE" } ] @@ -11871,73 +11910,73 @@ "encounter_rate": 8, "mons": [ { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WARTORTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WARTORTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SQUIRTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SQUIRTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SQUIRTLE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARIZARD" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARIZARD" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARIZARD" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_CHARMELEON" } ] } } - ] + ], + "for_maps": false, + "label": "gBattlePyramidWildMonHeaders" }, { - "label": "gBattlePikeWildMonHeaders", - "for_maps": false, "encounters": [ { "base_label": "gBattlePike_1", @@ -11945,63 +11984,63 @@ "encounter_rate": 10, "mons": [ { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SEVIPER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_MILOTIC" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_DUSCLOPS" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_DUSCLOPS" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_DUSCLOPS" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_DUSCLOPS" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SEVIPER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_MILOTIC" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_DUSCLOPS" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_DUSCLOPS" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SEVIPER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_MILOTIC" } ] @@ -12013,63 +12052,63 @@ "encounter_rate": 10, "mons": [ { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SEVIPER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_MILOTIC" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_ELECTRODE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_ELECTRODE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_ELECTRODE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_ELECTRODE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SEVIPER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_MILOTIC" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_ELECTRODE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_ELECTRODE" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SEVIPER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_MILOTIC" } ] @@ -12081,63 +12120,63 @@ "encounter_rate": 10, "mons": [ { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SEVIPER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_MILOTIC" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_BRELOOM" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_BRELOOM" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_BRELOOM" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_BRELOOM" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SEVIPER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_MILOTIC" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_BRELOOM" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_BRELOOM" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SEVIPER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_MILOTIC" } ] @@ -12149,69 +12188,71 @@ "encounter_rate": 10, "mons": [ { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SEVIPER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_MILOTIC" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WOBBUFFET" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WOBBUFFET" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WOBBUFFET" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WOBBUFFET" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SEVIPER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_MILOTIC" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WOBBUFFET" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_WOBBUFFET" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_SEVIPER" }, { - "min_level": 5, "max_level": 5, + "min_level": 5, "species": "SPECIES_MILOTIC" } ] } } - ] + ], + "for_maps": false, + "label": "gBattlePikeWildMonHeaders" } ] } diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 1a7d08db27..cf3a030b63 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -133,6 +133,8 @@ static void oamt_npc_ministep_reset(struct Sprite *, u8, u8); static void InitSpriteForFigure8Anim(struct Sprite *sprite); static bool8 AnimateSpriteInFigure8(struct Sprite *sprite); static void UpdateObjectEventSprite(struct Sprite *); +static void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *); +u8 GetDirectionToFace(s16 x1, s16 y1, s16 x2, s16 y2); const u8 gReflectionEffectPaletteMap[] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0}; @@ -230,6 +232,7 @@ static void (*const sMovementTypeCallbacks[])(struct Sprite *) = [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = MovementType_WalkSlowlyInPlace, [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = MovementType_WalkSlowlyInPlace, [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = MovementType_WalkSlowlyInPlace, + [MOVEMENT_TYPE_FOLLOW_PLAYER] = MovementType_FollowPlayer, }; const u8 gRangedMovementTypes[] = { @@ -436,7 +439,8 @@ const u8 gInitialMovementTypeFacingDirections[] = { #define OBJ_EVENT_PAL_TAG_LUGIA 0x1121 #define OBJ_EVENT_PAL_TAG_RS_BRENDAN 0x1122 #define OBJ_EVENT_PAL_TAG_RS_MAY 0x1123 -#define OBJ_EVENT_PAL_TAG_NONE 0x11FF +#define OBJ_EVENT_PAL_TAG_MARSHTOMP 0x1124 +#define OBJ_EVENT_PAL_TAG_NONE 0x11FF #include "data/object_events/object_event_graphics_info_pointers.h" #include "data/field_effects/field_effect_object_template_pointers.h" @@ -446,6 +450,7 @@ const u8 gInitialMovementTypeFacingDirections[] = { #include "data/object_events/object_event_subsprites.h" #include "data/object_events/object_event_graphics_info.h" +<<<<<<< HEAD static const struct SpritePalette sObjectEventSpritePalettes[] = { {gObjectEventPal_Npc1, OBJ_EVENT_PAL_TAG_NPC_1}, {gObjectEventPal_Npc2, OBJ_EVENT_PAL_TAG_NPC_2}, @@ -483,6 +488,46 @@ static const struct SpritePalette sObjectEventSpritePalettes[] = { {gObjectEventPal_RubySapphireBrendan, OBJ_EVENT_PAL_TAG_RS_BRENDAN}, {gObjectEventPal_RubySapphireMay, OBJ_EVENT_PAL_TAG_RS_MAY}, {NULL, 0x0000}, +======= +const struct SpritePalette sObjectEventSpritePalettes[] = { + {gObjectEventPalette0, OBJ_EVENT_PAL_TAG_0}, + {gObjectEventPalette1, OBJ_EVENT_PAL_TAG_1}, + {gObjectEventPalette2, OBJ_EVENT_PAL_TAG_2}, + {gObjectEventPalette3, OBJ_EVENT_PAL_TAG_3}, + {gObjectEventPalette4, OBJ_EVENT_PAL_TAG_4}, + {gObjectEventPalette5, OBJ_EVENT_PAL_TAG_5}, + {gObjectEventPalette6, OBJ_EVENT_PAL_TAG_6}, + {gObjectEventPalette7, OBJ_EVENT_PAL_TAG_7}, + {gObjectEventPalette8, OBJ_EVENT_PAL_TAG_8}, + {gObjectEventPalette9, OBJ_EVENT_PAL_TAG_9}, + {gObjectEventPalette10, OBJ_EVENT_PAL_TAG_10}, + {gObjectEventPalette11, OBJ_EVENT_PAL_TAG_11}, + {gObjectEventPalette12, OBJ_EVENT_PAL_TAG_12}, + {gObjectEventPalette13, OBJ_EVENT_PAL_TAG_13}, + {gObjectEventPalette14, OBJ_EVENT_PAL_TAG_14}, + {gObjectEventPalette15, OBJ_EVENT_PAL_TAG_15}, + {gObjectEventPalette16, OBJ_EVENT_PAL_TAG_16}, + {gObjectEventPalette17, OBJ_EVENT_PAL_TAG_17}, + {gObjectEventPalette18, OBJ_EVENT_PAL_TAG_18}, + {gObjectEventPalette19, OBJ_EVENT_PAL_TAG_19}, + {gObjectEventPalette20, OBJ_EVENT_PAL_TAG_20}, + {gObjectEventPalette21, OBJ_EVENT_PAL_TAG_21}, + {gObjectEventPalette22, OBJ_EVENT_PAL_TAG_22}, + {gObjectEventPalette23, OBJ_EVENT_PAL_TAG_23}, + {gObjectEventPalette24, OBJ_EVENT_PAL_TAG_24}, + {gObjectEventPalette25, OBJ_EVENT_PAL_TAG_25}, + {gObjectEventPalette26, OBJ_EVENT_PAL_TAG_26}, + {gObjectEventPalette27, OBJ_EVENT_PAL_TAG_27}, + {gObjectEventPalette28, OBJ_EVENT_PAL_TAG_28}, + {gObjectEventPalette29, OBJ_EVENT_PAL_TAG_29}, + {gObjectEventPalette30, OBJ_EVENT_PAL_TAG_30}, + {gObjectEventPalette31, OBJ_EVENT_PAL_TAG_31}, + {gObjectEventPalette32, OBJ_EVENT_PAL_TAG_32}, + {gObjectEventPalette33, OBJ_EVENT_PAL_TAG_33}, + {gObjectEventPalette34, OBJ_EVENT_PAL_TAG_34}, + {gObjectEventPaletteMarshtomp, OBJ_EVENT_PAL_TAG_MARSHTOMP}, + {NULL, 0x0000}, +>>>>>>> 43d2595b3 (Testing follower pokemon.) }; static const u16 sReflectionPaletteTags_Brendan[] = { @@ -1406,27 +1451,31 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl return objectEventId; } -static u8 TrySpawnObjectEventTemplate(struct ObjectEventTemplate *objectEventTemplate, u8 mapNum, u8 mapGroup, s16 cameraX, s16 cameraY) -{ - u8 objectEventId; - struct SpriteTemplate spriteTemplate; - struct SpriteFrameImage spriteFrameImage; - const struct ObjectEventGraphicsInfo *graphicsInfo; - const struct SubspriteTable *subspriteTables = NULL; +static u8 +TrySpawnObjectEventTemplate(struct ObjectEventTemplate *objectEventTemplate, + u8 mapNum, u8 mapGroup, s16 cameraX, s16 cameraY) { + u8 objectEventId; + struct SpriteTemplate spriteTemplate; + struct SpriteFrameImage spriteFrameImage; + const struct ObjectEventGraphicsInfo *graphicsInfo; + const struct SubspriteTable *subspriteTables = NULL; - graphicsInfo = GetObjectEventGraphicsInfo(objectEventTemplate->graphicsId); - MakeObjectTemplateFromObjectEventTemplate(objectEventTemplate, &spriteTemplate, &subspriteTables); - spriteFrameImage.size = graphicsInfo->size; - spriteTemplate.images = &spriteFrameImage; - objectEventId = TrySetupObjectEventSprite(objectEventTemplate, &spriteTemplate, mapNum, mapGroup, cameraX, cameraY); - if (objectEventId == OBJECT_EVENTS_COUNT) - return OBJECT_EVENTS_COUNT; + graphicsInfo = GetObjectEventGraphicsInfo(objectEventTemplate->graphicsId); + MakeObjectTemplateFromObjectEventTemplate(objectEventTemplate, + &spriteTemplate, &subspriteTables); + spriteFrameImage.size = graphicsInfo->size; + spriteTemplate.images = &spriteFrameImage; + objectEventId = TrySetupObjectEventSprite( + objectEventTemplate, &spriteTemplate, mapNum, mapGroup, cameraX, cameraY); + if (objectEventId == OBJECT_EVENTS_COUNT) + return OBJECT_EVENTS_COUNT; - gSprites[gObjectEvents[objectEventId].spriteId].images = graphicsInfo->images; - if (subspriteTables) - SetSubspriteTables(&gSprites[gObjectEvents[objectEventId].spriteId], subspriteTables); + gSprites[gObjectEvents[objectEventId].spriteId].images = graphicsInfo->images; + if (subspriteTables) + SetSubspriteTables(&gSprites[gObjectEvents[objectEventId].spriteId], + subspriteTables); - return objectEventId; + return objectEventId; } u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *objectEventTemplate) @@ -1571,6 +1620,24 @@ u8 CreateObjectSprite(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction) return spriteId; } +u8 SpawnFollowingPokemon(void) { + u8 objectEventId; + struct ObjectEventTemplate template = {0}; + + template.localId = 0xFE; + template.graphicsId = OBJ_EVENT_GFX_MARSHTOMP; + template.x = gSaveBlock1Ptr->pos.x; + template.y = gSaveBlock1Ptr->pos.y; + template.elevation = 5; + template.movementType = MOVEMENT_TYPE_FOLLOW_PLAYER; + template.trainerType = 0xFE; + template.script = NULL; + objectEventId = SpawnSpecialObjectEvent(&template); + gObjectEvents[objectEventId].invisible = TRUE; + gObjectEvents[objectEventId].hasShadow = TRUE; + return objectEventId; +} + void TrySpawnObjectEvents(s16 cameraX, s16 cameraY) { u8 i; @@ -1876,7 +1943,7 @@ const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8 graphicsId) { graphicsId = OBJ_EVENT_GFX_NINJA_BOY; } - + return gObjectEventGraphicsInfoPointers[graphicsId]; } @@ -4420,6 +4487,201 @@ bool8 CopyablePlayerMovement_Jump(struct ObjectEvent *objectEvent, struct Sprite return TRUE; } +movement_type_def(MovementType_FollowPlayer, gMovementTypeFuncs_FollowPlayer) + +bool8 MovementType_FollowPlayer_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + ClearObjectEventMovement(objectEvent, sprite); + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING | PLAYER_AVATAR_FLAG_ACRO_BIKE | PLAYER_AVATAR_FLAG_MACH_BIKE)) { + objectEvent->invisible = TRUE; + MoveObjectEventToMapCoords(objectEvent, gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x, gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y); + return FALSE; + } + sprite->data[1] = 1; + return TRUE; +} + +bool8 MovementType_FollowPlayer_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + if (gObjectEvents[gPlayerAvatar.objectEventId].movementActionId == 0xFF || gPlayerAvatar.tileTransitionState == T_TILE_CENTER) + { + return FALSE; + } + return gFollowPlayerMovementFuncs[PlayerGetCopyableMovement()](objectEvent, sprite, GetPlayerMovementDirection(), NULL); +} + +bool8 MovementType_FollowPlayer_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) + { + objectEvent->singleMovementActive = 0; + sprite->data[1] = 1; + } + return FALSE; +} + +bool8 FollowablePlayerMovement_Idle(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)) +{ + if (!objectEvent->singleMovementActive) { + ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceNormalMovementAction(objectEvent->facingDirection)); + objectEvent->singleMovementActive = 1; + return TRUE; + } + if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { + objectEvent->singleMovementActive = 0; + } + return FALSE; +} + +bool8 FollowablePlayerMovement_GoSpeed0(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)) +{ + u32 direction; + s16 x; + s16 y; + s16 targetX; + s16 targetY; + u32 *debugPtr; + debugPtr = (u32*) 0x0203d000; + targetX = gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.x; + targetY = gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.y; + x = gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x; + y = gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y; + *debugPtr = (u32) x + (y << 16); + *(debugPtr + 1) = (u32) targetX + (targetY << 16); + if (x == targetX && y == targetY) { // don't move if the player collided + return FALSE; + } + x = objectEvent->currentCoords.x; + y = objectEvent->currentCoords.y; + *(debugPtr + 2) = (u32) x + (y << 16); + if (x == targetX && y == targetY) { // don't move if already in the player's last position + return FALSE; + } + + ClearObjectEventMovement(objectEvent, sprite); + // Change state to invisible + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING | PLAYER_AVATAR_FLAG_ACRO_BIKE | PLAYER_AVATAR_FLAG_MACH_BIKE)) { + objectEvent->invisible = TRUE; + sprite->data[1] = 0; + return FALSE; + } + objectEvent->invisible = FALSE; + direction = GetDirectionToFace(x, y, targetX, targetY); + ObjectEventMoveDestCoords(objectEvent, direction, &x, &y); + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_DASH)) { // Set follow speed accordingly + ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkFastMovementAction(direction)); + } else { + ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkNormalMovementAction(direction)); + } + objectEvent->singleMovementActive = 1; + sprite->data[1] = 2; + return TRUE; +} + +bool8 FollowablePlayerMovement_GoSpeed1(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)) +{ + u32 direction; + s16 x; + s16 y; + + direction = playerDirection; + direction = state_to_direction(gInitialMovementTypeFacingDirections[objectEvent->movementType], objectEvent->directionSequenceIndex, direction); + ObjectEventMoveDestCoords(objectEvent, direction, &x, &y); + ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkFastMovementAction(direction)); + if (GetCollisionAtCoords(objectEvent, x, y, direction) || (tileCallback != NULL && !tileCallback(MapGridGetMetatileBehaviorAt(x, y)))) + { + ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction)); + } + objectEvent->singleMovementActive = TRUE; + sprite->data[1] = 2; + return TRUE; +} + +bool8 FollowablePlayerMovement_GoSpeed2(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)) +{ + u32 direction; + s16 x; + s16 y; + + direction = playerDirection; + direction = state_to_direction(gInitialMovementTypeFacingDirections[objectEvent->movementType], objectEvent->directionSequenceIndex, direction); + ObjectEventMoveDestCoords(objectEvent, direction, &x, &y); + ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkFastestMovementAction(direction)); + if (GetCollisionAtCoords(objectEvent, x, y, direction) || (tileCallback != NULL && !tileCallback(MapGridGetMetatileBehaviorAt(x, y)))) + { + ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction)); + } + objectEvent->singleMovementActive = TRUE; + sprite->data[1] = 2; + return TRUE; +} + +bool8 FollowablePlayerMovement_Slide(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)) +{ + u32 direction; + s16 x; + s16 y; + + direction = playerDirection; + direction = state_to_direction(gInitialMovementTypeFacingDirections[objectEvent->movementType], objectEvent->directionSequenceIndex, direction); + ObjectEventMoveDestCoords(objectEvent, direction, &x, &y); + ObjectEventSetSingleMovement(objectEvent, sprite, GetSlideMovementAction(direction)); + if (GetCollisionAtCoords(objectEvent, x, y, direction) || (tileCallback != NULL && !tileCallback(MapGridGetMetatileBehaviorAt(x, y)))) + { + ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction)); + } + objectEvent->singleMovementActive = TRUE; + sprite->data[1] = 2; + return TRUE; +} + +bool8 fph_IM_DIFFERENT(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)) +{ + u32 direction; + + direction = playerDirection; + direction = state_to_direction(gInitialMovementTypeFacingDirections[objectEvent->movementType], objectEvent->directionSequenceIndex, direction); + ObjectEventSetSingleMovement(objectEvent, sprite, GetJumpInPlaceMovementAction(direction)); + objectEvent->singleMovementActive = TRUE; + sprite->data[1] = 2; + return TRUE; +} + +bool8 FollowablePlayerMovement_GoSpeed4(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)) +{ + u32 direction; + s16 x; + s16 y; + + direction = playerDirection; + direction = state_to_direction(gInitialMovementTypeFacingDirections[objectEvent->movementType], objectEvent->directionSequenceIndex, direction); + ObjectEventMoveDestCoords(objectEvent, direction, &x, &y); + ObjectEventSetSingleMovement(objectEvent, sprite, GetJumpMovementAction(direction)); + if (GetCollisionAtCoords(objectEvent, x, y, direction) || (tileCallback != NULL && !tileCallback(MapGridGetMetatileBehaviorAt(x, y)))) + { + ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction)); + } + objectEvent->singleMovementActive = TRUE; + sprite->data[1] = 2; + return TRUE; +} + +bool8 FollowablePlayerMovement_Jump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)) +{ + u32 direction; + s16 x; + s16 y; + + direction = playerDirection; + x = objectEvent->currentCoords.x; + y = objectEvent->currentCoords.y; + MoveCoordsInDirection(direction, &x, &y, 2, 2); + ObjectEventSetSingleMovement(objectEvent, sprite, GetJump2MovementAction(direction)); + objectEvent->singleMovementActive = TRUE; + sprite->data[1] = 2; + return TRUE; +} + movement_type_def(MovementType_CopyPlayerInGrass, gMovementTypeFuncs_CopyPlayerInGrass) bool8 MovementType_CopyPlayerInGrass_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) @@ -4828,7 +5090,7 @@ static bool8 DoesObjectCollideWithObjectAt(struct ObjectEvent *objectEvent, s16 for (i = 0; i < OBJECT_EVENTS_COUNT; i++) { curObject = &gObjectEvents[i]; - if (curObject->active && curObject != objectEvent) + if (curObject->active && (curObject->trainerType != 0xFE || objectEvent != &gObjectEvents[gPlayerAvatar.objectEventId]) && curObject != objectEvent) { if ((curObject->currentCoords.x == x && curObject->currentCoords.y == y) || (curObject->previousCoords.x == x && curObject->previousCoords.y == y)) { @@ -7536,7 +7798,7 @@ static void ObjectEventUpdateMetatileBehaviors(struct ObjectEvent *objEvent) static void GetGroundEffectFlags_Reflection(struct ObjectEvent *objEvent, u32 *flags) { - u32 reflectionFlags[NUM_REFLECTION_TYPES - 1] = { + u32 reflectionFlags[NUM_REFLECTION_TYPES - 1] = { [REFL_TYPE_ICE - 1] = GROUND_EFFECT_FLAG_ICE_REFLECTION, [REFL_TYPE_WATER - 1] = GROUND_EFFECT_FLAG_WATER_REFLECTION }; @@ -7754,7 +8016,7 @@ static u8 ObjectEventGetNearbyReflectionType(struct ObjectEvent *objEvent) RETURN_REFLECTION_TYPE_AT(objEvent->previousCoords.x - j, objEvent->previousCoords.y + one + i) } } - + return REFL_TYPE_NONE; } diff --git a/src/overworld.c b/src/overworld.c index 5aa5bb73df..917a5882bd 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -2154,6 +2154,7 @@ static void InitObjectEventsLocal(void) SetPlayerAvatarTransitionFlags(player->transitionFlags); ResetInitialPlayerAvatarState(); TrySpawnObjectEvents(0, 0); + SpawnFollowingPokemon(); TryRunOnWarpIntoMapScript(); } @@ -2225,10 +2226,10 @@ static void CB1_UpdateLinkState(void) // Note: Because guestId is between 0 and 4, while the smallest key code is // LINK_KEY_CODE_EMPTY, this is functionally equivalent to `sPlayerKeyInterceptCallback(0)`. - // It is expecting the callback to be KeyInterCB_SelfIdle, and that will + // It is expecting the callback to be KeyInterCB_SelfIdle, and that will // completely ignore any input parameters. // - // UpdateHeldKeyCode performs a sanity check on its input; if + // UpdateHeldKeyCode performs a sanity check on its input; if // sPlayerKeyInterceptCallback echoes back the argument, which is selfId, then // it'll use LINK_KEY_CODE_EMPTY instead. // @@ -3040,7 +3041,7 @@ static void SetPlayerFacingDirection(u8 linkPlayerId, u8 facing) #define TEMP gLinkPlayerMovementModes[linkPlayerObjEvent->movementMode](linkPlayerObjEvent, objEvent, facing) gMovementStatusHandler[TEMP](linkPlayerObjEvent, objEvent); - + // Clean up the hack. #undef TEMP }