diff options
-rw-r--r-- | data/contest.s | 2 | ||||
-rw-r--r-- | data/contest_2.s | 2 | ||||
-rw-r--r-- | data/contest_opponents.inc | 663 | ||||
-rw-r--r-- | include/constants/contest.h | 44 | ||||
-rw-r--r-- | ld_script.txt | 3 | ||||
-rw-r--r-- | src/contest_2.c | 3 | ||||
-rw-r--r-- | src/data/contest_opponents.h | 1424 |
7 files changed, 1472 insertions, 669 deletions
diff --git a/data/contest.s b/data/contest.s index d12044af9..d1855e947 100644 --- a/data/contest.s +++ b/data/contest.s @@ -6,7 +6,7 @@ .section .rodata @ 83C9408 - .include "data/contest_opponents.inc" + @ .include "data/contest_opponents.inc" gUnknown_083CA308:: @ 83CA308 .byte 19, 0 diff --git a/data/contest_2.s b/data/contest_2.s deleted file mode 100644 index e807a1587..000000000 --- a/data/contest_2.s +++ /dev/null @@ -1,2 +0,0 @@ - .section .rodata - .align 2, 0 diff --git a/data/contest_opponents.inc b/data/contest_opponents.inc deleted file mode 100644 index 8c9c76f1b..000000000 --- a/data/contest_opponents.inc +++ /dev/null @@ -1,663 +0,0 @@ - .align 2 -gContestOpponents:: @ 83C9408 - .2byte 286 @ SPECIES_ID - .string "POOCHY$", 11 @ POKE_NICKNAME - .string "JIMMY$", 8 @ TRAINER_NAME - .byte 7 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x0c000fff @ FLAGS - .2byte 68 @ RANK - .2byte MOVE_ROAR, MOVE_BITE, MOVE_TAKE_DOWN, MOVE_HOWL - .byte 10, 4, 10, 3, 4, 50 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 288 @ SPECIES_ID - .string "ZIGOON$", 11 @ POKE_NICKNAME - .string "EDITH$", 8 @ TRAINER_NAME - .byte 8 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x82000fff @ FLAGS - .2byte 16 @ RANK - .2byte MOVE_REST, MOVE_TAIL_WHIP, MOVE_TACKLE, MOVE_COVET - .byte 10, 10, 6, 1, 2, 60 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 294 @ SPECIES_ID - .string "DUSTER$", 11 @ POKE_NICKNAME - .string "EVAN$", 8 @ TRAINER_NAME - .byte 11 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x21000fff @ FLAGS - .2byte 8 @ RANK - .2byte MOVE_SILVER_WIND, MOVE_MOONLIGHT, MOVE_LIGHT_SCREEN, MOVE_GUST - .byte 2, 10, 10, 12, 4, 70 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 298 @ SPECIES_ID - .string "DOTS$", 11 @ POKE_NICKNAME - .string "KELSEY$", 8 @ TRAINER_NAME - .byte 16 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x20800fff @ FLAGS - .2byte 96 @ RANK - .2byte MOVE_BIDE, MOVE_SYNTHESIS, MOVE_BULLET_SEED, MOVE_GROWTH - .byte 3, 3, 5, 2, 7, 80 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 304 @ SPECIES_ID - .string "TATAY$", 11 @ POKE_NICKNAME - .string "MADISON$", 8 @ TRAINER_NAME - .byte 18 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80400fff @ FLAGS - .2byte 4 @ RANK - .2byte MOVE_WING_ATTACK, MOVE_AGILITY, MOVE_AERIAL_ACE, MOVE_GROWL - .byte 1, 3, 3, 5, 4, 90 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 301 @ SPECIES_ID - .string "NINDA$", 11 @ POKE_NICKNAME - .string "RAYMOND$", 8 @ TRAINER_NAME - .byte 44 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x10200fff @ FLAGS - .2byte 32 @ RANK - .2byte MOVE_LEECH_LIFE, MOVE_FALSE_SWIPE, MOVE_FURY_SWIPES, MOVE_MIND_READER - .byte 5, 2, 10, 7, 8, 100 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 306 @ SPECIES_ID - .string "SMISH$", 11 @ POKE_NICKNAME - .string "GRANT$", 8 @ TRAINER_NAME - .byte 35 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x20100fff @ FLAGS - .2byte 32 @ RANK - .2byte MOVE_STUN_SPORE, MOVE_LEECH_SEED, MOVE_MEGA_DRAIN, MOVE_ATTRACT - .byte 3, 3, 10, 2, 2, 50 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 309 @ SPECIES_ID - .string "GULWEE$", 11 @ POKE_NICKNAME - .string "PAIGE$", 8 @ TRAINER_NAME - .byte 26 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x08080fff @ FLAGS - .2byte 24 @ RANK - .2byte MOVE_MIST, MOVE_WATER_GUN, MOVE_GROWL, MOVE_PURSUIT - .byte 3, 5, 1, 10, 10, 60 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 364 @ SPECIES_ID - .string "SLOKTH$", 11 @ POKE_NICKNAME - .string "ALEC$", 8 @ TRAINER_NAME - .byte 31 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x40040fff @ FLAGS - .2byte 88 @ RANK - .2byte MOVE_STRENGTH, MOVE_COUNTER, MOVE_YAWN, MOVE_ENCORE - .byte 10, 4, 4, 5, 18, 70 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 370 @ SPECIES_ID - .string "WHIRIS$", 11 @ POKE_NICKNAME - .string "SYDNEY$", 8 @ TRAINER_NAME - .byte 47 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80020fff @ FLAGS - .2byte 36 @ RANK - .2byte MOVE_ASTONISH, MOVE_SCREECH, MOVE_UPROAR, MOVE_HYPER_VOICE - .byte 2, 2, 7, 2, 7, 80 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 335 @ SPECIES_ID - .string "MAHITA$", 11 @ POKE_NICKNAME - .string "MORRIS$", 8 @ TRAINER_NAME - .byte 38 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x08010fff @ FLAGS - .2byte 68 @ RANK - .2byte MOVE_SEISMIC_TOSS, MOVE_VITAL_THROW, MOVE_TACKLE, MOVE_REVERSAL - .byte 9, 1, 1, 8, 1, 90 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 382 @ SPECIES_ID - .string "RONAR$", 11 @ POKE_NICKNAME - .string "MARIAH$", 8 @ TRAINER_NAME - .byte 10 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x08008fff @ FLAGS - .2byte 68 @ RANK - .2byte MOVE_METAL_CLAW, MOVE_IRON_DEFENSE, MOVE_HEADBUTT, MOVE_TAKE_DOWN - .byte 5, 10, 2, 10, 2, 100 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 41 @ SPECIES_ID - .string "ZUTZU$", 11 @ POKE_NICKNAME - .string "RUSSELL$", 8 @ TRAINER_NAME - .byte 33 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x90004fff @ FLAGS - .2byte 56 @ RANK - .2byte MOVE_HAZE, MOVE_MEAN_LOOK, MOVE_CONFUSE_RAY, MOVE_LEECH_LIFE - .byte 4, 2, 2, 2, 10, 50 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 367 @ SPECIES_ID - .string "GULIN$", 11 @ POKE_NICKNAME - .string "MELANIE$", 8 @ TRAINER_NAME - .byte 6 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x40002fff @ FLAGS - .2byte 16 @ RANK - .2byte MOVE_SLUDGE, MOVE_AMNESIA, MOVE_TOXIC, MOVE_YAWN - .byte 1, 10, 1, 10, 5, 60 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 337 @ SPECIES_ID - .string "RIKELEC$", 11 @ POKE_NICKNAME - .string "CHANCE$", 8 @ TRAINER_NAME - .byte 15 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80001fff @ FLAGS - .2byte 12 @ RANK - .2byte MOVE_SPARK, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_ROAR - .byte 20, 10, 1, 1, 1, 70 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 363 @ SPECIES_ID - .string "RELIA$", 11 @ POKE_NICKNAME - .string "KARINA$", 8 @ TRAINER_NAME - .byte 32 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x24000fff @ FLAGS - .2byte 41 @ RANK - .2byte MOVE_PETAL_DANCE, MOVE_MAGICAL_LEAF, MOVE_GRASS_WHISTLE, MOVE_INGRAIN - .byte 50, 15, 75, 10, 20, 100 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 84 @ SPECIES_ID - .string "DUODO$", 11 @ POKE_NICKNAME - .string "BOBBY$", 8 @ TRAINER_NAME - .byte 51 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x82000fff @ FLAGS - .2byte 125 @ RANK - .2byte MOVE_PECK, MOVE_FURY_ATTACK, MOVE_RETURN, MOVE_GROWL - .byte 15, 21, 15, 85, 35, 110 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 332 @ SPECIES_ID - .string "PINCHIN$", 11 @ POKE_NICKNAME - .string "CLAIRE$", 8 @ TRAINER_NAME - .byte 8 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x81000fff @ FLAGS - .2byte 113 @ RANK - .2byte MOVE_BITE, MOVE_SAND_ATTACK, MOVE_DIG, MOVE_FAINT_ATTACK - .byte 75, 25, 25, 10, 25, 120 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 344 @ SPECIES_ID - .string "NACAC$", 11 @ POKE_NICKNAME - .string "WILLIE$", 8 @ TRAINER_NAME - .byte 11 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80800fff @ FLAGS - .2byte 37 @ RANK - .2byte MOVE_SPIKES, MOVE_LEER, MOVE_POISON_STING, MOVE_SAND_ATTACK - .byte 10, 30, 25, 65, 25, 130 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 27 @ SPECIES_ID - .string "SHRAND$", 11 @ POKE_NICKNAME - .string "CASSIDY$", 8 @ TRAINER_NAME - .byte 18 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x10400fff @ FLAGS - .2byte 69 @ RANK - .2byte MOVE_SLASH, MOVE_DEFENSE_CURL, MOVE_SWIFT, MOVE_FURY_SWIPES - .byte 30, 90, 30, 10, 100, 140 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 318 @ SPECIES_ID - .string "TOYBAL$", 11 @ POKE_NICKNAME - .string "MORGAN$", 8 @ TRAINER_NAME - .byte 44 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x08200fff @ FLAGS - .2byte 41 @ RANK - .2byte MOVE_SELF_DESTRUCT, MOVE_ROCK_TOMB, MOVE_PSYBEAM, MOVE_CONFUSION - .byte 50, 40, 10, 35, 35, 150 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 339 @ SPECIES_ID - .string "LENUM$", 11 @ POKE_NICKNAME - .string "SUMMER$", 8 @ TRAINER_NAME - .byte 26 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x10100fff @ FLAGS - .2byte 77 @ RANK - .2byte MOVE_MAGNITUDE, MOVE_EARTHQUAKE, MOVE_SUNNY_DAY, MOVE_FLAMETHROWER - .byte 40, 5, 40, 40, 40, 100 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 308 @ SPECIES_ID - .string "SPININ$", 11 @ POKE_NICKNAME - .string "MILES$", 8 @ TRAINER_NAME - .byte 31 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80080fff @ FLAGS - .2byte 49 @ RANK - .2byte MOVE_TEETER_DANCE, MOVE_PSYCH_UP, MOVE_HYPNOSIS, MOVE_UPROAR - .byte 25, 75, 25, 10, 25, 110 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 358 @ SPECIES_ID - .string "SWABY$", 11 @ POKE_NICKNAME - .string "AUDREY$", 8 @ TRAINER_NAME - .byte 47 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0xa0040fff @ FLAGS - .2byte 41 @ RANK - .2byte MOVE_MIRROR_MOVE, MOVE_PERISH_SONG, MOVE_SAFEGUARD, MOVE_MIST - .byte 30, 30, 40, 30, 25, 120 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 289 @ SPECIES_ID - .string "NOONE$", 11 @ POKE_NICKNAME - .string "AVERY$", 8 @ TRAINER_NAME - .byte 38 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80020fff @ FLAGS - .2byte 25 @ RANK - .2byte MOVE_GROWL, MOVE_COVET, MOVE_SAND_ATTACK, MOVE_REST - .byte 40, 40, 30, 10, 30, 130 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 317 @ SPECIES_ID - .string "KECON$", 11 @ POKE_NICKNAME - .string "ARIANA$", 8 @ TRAINER_NAME - .byte 10 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80010fff @ FLAGS - .2byte 97 @ RANK - .2byte MOVE_THIEF, MOVE_SCREECH, MOVE_ANCIENT_POWER, MOVE_BIND - .byte 10, 10, 40, 75, 35, 140 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 118 @ SPECIES_ID - .string "GOLDEN$", 11 @ POKE_NICKNAME - .string "ASHTON$", 8 @ TRAINER_NAME - .byte 33 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80008fff @ FLAGS - .2byte 13 @ RANK - .2byte MOVE_HORN_ATTACK, MOVE_FURY_ATTACK, MOVE_HORN_DRILL, MOVE_TAIL_WHIP - .byte 70, 30, 5, 30, 25, 150 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 323 @ SPECIES_ID - .string "BOBOACH$", 11 @ POKE_NICKNAME - .string "SANDRA$", 8 @ TRAINER_NAME - .byte 6 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80004fff @ FLAGS - .2byte 113 @ RANK - .2byte MOVE_MUD_SPORT, MOVE_WATER_SPORT, MOVE_EARTHQUAKE, MOVE_FUTURE_SIGHT - .byte 45, 45, 60, 25, 15, 100 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 227 @ SPECIES_ID - .string "CORPY$", 11 @ POKE_NICKNAME - .string "CARSON$", 8 @ TRAINER_NAME - .byte 35 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x08002fff @ FLAGS - .2byte 77 @ RANK - .2byte MOVE_SWIFT, MOVE_DOUBLE_TEAM, MOVE_AGILITY, MOVE_CUT - .byte 40, 30, 25, 60, 20, 110 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 295 @ SPECIES_ID - .string "TADO$", 11 @ POKE_NICKNAME - .string "KATRINA$", 8 @ TRAINER_NAME - .byte 16 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x08001fff @ FLAGS - .2byte 57 @ RANK - .2byte MOVE_ASTONISH, MOVE_GROWL, MOVE_RAIN_DANCE, MOVE_WATER_PULSE - .byte 15, 15, 30, 15, 75, 120 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 383 @ SPECIES_ID - .string "LAIRN$", 11 @ POKE_NICKNAME - .string "RONNIE$", 8 @ TRAINER_NAME - .byte 55 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x84000fff @ FLAGS - .2byte 98 @ RANK - .2byte MOVE_METAL_SOUND, MOVE_METAL_CLAW, MOVE_HARDEN, MOVE_TAKE_DOWN - .byte 30, 50, 35, 100, 90, 200 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 299 @ SPECIES_ID - .string "NUZLE$", 11 @ POKE_NICKNAME - .string "CLAUDIA$", 8 @ TRAINER_NAME - .byte 8 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x82000fff @ FLAGS - .2byte 14 @ RANK - .2byte MOVE_GROWTH, MOVE_RAZOR_WIND, MOVE_EXPLOSION, MOVE_EXTRASENSORY - .byte 75, 75, 65, 35, 70, 210 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 302 @ SPECIES_ID - .string "NINAS$", 11 @ POKE_NICKNAME - .string "ELIAS$", 8 @ TRAINER_NAME - .byte 11 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x81000fff @ FLAGS - .2byte 114 @ RANK - .2byte MOVE_SCREECH, MOVE_FURY_SWIPES, MOVE_SAND_ATTACK, MOVE_BATON_PASS - .byte 30, 50, 95, 70, 70, 220 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 305 @ SPECIES_ID - .string "WELOW$", 11 @ POKE_NICKNAME - .string "JADE$", 8 @ TRAINER_NAME - .byte 18 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80800fff @ FLAGS - .2byte 14 @ RANK - .2byte MOVE_AGILITY, MOVE_AERIAL_ACE, MOVE_WING_ATTACK, MOVE_FLY - .byte 65, 85, 35, 75, 40, 230 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 287 @ SPECIES_ID - .string "YENA$", 11 @ POKE_NICKNAME - .string "FRANCIS$", 8 @ TRAINER_NAME - .byte 44 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80400fff @ FLAGS - .2byte 98 @ RANK - .2byte MOVE_TAUNT, MOVE_THIEF, MOVE_ODOR_SLEUTH, MOVE_TAKE_DOWN - .byte 40, 80, 35, 70, 70, 240 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 292 @ SPECIES_ID - .string "TIFLY$", 11 @ POKE_NICKNAME - .string "ALISHA$", 8 @ TRAINER_NAME - .byte 26 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80200fff @ FLAGS - .2byte 42 @ RANK - .2byte MOVE_MORNING_SUN, MOVE_SILVER_WIND, MOVE_STUN_SPORE, MOVE_SECRET_POWER - .byte 40, 70, 25, 80, 100, 250 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 119 @ SPECIES_ID - .string "KINGSEA$", 11 @ POKE_NICKNAME - .string "SAUL$", 8 @ TRAINER_NAME - .byte 31 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80100fff @ FLAGS - .2byte 118 @ RANK - .2byte MOVE_FLAIL, MOVE_SUPERSONIC, MOVE_HORN_ATTACK, MOVE_FURY_ATTACK - .byte 80, 60, 30, 70, 90, 200 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 340 @ SPECIES_ID - .string "ERUPAM$", 11 @ POKE_NICKNAME - .string "FELICIA$", 8 @ TRAINER_NAME - .byte 47 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80080fff @ FLAGS - .2byte 78 @ RANK - .2byte MOVE_EARTHQUAKE, MOVE_FISSURE, MOVE_OVERHEAT, MOVE_HYPER_BEAM - .byte 100, 80, 20, 50, 65, 210 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 66 @ SPECIES_ID - .string "CHOPAM$", 11 @ POKE_NICKNAME - .string "EMILIO$", 8 @ TRAINER_NAME - .byte 38 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80040fff @ FLAGS - .2byte 66 @ RANK - .2byte MOVE_SEISMIC_TOSS, MOVE_FOCUS_ENERGY, MOVE_KARATE_CHOP, MOVE_SCARY_FACE - .byte 70, 85, 25, 60, 50, 220 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 296 @ SPECIES_ID - .string "LOMBE$", 11 @ POKE_NICKNAME - .string "KARLA$", 8 @ TRAINER_NAME - .byte 10 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80020fff @ FLAGS - .2byte 58 @ RANK - .2byte MOVE_ATTRACT, MOVE_FLASH, MOVE_UPROAR, MOVE_GROWL - .byte 40, 60, 90, 45, 70, 230 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 379 @ SPECIES_ID - .string "VIPES$", 11 @ POKE_NICKNAME - .string "DARRYL$", 8 @ TRAINER_NAME - .byte 33 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80010fff @ FLAGS - .2byte 98 @ RANK - .2byte MOVE_POISON_FANG, MOVE_GLARE, MOVE_WRAP, MOVE_SCREECH - .byte 35, 50, 90, 40, 100, 240 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 313 @ SPECIES_ID - .string "MERAIL$", 11 @ POKE_NICKNAME - .string "SELENA$", 8 @ TRAINER_NAME - .byte 22 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80008fff @ FLAGS - .2byte 26 @ RANK - .2byte MOVE_WATER_PULSE, MOVE_REST, MOVE_WATER_SPOUT, MOVE_SPLASH - .byte 30, 100, 100, 50, 30, 250 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 129 @ SPECIES_ID - .string "KARPAG$", 11 @ POKE_NICKNAME - .string "NOEL$", 8 @ TRAINER_NAME - .byte 35 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80004fff @ FLAGS - .2byte 82 @ RANK - .2byte MOVE_TACKLE, MOVE_SPLASH, MOVE_FLAIL, MOVE_TACKLE - .byte 30, 30, 160, 50, 160, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 348 @ SPECIES_ID - .string "LUNONE$", 11 @ POKE_NICKNAME - .string "LACEY$", 8 @ TRAINER_NAME - .byte 16 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80002fff @ FLAGS - .2byte 42 @ RANK - .2byte MOVE_EXPLOSION, MOVE_FUTURE_SIGHT, MOVE_PSYCHIC, MOVE_CONFUSION - .byte 50, 70, 60, 70, 50, 210 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 310 @ SPECIES_ID - .string "PELIPE$", 11 @ POKE_NICKNAME - .string "CORBIN$", 8 @ TRAINER_NAME - .byte 39 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80001fff @ FLAGS - .2byte 14 @ RANK - .2byte MOVE_MIST, MOVE_HAIL, MOVE_HYPER_BEAM, MOVE_WING_ATTACK - .byte 95, 80, 85, 35, 35, 220 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 130 @ SPECIES_ID - .string "RADOS$", 11 @ POKE_NICKNAME - .string "JUSTINA$", 8 @ TRAINER_NAME - .byte 32 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x84000fff @ FLAGS - .2byte 79 @ RANK - .2byte MOVE_HYPER_BEAM, MOVE_HYDRO_PUMP, MOVE_RAIN_DANCE, MOVE_BITE - .byte 160, 200, 20, 40, 160, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 371 @ SPECIES_ID - .string "LOUDERD$", 11 @ POKE_NICKNAME - .string "RALPH$", 8 @ TRAINER_NAME - .byte 21 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x82000fff @ FLAGS - .2byte 71 @ RANK - .2byte MOVE_HYPER_VOICE, MOVE_STOMP, MOVE_ROAR, MOVE_HOWL - .byte 170, 50, 55, 150, 160, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 316 @ SPECIES_ID - .string "CATTED$", 11 @ POKE_NICKNAME - .string "ROSA$", 8 @ TRAINER_NAME - .byte 8 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x81000fff @ FLAGS - .2byte 59 @ RANK - .2byte MOVE_ATTRACT, MOVE_ASSIST, MOVE_FAINT_ATTACK, MOVE_TAIL_WHIP - .byte 40, 200, 150, 185, 60, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 366 @ SPECIES_ID - .string "SLING$", 11 @ POKE_NICKNAME - .string "KEATON$", 8 @ TRAINER_NAME - .byte 11 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80800fff @ FLAGS - .2byte 115 @ RANK - .2byte MOVE_COVET, MOVE_COUNTER, MOVE_ENCORE, MOVE_SLACK_OFF - .byte 85, 85, 170, 110, 150, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 359 @ SPECIES_ID - .string "TARIA$", 11 @ POKE_NICKNAME - .string "MAYRA$", 8 @ TRAINER_NAME - .byte 18 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80400fff @ FLAGS - .2byte 15 @ RANK - .2byte MOVE_DRAGON_DANCE, MOVE_HYPER_BEAM, MOVE_PERISH_SONG, MOVE_SAFEGUARD - .byte 170, 150, 30, 30, 90, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 393 @ SPECIES_ID - .string "SHEDJA$", 11 @ POKE_NICKNAME - .string "LAMAR$", 8 @ TRAINER_NAME - .byte 15 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80200fff @ FLAGS - .2byte 39 @ RANK - .2byte MOVE_SHOCK_WAVE, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_RETURN - .byte 230, 60, 60, 230, 80, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 45 @ SPECIES_ID - .string "PLUMILE$", 11 @ POKE_NICKNAME - .string "AUBREY$", 8 @ TRAINER_NAME - .byte 26 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80100fff @ FLAGS - .2byte 59 @ RANK - .2byte MOVE_PETAL_DANCE, MOVE_SWEET_SCENT, MOVE_STUN_SPORE, MOVE_FLASH - .byte 35, 200, 150, 130, 40, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 361 @ SPECIES_ID - .string "KULLUSK$", 11 @ POKE_NICKNAME - .string "NIGEL$", 8 @ TRAINER_NAME - .byte 31 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80080fff @ FLAGS - .2byte 115 @ RANK - .2byte MOVE_DISABLE, MOVE_FUTURE_SIGHT, MOVE_NIGHT_SHADE, MOVE_PURSUIT - .byte 25, 35, 230, 150, 160, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 178 @ SPECIES_ID - .string "UTAN$", 11 @ POKE_NICKNAME - .string "CAMILLE$", 8 @ TRAINER_NAME - .byte 47 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80040fff @ FLAGS - .2byte 115 @ RANK - .2byte MOVE_NIGHT_SHADE, MOVE_FUTURE_SIGHT, MOVE_CONFUSE_RAY, MOVE_PSYCHIC - .byte 35, 35, 150, 130, 170, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 331 @ SPECIES_ID - .string "PEDOS$", 11 @ POKE_NICKNAME - .string "DEON$", 8 @ TRAINER_NAME - .byte 38 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80020fff @ FLAGS - .2byte 87 @ RANK - .2byte MOVE_AGILITY, MOVE_SWAGGER, MOVE_TAUNT, MOVE_TAKE_DOWN - .byte 140, 70, 140, 75, 100, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 325 @ SPECIES_ID - .string "LUVIS$", 11 @ POKE_NICKNAME - .string "JANELLE$", 8 @ TRAINER_NAME - .byte 10 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80010fff @ FLAGS - .2byte 83 @ RANK - .2byte MOVE_SWEET_KISS, MOVE_ATTRACT, MOVE_TAKE_DOWN, MOVE_CHARM - .byte 50, 100, 220, 40, 190, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 214 @ SPECIES_ID - .string "HEROSS$", 11 @ POKE_NICKNAME - .string "HEATH$", 8 @ TRAINER_NAME - .byte 33 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80008fff @ FLAGS - .2byte 71 @ RANK - .2byte MOVE_STRENGTH, MOVE_ENDURE, MOVE_REVERSAL, MOVE_ROCK_TOMB - .byte 170, 70, 110, 240, 140, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 101 @ SPECIES_ID - .string "RODLECT$", 11 @ POKE_NICKNAME - .string "SASHA$", 8 @ TRAINER_NAME - .byte 6 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80004fff @ FLAGS - .2byte 15 @ RANK - .2byte MOVE_EXPLOSION, MOVE_LIGHT_SCREEN, MOVE_SWIFT, MOVE_FLASH - .byte 200, 200, 30, 35, 50, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 172 @ SPECIES_ID - .string "CHUPY$", 11 @ POKE_NICKNAME - .string "FRANKIE$", 8 @ TRAINER_NAME - .byte 35 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80002fff @ FLAGS - .2byte 59 @ RANK - .2byte MOVE_SWEET_KISS, MOVE_ATTRACT, MOVE_REST, MOVE_TAIL_WHIP - .byte 25, 150, 180, 115, 120, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - - .2byte 202 @ SPECIES_ID - .string "WOBET$", 11 @ POKE_NICKNAME - .string "HELEN$", 8 @ TRAINER_NAME - .byte 16 @ TRAINER_SPRITE - .2byte 0x0000 @padding - .4byte 0x80001fff @ FLAGS - .2byte 111 @ RANK - .2byte MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_SAFEGUARD, MOVE_DESTINY_BOND - .byte 60, 230, 50, 220, 210, 255 @ STAT_COOL, STAT_BEAUTY, STAT_CUTE, STAT_SMART, STAT_TOUGH, STAT_SHEEN - .4byte 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff @ RESERVED - -@ credit to Valkyrie for helping me properly dump these structs diff --git a/include/constants/contest.h b/include/constants/contest.h new file mode 100644 index 000000000..e960809cc --- /dev/null +++ b/include/constants/contest.h @@ -0,0 +1,44 @@ +#ifndef POKERUBY_CONSTANTS_CONTEST_H +#define POKERUBY_CONSTANTS_CONTEST_H + + +#define CONTEST_AI_CHECK_BAD_MOVE (1 << 0) +#define CONTEST_AI_CHECK_COMBO (1 << 1) +#define CONTEST_AI_CHECK_BORING (1 << 2) +#define CONTEST_AI_CHECK_EXCITEMENT (1 << 3) +#define CONTEST_AI_CHECK_ORDER (1 << 4) +#define CONTEST_AI_CHECK_GOOD_MOVE (1 << 5) +#define CONTEST_AI_ERRATIC (1 << 6) +#define CONTEST_AI_DUMMY_1 (1 << 7) +#define CONTEST_AI_DUMMY_2 (1 << 8) +#define CONTEST_AI_DUMMY_3 (1 << 9) +#define CONTEST_AI_DUMMY_4 (1 << 10) +#define CONTEST_AI_DUMMY_5 (1 << 11) +#define CONTEST_AI_DUMMY_6 (1 << 12) +#define CONTEST_AI_DUMMY_7 (1 << 13) +#define CONTEST_AI_DUMMY_8 (1 << 14) +#define CONTEST_AI_DUMMY_9 (1 << 15) +#define CONTEST_AI_DUMMY_10 (1 << 16) +#define CONTEST_AI_DUMMY_11 (1 << 17) +#define CONTEST_AI_DUMMY_12 (1 << 18) +#define CONTEST_AI_DUMMY_13 (1 << 19) +#define CONTEST_AI_DUMMY_14 (1 << 20) +#define CONTEST_AI_DUMMY_15 (1 << 21) +#define CONTEST_AI_DUMMY_16 (1 << 22) +#define CONTEST_AI_DUMMY_17 (1 << 23) +#define CONTEST_AI_DUMMY_18 (1 << 24) +#define CONTEST_AI_DUMMY_19 (1 << 25) +#define CONTEST_AI_DUMMY_20 (1 << 26) +#define CONTEST_AI_DUMMY_21 (1 << 27) +#define CONTEST_AI_DUMMY_22 (1 << 28) +#define CONTEST_AI_DUMMY_23 (1 << 29) +#define CONTEST_AI_DUMMY_24 (1 << 30) +#define CONTEST_AI_DUMMY_25 (1 << 31) + +// The below scripts are used by every AI contest opponent +// It includes every non-dummy script +#define CONTEST_AI_COMMON (CONTEST_AI_CHECK_BAD_MOVE | CONTEST_AI_CHECK_COMBO | CONTEST_AI_CHECK_BORING | \ + CONTEST_AI_CHECK_EXCITEMENT | CONTEST_AI_CHECK_ORDER | CONTEST_AI_CHECK_GOOD_MOVE | CONTEST_AI_ERRATIC | \ + CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5) + +#endif //POKERUBY_CONSTANTS_CONTEST_H diff --git a/ld_script.txt b/ld_script.txt index a8e74560e..1eb8131a1 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -575,9 +575,8 @@ SECTIONS { src/item.o(.rodata); src/debug/matsuda_debug_menu.o(.rodata); src/contest.o(.rodata); - data/contest.o(.rodata); src/contest_2.o(.rodata); - data/contest_2.o(.rodata); + data/contest.o(.rodata); src/shop.o(.rodata); src/fldeff_escalator.o(.rodata); src/berry.o(.rodata); diff --git a/src/contest_2.c b/src/contest_2.c index 3e617773b..edfff74d0 100644 --- a/src/contest_2.c +++ b/src/contest_2.c @@ -40,7 +40,6 @@ extern u8 gBattlerSpriteIds[]; extern struct Window gWindowTemplate_Contest_MoveDescription; extern struct SpriteTemplate gUnknown_02024E8C; -extern const struct ContestPokemon gContestOpponents[60]; extern const u8 gUnknown_083CA308[][2]; extern const u8 gUnknown_083CA310[][2]; extern const u8 gUnknown_083CA318[][2]; @@ -80,6 +79,8 @@ extern const u8 gUnknownText_LinkStandbyAndWinner[]; extern void (*const gContestEffectFuncs[])(void); extern const s8 gContestExcitementTable[][5]; +#include "data/contest_opponents.h" + void TryPutPlayerLast(void) { if (!(gIsLinkContest & 1)) diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h new file mode 100644 index 000000000..0385c0b64 --- /dev/null +++ b/src/data/contest_opponents.h @@ -0,0 +1,1424 @@ +#include "constants/species.h" +#include "constants/moves.h" +#include "constants/contest.h" + +#define CONTEST_OPPONENT_JIMMY 0 +#define CONTEST_OPPONENT_EDITH 1 +#define CONTEST_OPPONENT_EVAN 2 +#define CONTEST_OPPONENT_KELSEY 3 +#define CONTEST_OPPONENT_MADISON 4 +#define CONTEST_OPPONENT_RAYMOND 5 +#define CONTEST_OPPONENT_GRANT 6 +#define CONTEST_OPPONENT_PAIGE 7 +#define CONTEST_OPPONENT_ALEC 8 +#define CONTEST_OPPONENT_SYDNEY 9 +#define CONTEST_OPPONENT_MORRIS 10 +#define CONTEST_OPPONENT_MARIAH 11 +#define CONTEST_OPPONENT_RUSSELL 12 +#define CONTEST_OPPONENT_MELANIE 13 +#define CONTEST_OPPONENT_CHANCE 14 +#define CONTEST_OPPONENT_KARINA 15 +#define CONTEST_OPPONENT_BOBBY 16 +#define CONTEST_OPPONENT_CLAIRE 17 +#define CONTEST_OPPONENT_WILLIE 18 +#define CONTEST_OPPONENT_CASSIDY 19 +#define CONTEST_OPPONENT_MORGAN 20 +#define CONTEST_OPPONENT_SUMMER 21 +#define CONTEST_OPPONENT_MILES 22 +#define CONTEST_OPPONENT_AUDREY 23 +#define CONTEST_OPPONENT_AVERY 24 +#define CONTEST_OPPONENT_ARIANA 25 +#define CONTEST_OPPONENT_ASHTON 26 +#define CONTEST_OPPONENT_SANDRA 27 +#define CONTEST_OPPONENT_CARSON 28 +#define CONTEST_OPPONENT_KATRINA 29 +#define CONTEST_OPPONENT_RONNIE 30 +#define CONTEST_OPPONENT_CLAUDIA 31 +#define CONTEST_OPPONENT_ELIAS 32 +#define CONTEST_OPPONENT_JADE 33 +#define CONTEST_OPPONENT_FRANCIS 34 +#define CONTEST_OPPONENT_ALISHA 35 +#define CONTEST_OPPONENT_SAUL 36 +#define CONTEST_OPPONENT_FELICIA 37 +#define CONTEST_OPPONENT_EMILIO 38 +#define CONTEST_OPPONENT_KARLA 39 +#define CONTEST_OPPONENT_DARRYL 40 +#define CONTEST_OPPONENT_SELENA 41 +#define CONTEST_OPPONENT_NOEL 42 +#define CONTEST_OPPONENT_LACEY 43 +#define CONTEST_OPPONENT_CORBIN 44 +#define CONTEST_OPPONENT_JUSTINA 45 +#define CONTEST_OPPONENT_RALPH 46 +#define CONTEST_OPPONENT_ROSA 47 +#define CONTEST_OPPONENT_KEATON 48 +#define CONTEST_OPPONENT_MAYRA 49 +#define CONTEST_OPPONENT_LAMAR 50 +#define CONTEST_OPPONENT_AUBREY 51 +#define CONTEST_OPPONENT_NIGEL 52 +#define CONTEST_OPPONENT_CAMILLE 53 +#define CONTEST_OPPONENT_DEON 54 +#define CONTEST_OPPONENT_JANELLE 55 +#define CONTEST_OPPONENT_HEATH 56 +#define CONTEST_OPPONENT_SASHA 57 +#define CONTEST_OPPONENT_FRANKIE 58 +#define CONTEST_OPPONENT_HELEN 59 + +// All contest opponents have a common set of AI flags (which contains all of the actually +// useful AI scripts, as well as some dummys) and a random combination of 2-3 dummy flags. +// Seems that like the battle AI they had more plans for this than what ended up in the final game +#define CONTEST_AI_SET_1 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_2 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_3 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23) +#define CONTEST_AI_SET_4 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_17 | CONTEST_AI_DUMMY_23) +#define CONTEST_AI_SET_5 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_16 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_6 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_15 | CONTEST_AI_DUMMY_22) +#define CONTEST_AI_SET_7 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_14 | CONTEST_AI_DUMMY_23) +#define CONTEST_AI_SET_8 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_13 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_9 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_12 | CONTEST_AI_DUMMY_24) +#define CONTEST_AI_SET_A (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_11 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_B (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_10 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_C (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_9 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_D (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_8 | CONTEST_AI_DUMMY_22 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_E (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_7 | CONTEST_AI_DUMMY_24) +#define CONTEST_AI_SET_F (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_6 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_10 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_23) +#define CONTEST_AI_SET_11 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_12 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_17 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_13 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_16 | CONTEST_AI_DUMMY_22) +#define CONTEST_AI_SET_14 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_15 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_15 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_14 | CONTEST_AI_DUMMY_22) +#define CONTEST_AI_SET_16 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_13 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_17 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_12 | CONTEST_AI_DUMMY_23 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_18 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_10 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_19 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_9 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_1A (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_8 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_1B (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_7 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_1C (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_6 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_1D (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_1E (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_15 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_1F (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_14 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_20 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_12 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_21 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_7 | CONTEST_AI_DUMMY_25) + +const struct ContestPokemon gContestOpponents[] = { + [CONTEST_OPPONENT_JIMMY] = { + .species = SPECIES_POOCHYENA, + .nickname = _("POOCHY"), + .trainerName = _("JIMMY"), + .trainerGfxId = OBJ_EVENT_GFX_BOY_1, + .flags = CONTEST_AI_SET_1, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_ROAR, MOVE_BITE, MOVE_TAKE_DOWN, MOVE_HOWL }, + .cool = 10, + .beauty = 4, + .cute = 10, + .smart = 3, + .tough = 4, + .sheen = 50, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_EDITH] = { + .species = SPECIES_ZIGZAGOON, + .nickname = _("ZIGOON"), + .trainerName = _("EDITH"), + .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, + .flags = CONTEST_AI_SET_2, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = { MOVE_REST, MOVE_TAIL_WHIP, MOVE_TACKLE, MOVE_COVET }, + .cool = 10, + .beauty = 10, + .cute = 6, + .smart = 1, + .tough = 2, + .sheen = 60, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_EVAN] = { + .species = SPECIES_DUSTOX, + .nickname = _("DUSTER"), + .trainerName = _("EVAN"), + .trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY_2, + .flags = CONTEST_AI_SET_3, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = { MOVE_SILVER_WIND, MOVE_MOONLIGHT, MOVE_LIGHT_SCREEN, MOVE_GUST }, + .cool = 2, + .beauty = 10, + .cute = 10, + .smart = 12, + .tough = 4, + .sheen = 70, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_KELSEY] = { + .species = SPECIES_SEEDOT, + .nickname = _("DOTS"), + .trainerName = _("KELSEY"), + .trainerGfxId = OBJ_EVENT_GFX_WOMAN_1, + .flags = CONTEST_AI_SET_4, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = { MOVE_BIDE, MOVE_SYNTHESIS, MOVE_BULLET_SEED, MOVE_GROWTH }, + .cool = 3, + .beauty = 3, + .cute = 5, + .smart = 2, + .tough = 7, + .sheen = 80, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_MADISON] = { + .species = SPECIES_TAILLOW, + .nickname = _("TATAY"), + .trainerName = _("MADISON"), + .trainerGfxId = OBJ_EVENT_GFX_WOMAN_2, + .flags = CONTEST_AI_SET_5, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = { MOVE_WING_ATTACK, MOVE_AGILITY, MOVE_AERIAL_ACE, MOVE_GROWL }, + .cool = 1, + .beauty = 3, + .cute = 3, + .smart = 5, + .tough = 4, + .sheen = 90, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_RAYMOND] = { + .species = SPECIES_NINCADA, + .nickname = _("NINDA"), + .trainerName = _("RAYMOND"), + .trainerGfxId = OBJ_EVENT_GFX_BLACK_BELT, + .flags = CONTEST_AI_SET_6, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_LEECH_LIFE, MOVE_FALSE_SWIPE, MOVE_FURY_SWIPES, MOVE_MIND_READER }, + .cool = 5, + .beauty = 2, + .cute = 10, + .smart = 7, + .tough = 8, + .sheen = 100, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_GRANT] = { + .species = SPECIES_SHROOMISH, + .nickname = _("SMISH"), + .trainerName = _("GRANT"), + .trainerGfxId = OBJ_EVENT_GFX_YOUNGSTER, + .flags = CONTEST_AI_SET_7, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_STUN_SPORE, MOVE_LEECH_SEED, MOVE_MEGA_DRAIN, MOVE_ATTRACT }, + .cool = 3, + .beauty = 3, + .cute = 10, + .smart = 2, + .tough = 2, + .sheen = 50, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_PAIGE] = { + .species = SPECIES_WINGULL, + .nickname = _("GULWEE"), + .trainerName = _("PAIGE"), + .trainerGfxId = OBJ_EVENT_GFX_WOMAN_5, + .flags = CONTEST_AI_SET_8, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = { MOVE_MIST, MOVE_WATER_GUN, MOVE_GROWL, MOVE_PURSUIT }, + .cool = 3, + .beauty = 5, + .cute = 1, + .smart = 10, + .tough = 10, + .sheen = 60, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_ALEC] = { + .species = SPECIES_SLAKOTH, + .nickname = _("SLOKTH"), + .trainerName = _("ALEC"), + .trainerGfxId = OBJ_EVENT_GFX_CAMPER, + .flags = CONTEST_AI_SET_9, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_STRENGTH, MOVE_COUNTER, MOVE_YAWN, MOVE_ENCORE }, + .cool = 10, + .beauty = 4, + .cute = 4, + .smart = 5, + .tough = 18, + .sheen = 70, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_SYDNEY] = { + .species = SPECIES_WHISMUR, + .nickname = _("WHIRIS"), + .trainerName = _("SYDNEY"), + .trainerGfxId = OBJ_EVENT_GFX_LASS, + .flags = CONTEST_AI_SET_A, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_ASTONISH, MOVE_SCREECH, MOVE_UPROAR, MOVE_HYPER_VOICE }, + .cool = 2, + .beauty = 2, + .cute = 7, + .smart = 2, + .tough = 7, + .sheen = 80, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_MORRIS] = { + .species = SPECIES_MAKUHITA, + .nickname = _("MAHITA"), + .trainerName = _("MORRIS"), + .trainerGfxId = OBJ_EVENT_GFX_SCHOOL_KID_M, + .flags = CONTEST_AI_SET_B, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_SEISMIC_TOSS, MOVE_VITAL_THROW, MOVE_TACKLE, MOVE_REVERSAL }, + .cool = 9, + .beauty = 1, + .cute = 1, + .smart = 8, + .tough = 1, + .sheen = 90, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_MARIAH] = { + .species = SPECIES_ARON, + .nickname = _("RONAR"), + .trainerName = _("MARIAH"), + .trainerGfxId = OBJ_EVENT_GFX_GIRL_2, + .flags = CONTEST_AI_SET_C, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_METAL_CLAW, MOVE_IRON_DEFENSE, MOVE_HEADBUTT, MOVE_TAKE_DOWN }, + .cool = 5, + .beauty = 10, + .cute = 2, + .smart = 10, + .tough = 2, + .sheen = 100, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_RUSSELL] = { + .species = SPECIES_ZUBAT, + .nickname = _("ZUTZU"), + .trainerName = _("RUSSELL"), + .trainerGfxId = OBJ_EVENT_GFX_MAN_4, + .flags = CONTEST_AI_SET_D, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_HAZE, MOVE_MEAN_LOOK, MOVE_CONFUSE_RAY, MOVE_LEECH_LIFE }, + .cool = 4, + .beauty = 2, + .cute = 2, + .smart = 2, + .tough = 10, + .sheen = 50, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_MELANIE] = { + .species = SPECIES_GULPIN, + .nickname = _("GULIN"), + .trainerName = _("MELANIE"), + .trainerGfxId = OBJ_EVENT_GFX_LITTLE_GIRL_1, + .flags = CONTEST_AI_SET_E, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = { MOVE_SLUDGE, MOVE_AMNESIA, MOVE_TOXIC, MOVE_YAWN }, + .cool = 1, + .beauty = 10, + .cute = 1, + .smart = 10, + .tough = 5, + .sheen = 60, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_CHANCE] = { + .species = SPECIES_ELECTRIKE, + .nickname = _("RIKELEC"), + .trainerName = _("CHANCE"), + .trainerGfxId = OBJ_EVENT_GFX_BOY_4, + .flags = CONTEST_AI_SET_F, + .whichRank = CONTEST_RANK_NORMAL, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = { MOVE_SPARK, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_ROAR }, + .cool = 20, + .beauty = 10, + .cute = 1, + .smart = 1, + .tough = 1, + .sheen = 70, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_KARINA] = { + .species = SPECIES_ROSELIA, + .nickname = _("RELIA"), + .trainerName = _("KARINA"), + .trainerGfxId = OBJ_EVENT_GFX_PICNICKER, + .flags = CONTEST_AI_SET_10, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_PETAL_DANCE, MOVE_MAGICAL_LEAF, MOVE_GRASS_WHISTLE, MOVE_INGRAIN }, + .cool = 50, + .beauty = 15, + .cute = 75, + .smart = 10, + .tough = 20, + .sheen = 100, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_BOBBY] = { + .species = SPECIES_DODUO, + .nickname = _("DUODO"), + .trainerName = _("BOBBY"), + .trainerGfxId = OBJ_EVENT_GFX_RUNNING_TRIATHLETE_M, + .flags = CONTEST_AI_SET_2, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = { MOVE_PECK, MOVE_FURY_ATTACK, MOVE_RETURN, MOVE_GROWL }, + .cool = 15, + .beauty = 21, + .cute = 15, + .smart = 85, + .tough = 35, + .sheen = 110, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_CLAIRE] = { + .species = SPECIES_TRAPINCH, + .nickname = _("PINCHIN"), + .trainerName = _("CLAIRE"), + .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, + .flags = CONTEST_AI_SET_11, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = { MOVE_BITE, MOVE_SAND_ATTACK, MOVE_DIG, MOVE_FAINT_ATTACK }, + .cool = 75, + .beauty = 25, + .cute = 25, + .smart = 10, + .tough = 25, + .sheen = 120, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_WILLIE] = { + .species = SPECIES_CACNEA, + .nickname = _("NACAC"), + .trainerName = _("WILLIE"), + .trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY_2, + .flags = CONTEST_AI_SET_12, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_SPIKES, MOVE_LEER, MOVE_POISON_STING, MOVE_SAND_ATTACK }, + .cool = 10, + .beauty = 30, + .cute = 25, + .smart = 65, + .tough = 25, + .sheen = 130, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_CASSIDY] = { + .species = SPECIES_SANDSHREW, + .nickname = _("SHRAND"), + .trainerName = _("CASSIDY"), + .trainerGfxId = OBJ_EVENT_GFX_WOMAN_2, + .flags = CONTEST_AI_SET_13, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_SLASH, MOVE_DEFENSE_CURL, MOVE_SWIFT, MOVE_FURY_SWIPES }, + .cool = 30, + .beauty = 90, + .cute = 30, + .smart = 10, + .tough = 100, + .sheen = 140, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_MORGAN] = { + .species = SPECIES_BALTOY, + .nickname = _("TOYBAL"), + .trainerName = _("MORGAN"), + .trainerGfxId = OBJ_EVENT_GFX_BLACK_BELT, + .flags = CONTEST_AI_SET_14, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_SELF_DESTRUCT, MOVE_ROCK_TOMB, MOVE_PSYBEAM, MOVE_CONFUSION }, + .cool = 50, + .beauty = 40, + .cute = 10, + .smart = 35, + .tough = 35, + .sheen = 150, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_SUMMER] = { + .species = SPECIES_NUMEL, + .nickname = _("LENUM"), + .trainerName = _("SUMMER"), + .trainerGfxId = OBJ_EVENT_GFX_WOMAN_5, + .flags = CONTEST_AI_SET_15, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_MAGNITUDE, MOVE_EARTHQUAKE, MOVE_SUNNY_DAY, MOVE_FLAMETHROWER }, + .cool = 40, + .beauty = 5, + .cute = 40, + .smart = 40, + .tough = 40, + .sheen = 100, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_MILES] = { + .species = SPECIES_SPINDA, + .nickname = _("SPININ"), + .trainerName = _("MILES"), + .trainerGfxId = OBJ_EVENT_GFX_CAMPER, + .flags = CONTEST_AI_SET_16, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_TEETER_DANCE, MOVE_PSYCH_UP, MOVE_HYPNOSIS, MOVE_UPROAR }, + .cool = 25, + .beauty = 75, + .cute = 25, + .smart = 10, + .tough = 25, + .sheen = 110, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_AUDREY] = { + .species = SPECIES_SWABLU, + .nickname = _("SWABY"), + .trainerName = _("AUDREY"), + .trainerGfxId = OBJ_EVENT_GFX_LASS, + .flags = CONTEST_AI_SET_17, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_MIRROR_MOVE, MOVE_PERISH_SONG, MOVE_SAFEGUARD, MOVE_MIST }, + .cool = 30, + .beauty = 30, + .cute = 40, + .smart = 30, + .tough = 25, + .sheen = 120, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_AVERY] = { + .species = SPECIES_LINOONE, + .nickname = _("NOONE"), + .trainerName = _("AVERY"), + .trainerGfxId = OBJ_EVENT_GFX_SCHOOL_KID_M, + .flags = CONTEST_AI_SET_A, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = { MOVE_GROWL, MOVE_COVET, MOVE_SAND_ATTACK, MOVE_REST }, + .cool = 40, + .beauty = 40, + .cute = 30, + .smart = 10, + .tough = 30, + .sheen = 130, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_ARIANA] = { + .species = SPECIES_KECLEON, + .nickname = _("KECON"), + .trainerName = _("ARIANA"), + .trainerGfxId = OBJ_EVENT_GFX_GIRL_2, + .flags = CONTEST_AI_SET_18, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = { MOVE_THIEF, MOVE_SCREECH, MOVE_ANCIENT_POWER, MOVE_BIND }, + .cool = 10, + .beauty = 10, + .cute = 40, + .smart = 75, + .tough = 35, + .sheen = 140, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_ASHTON] = { + .species = SPECIES_GOLDEEN, + .nickname = _("GOLDEN"), + .trainerName = _("ASHTON"), + .trainerGfxId = OBJ_EVENT_GFX_MAN_4, + .flags = CONTEST_AI_SET_19, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = { MOVE_HORN_ATTACK, MOVE_FURY_ATTACK, MOVE_HORN_DRILL, MOVE_TAIL_WHIP }, + .cool = 70, + .beauty = 30, + .cute = 5, + .smart = 30, + .tough = 25, + .sheen = 150, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_SANDRA] = { + .species = SPECIES_BARBOACH, + .nickname = _("BOBOACH"), + .trainerName = _("SANDRA"), + .trainerGfxId = OBJ_EVENT_GFX_LITTLE_GIRL_1, + .flags = CONTEST_AI_SET_1A, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = { MOVE_MUD_SPORT, MOVE_WATER_SPORT, MOVE_EARTHQUAKE, MOVE_FUTURE_SIGHT }, + .cool = 45, + .beauty = 45, + .cute = 60, + .smart = 25, + .tough = 15, + .sheen = 100, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_CARSON] = { + .species = SPECIES_SKARMORY, + .nickname = _("CORPY"), + .trainerName = _("CARSON"), + .trainerGfxId = OBJ_EVENT_GFX_YOUNGSTER, + .flags = CONTEST_AI_SET_1B, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_SWIFT, MOVE_DOUBLE_TEAM, MOVE_AGILITY, MOVE_CUT }, + .cool = 40, + .beauty = 30, + .cute = 25, + .smart = 60, + .tough = 20, + .sheen = 110, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_KATRINA] = { + .species = SPECIES_LOTAD, + .nickname = _("TADO"), + .trainerName = _("KATRINA"), + .trainerGfxId = OBJ_EVENT_GFX_WOMAN_1, + .flags = CONTEST_AI_SET_1C, + .whichRank = CONTEST_RANK_SUPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_ASTONISH, MOVE_GROWL, MOVE_RAIN_DANCE, MOVE_WATER_PULSE }, + .cool = 15, + .beauty = 15, + .cute = 30, + .smart = 15, + .tough = 75, + .sheen = 120, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_RONNIE] = { + .species = SPECIES_LAIRON, + .nickname = _("LAIRN"), + .trainerName = _("RONNIE"), + .trainerGfxId = OBJ_EVENT_GFX_HIKER, + .flags = CONTEST_AI_SET_1D, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = { MOVE_METAL_SOUND, MOVE_METAL_CLAW, MOVE_HARDEN, MOVE_TAKE_DOWN }, + .cool = 30, + .beauty = 50, + .cute = 35, + .smart = 100, + .tough = 90, + .sheen = 200, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_CLAUDIA] = { + .species = SPECIES_NUZLEAF, + .nickname = _("NUZLE"), + .trainerName = _("CLAUDIA"), + .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, + .flags = CONTEST_AI_SET_2, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = { MOVE_GROWTH, MOVE_RAZOR_WIND, MOVE_EXPLOSION, MOVE_EXTRASENSORY }, + .cool = 75, + .beauty = 75, + .cute = 65, + .smart = 35, + .tough = 70, + .sheen = 210, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_ELIAS] = { + .species = SPECIES_NINJASK, + .nickname = _("NINAS"), + .trainerName = _("ELIAS"), + .trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY_2, + .flags = CONTEST_AI_SET_11, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = { MOVE_SCREECH, MOVE_FURY_SWIPES, MOVE_SAND_ATTACK, MOVE_BATON_PASS }, + .cool = 30, + .beauty = 50, + .cute = 95, + .smart = 70, + .tough = 70, + .sheen = 220, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_JADE] = { + .species = SPECIES_SWELLOW, + .nickname = _("WELOW"), + .trainerName = _("JADE"), + .trainerGfxId = OBJ_EVENT_GFX_WOMAN_2, + .flags = CONTEST_AI_SET_12, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = { MOVE_AGILITY, MOVE_AERIAL_ACE, MOVE_WING_ATTACK, MOVE_FLY }, + .cool = 65, + .beauty = 85, + .cute = 35, + .smart = 75, + .tough = 40, + .sheen = 230, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_FRANCIS] = { + .species = SPECIES_MIGHTYENA, + .nickname = _("YENA"), + .trainerName = _("FRANCIS"), + .trainerGfxId = OBJ_EVENT_GFX_BLACK_BELT, + .flags = CONTEST_AI_SET_5, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = { MOVE_TAUNT, MOVE_THIEF, MOVE_ODOR_SLEUTH, MOVE_TAKE_DOWN }, + .cool = 40, + .beauty = 80, + .cute = 35, + .smart = 70, + .tough = 70, + .sheen = 240, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_ALISHA] = { + .species = SPECIES_BEAUTIFLY, + .nickname = _("TIFLY"), + .trainerName = _("ALISHA"), + .trainerGfxId = OBJ_EVENT_GFX_WOMAN_5, + .flags = CONTEST_AI_SET_1E, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_MORNING_SUN, MOVE_SILVER_WIND, MOVE_STUN_SPORE, MOVE_SECRET_POWER }, + .cool = 40, + .beauty = 70, + .cute = 25, + .smart = 80, + .tough = 100, + .sheen = 250, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_SAUL] = { + .species = SPECIES_SEAKING, + .nickname = _("KINGSEA"), + .trainerName = _("SAUL"), + .trainerGfxId = OBJ_EVENT_GFX_CAMPER, + .flags = CONTEST_AI_SET_1F, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = { MOVE_FLAIL, MOVE_SUPERSONIC, MOVE_HORN_ATTACK, MOVE_FURY_ATTACK }, + .cool = 80, + .beauty = 60, + .cute = 30, + .smart = 70, + .tough = 90, + .sheen = 200, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_FELICIA] = { + .species = SPECIES_CAMERUPT, + .nickname = _("ERUPAM"), + .trainerName = _("FELICIA"), + .trainerGfxId = OBJ_EVENT_GFX_LASS, + .flags = CONTEST_AI_SET_16, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_EARTHQUAKE, MOVE_FISSURE, MOVE_OVERHEAT, MOVE_HYPER_BEAM }, + .cool = 100, + .beauty = 80, + .cute = 20, + .smart = 50, + .tough = 65, + .sheen = 210, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_EMILIO] = { + .species = SPECIES_MACHOP, + .nickname = _("CHOPAM"), + .trainerName = _("EMILIO"), + .trainerGfxId = OBJ_EVENT_GFX_SCHOOL_KID_M, + .flags = CONTEST_AI_SET_20, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_SEISMIC_TOSS, MOVE_FOCUS_ENERGY, MOVE_KARATE_CHOP, MOVE_SCARY_FACE }, + .cool = 70, + .beauty = 85, + .cute = 25, + .smart = 60, + .tough = 50, + .sheen = 220, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_KARLA] = { + .species = SPECIES_LOMBRE, + .nickname = _("LOMBE"), + .trainerName = _("KARLA"), + .trainerGfxId = OBJ_EVENT_GFX_GIRL_2, + .flags = CONTEST_AI_SET_A, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_ATTRACT, MOVE_FLASH, MOVE_UPROAR, MOVE_GROWL }, + .cool = 40, + .beauty = 60, + .cute = 90, + .smart = 45, + .tough = 70, + .sheen = 230, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_DARRYL] = { + .species = SPECIES_SEVIPER, + .nickname = _("VIPES"), + .trainerName = _("DARRYL"), + .trainerGfxId = OBJ_EVENT_GFX_MAN_4, + .flags = CONTEST_AI_SET_18, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = { MOVE_POISON_FANG, MOVE_GLARE, MOVE_WRAP, MOVE_SCREECH }, + .cool = 35, + .beauty = 50, + .cute = 90, + .smart = 40, + .tough = 100, + .sheen = 240, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_SELENA] = { + .species = SPECIES_WAILMER, + .nickname = _("MERAIL"), + .trainerName = _("SELENA"), + .trainerGfxId = OBJ_EVENT_GFX_OLD_WOMAN_1, + .flags = CONTEST_AI_SET_19, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = { MOVE_WATER_PULSE, MOVE_REST, MOVE_WATER_SPOUT, MOVE_SPLASH }, + .cool = 30, + .beauty = 100, + .cute = 100, + .smart = 50, + .tough = 30, + .sheen = 250, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_NOEL] = { + .species = SPECIES_MAGIKARP, + .nickname = _("KARPAG"), + .trainerName = _("NOEL"), + .trainerGfxId = OBJ_EVENT_GFX_YOUNGSTER, + .flags = CONTEST_AI_SET_1A, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_TACKLE, MOVE_SPLASH, MOVE_FLAIL, MOVE_TACKLE }, + .cool = 30, + .beauty = 30, + .cute = 160, + .smart = 50, + .tough = 160, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_LACEY] = { + .species = SPECIES_LUNATONE, + .nickname = _("LUNONE"), + .trainerName = _("LACEY"), + .trainerGfxId = OBJ_EVENT_GFX_WOMAN_1, + .flags = CONTEST_AI_SET_21, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_EXPLOSION, MOVE_FUTURE_SIGHT, MOVE_PSYCHIC, MOVE_CONFUSION }, + .cool = 50, + .beauty = 70, + .cute = 60, + .smart = 70, + .tough = 50, + .sheen = 210, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_CORBIN] = { + .species = SPECIES_PELIPPER, + .nickname = _("PELIPE"), + .trainerName = _("CORBIN"), + .trainerGfxId = OBJ_EVENT_GFX_MANIAC, + .flags = CONTEST_AI_SET_F, + .whichRank = CONTEST_RANK_HYPER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = { MOVE_MIST, MOVE_HAIL, MOVE_HYPER_BEAM, MOVE_WING_ATTACK }, + .cool = 95, + .beauty = 80, + .cute = 85, + .smart = 35, + .tough = 35, + .sheen = 220, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_JUSTINA] = { + .species = SPECIES_GYARADOS, + .nickname = _("RADOS"), + .trainerName = _("JUSTINA"), + .trainerGfxId = OBJ_EVENT_GFX_PICNICKER, + .flags = CONTEST_AI_SET_1D, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_HYPER_BEAM, MOVE_HYDRO_PUMP, MOVE_RAIN_DANCE, MOVE_BITE }, + .cool = 160, + .beauty = 200, + .cute = 20, + .smart = 40, + .tough = 160, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_RALPH] = { + .species = SPECIES_LOUDRED, + .nickname = _("LOUDERD"), + .trainerName = _("RALPH"), + .trainerGfxId = OBJ_EVENT_GFX_OLD_MAN_1, + .flags = CONTEST_AI_SET_2, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_HYPER_VOICE, MOVE_STOMP, MOVE_ROAR, MOVE_HOWL }, + .cool = 170, + .beauty = 50, + .cute = 55, + .smart = 150, + .tough = 160, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_ROSA] = { + .species = SPECIES_DELCATTY, + .nickname = _("CATTED"), + .trainerName = _("ROSA"), + .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, + .flags = CONTEST_AI_SET_11, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_ATTRACT, MOVE_ASSIST, MOVE_FAINT_ATTACK, MOVE_TAIL_WHIP }, + .cool = 40, + .beauty = 200, + .cute = 150, + .smart = 185, + .tough = 60, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_KEATON] = { + .species = SPECIES_SLAKING, + .nickname = _("SLING"), + .trainerName = _("KEATON"), + .trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY_2, + .flags = CONTEST_AI_SET_12, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = { MOVE_COVET, MOVE_COUNTER, MOVE_ENCORE, MOVE_SLACK_OFF }, + .cool = 85, + .beauty = 85, + .cute = 170, + .smart = 110, + .tough = 150, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_MAYRA] = { + .species = SPECIES_ALTARIA, + .nickname = _("TARIA"), + .trainerName = _("MAYRA"), + .trainerGfxId = OBJ_EVENT_GFX_WOMAN_2, + .flags = CONTEST_AI_SET_5, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = { MOVE_DRAGON_DANCE, MOVE_HYPER_BEAM, MOVE_PERISH_SONG, MOVE_SAFEGUARD }, + .cool = 170, + .beauty = 150, + .cute = 30, + .smart = 30, + .tough = 90, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_LAMAR] = { + .species = SPECIES_KIRLIA, + .nickname = _("SHEDJA"), + .trainerName = _("LAMAR"), + .trainerGfxId = OBJ_EVENT_GFX_BOY_4, + .flags = CONTEST_AI_SET_1E, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_SHOCK_WAVE, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP, MOVE_RETURN }, + .cool = 230, + .beauty = 60, + .cute = 60, + .smart = 230, + .tough = 80, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_AUBREY] = { + .species = SPECIES_VILEPLUME, + .nickname = _("PLUMILE"), + .trainerName = _("AUBREY"), + .trainerGfxId = OBJ_EVENT_GFX_WOMAN_5, + .flags = CONTEST_AI_SET_1F, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_PETAL_DANCE, MOVE_SWEET_SCENT, MOVE_STUN_SPORE, MOVE_FLASH }, + .cool = 35, + .beauty = 200, + .cute = 150, + .smart = 130, + .tough = 40, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_NIGEL] = { + .species = SPECIES_DUSKULL, + .nickname = _("KULLUSK"), + .trainerName = _("NIGEL"), + .trainerGfxId = OBJ_EVENT_GFX_CAMPER, + .flags = CONTEST_AI_SET_16, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = { MOVE_DISABLE, MOVE_FUTURE_SIGHT, MOVE_NIGHT_SHADE, MOVE_PURSUIT }, + .cool = 25, + .beauty = 35, + .cute = 230, + .smart = 150, + .tough = 160, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_CAMILLE] = { + .species = SPECIES_XATU, + .nickname = _("UTAN"), + .trainerName = _("CAMILLE"), + .trainerGfxId = OBJ_EVENT_GFX_LASS, + .flags = CONTEST_AI_SET_20, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = { MOVE_NIGHT_SHADE, MOVE_FUTURE_SIGHT, MOVE_CONFUSE_RAY, MOVE_PSYCHIC }, + .cool = 35, + .beauty = 35, + .cute = 150, + .smart = 130, + .tough = 170, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_DEON] = { + .species = SPECIES_SHARPEDO, + .nickname = _("PEDOS"), + .trainerName = _("DEON"), + .trainerGfxId = OBJ_EVENT_GFX_SCHOOL_KID_M, + .flags = CONTEST_AI_SET_A, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_AGILITY, MOVE_SWAGGER, MOVE_TAUNT, MOVE_TAKE_DOWN }, + .cool = 140, + .beauty = 70, + .cute = 140, + .smart = 75, + .tough = 100, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_JANELLE] = { + .species = SPECIES_LUVDISC, + .nickname = _("LUVIS"), + .trainerName = _("JANELLE"), + .trainerGfxId = OBJ_EVENT_GFX_GIRL_2, + .flags = CONTEST_AI_SET_18, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_SWEET_KISS, MOVE_ATTRACT, MOVE_TAKE_DOWN, MOVE_CHARM }, + .cool = 50, + .beauty = 100, + .cute = 220, + .smart = 40, + .tough = 190, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_HEATH] = { + .species = SPECIES_HERACROSS, + .nickname = _("HEROSS"), + .trainerName = _("HEATH"), + .trainerGfxId = OBJ_EVENT_GFX_MAN_4, + .flags = CONTEST_AI_SET_19, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = { MOVE_STRENGTH, MOVE_ENDURE, MOVE_REVERSAL, MOVE_ROCK_TOMB }, + .cool = 170, + .beauty = 70, + .cute = 110, + .smart = 240, + .tough = 140, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_SASHA] = { + .species = SPECIES_ELECTRODE, + .nickname = _("RODLECT"), + .trainerName = _("SASHA"), + .trainerGfxId = OBJ_EVENT_GFX_LITTLE_GIRL_1, + .flags = CONTEST_AI_SET_1A, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = { MOVE_EXPLOSION, MOVE_LIGHT_SCREEN, MOVE_SWIFT, MOVE_FLASH }, + .cool = 200, + .beauty = 200, + .cute = 30, + .smart = 35, + .tough = 50, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_FRANKIE] = { + .species = SPECIES_PICHU, + .nickname = _("CHUPY"), + .trainerName = _("FRANKIE"), + .trainerGfxId = OBJ_EVENT_GFX_YOUNGSTER, + .flags = CONTEST_AI_SET_21, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = { MOVE_SWEET_KISS, MOVE_ATTRACT, MOVE_REST, MOVE_TAIL_WHIP }, + .cool = 25, + .beauty = 150, + .cute = 180, + .smart = 115, + .tough = 120, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, + [CONTEST_OPPONENT_HELEN] = { + .species = SPECIES_WOBBUFFET, + .nickname = _("WOBET"), + .trainerName = _("HELEN"), + .trainerGfxId = OBJ_EVENT_GFX_WOMAN_1, + .flags = CONTEST_AI_SET_F, + .whichRank = CONTEST_RANK_MASTER, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = { MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_SAFEGUARD, MOVE_DESTINY_BOND }, + .cool = 60, + .beauty = 230, + .cute = 50, + .smart = 220, + .tough = 210, + .sheen = 255, + .personality = 0, + .otId = 0xFFFF + }, +}; |