summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgarak <garakmon@gmail.com>2018-11-27 11:21:48 -0500
committergarak <garakmon@gmail.com>2018-11-27 11:21:48 -0500
commit091b5194e7bfc6049931202d9712541083fd61cd (patch)
treee528a5f7d4e2ac51c758ad9c6e1423d3dd7dbb43 /src
parent6acf6aed0486d090bf4f8e731189b9d4ad07dadb (diff)
frontier pike and pyramid data
Diffstat (limited to 'src')
-rw-r--r--src/battle_pike.c383
-rw-r--r--src/battle_pyramid.c42
-rw-r--r--src/data/battle_frontier/battle_pyramid_level_50_wild_mons.h1064
-rw-r--r--src/data/battle_frontier/battle_pyramid_open_level_wild_mons.h1064
-rw-r--r--src/frontier_data.c237
-rw-r--r--src/frontier_util.c146
-rw-r--r--src/strings.c15
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.")};