diff options
author | garak <garakmon@gmail.com> | 2018-11-27 11:21:48 -0500 |
---|---|---|
committer | garak <garakmon@gmail.com> | 2018-11-27 11:21:48 -0500 |
commit | 091b5194e7bfc6049931202d9712541083fd61cd (patch) | |
tree | e528a5f7d4e2ac51c758ad9c6e1423d3dd7dbb43 /src | |
parent | 6acf6aed0486d090bf4f8e731189b9d4ad07dadb (diff) |
frontier pike and pyramid data
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_pike.c | 383 | ||||
-rw-r--r-- | src/battle_pyramid.c | 42 | ||||
-rw-r--r-- | src/data/battle_frontier/battle_pyramid_level_50_wild_mons.h | 1064 | ||||
-rw-r--r-- | src/data/battle_frontier/battle_pyramid_open_level_wild_mons.h | 1064 | ||||
-rw-r--r-- | src/frontier_data.c | 237 | ||||
-rw-r--r-- | src/frontier_util.c | 146 | ||||
-rw-r--r-- | src/strings.c | 15 |
7 files changed, 2886 insertions, 65 deletions
diff --git a/src/battle_pike.c b/src/battle_pike.c index a0a50d86e..21e7a0614 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -19,6 +19,7 @@ #include "constants/rgb.h" #include "constants/trainers.h" #include "constants/species.h" +#include "constants/moves.h" #define PIKE_ROOM_SINGLE_BATTLE 0 #define PIKE_ROOM_HEAL_FULL 1 @@ -40,7 +41,7 @@ struct Unk0861231C u8 unk2; u8 unk3; u8 unk4; - u8 unk5; + u8 unk5;//? unused ? }; struct PikeWildMon @@ -50,9 +51,6 @@ struct PikeWildMon u16 moves[4]; }; -extern const struct Unk0861231C gUnknown_0861231C[]; -extern const struct PikeWildMon *const *const gUnknown_08612314[2]; -extern const u16 gUnknown_086123E4[][6]; extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; // IWRAM bss @@ -106,6 +104,383 @@ static bool8 sub_81A7D8C(struct Task *task); static bool8 sub_81A7DE8(struct Task *task); // Const rom data. + +// extern const struct PikeWildMon *const *const gUnknown_08612314[2]; + +const struct PikeWildMon gUnknown_086121D4[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_BODY_SLAM, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_SURF} + }, + { + .species = SPECIES_DUSCLOPS, + .levelDelta = 5, + .moves = {MOVE_WILL_O_WISP, MOVE_MEAN_LOOK, MOVE_TOXIC, MOVE_SHADOW_PUNCH} + } +}; + +const struct PikeWildMon gUnknown_086121F8[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_BODY_SLAM, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_SURF} + }, + { + .species = SPECIES_ELECTRODE, + .levelDelta = 5, + .moves = {MOVE_EXPLOSION, MOVE_SELF_DESTRUCT, MOVE_THUNDER, MOVE_TOXIC} + } +}; + +const struct PikeWildMon gUnknown_0861221C[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_BODY_SLAM, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_SURF} + }, + { + .species = SPECIES_BRELOOM, + .levelDelta = 5, + .moves = {MOVE_SPORE, MOVE_STUN_SPORE, MOVE_POISON_POWDER, MOVE_HIDDEN_POWER} + } +}; + +const struct PikeWildMon gUnknown_08612240[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_BODY_SLAM, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_SURF} + }, + { + .species = SPECIES_WOBBUFFET, + .levelDelta = 5, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_SAFEGUARD, MOVE_DESTINY_BOND} + } +}; + +const struct PikeWildMon *const gUnknown_08612264[] = +{ + gUnknown_086121D4, + gUnknown_086121F8, + gUnknown_0861221C, + gUnknown_08612240 +}; + +const struct PikeWildMon gUnknown_08612274[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_POISON_FANG, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_DUSCLOPS, + .levelDelta = 5, + .moves = {MOVE_WILL_O_WISP, MOVE_MEAN_LOOK, MOVE_TOXIC, MOVE_ICE_BEAM} + } +}; + +const struct PikeWildMon gUnknown_08612298[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_POISON_FANG, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_ELECTRODE, + .levelDelta = 5, + .moves = {MOVE_EXPLOSION, MOVE_SELF_DESTRUCT, MOVE_THUNDER, MOVE_TOXIC} + } +}; + +const struct PikeWildMon gUnknown_086122BC[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_POISON_FANG, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_BRELOOM, + .levelDelta = 5, + .moves = {MOVE_SPORE, MOVE_STUN_SPORE, MOVE_POISON_POWDER, MOVE_HIDDEN_POWER} + } +}; + +const struct PikeWildMon gUnknown_086122E0[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_POISON_FANG, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_WOBBUFFET, + .levelDelta = 5, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_SAFEGUARD, MOVE_ENCORE} + } +}; + +const struct PikeWildMon *const gUnknown_08612304[] = +{ + gUnknown_08612274, + gUnknown_08612298, + gUnknown_086122BC, + gUnknown_086122E0 +}; + +const struct PikeWildMon *const *const gUnknown_08612314[2] = +{ + gUnknown_08612264, + gUnknown_08612304 +}; + +const struct Unk0861231C gUnknown_0861231C[] = +{ + { + .unk0 = 0x0012, + .unk2 = 0x03, + .unk3 = 0x05, + .unk4 = 0x06 + }, + { + .unk0 = 0x0005, + .unk2 = 0x0d, + .unk3 = 0x20, + .unk4 = 0x25 + }, + { + .unk0 = 0x0011, + .unk2 = 0x08, + .unk3 = 0x0b, + .unk4 = 0x0c + }, + { + .unk0 = 0x0024, + .unk2 = 0x22, + .unk3 = 0x1e, + .unk4 = 0x21 + }, + { + .unk0 = 0x0015, + .unk2 = 0x00, + .unk3 = 0x00, + .unk4 = 0x00 + }, + { + .unk0 = 0x001e, + .unk2 = 0x01, + .unk3 = 0x01, + .unk4 = 0x01 + }, + { + .unk0 = 0x002c, + .unk2 = 0x16, + .unk3 = 0x17, + .unk4 = 0x1b + }, + { + .unk0 = 0x0037, + .unk2 = 0x08, + .unk3 = 0x16, + .unk4 = 0x1f + }, + { + .unk0 = 0x000e, + .unk2 = 0x0d, + .unk3 = 0x27, + .unk4 = 0x15 + }, + { + .unk0 = 0x0014, + .unk2 = 0x02, + .unk3 = 0x04, + .unk4 = 0x11 + }, + { + .unk0 = 0x0038, + .unk2 = 0x1e, + .unk3 = 0x14, + .unk4 = 0x24 + }, + { + .unk0 = 0x0042, + .unk2 = 0x1c, + .unk3 = 0x22, + .unk4 = 0x19 + }, + { + .unk0 = 0x0026, + .unk2 = 0x17, + .unk3 = 0x26, + .unk4 = 0x1a + }, + { + .unk0 = 0x0032, + .unk2 = 0x17, + .unk3 = 0x1e, + .unk4 = 0x0b + }, + { + .unk0 = 0x002f, + .unk2 = 0x0f, + .unk3 = 0x13, + .unk4 = 0x0e + }, + { + .unk0 = 0x0027, + .unk2 = 0x02, + .unk3 = 0x1d, + .unk4 = 0x1a + }, + { + .unk0 = 0x0033, + .unk2 = 0x25, + .unk3 = 0x0c, + .unk4 = 0x20 + }, + { + .unk0 = 0x0021, + .unk2 = 0x18, + .unk3 = 0x17, + .unk4 = 0x26 + }, + { + .unk0 = 0x0018, + .unk2 = 0x05, + .unk3 = 0x16, + .unk4 = 0x04 + }, + { + .unk0 = 0x000b, + .unk2 = 0x29, + .unk3 = 0x25, + .unk4 = 0x23 + }, + { + .unk0 = 0x0035, + .unk2 = 0x27, + .unk3 = 0x0e, + .unk4 = 0x0d + }, + { + .unk0 = 0x0030, + .unk2 = 0x0a, + .unk3 = 0x07, + .unk4 = 0x09 + }, + { + .unk0 = 0x000c, + .unk2 = 0x28, + .unk3 = 0x14, + .unk4 = 0x10 + }, + { + .unk0 = 0x0034, + .unk2 = 0x12, + .unk3 = 0x0d, + .unk4 = 0x15 + }, + { + .unk0 = 0x0013, + .unk2 = 0x16, + .unk3 = 0x1f, + .unk4 = 0x1b + } +}; + +const u16 gUnknown_086123E4[][6] = +{ + {0x0a29, 0x0630, 0x0a01, 0x140f, 0x1020, 0x270e}, + {0x0a2a, 0x081d, 0x061b, 0x1034, 0x1e20, 0x0a29}, + {0x1e22, 0x1231, 0x0a01, 0x1018, 0x1c1a, 0x0c03}, + {0x1e0f, 0x100b, 0x1039, 0x200f, 0x102b, 0x0a14}, + {0x103b, 0x0a02, 0x161e, 0x1020, 0x143e, 0x0c03}, + {0x0a31, 0x0e02, 0x0e15, 0x1436, 0x1037, 0x1e0a}, + {0x0a29, 0x1025, 0x142a, 0x1034, 0x1e0f, 0x0a1b}, + {0x0a01, 0x0e07, 0x122a, 0x1e0f, 0x061f, 0xffff}, + {0x1a35, 0x1036, 0x0e0f, 0x0a01, 0x2621, 0x1e0f}, + {0x0e25, 0x102f, 0x062d, 0x201e, 0x0c03, 0xffff}, + {0x0c1d, 0x081d, 0x0a2b, 0x100f, 0x0a02, 0x0c03}, + {0x0a2a, 0x0a3e, 0x2000, 0x1027, 0x1c08, 0x0c04}, + {0x0a01, 0x1212, 0x0a01, 0x1000, 0x062d, 0xffff}, + {0x1e22, 0x1231, 0x0a01, 0x1018, 0x1c1c, 0x0c03}, + {0x0a01, 0x060b, 0x1030, 0x0a28, 0x2549, 0x0624}, + {0x1014, 0x0a2c, 0x0415, 0x1642, 0x1e1b, 0x0c03}, + {0x0628, 0x1a0f, 0x100b, 0x2017, 0x0c00, 0xffff}, + {0x0a01, 0x1015, 0x1647, 0x1e0f, 0x0e39, 0x0e36}, + {0x0a01, 0x1017, 0x1620, 0x0e19, 0x0a31, 0x0c38}, + {0x0c1d, 0x081d, 0x0c00, 0x1022, 0x1c12, 0x020b}, + {0x1029, 0x1404, 0x102f, 0x1006, 0x1e28, 0x1c1c}, + {0x1029, 0x0e20, 0x1028, 0x1c16, 0x1e29, 0x0c03}, + {0x1e0f, 0x100b, 0x0e2f, 0x0638, 0x100c, 0xffff}, + {0x0a29, 0x1408, 0x102f, 0x061e, 0x102c, 0xffff}, + {0x1023, 0x100b, 0x081d, 0x062d, 0x1037, 0x0a14}, + {0x0a29, 0x1022, 0x1408, 0x102f, 0x161e, 0x1029}, + {0x0601, 0x102c, 0x0a01, 0x1015, 0x0e39, 0x0e36}, + {0x1020, 0x020b, 0x103f, 0x1c12, 0x0c04, 0xffff}, + {0x1018, 0x0a02, 0x103a, 0x0446, 0x020e, 0x0c03}, + {0x1e10, 0x020b, 0x1e0a, 0x100b, 0x063a, 0xffff}, + {0x0a02, 0x1212, 0x1e0f, 0x100b, 0x0638, 0x0c03}, + {0x1e22, 0x1000, 0x161b, 0x103f, 0x1e0f, 0x0c03}, + {0x0a29, 0x0e1e, 0x1025, 0x1e26, 0x0c00, 0xffff}, + {0x0a01, 0x0e1e, 0x1236, 0x102f, 0x120b, 0x0c04}, + {0x2805, 0x1e0f, 0x0a1b, 0x100b, 0x1020, 0x063b}, + {0x0a01, 0x101f, 0x0a3e, 0x1037, 0x1020, 0x0628}, + {0x1026, 0x0a31, 0x1e29, 0x1c1c, 0x0a01, 0x1212}, + {0x0c0a, 0x0c00, 0x1029, 0x101c, 0x1e0f, 0x0c23}, + {0x0a28, 0x020e, 0x100f, 0x1039, 0x142a, 0x0c04}, + {0x0a28, 0x020e, 0x100f, 0x0620, 0x102f, 0x043c}, + {0x0c39, 0x0c39, 0x0c00, 0x0a29, 0x2017, 0x0c39}, + {0x265c, 0x100b, 0x1020, 0x1230, 0x1e05, 0x100c}, +}; + static const u8 gUnknown_086125DC[][4] = { {0x23, 0x46, 0x23, 0x01}, diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 01f138925..dabaf20d0 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -34,33 +34,6 @@ extern void door_upload_tiles(void); extern const struct MapLayout *const gMapLayouts[]; -#define TOTAL_ROUNDS 20 -#define PICKUP_ITEMS_PER_ROUND 10 - -struct Struct_08613650 -{ - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - u8 runMultiplier; - u8 unk5[8]; -}; - -struct PyramidWildMon -{ - u16 species; - u8 lvl; - u8 abilityBit; - u16 moves[4]; -}; - -struct ClassMusic -{ - u8 class; - u8 music; -}; - extern const u16 gBattleFrontierHeldItems[]; extern const struct FacilityMon gBattleFrontierMons[]; extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; @@ -101,21 +74,6 @@ static bool8 sub_81AA648(u8, u8); static bool8 sub_81AA760(u8 arg0, u8 *mapNums, u8 whichMap, u8 id); static bool8 sub_81AA810(u8 arg0, u8 x, u8 y, u8 *mapNums, u8 whichMap, u8 id); -// Const rom data. -extern const struct Struct_08613650 gUnknown_08613650[]; -extern const u16 sPickupItemsLvl50[TOTAL_ROUNDS][PICKUP_ITEMS_PER_ROUND]; -extern const u16 sPickupItemsLvlOpen[TOTAL_ROUNDS][PICKUP_ITEMS_PER_ROUND]; -extern const u8 gUnknown_08613ABC[63][2]; -extern const u8 gUnknown_08613B3A[]; -extern const u16 gUnknown_08D856C8[][16]; -extern const u8 gUnknown_08613C1C[50][2]; -extern const u8 *const *const *const gUnknown_08613EC0[]; -extern const struct ClassMusic gUnknown_08613B44[54]; -extern const struct PyramidWildMon *const gBattlePyramidOpenLevelWildMonPointers[]; -extern const struct PyramidWildMon *const gBattlePyramidLevel50WildMonPointers[]; -extern const u8 gUnknown_08613794[]; -extern const u8 gUnknown_08613750[34][2]; - static const u8 gUnknown_08613ED8[] = {3, 4, 5, 6, 7, 8, 3, 4}; static void (* const sBattlePyramidFunctions[])(void) = diff --git a/src/data/battle_frontier/battle_pyramid_level_50_wild_mons.h b/src/data/battle_frontier/battle_pyramid_level_50_wild_mons.h new file mode 100644 index 000000000..0248ce958 --- /dev/null +++ b/src/data/battle_frontier/battle_pyramid_level_50_wild_mons.h @@ -0,0 +1,1064 @@ + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round1[] = +{ + { + .species = SPECIES_PLUSLE, + .lvl = 35, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_SPARK, MOVE_ENCORE, MOVE_NONE} + }, + { + .species = SPECIES_MINUN, + .lvl = 35, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_QUICK_ATTACK, MOVE_NONE} + }, + { + .species = SPECIES_PIKACHU, + .lvl = 37, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_SLAM, MOVE_NONE} + }, + { + .species = SPECIES_ELECTABUZZ, + .lvl = 37, + .abilityBit = 2, + .moves = {MOVE_THUNDER_PUNCH, MOVE_SWIFT, MOVE_SCREECH, MOVE_NONE} + }, + { + .species = SPECIES_VILEPLUME, + .lvl = 39, + .abilityBit = 2, + .moves = {MOVE_STUN_SPORE, MOVE_GIGA_DRAIN, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_MANECTRIC, + .lvl = 39, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_QUICK_ATTACK, MOVE_NONE} + }, + { + .species = SPECIES_BRELOOM, + .lvl = 40, + .abilityBit = 2, + .moves = {MOVE_STUN_SPORE, MOVE_FOCUS_PUNCH, MOVE_GIGA_DRAIN, MOVE_MACH_PUNCH} + }, + { + .species = SPECIES_JOLTEON, + .lvl = 40, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PIN_MISSILE, MOVE_QUICK_ATTACK} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round2[] = +{ + { + .species = SPECIES_GULPIN, + .lvl = 36, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_SLUDGE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_ROSELIA, + .lvl = 36, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_MAGICAL_LEAF, MOVE_PETAL_DANCE} + }, + { + .species = SPECIES_BUTTERFREE, + .lvl = 38, + .abilityBit = 2, + .moves = {MOVE_POISON_POWDER, MOVE_GUST, MOVE_PSYBEAM, MOVE_NONE} + }, + { + .species = SPECIES_SEVIPER, + .lvl = 38, + .abilityBit = 2, + .moves = {MOVE_POISON_FANG, MOVE_SWAGGER, MOVE_CRUNCH, MOVE_POISON_TAIL} + }, + { + .species = SPECIES_SKARMORY, + .lvl = 40, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_FLY, MOVE_STEEL_WING, MOVE_NONE} + }, + { + .species = SPECIES_LUDICOLO, + .lvl = 40, + .abilityBit = 1, + .moves = {MOVE_TOXIC, MOVE_PROTECT, MOVE_DIVE, MOVE_RAIN_DANCE} + }, + { + .species = SPECIES_CROBAT, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_CONFUSE_RAY, MOVE_MEAN_LOOK, MOVE_BITE} + }, + { + .species = SPECIES_GENGAR, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_SHADOW_PUNCH, MOVE_NIGHT_SHADE, MOVE_NONE} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round3[] = +{ + { + .species = SPECIES_GROWLITHE, + .lvl = 37, + .abilityBit = 2, + .moves = {MOVE_FLAME_WHEEL, MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_VULPIX, + .lvl = 37, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_FLAMETHROWER, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_MAGCARGO, + .lvl = 39, + .abilityBit = 1, + .moves = {MOVE_FLAMETHROWER, MOVE_ROCK_SLIDE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_NINETALES, + .lvl = 39, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_QUICK_ATTACK, MOVE_FLAMETHROWER, MOVE_NONE} + }, + { + .species = SPECIES_MEDICHAM, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_FIRE_PUNCH, MOVE_HI_JUMP_KICK, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_WEEZING, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_FLAMETHROWER, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_DUSCLOPS, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_CONFUSE_RAY, MOVE_MEAN_LOOK, MOVE_SHADOW_PUNCH} + }, + { + .species = SPECIES_HOUNDOOM, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_BITE, MOVE_SOLAR_BEAM, MOVE_OVERHEAT} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round4[] = +{ + { + .species = SPECIES_DUNSPARCE, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_SPITE, MOVE_TOXIC, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_BANETTE, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_WILL_O_WISP, MOVE_NIGHT_SHADE, MOVE_NONE} + }, + { + .species = SPECIES_MISDREAVUS, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_SPITE, MOVE_SHADOW_BALL, MOVE_NONE} + }, + { + .species = SPECIES_NINETALES, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_WILL_O_WISP, MOVE_OVERHEAT, MOVE_NONE} + }, + { + .species = SPECIES_ABSOL, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_BITE, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL, MOVE_PROTECT} + }, + { + .species = SPECIES_DUSCLOPS, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_PROTECT, MOVE_TOXIC, MOVE_SHADOW_BALL} + }, + { + .species = SPECIES_SHEDINJA, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_TOXIC, MOVE_SPITE, MOVE_NONE} + }, + { + .species = SPECIES_GENGAR, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_SPITE, MOVE_NIGHT_SHADE, MOVE_NONE} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round5[] = +{ + { + .species = SPECIES_HAUNTER, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_NIGHT_SHADE, MOVE_THUNDERBOLT, MOVE_SLUDGE_BOMB, MOVE_NONE} + }, + { + .species = SPECIES_CHIMECHO, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_DOUBLE_EDGE, MOVE_TOXIC, MOVE_PSYCHIC, MOVE_PROTECT} + }, + { + .species = SPECIES_SOLROCK, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_FIRE_BLAST, MOVE_TOXIC} + }, + { + .species = SPECIES_MISDREAVUS, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_SPITE, MOVE_SHADOW_BALL, MOVE_PAIN_SPLIT} + }, + { + .species = SPECIES_CLAYDOL, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_SELF_DESTRUCT, MOVE_PSYCHIC} + }, + { + .species = SPECIES_WEEZING, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_SLUDGE_BOMB, MOVE_SELF_DESTRUCT, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_FLYGON, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_DRAGON_CLAW, MOVE_DRAGON_BREATH} + }, + { + .species = SPECIES_GENGAR, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_GIGA_DRAIN, MOVE_NIGHT_SHADE} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round6[] = +{ + { + .species = SPECIES_DIGLETT, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_ROCK_SLIDE, MOVE_SLASH, MOVE_DIG, MOVE_NONE} + }, + { + .species = SPECIES_TRAPINCH, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_GIGA_DRAIN, MOVE_NONE} + }, + { + .species = SPECIES_WYNAUT, + .lvl = 42, + .abilityBit = 0, + .moves = {MOVE_DESTINY_BOND, MOVE_SPLASH, MOVE_COUNTER, MOVE_MIRROR_COAT} + }, + { + .species = SPECIES_DIGLETT, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_MAGNITUDE, MOVE_TOXIC} + }, + { + .species = SPECIES_TRAPINCH, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_GIGA_DRAIN, MOVE_PROTECT} + }, + { + .species = SPECIES_WYNAUT, + .lvl = 44, + .abilityBit = 0, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_DESTINY_BOND, MOVE_NONE} + }, + { + .species = SPECIES_WOBBUFFET, + .lvl = 45, + .abilityBit = 0, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_DESTINY_BOND, MOVE_NONE} + }, + { + .species = SPECIES_DUGTRIO, + .lvl = 45, + .abilityBit = 1, + .moves = {MOVE_ROCK_SLIDE, MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_PROTECT} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round7[] = +{ + { + .species = SPECIES_GLALIE, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_CRUNCH, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_SNEASEL, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_CRUSH_CLAW, MOVE_SPITE, MOVE_NONE} + }, + { + .species = SPECIES_DEWGONG, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_BLIZZARD, MOVE_DOUBLE_EDGE, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_PILOSWINE, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_TOXIC, MOVE_NONE} + }, + { + .species = SPECIES_JYNX, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_BLIZZARD, MOVE_LOVELY_KISS, MOVE_PSYCHIC, MOVE_NONE} + }, + { + .species = SPECIES_CLOYSTER, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_SURF, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_WALREIN, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_BLIZZARD, MOVE_BODY_SLAM, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_LAPRAS, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_SING, MOVE_BODY_SLAM, MOVE_ICE_BEAM, MOVE_PSYCHIC} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round8[] = +{ + { + .species = SPECIES_WEEZING, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_SLUDGE_BOMB, MOVE_FIRE_BLAST, MOVE_NONE} + }, + { + .species = SPECIES_ELECTRODE, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_THUNDERBOLT, MOVE_ROLLOUT, MOVE_NONE} + }, + { + .species = SPECIES_GENGAR, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_DESTINY_BOND, MOVE_LICK, MOVE_SHADOW_BALL, MOVE_NONE} + }, + { + .species = SPECIES_GOLEM, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_PROTECT, MOVE_EARTHQUAKE, MOVE_NONE} + }, + { + .species = SPECIES_PINECO, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_DOUBLE_EDGE, MOVE_GIGA_DRAIN, MOVE_NONE} + }, + { + .species = SPECIES_SOLROCK, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_FIRE_SPIN, MOVE_PSYWAVE, MOVE_NONE} + }, + { + .species = SPECIES_FORRETRESS, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_TOXIC, MOVE_ROCK_SLIDE, MOVE_NONE} + }, + { + .species = SPECIES_SHIFTRY, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_GIGA_DRAIN, MOVE_SOLAR_BEAM, MOVE_PROTECT} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round9[] = +{ + { + .species = SPECIES_WOBBUFFET, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_SAFEGUARD, MOVE_DESTINY_BOND} + }, + { + .species = SPECIES_METANG, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_TOXIC, MOVE_SLUDGE_BOMB, MOVE_PSYCHIC} + }, + { + .species = SPECIES_EXEGGUTOR, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_EGG_BOMB, MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_NONE} + }, + { + .species = SPECIES_SLOWKING, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_SURF, MOVE_ICE_BEAM, MOVE_FLAMETHROWER} + }, + { + .species = SPECIES_XATU, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_CONFUSE_RAY, MOVE_SHADOW_BALL, MOVE_PSYCHIC, MOVE_STEEL_WING} + }, + { + .species = SPECIES_ALAKAZAM, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_TOXIC} + }, + { + .species = SPECIES_STARMIE, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_SURF, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_ESPEON, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_DIG, MOVE_SHADOW_BALL, MOVE_NONE} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round10[] = +{ + { + .species = SPECIES_GOLEM, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_EARTHQUAKE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_STEELIX, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_IRON_TAIL, MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_NONE} + }, + { + .species = SPECIES_OMASTAR, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_SURF, MOVE_MUD_SHOT, MOVE_ANCIENT_POWER, MOVE_NONE} + }, + { + .species = SPECIES_LUNATONE, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_HYPNOSIS, MOVE_PSYWAVE, MOVE_EXPLOSION, MOVE_NONE} + }, + { + .species = SPECIES_SHUCKLE, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_PROTECT, MOVE_WRAP, MOVE_NONE} + }, + { + .species = SPECIES_ARMALDO, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_ANCIENT_POWER, MOVE_PROTECT, MOVE_AERIAL_ACE, MOVE_NONE} + }, + { + .species = SPECIES_CRADILY, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN, MOVE_CONFUSE_RAY, MOVE_NONE} + }, + { + .species = SPECIES_AERODACTYL, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_ROCK_SLIDE, MOVE_BITE, MOVE_NONE} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round11[] = +{ + { + .species = SPECIES_POLIWRATH, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_SUBMISSION, MOVE_FOCUS_PUNCH, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_HARIYAMA, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_FAKE_OUT, MOVE_SURF, MOVE_FOCUS_PUNCH, MOVE_NONE} + }, + { + .species = SPECIES_BRELOOM, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_SPORE, MOVE_FOCUS_PUNCH, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_MEDICHAM, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_FOCUS_PUNCH} + }, + { + .species = SPECIES_HITMONCHAN, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_FOCUS_PUNCH} + }, + { + .species = SPECIES_HITMONLEE, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_MEGA_KICK, MOVE_FOCUS_PUNCH, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_HERACROSS, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_FOCUS_PUNCH, MOVE_ROCK_SLIDE} + }, + { + .species = SPECIES_MACHAMP, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_FOCUS_PUNCH, MOVE_SEISMIC_TOSS} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round12[] = +{ + { + .species = SPECIES_QUAGSIRE, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_RAIN_DANCE, MOVE_SURF, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_TROPIUS, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_PUPITAR, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_SANDSTORM, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_NONE} + }, + { + .species = SPECIES_LAPRAS, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_HAIL, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_CACTURNE, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_SANDSTORM, MOVE_GIGA_DRAIN, MOVE_SOLAR_BEAM, MOVE_NONE} + }, + { + .species = SPECIES_FLAREON, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_SUNNY_DAY, MOVE_FLAMETHROWER, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_WALREIN, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_HAIL, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_GYARADOS, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_RAIN_DANCE, MOVE_THUNDER, MOVE_HYDRO_PUMP, MOVE_NONE} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round13[] = +{ + { + .species = SPECIES_PINECO, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_SHUCKLE, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_EARTHQUAKE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_VENOMOTH, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_SILVER_WIND, MOVE_POISON_POWDER, MOVE_SLEEP_POWDER, MOVE_PSYCHIC} + }, + { + .species = SPECIES_SCIZOR, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_QUICK_ATTACK, MOVE_METAL_CLAW, MOVE_FURY_CUTTER, MOVE_PURSUIT} + }, + { + .species = SPECIES_HERACROSS, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_MEGAHORN, MOVE_BRICK_BREAK, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE} + }, + { + .species = SPECIES_FORRETRESS, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_ARMALDO, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_WATER_PULSE, MOVE_PROTECT, MOVE_ROCK_SLIDE, MOVE_NONE} + }, + { + .species = SPECIES_SHEDINJA, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_TOXIC, MOVE_SPITE, MOVE_GRUDGE} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round14[] = +{ + { + .species = SPECIES_SABLEYE, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_NIGHT_SHADE, MOVE_PSYCHIC, MOVE_AERIAL_ACE, MOVE_NONE} + }, + { + .species = SPECIES_SNEASEL, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_TAUNT, MOVE_FAINT_ATTACK, MOVE_QUICK_ATTACK} + }, + { + .species = SPECIES_CRAWDAUNT, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_CRABHAMMER, MOVE_ICE_BEAM, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_SHIFTRY, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_GIGA_DRAIN} + }, + { + .species = SPECIES_CACTURNE, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_NEEDLE_ARM, MOVE_NONE} + }, + { + .species = SPECIES_ABSOL, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_BITE, MOVE_PROTECT, MOVE_SLASH, MOVE_NONE} + }, + { + .species = SPECIES_HOUNDOOM, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_OVERHEAT, MOVE_CRUNCH, MOVE_SHADOW_BALL, MOVE_PROTECT} + }, + { + .species = SPECIES_UMBREON, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_IRON_TAIL, MOVE_QUICK_ATTACK} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round15[] = +{ + { + .species = SPECIES_OCTILLERY, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_OCTAZOOKA, MOVE_ICE_BEAM, MOVE_FIRE_BLAST, MOVE_NONE} + }, + { + .species = SPECIES_DEWGONG, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_WATER_PULSE, MOVE_ICE_BEAM, MOVE_HEADBUTT, MOVE_NONE} + }, + { + .species = SPECIES_PELIPPER, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_PROTECT, MOVE_SUPERSONIC, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_QUAGSIRE, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_TOMB, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_LUDICOLO, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_TOXIC, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_SLOWKING, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_HEADBUTT, MOVE_SWAGGER, MOVE_NONE} + }, + { + .species = SPECIES_STARMIE, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_WATER_PULSE, MOVE_THUNDERBOLT, MOVE_CONFUSE_RAY, MOVE_BLIZZARD} + }, + { + .species = SPECIES_BLASTOISE, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_HYDRO_PUMP, MOVE_BITE, MOVE_ICE_BEAM, MOVE_NONE} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round16[] = +{ + { + .species = SPECIES_DUSKULL, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_NIGHT_SHADE, MOVE_WILL_O_WISP, MOVE_SHADOW_BALL, MOVE_PROTECT} + }, + { + .species = SPECIES_HAUNTER, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_SPITE, MOVE_HYPNOSIS, MOVE_SHADOW_BALL} + }, + { + .species = SPECIES_BANETTE, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_SPITE, MOVE_WILL_O_WISP, MOVE_NONE} + }, + { + .species = SPECIES_MISDREAVUS, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_PERISH_SONG, MOVE_SPITE, MOVE_MEAN_LOOK, MOVE_NONE} + }, + { + .species = SPECIES_SABLEYE, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_MEAN_LOOK, MOVE_DIG, MOVE_NIGHT_SHADE} + }, + { + .species = SPECIES_DUSCLOPS, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_TOXIC, MOVE_SHADOW_BALL, MOVE_NONE} + }, + { + .species = SPECIES_SHEDINJA, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_SPITE, MOVE_GRUDGE, MOVE_PROTECT} + }, + { + .species = SPECIES_GENGAR, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_DESTINY_BOND, MOVE_SPITE, MOVE_NIGHT_SHADE} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round17[] = +{ + { + .species = SPECIES_MAWILE, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_CRUNCH, MOVE_TOXIC, MOVE_ICE_BEAM, MOVE_NONE} + }, + { + .species = SPECIES_MAGNETON, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_STEELIX, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_ROCK_THROW, MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_NONE} + }, + { + .species = SPECIES_SCIZOR, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_METAL_CLAW, MOVE_SLASH, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_FORRETRESS, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_TOXIC, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_SKARMORY, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_STEEL_WING, MOVE_TOXIC, MOVE_FLY, MOVE_PROTECT} + }, + { + .species = SPECIES_AGGRON, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_TAKE_DOWN, MOVE_SURF, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_METAGROSS, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round18[] = +{ + { + .species = SPECIES_DRAGONAIR, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_TOXIC, MOVE_ICE_BEAM, MOVE_NONE} + }, + { + .species = SPECIES_VIBRAVA, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_CRUNCH, MOVE_STEEL_WING} + }, + { + .species = SPECIES_ALTARIA, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_SING, MOVE_PROTECT} + }, + { + .species = SPECIES_FLYGON, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_FIRE_BLAST, MOVE_NONE} + }, + { + .species = SPECIES_AERODACTYL, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DRAGON_CLAW, MOVE_NONE} + }, + { + .species = SPECIES_GYARADOS, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_SURF, MOVE_THRASH, MOVE_BITE} + }, + { + .species = SPECIES_KINGDRA, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_CHARIZARD, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, MOVE_FIRE_BLAST, MOVE_IRON_TAIL} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round19[] = +{ + { + .species = SPECIES_ARCANINE, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_FIRE_BLAST, MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_POLIWRATH, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_RAICHU, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_THUNDER, MOVE_THUNDER_WAVE, MOVE_SLAM, MOVE_NONE} + }, + { + .species = SPECIES_VAPOREON, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_JOLTEON, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_THUNDERBOLT, MOVE_PIN_MISSILE, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_FLAREON, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_BITE, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_NINETALES, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_WILL_O_WISP, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_STARMIE, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_SURF, MOVE_THUNDERBOLT, MOVE_PSYCHIC} + } +}; + +const struct PyramidWildMon gBattlePyramidLevel50WildMons_Round20[] = +{ + { + .species = SPECIES_KANGASKHAN, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_SURF, MOVE_DIZZY_PUNCH} + }, + { + .species = SPECIES_SWELLOW, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_AERIAL_ACE, MOVE_HYPER_BEAM, MOVE_TOXIC, MOVE_NONE} + }, + { + .species = SPECIES_URSARING, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_FOCUS_PUNCH, MOVE_PROTECT} + }, + { + .species = SPECIES_PORYGON2, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_PSYBEAM, MOVE_HYPER_BEAM, MOVE_SHADOW_BALL, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_TAUROS, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_HYPER_BEAM, MOVE_SURF, MOVE_THUNDERBOLT} + }, + { + .species = SPECIES_FEAROW, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_FLY, MOVE_MIRROR_MOVE, MOVE_PROTECT} + }, + { + .species = SPECIES_SNORLAX, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_BODY_SLAM, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE} + }, + { + .species = SPECIES_SLAKING, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_ICE_BEAM} + } +}; + +const struct PyramidWildMon *const gBattlePyramidLevel50WildMonPointers[] = +{ + gBattlePyramidLevel50WildMons_Round1, + gBattlePyramidLevel50WildMons_Round2, + gBattlePyramidLevel50WildMons_Round3, + gBattlePyramidLevel50WildMons_Round4, + gBattlePyramidLevel50WildMons_Round5, + gBattlePyramidLevel50WildMons_Round6, + gBattlePyramidLevel50WildMons_Round7, + gBattlePyramidLevel50WildMons_Round8, + gBattlePyramidLevel50WildMons_Round9, + gBattlePyramidLevel50WildMons_Round10, + gBattlePyramidLevel50WildMons_Round11, + gBattlePyramidLevel50WildMons_Round12, + gBattlePyramidLevel50WildMons_Round13, + gBattlePyramidLevel50WildMons_Round14, + gBattlePyramidLevel50WildMons_Round15, + gBattlePyramidLevel50WildMons_Round16, + gBattlePyramidLevel50WildMons_Round17, + gBattlePyramidLevel50WildMons_Round18, + gBattlePyramidLevel50WildMons_Round19, + gBattlePyramidLevel50WildMons_Round20 +}; diff --git a/src/data/battle_frontier/battle_pyramid_open_level_wild_mons.h b/src/data/battle_frontier/battle_pyramid_open_level_wild_mons.h new file mode 100644 index 000000000..154a92799 --- /dev/null +++ b/src/data/battle_frontier/battle_pyramid_open_level_wild_mons.h @@ -0,0 +1,1064 @@ + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round1[] = +{ + { + .species = SPECIES_PLUSLE, + .lvl = 15, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_SPARK, MOVE_ENCORE, MOVE_NONE} + }, + { + .species = SPECIES_MINUN, + .lvl = 15, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_QUICK_ATTACK, MOVE_NONE} + }, + { + .species = SPECIES_PIKACHU, + .lvl = 13, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_SLAM, MOVE_NONE} + }, + { + .species = SPECIES_ELECTABUZZ, + .lvl = 13, + .abilityBit = 2, + .moves = {MOVE_THUNDER_PUNCH, MOVE_SWIFT, MOVE_SCREECH, MOVE_NONE} + }, + { + .species = SPECIES_VILEPLUME, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_STUN_SPORE, MOVE_GIGA_DRAIN, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_MANECTRIC, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_QUICK_ATTACK, MOVE_NONE} + }, + { + .species = SPECIES_BRELOOM, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_STUN_SPORE, MOVE_FOCUS_PUNCH, MOVE_GIGA_DRAIN, MOVE_MACH_PUNCH} + }, + { + .species = SPECIES_JOLTEON, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PIN_MISSILE, MOVE_QUICK_ATTACK} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round2[] = +{ + { + .species = SPECIES_GULPIN, + .lvl = 14, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_SLUDGE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_ROSELIA, + .lvl = 14, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_MAGICAL_LEAF, MOVE_PETAL_DANCE} + }, + { + .species = SPECIES_BUTTERFREE, + .lvl = 12, + .abilityBit = 2, + .moves = {MOVE_POISON_POWDER, MOVE_GUST, MOVE_PSYBEAM, MOVE_NONE} + }, + { + .species = SPECIES_SEVIPER, + .lvl = 12, + .abilityBit = 2, + .moves = {MOVE_POISON_FANG, MOVE_SWAGGER, MOVE_CRUNCH, MOVE_POISON_TAIL} + }, + { + .species = SPECIES_SKARMORY, + .lvl = 7, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_FLY, MOVE_STEEL_WING, MOVE_NONE} + }, + { + .species = SPECIES_LUDICOLO, + .lvl = 7, + .abilityBit = 1, + .moves = {MOVE_TOXIC, MOVE_PROTECT, MOVE_DIVE, MOVE_RAIN_DANCE} + }, + { + .species = SPECIES_CROBAT, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_CONFUSE_RAY, MOVE_MEAN_LOOK, MOVE_BITE} + }, + { + .species = SPECIES_GENGAR, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_SHADOW_PUNCH, MOVE_NIGHT_SHADE, MOVE_NONE} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round3[] = +{ + { + .species = SPECIES_GROWLITHE, + .lvl = 13, + .abilityBit = 2, + .moves = {MOVE_FLAME_WHEEL, MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_VULPIX, + .lvl = 13, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_FLAMETHROWER, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_MAGCARGO, + .lvl = 11, + .abilityBit = 1, + .moves = {MOVE_FLAMETHROWER, MOVE_ROCK_SLIDE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_NINETALES, + .lvl = 11, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_QUICK_ATTACK, MOVE_FLAMETHROWER, MOVE_NONE} + }, + { + .species = SPECIES_MEDICHAM, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_FIRE_PUNCH, MOVE_HI_JUMP_KICK, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_WEEZING, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_FLAMETHROWER, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_DUSCLOPS, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_CONFUSE_RAY, MOVE_MEAN_LOOK, MOVE_SHADOW_PUNCH} + }, + { + .species = SPECIES_HOUNDOOM, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_BITE, MOVE_SOLAR_BEAM, MOVE_OVERHEAT} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round4[] = +{ + { + .species = SPECIES_DUNSPARCE, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_SPITE, MOVE_TOXIC, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_BANETTE, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_WILL_O_WISP, MOVE_NIGHT_SHADE, MOVE_NONE} + }, + { + .species = SPECIES_MISDREAVUS, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_SPITE, MOVE_SHADOW_BALL, MOVE_NONE} + }, + { + .species = SPECIES_NINETALES, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_WILL_O_WISP, MOVE_OVERHEAT, MOVE_NONE} + }, + { + .species = SPECIES_ABSOL, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_BITE, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL, MOVE_PROTECT} + }, + { + .species = SPECIES_DUSCLOPS, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_PROTECT, MOVE_TOXIC, MOVE_SHADOW_BALL} + }, + { + .species = SPECIES_SHEDINJA, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_TOXIC, MOVE_SPITE, MOVE_NONE} + }, + { + .species = SPECIES_GENGAR, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_SPITE, MOVE_NIGHT_SHADE, MOVE_NONE} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round5[] = +{ + { + .species = SPECIES_HAUNTER, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_NIGHT_SHADE, MOVE_THUNDERBOLT, MOVE_SLUDGE_BOMB, MOVE_NONE} + }, + { + .species = SPECIES_CHIMECHO, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_DOUBLE_EDGE, MOVE_TOXIC, MOVE_PSYCHIC, MOVE_PROTECT} + }, + { + .species = SPECIES_SOLROCK, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_FIRE_BLAST, MOVE_TOXIC} + }, + { + .species = SPECIES_MISDREAVUS, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_SPITE, MOVE_SHADOW_BALL, MOVE_PAIN_SPLIT} + }, + { + .species = SPECIES_CLAYDOL, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_SELF_DESTRUCT, MOVE_PSYCHIC} + }, + { + .species = SPECIES_WEEZING, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_SLUDGE_BOMB, MOVE_SELF_DESTRUCT, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_FLYGON, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_DRAGON_CLAW, MOVE_DRAGON_BREATH} + }, + { + .species = SPECIES_GENGAR, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_GIGA_DRAIN, MOVE_NIGHT_SHADE} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round6[] = +{ + { + .species = SPECIES_DIGLETT, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_ROCK_SLIDE, MOVE_SLASH, MOVE_DIG, MOVE_NONE} + }, + { + .species = SPECIES_TRAPINCH, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_GIGA_DRAIN, MOVE_NONE} + }, + { + .species = SPECIES_WYNAUT, + .lvl = 8, + .abilityBit = 0, + .moves = {MOVE_DESTINY_BOND, MOVE_SPLASH, MOVE_COUNTER, MOVE_MIRROR_COAT} + }, + { + .species = SPECIES_DIGLETT, + .lvl = 8, + .abilityBit = 1, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_MAGNITUDE, MOVE_TOXIC} + }, + { + .species = SPECIES_TRAPINCH, + .lvl = 6, + .abilityBit = 1, + .moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_GIGA_DRAIN, MOVE_PROTECT} + }, + { + .species = SPECIES_WYNAUT, + .lvl = 6, + .abilityBit = 0, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_DESTINY_BOND, MOVE_NONE} + }, + { + .species = SPECIES_WOBBUFFET, + .lvl = 5, + .abilityBit = 0, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_DESTINY_BOND, MOVE_NONE} + }, + { + .species = SPECIES_DUGTRIO, + .lvl = 5, + .abilityBit = 1, + .moves = {MOVE_ROCK_SLIDE, MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_PROTECT} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round7[] = +{ + { + .species = SPECIES_GLALIE, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_CRUNCH, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_SNEASEL, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_CRUSH_CLAW, MOVE_SPITE, MOVE_NONE} + }, + { + .species = SPECIES_DEWGONG, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_BLIZZARD, MOVE_DOUBLE_EDGE, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_PILOSWINE, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_TOXIC, MOVE_NONE} + }, + { + .species = SPECIES_JYNX, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_BLIZZARD, MOVE_LOVELY_KISS, MOVE_PSYCHIC, MOVE_NONE} + }, + { + .species = SPECIES_CLOYSTER, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_SURF, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_WALREIN, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_BLIZZARD, MOVE_BODY_SLAM, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_LAPRAS, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_SING, MOVE_BODY_SLAM, MOVE_ICE_BEAM, MOVE_PSYCHIC} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round8[] = +{ + { + .species = SPECIES_WEEZING, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_SLUDGE_BOMB, MOVE_FIRE_BLAST, MOVE_NONE} + }, + { + .species = SPECIES_ELECTRODE, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_THUNDERBOLT, MOVE_ROLLOUT, MOVE_NONE} + }, + { + .species = SPECIES_GENGAR, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_DESTINY_BOND, MOVE_LICK, MOVE_SHADOW_BALL, MOVE_NONE} + }, + { + .species = SPECIES_GOLEM, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_PROTECT, MOVE_EARTHQUAKE, MOVE_NONE} + }, + { + .species = SPECIES_PINECO, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_DOUBLE_EDGE, MOVE_GIGA_DRAIN, MOVE_NONE} + }, + { + .species = SPECIES_SOLROCK, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_FIRE_SPIN, MOVE_PSYWAVE, MOVE_NONE} + }, + { + .species = SPECIES_FORRETRESS, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_TOXIC, MOVE_ROCK_SLIDE, MOVE_NONE} + }, + { + .species = SPECIES_SHIFTRY, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_GIGA_DRAIN, MOVE_SOLAR_BEAM, MOVE_PROTECT} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round9[] = +{ + { + .species = SPECIES_WOBBUFFET, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_SAFEGUARD, MOVE_DESTINY_BOND} + }, + { + .species = SPECIES_METANG, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_TOXIC, MOVE_SLUDGE_BOMB, MOVE_PSYCHIC} + }, + { + .species = SPECIES_EXEGGUTOR, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_EGG_BOMB, MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_NONE} + }, + { + .species = SPECIES_SLOWKING, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_SURF, MOVE_ICE_BEAM, MOVE_FLAMETHROWER} + }, + { + .species = SPECIES_XATU, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_CONFUSE_RAY, MOVE_SHADOW_BALL, MOVE_PSYCHIC, MOVE_STEEL_WING} + }, + { + .species = SPECIES_ALAKAZAM, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_TOXIC} + }, + { + .species = SPECIES_STARMIE, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_SURF, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_ESPEON, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_DIG, MOVE_SHADOW_BALL, MOVE_NONE} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round10[] = +{ + { + .species = SPECIES_GOLEM, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_EARTHQUAKE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_STEELIX, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_IRON_TAIL, MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_NONE} + }, + { + .species = SPECIES_OMASTAR, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SURF, MOVE_MUD_SHOT, MOVE_ANCIENT_POWER, MOVE_NONE} + }, + { + .species = SPECIES_LUNATONE, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_HYPNOSIS, MOVE_PSYWAVE, MOVE_EXPLOSION, MOVE_NONE} + }, + { + .species = SPECIES_SHUCKLE, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_PROTECT, MOVE_WRAP, MOVE_NONE} + }, + { + .species = SPECIES_ARMALDO, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_ANCIENT_POWER, MOVE_PROTECT, MOVE_AERIAL_ACE, MOVE_NONE} + }, + { + .species = SPECIES_CRADILY, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN, MOVE_CONFUSE_RAY, MOVE_NONE} + }, + { + .species = SPECIES_AERODACTYL, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_ROCK_SLIDE, MOVE_BITE, MOVE_NONE} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round11[] = +{ + { + .species = SPECIES_POLIWRATH, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_SUBMISSION, MOVE_FOCUS_PUNCH, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_HARIYAMA, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_FAKE_OUT, MOVE_SURF, MOVE_FOCUS_PUNCH, MOVE_NONE} + }, + { + .species = SPECIES_BRELOOM, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SPORE, MOVE_FOCUS_PUNCH, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_MEDICHAM, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_FOCUS_PUNCH} + }, + { + .species = SPECIES_HITMONCHAN, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_FOCUS_PUNCH} + }, + { + .species = SPECIES_HITMONLEE, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_MEGA_KICK, MOVE_FOCUS_PUNCH, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_HERACROSS, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_FOCUS_PUNCH, MOVE_ROCK_SLIDE} + }, + { + .species = SPECIES_MACHAMP, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_FOCUS_PUNCH, MOVE_SEISMIC_TOSS} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round12[] = +{ + { + .species = SPECIES_QUAGSIRE, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_RAIN_DANCE, MOVE_SURF, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_TROPIUS, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_PUPITAR, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SANDSTORM, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_NONE} + }, + { + .species = SPECIES_LAPRAS, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_HAIL, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_CACTURNE, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_SANDSTORM, MOVE_GIGA_DRAIN, MOVE_SOLAR_BEAM, MOVE_NONE} + }, + { + .species = SPECIES_FLAREON, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_SUNNY_DAY, MOVE_FLAMETHROWER, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_WALREIN, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_HAIL, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_GYARADOS, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_RAIN_DANCE, MOVE_THUNDER, MOVE_HYDRO_PUMP, MOVE_NONE} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round13[] = +{ + { + .species = SPECIES_PINECO, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_SHUCKLE, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_EARTHQUAKE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_VENOMOTH, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SILVER_WIND, MOVE_POISON_POWDER, MOVE_SLEEP_POWDER, MOVE_PSYCHIC} + }, + { + .species = SPECIES_SCIZOR, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_QUICK_ATTACK, MOVE_METAL_CLAW, MOVE_FURY_CUTTER, MOVE_PURSUIT} + }, + { + .species = SPECIES_HERACROSS, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_MEGAHORN, MOVE_BRICK_BREAK, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE} + }, + { + .species = SPECIES_FORRETRESS, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_ARMALDO, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_WATER_PULSE, MOVE_PROTECT, MOVE_ROCK_SLIDE, MOVE_NONE} + }, + { + .species = SPECIES_SHEDINJA, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_TOXIC, MOVE_SPITE, MOVE_GRUDGE} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round14[] = +{ + { + .species = SPECIES_SABLEYE, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_NIGHT_SHADE, MOVE_PSYCHIC, MOVE_AERIAL_ACE, MOVE_NONE} + }, + { + .species = SPECIES_SNEASEL, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_TAUNT, MOVE_FAINT_ATTACK, MOVE_QUICK_ATTACK} + }, + { + .species = SPECIES_CRAWDAUNT, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_CRABHAMMER, MOVE_ICE_BEAM, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_SHIFTRY, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_GIGA_DRAIN} + }, + { + .species = SPECIES_CACTURNE, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_NEEDLE_ARM, MOVE_NONE} + }, + { + .species = SPECIES_ABSOL, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_BITE, MOVE_PROTECT, MOVE_SLASH, MOVE_NONE} + }, + { + .species = SPECIES_HOUNDOOM, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_OVERHEAT, MOVE_CRUNCH, MOVE_SHADOW_BALL, MOVE_PROTECT} + }, + { + .species = SPECIES_UMBREON, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_IRON_TAIL, MOVE_QUICK_ATTACK} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round15[] = +{ + { + .species = SPECIES_OCTILLERY, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_OCTAZOOKA, MOVE_ICE_BEAM, MOVE_FIRE_BLAST, MOVE_NONE} + }, + { + .species = SPECIES_DEWGONG, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_WATER_PULSE, MOVE_ICE_BEAM, MOVE_HEADBUTT, MOVE_NONE} + }, + { + .species = SPECIES_PELIPPER, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_PROTECT, MOVE_SUPERSONIC, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_QUAGSIRE, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_TOMB, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_LUDICOLO, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_TOXIC, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_SLOWKING, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_HEADBUTT, MOVE_SWAGGER, MOVE_NONE} + }, + { + .species = SPECIES_STARMIE, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_WATER_PULSE, MOVE_THUNDERBOLT, MOVE_CONFUSE_RAY, MOVE_BLIZZARD} + }, + { + .species = SPECIES_BLASTOISE, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_HYDRO_PUMP, MOVE_BITE, MOVE_ICE_BEAM, MOVE_NONE} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round16[] = +{ + { + .species = SPECIES_DUSKULL, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_NIGHT_SHADE, MOVE_WILL_O_WISP, MOVE_SHADOW_BALL, MOVE_PROTECT} + }, + { + .species = SPECIES_HAUNTER, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_SPITE, MOVE_HYPNOSIS, MOVE_SHADOW_BALL} + }, + { + .species = SPECIES_BANETTE, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_SPITE, MOVE_WILL_O_WISP, MOVE_NONE} + }, + { + .species = SPECIES_MISDREAVUS, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_PERISH_SONG, MOVE_SPITE, MOVE_MEAN_LOOK, MOVE_NONE} + }, + { + .species = SPECIES_SABLEYE, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_MEAN_LOOK, MOVE_DIG, MOVE_NIGHT_SHADE} + }, + { + .species = SPECIES_DUSCLOPS, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_TOXIC, MOVE_SHADOW_BALL, MOVE_NONE} + }, + { + .species = SPECIES_SHEDINJA, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_SPITE, MOVE_GRUDGE, MOVE_PROTECT} + }, + { + .species = SPECIES_GENGAR, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_DESTINY_BOND, MOVE_SPITE, MOVE_NIGHT_SHADE} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round17[] = +{ + { + .species = SPECIES_MAWILE, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_CRUNCH, MOVE_TOXIC, MOVE_ICE_BEAM, MOVE_NONE} + }, + { + .species = SPECIES_MAGNETON, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_STEELIX, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_ROCK_THROW, MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_NONE} + }, + { + .species = SPECIES_SCIZOR, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_METAL_CLAW, MOVE_SLASH, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_FORRETRESS, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_TOXIC, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_SKARMORY, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_STEEL_WING, MOVE_TOXIC, MOVE_FLY, MOVE_PROTECT} + }, + { + .species = SPECIES_AGGRON, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_TAKE_DOWN, MOVE_SURF, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_METAGROSS, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round18[] = +{ + { + .species = SPECIES_DRAGONAIR, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_TOXIC, MOVE_ICE_BEAM, MOVE_NONE} + }, + { + .species = SPECIES_VIBRAVA, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_CRUNCH, MOVE_STEEL_WING} + }, + { + .species = SPECIES_ALTARIA, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_SING, MOVE_PROTECT} + }, + { + .species = SPECIES_FLYGON, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_FIRE_BLAST, MOVE_NONE} + }, + { + .species = SPECIES_AERODACTYL, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DRAGON_CLAW, MOVE_NONE} + }, + { + .species = SPECIES_GYARADOS, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_SURF, MOVE_THRASH, MOVE_BITE} + }, + { + .species = SPECIES_KINGDRA, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_CHARIZARD, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, MOVE_FIRE_BLAST, MOVE_IRON_TAIL} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round19[] = +{ + { + .species = SPECIES_ARCANINE, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_FIRE_BLAST, MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_POLIWRATH, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_RAICHU, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_THUNDER, MOVE_THUNDER_WAVE, MOVE_SLAM, MOVE_NONE} + }, + { + .species = SPECIES_VAPOREON, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_JOLTEON, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_THUNDERBOLT, MOVE_PIN_MISSILE, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_FLAREON, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_BITE, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_NINETALES, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_WILL_O_WISP, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_STARMIE, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_SURF, MOVE_THUNDERBOLT, MOVE_PSYCHIC} + } +}; + +const struct PyramidWildMon gBattlePyramidOpenLevelWildMons_Round20[] = +{ + { + .species = SPECIES_KANGASKHAN, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_SURF, MOVE_DIZZY_PUNCH} + }, + { + .species = SPECIES_SWELLOW, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_AERIAL_ACE, MOVE_HYPER_BEAM, MOVE_TOXIC, MOVE_NONE} + }, + { + .species = SPECIES_URSARING, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_FOCUS_PUNCH, MOVE_PROTECT} + }, + { + .species = SPECIES_PORYGON2, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_PSYBEAM, MOVE_HYPER_BEAM, MOVE_SHADOW_BALL, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_TAUROS, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_HYPER_BEAM, MOVE_SURF, MOVE_THUNDERBOLT} + }, + { + .species = SPECIES_FEAROW, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_FLY, MOVE_MIRROR_MOVE, MOVE_PROTECT} + }, + { + .species = SPECIES_SNORLAX, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_BODY_SLAM, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE} + }, + { + .species = SPECIES_SLAKING, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_ICE_BEAM} + } +}; + +const struct PyramidWildMon *const gBattlePyramidOpenLevelWildMonPointers[] = +{ + gBattlePyramidOpenLevelWildMons_Round1, + gBattlePyramidOpenLevelWildMons_Round2, + gBattlePyramidOpenLevelWildMons_Round3, + gBattlePyramidOpenLevelWildMons_Round4, + gBattlePyramidOpenLevelWildMons_Round5, + gBattlePyramidOpenLevelWildMons_Round6, + gBattlePyramidOpenLevelWildMons_Round7, + gBattlePyramidOpenLevelWildMons_Round8, + gBattlePyramidOpenLevelWildMons_Round9, + gBattlePyramidOpenLevelWildMons_Round10, + gBattlePyramidOpenLevelWildMons_Round11, + gBattlePyramidOpenLevelWildMons_Round12, + gBattlePyramidOpenLevelWildMons_Round13, + gBattlePyramidOpenLevelWildMons_Round14, + gBattlePyramidOpenLevelWildMons_Round15, + gBattlePyramidOpenLevelWildMons_Round16, + gBattlePyramidOpenLevelWildMons_Round17, + gBattlePyramidOpenLevelWildMons_Round18, + gBattlePyramidOpenLevelWildMons_Round19, + gBattlePyramidOpenLevelWildMons_Round20 +}; diff --git a/src/frontier_data.c b/src/frontier_data.c new file mode 100644 index 000000000..8a78bb57b --- /dev/null +++ b/src/frontier_data.c @@ -0,0 +1,237 @@ +#include "global.h" + +#include "battle_pyramid.h" + +#include "constants/moves.h" +#include "constants/species.h" +#include "constants/items.h" + + + +#include "data/battle_frontier/battle_pyramid_level_50_wild_mons.h" +#include "data/battle_frontier/battle_pyramid_open_level_wild_mons.h" + + + +const struct Struct_08613650 gUnknown_08613650[] = +{ + { + .unk0 = 0x07, + .unk1 = 0x03, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x80, + .unk5 = {0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03} + }, + { + .unk0 = 0x06, + .unk1 = 0x03, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x80, + .unk5 = {0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04} + }, + { + .unk0 = 0x05, + .unk1 = 0x03, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x78, + .unk5 = {0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05} + }, + { + .unk0 = 0x04, + .unk1 = 0x04, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x78, + .unk5 = {0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x06} + }, + { + .unk0 = 0x04, + .unk1 = 0x04, + .unk2 = 0x00, + .unk3 = 0x01, + .runMultiplier = 0x70, + .unk5 = {0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07} + }, + { + .unk0 = 0x03, + .unk1 = 0x05, + .unk2 = 0x00, + .unk3 = 0x02, + .runMultiplier = 0x70, + .unk5 = {0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c} + }, + { + .unk0 = 0x03, + .unk1 = 0x05, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x68, + .unk5 = {0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d} + }, + { + .unk0 = 0x02, + .unk1 = 0x04, + .unk2 = 0x00, + .unk3 = 0x01, + .runMultiplier = 0x68, + .unk5 = {0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e} + }, + { + .unk0 = 0x04, + .unk1 = 0x05, + .unk2 = 0x00, + .unk3 = 0x02, + .runMultiplier = 0x60, + .unk5 = {0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f} + }, + { + .unk0 = 0x03, + .unk1 = 0x06, + .unk2 = 0x00, + .unk3 = 0x04, + .runMultiplier = 0x60, + .unk5 = {0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f} + }, + { + .unk0 = 0x02, + .unk1 = 0x03, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x58, + .unk5 = {0x0c, 0x0d, 0x0e, 0x0c, 0x0d, 0x0e, 0x0c, 0x0d} + }, + { + .unk0 = 0x04, + .unk1 = 0x05, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x58, + .unk5 = {0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b} + }, + { + .unk0 = 0x03, + .unk1 = 0x07, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x50, + .unk5 = {0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c} + }, + { + .unk0 = 0x02, + .unk1 = 0x04, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x50, + .unk5 = {0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d} + }, + { + .unk0 = 0x03, + .unk1 = 0x06, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x50, + .unk5 = {0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e} + }, + { + .unk0 = 0x03, + .unk1 = 0x08, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x50, + .unk5 = {0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f} + } +}; + +const u8 gUnknown_08613750[34][2] = +{ + {0x28, 0x00}, + {0x46, 0x01}, + {0x5a, 0x02}, + {0x64, 0x03}, + {0x23, 0x01}, + {0x37, 0x02}, + {0x4b, 0x03}, + {0x5a, 0x04}, + {0x64, 0x0a}, + {0x23, 0x02}, + {0x37, 0x03}, + {0x4b, 0x04}, + {0x5a, 0x05}, + {0x64, 0x0b}, + {0x23, 0x03}, + {0x37, 0x04}, + {0x4b, 0x05}, + {0x5a, 0x06}, + {0x64, 0x0c}, + {0x23, 0x04}, + {0x37, 0x05}, + {0x4b, 0x06}, + {0x5a, 0x07}, + {0x64, 0x0d}, + {0x23, 0x05}, + {0x37, 0x06}, + {0x4b, 0x07}, + {0x5a, 0x08}, + {0x64, 0x0e}, + {0x23, 0x06}, + {0x37, 0x07}, + {0x4b, 0x08}, + {0x5a, 0x09}, + {0x64, 0x0f} +}; + +const u8 gUnknown_08613794[] = +{ + 0x00, 0x04, 0x09, 0x0e, 0x13, 0x18, 0x1d, 0x00 +}; + +const u16 sPickupItemsLvl50[TOTAL_ROUNDS][PICKUP_ITEMS_PER_ROUND] = +{ + {ITEM_HYPER_POTION, ITEM_FLUFFY_TAIL, ITEM_CHERI_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_DIRE_HIT, ITEM_PECHA_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_ATTACK, ITEM_RAWST_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_DEFEND, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPEED, ITEM_CHESTO_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_ACCURACY, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPECIAL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_GUARD_SPEC, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_FLUFFY_TAIL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_DIRE_HIT, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_ATTACK, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_DEFEND, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPEED, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_ACCURACY, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPECIAL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_GUARD_SPEC, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_FLUFFY_TAIL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_DIRE_HIT, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_ATTACK, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_DEFEND, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, +}; + +const u16 sPickupItemsLvlOpen[TOTAL_ROUNDS][PICKUP_ITEMS_PER_ROUND] = +{ + {ITEM_HYPER_POTION, ITEM_FLUFFY_TAIL, ITEM_CHERI_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_DIRE_HIT, ITEM_PECHA_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_ATTACK, ITEM_RAWST_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_DEFEND, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPEED, ITEM_CHESTO_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_ACCURACY, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPECIAL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_GUARD_SPEC, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_FLUFFY_TAIL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_DIRE_HIT, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_ATTACK, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_DEFEND, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPEED, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_ACCURACY, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPECIAL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_GUARD_SPEC, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_FLUFFY_TAIL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_DIRE_HIT, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_ATTACK, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_DEFEND, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, +}; diff --git a/src/frontier_util.c b/src/frontier_util.c index a65d14784..7ac2e6fa7 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -49,12 +49,8 @@ struct FrontierBrainMon }; extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; -extern const u8 *const gUnknown_08611D08[]; -extern const u8 *const gUnknown_08611CB0[][2]; -extern const u8 *const gUnknown_08611D00[]; -extern const u8 *const *const gUnknown_08611DB0[]; -extern const u8 *const *const gUnknown_08611DB8[]; -extern const u16 gFacilityToBrainTrainerId[]; +//extern const u8 *const *const gUnknown_08611DB0[]; +//extern const u8 *const *const gUnknown_08611DB8[]; extern void sub_81B8558(void); @@ -690,6 +686,132 @@ const u16 gFrontierBannedSpecies[] = SPECIES_KYOGRE, SPECIES_GROUDON, SPECIES_RAYQUAZA, SPECIES_JIRACHI, SPECIES_DEOXYS, 0xFFFF }; +const u8 *const gUnknown_08611CB0[][2] = +{ + {gText_BattleTower2, gUnknown_085ED164}, + {gText_BattleTower2, gUnknown_085ED170}, + {gText_BattleTower2, gUnknown_085ED17C}, + {gText_BattleDome, gUnknown_085ED164}, + {gText_BattlePalace, gUnknown_085ED164}, + {gText_BattleArena, gUnknown_085ED190}, + {gText_BattleFactory, gUnknown_085ED164}, + {gText_BattlePike, gUnknown_085ED190}, + {gText_BattlePyramid, gUnknown_085ED190}, + {gText_BattleTower2, gUnknown_085ED188}, +}; + +const u8 *const gLevelModeText[] = +{ + gText_RecordsLv50, + gText_RecordsOpenLevel, +}; + +const u8 *const gFacilityToRecordsText[] = +{ + gText_FrontierFacilityWinStreak, + gText_FrontierFacilityWinStreak, + gText_FrontierFacilityWinStreak, + gText_FrontierFacilityClearStreak, + gText_FrontierFacilityWinStreak, + gText_FrontierFacilityKOsStreak, + gText_FrontierFacilityWinStreak, + gText_FrontierFacilityRoomsCleared, + gText_FrontierFacilityFloorsCleared, + gText_FrontierFacilityWinStreak, +}; + +const u16 gFacilityToBrainTrainerId[] = +{ + [FRONTIER_FACILITY_TOWER] = TRAINER_ANABEL, + [FRONTIER_FACILITY_DOME] = TRAINER_TUCKER, + [FRONTIER_FACILITY_PALACE] = TRAINER_SPENSER, + [FRONTIER_FACILITY_ARENA] = TRAINER_GRETA, + [FRONTIER_FACILITY_FACTORY] = TRAINER_NOLAND, + [FRONTIER_FACILITY_PIKE] = TRAINER_LUCY, + [FRONTIER_FACILITY_PYRAMID] = TRAINER_BRANDON, +}; + +const u8 *const gUnknown_08611D40[] = +{ + gText_082C843F, + gText_082C848B, + gText_082C8628, + gText_082C85B4, + gText_082C8512, + gText_082C859D, + gText_082C86C3, +}; + +const u8 *const gUnknown_08611D5C[] = +{ + gText_082C8458, + gText_082C84C1, + gText_082C8662, + gText_082C85E3, + gText_082C853B, + gText_082C85A4, + gText_082C86FE, +}; + +const u8 *const gUnknown_08611D78[] = +{ + gText_082C846C, + gText_082C84D0, + gText_082C8682, + gText_082C85F5, + gText_082C8561, + gText_082C85A9, + gText_082C8739, +}; + +const u8 *const gUnknown_08611D94[] = +{ + gText_082C8480, + gText_082C84F7, + gText_082C86B3, + gText_082C8611, + gText_082C8589, + gText_082C85AE, + gText_082C877B, +}; + +const u8 *const *const gUnknown_08611DB0[] = +{ + gUnknown_08611D40, + gUnknown_08611D78, +}; + +const u8 *const *const gUnknown_08611DB8[] = +{ + gUnknown_08611D5C, + gUnknown_08611D94, +}; + + + + + + + + + + + + + + + + + + + + + + + + + + // code void CallFrontierUtilFunc(void) { @@ -2129,8 +2251,8 @@ static void Print1PRecord(s32 position, s32 x, s32 y, struct RankingHall1P *hall if (winStreak > 9999) winStreak = 9999; ConvertIntToDecimalStringN(gStringVar2, winStreak, STR_CONV_MODE_RIGHT_ALIGN, 4); - StringExpandPlaceholders(gStringVar4, gUnknown_08611D08[hallFacilityId]); - AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, GetStringRightAlignXOffset(1, gUnknown_08611D08[hallFacilityId], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL); + StringExpandPlaceholders(gStringVar4, gFacilityToRecordsText[hallFacilityId]); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, GetStringRightAlignXOffset(1, gFacilityToRecordsText[hallFacilityId], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL); } } @@ -2156,8 +2278,8 @@ static void Print2PRecord(s32 position, s32 x, s32 y, struct RankingHall2P *hall if (winStreak > 9999) winStreak = 9999; ConvertIntToDecimalStringN(gStringVar2, winStreak, STR_CONV_MODE_RIGHT_ALIGN, 4); - StringExpandPlaceholders(gStringVar4, gUnknown_08611D08[9]); - AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, GetStringRightAlignXOffset(1, gUnknown_08611D08[9], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL); + StringExpandPlaceholders(gStringVar4, gFacilityToRecordsText[9]); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, GetStringRightAlignXOffset(1, gFacilityToRecordsText[9], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL); } } @@ -2239,8 +2361,8 @@ static void PrintHallRecords(s32 hallFacilityId, s32 lvlMode) StringCopy(gStringVar1, gUnknown_08611CB0[hallFacilityId][0]); StringExpandPlaceholders(gStringVar4, gUnknown_08611CB0[hallFacilityId][1]); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); - x = GetStringRightAlignXOffset(1, gUnknown_08611D00[lvlMode], 0xD0); - AddTextPrinterParameterized(gRecordsWindowId, 1, gUnknown_08611D00[lvlMode], x, 1, TEXT_SPEED_FF, NULL); + x = GetStringRightAlignXOffset(1, gLevelModeText[lvlMode], 0xD0); + AddTextPrinterParameterized(gRecordsWindowId, 1, gLevelModeText[lvlMode], x, 1, TEXT_SPEED_FF, NULL); if (hallFacilityId == HALL_FACILITIES_COUNT) { gSaveBlock2Ptr->frontier.field_EE1[0][PLAYER_NAME_LENGTH] = EOS; diff --git a/src/strings.c b/src/strings.c index 9cb384e70..72aedde6e 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1265,6 +1265,7 @@ const u8 gUnknown_085ED188[] = _("{STR_VAR_1} LINK"); asm(".align 2"); const u8 gUnknown_085ED190[] = _("{STR_VAR_1}"); + const u8 gText_Give[] = _("Give"); const u8 gText_NoNeed[] = _("No need"); const u8 gText_ColorLightShadowDarkGrey[] = _("{COLOR LIGHT_GREY}{SHADOW DARK_GREY}"); @@ -1548,25 +1549,25 @@ const u8 gText_TimesVar1[] = _("Times: {STR_VAR_1}"); const u8 gText_FloorsCleared[] = _("Floors cleared: {STR_VAR_1}"); asm(".align 2"); -const u8 gUnknown_085EE3B0[] = _("LV. 50"); +const u8 gText_RecordsLv50[] = _("LV. 50"); asm(".align 2"); -const u8 gUnknown_085EE3B8[] = _("OPEN LEVEL"); +const u8 gText_RecordsOpenLevel[] = _("OPEN LEVEL"); asm(".align 2"); -const u8 gUnknown_085EE3C4[] = _("Win streak: {STR_VAR_2}"); +const u8 gText_FrontierFacilityWinStreak[] = _("Win streak: {STR_VAR_2}"); asm(".align 2"); -const u8 gUnknown_085EE3D4[] = _("Clear streak: {STR_VAR_2}"); +const u8 gText_FrontierFacilityClearStreak[] = _("Clear streak: {STR_VAR_2}"); asm(".align 2"); -const u8 gUnknown_085EE3E8[] = _("Rooms cleared: {STR_VAR_2}"); +const u8 gText_FrontierFacilityRoomsCleared[] = _("Rooms cleared: {STR_VAR_2}"); asm(".align 2"); -const u8 gUnknown_085EE3FC[] = _("KOs in a row: {STR_VAR_2}"); +const u8 gText_FrontierFacilityKOsStreak[] = _("KOs in a row: {STR_VAR_2}"); asm(".align 2"); -const u8 gUnknown_085EE410[] = _("Floors cleared: {STR_VAR_2}"); +const u8 gText_FrontierFacilityFloorsCleared[] = _("Floors cleared: {STR_VAR_2}"); asm(".align 2"); const u8 gText_123Dot[][3] = {_("1."), _("2."), _("3.")}; |