diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-21 15:52:57 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-21 15:52:57 -0400 |
commit | bf79edbd8b5b398921d4094abfe44d16c4a182a1 (patch) | |
tree | 5ad51360de30eda07c4e1df0bed5e74076bceadb | |
parent | 1a63f6607e187a58973cff05eb150fd66f77b9b9 (diff) | |
parent | 18f6c5c9d460c019453227abe033d84f1feb6310 (diff) |
Merge branch 'master' into watanabe
-rw-r--r-- | CONTRIBUTING.md | 6 | ||||
-rw-r--r-- | data/battle_moves.s | 3913 | ||||
-rw-r--r-- | include/battle.h | 4 | ||||
-rw-r--r-- | include/macros/event.inc | 4 | ||||
-rw-r--r-- | include/pokemon.h | 6 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/battle/battle_4.c | 16 | ||||
-rw-r--r-- | src/battle/battle_interface.c | 4 | ||||
-rw-r--r-- | src/battle/battle_util.c | 24 | ||||
-rw-r--r-- | src/battle/calculate_base_damage.c | 6 | ||||
-rw-r--r-- | src/data/battle_moves.c | 4268 | ||||
-rw-r--r-- | src/pokemon_3.c | 8 |
12 files changed, 4307 insertions, 3954 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 15ff9dfb3..de76ef57f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,7 @@ The rest of the `.s` files in `asm/` are fair game. The basic decompilation process is: * Choose a file in `asm/`, i.e. `asm/x.s`. Create a C file called `src/x.c`. * Translate the first function in `asm/x.s` to C in `src/x.c`. -* `make compare`, and tweak the function until it matches. +* `make`, and tweak the function until it matches. * Clean up the code and comment. * Repeat for each function until `asm/x.s` is empty. @@ -260,7 +260,7 @@ But what about `sub_8123244`? It's still not obvious what that function does. We ## 5. Build ```sh -make compare +make ``` ```gcc src/cable_car.c: In function `sub_81231EC': @@ -308,7 +308,7 @@ void sub_81231EC(u8 taskId) { Build again, and we get: ```sh -make compare +make ``` ```sha1sum pokeruby.gba: OK diff --git a/data/battle_moves.s b/data/battle_moves.s deleted file mode 100644 index b56457a96..000000000 --- a/data/battle_moves.s +++ /dev/null @@ -1,3913 +0,0 @@ -#include "constants/battle_constants.h" -#include "constants/battle_move_effects.h" - .include "include/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gBattleMoves:: @ 81FB12C -@ NONE - .byte EFFECT_HIT - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 0 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ POUND - .byte EFFECT_HIT - .byte 40 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 35 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ KARATE_CHOP - .byte EFFECT_HIGH_CRITICAL - .byte 50 @ power - .byte TYPE_FIGHTING - .byte 100 @ accuracy - .byte 25 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ DOUBLE_SLAP - .byte EFFECT_MULTI_HIT - .byte 15 @ power - .byte TYPE_NORMAL - .byte 85 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ COMET_PUNCH - .byte EFFECT_MULTI_HIT - .byte 18 @ power - .byte TYPE_NORMAL - .byte 85 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ MEGA_PUNCH - .byte EFFECT_HIT - .byte 80 @ power - .byte TYPE_NORMAL - .byte 85 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ PAY_DAY - .byte EFFECT_PAY_DAY - .byte 40 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FIRE_PUNCH - .byte EFFECT_BURN_HIT - .byte 75 @ power - .byte TYPE_FIRE - .byte 100 @ accuracy - .byte 15 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ ICE_PUNCH - .byte EFFECT_FREEZE_HIT - .byte 75 @ power - .byte TYPE_ICE - .byte 100 @ accuracy - .byte 15 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ THUNDER_PUNCH - .byte EFFECT_PARALYZE_HIT - .byte 75 @ power - .byte TYPE_ELECTRIC - .byte 100 @ accuracy - .byte 15 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SCRATCH - .byte EFFECT_HIT - .byte 40 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 35 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ VICE_GRIP - .byte EFFECT_HIT - .byte 55 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ GUILLOTINE - .byte EFFECT_OHKO - .byte 1 @ power - .byte TYPE_NORMAL - .byte 30 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ RAZOR_WIND - .byte EFFECT_RAZOR_WIND - .byte 80 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SWORDS_DANCE - .byte EFFECT_ATTACK_UP_2 - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ CUT - .byte EFFECT_HIT - .byte 50 @ power - .byte TYPE_NORMAL - .byte 95 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ GUST - .byte EFFECT_GUST - .byte 40 @ power - .byte TYPE_FLYING - .byte 100 @ accuracy - .byte 35 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ WING_ATTACK - .byte EFFECT_HIT - .byte 60 @ power - .byte TYPE_FLYING - .byte 100 @ accuracy - .byte 35 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ WHIRLWIND - .byte EFFECT_ROAR - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte -6 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FLY - .byte EFFECT_FLY - .byte 70 @ power - .byte TYPE_FLYING - .byte 95 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ BIND - .byte EFFECT_TRAP - .byte 15 @ power - .byte TYPE_NORMAL - .byte 75 @ accuracy - .byte 20 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SLAM - .byte EFFECT_HIT - .byte 80 @ power - .byte TYPE_NORMAL - .byte 75 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ VINE_WHIP - .byte EFFECT_HIT - .byte 35 @ power - .byte TYPE_GRASS - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ STOMP - .byte EFFECT_FLINCH_HIT_2 - .byte 65 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ DOUBLE_KICK - .byte EFFECT_DOUBLE_HIT - .byte 30 @ power - .byte TYPE_FIGHTING - .byte 100 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ MEGA_KICK - .byte EFFECT_HIT - .byte 120 @ power - .byte TYPE_NORMAL - .byte 75 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ JUMP_KICK - .byte EFFECT_RECOIL_IF_MISS - .byte 70 @ power - .byte TYPE_FIGHTING - .byte 95 @ accuracy - .byte 25 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ ROLLING_KICK - .byte EFFECT_FLINCH_HIT - .byte 60 @ power - .byte TYPE_FIGHTING - .byte 85 @ accuracy - .byte 15 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SAND_ATTACK - .byte EFFECT_ACCURACY_DOWN - .byte 0 @ power - .byte TYPE_GROUND - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ HEADBUTT - .byte EFFECT_FLINCH_HIT - .byte 70 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 15 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ HORN_ATTACK - .byte EFFECT_HIT - .byte 65 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 25 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ FURY_ATTACK - .byte EFFECT_MULTI_HIT - .byte 15 @ power - .byte TYPE_NORMAL - .byte 85 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ HORN_DRILL - .byte EFFECT_OHKO - .byte 1 @ power - .byte TYPE_NORMAL - .byte 30 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ TACKLE - .byte EFFECT_HIT - .byte 35 @ power - .byte TYPE_NORMAL - .byte 95 @ accuracy - .byte 35 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ BODY_SLAM - .byte EFFECT_PARALYZE_HIT - .byte 85 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 15 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ WRAP - .byte EFFECT_TRAP - .byte 15 @ power - .byte TYPE_NORMAL - .byte 85 @ accuracy - .byte 20 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ TAKE_DOWN - .byte EFFECT_RECOIL - .byte 90 @ power - .byte TYPE_NORMAL - .byte 85 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ THRASH - .byte EFFECT_RAMPAGE - .byte 90 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_RANDOM - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ DOUBLE_EDGE - .byte EFFECT_DOUBLE_EDGE - .byte 120 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ TAIL_WHIP - .byte EFFECT_DEFENSE_DOWN - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ POISON_STING - .byte EFFECT_POISON_HIT - .byte 15 @ power - .byte TYPE_POISON - .byte 100 @ accuracy - .byte 35 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ TWINEEDLE - .byte EFFECT_TWINEEDLE - .byte 25 @ power - .byte TYPE_BUG - .byte 100 @ accuracy - .byte 20 @ PP - .byte 20 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ PIN_MISSILE - .byte EFFECT_MULTI_HIT - .byte 14 @ power - .byte TYPE_BUG - .byte 85 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ LEER - .byte EFFECT_DEFENSE_DOWN - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ BITE - .byte EFFECT_FLINCH_HIT - .byte 60 @ power - .byte TYPE_DARK - .byte 100 @ accuracy - .byte 25 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ GROWL - .byte EFFECT_ATTACK_DOWN - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ ROAR - .byte EFFECT_ROAR - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte -6 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SING - .byte EFFECT_SLEEP - .byte 0 @ power - .byte TYPE_NORMAL - .byte 55 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SUPERSONIC - .byte EFFECT_CONFUSE - .byte 0 @ power - .byte TYPE_NORMAL - .byte 55 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SONIC_BOOM - .byte EFFECT_SONICBOOM - .byte 1 @ power - .byte TYPE_NORMAL - .byte 90 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ DISABLE - .byte EFFECT_DISABLE - .byte 0 @ power - .byte TYPE_NORMAL - .byte 55 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ ACID - .byte EFFECT_DEFENSE_DOWN_HIT - .byte 40 @ power - .byte TYPE_POISON - .byte 100 @ accuracy - .byte 30 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ EMBER - .byte EFFECT_BURN_HIT - .byte 40 @ power - .byte TYPE_FIRE - .byte 100 @ accuracy - .byte 25 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FLAMETHROWER - .byte EFFECT_BURN_HIT - .byte 95 @ power - .byte TYPE_FIRE - .byte 100 @ accuracy - .byte 15 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ MIST - .byte EFFECT_MIST - .byte 0 @ power - .byte TYPE_ICE - .byte 0 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ WATER_GUN - .byte EFFECT_HIT - .byte 40 @ power - .byte TYPE_WATER - .byte 100 @ accuracy - .byte 25 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ HYDRO_PUMP - .byte EFFECT_HIT - .byte 120 @ power - .byte TYPE_WATER - .byte 80 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SURF - .byte EFFECT_HIT - .byte 95 @ power - .byte TYPE_WATER - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ ICE_BEAM - .byte EFFECT_FREEZE_HIT - .byte 95 @ power - .byte TYPE_ICE - .byte 100 @ accuracy - .byte 10 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ BLIZZARD - .byte EFFECT_FREEZE_HIT - .byte 120 @ power - .byte TYPE_ICE - .byte 70 @ accuracy - .byte 5 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ PSYBEAM - .byte EFFECT_CONFUSE_HIT - .byte 65 @ power - .byte TYPE_PSYCHIC - .byte 100 @ accuracy - .byte 20 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ BUBBLE_BEAM - .byte EFFECT_SPEED_DOWN_HIT - .byte 65 @ power - .byte TYPE_WATER - .byte 100 @ accuracy - .byte 20 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ AURORA_BEAM - .byte EFFECT_ATTACK_DOWN_HIT - .byte 65 @ power - .byte TYPE_ICE - .byte 100 @ accuracy - .byte 20 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ HYPER_BEAM - .byte EFFECT_RECHARGE - .byte 150 @ power - .byte TYPE_NORMAL - .byte 90 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ PECK - .byte EFFECT_HIT - .byte 35 @ power - .byte TYPE_FLYING - .byte 100 @ accuracy - .byte 35 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ DRILL_PECK - .byte EFFECT_HIT - .byte 80 @ power - .byte TYPE_FLYING - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SUBMISSION - .byte EFFECT_RECOIL - .byte 80 @ power - .byte TYPE_FIGHTING - .byte 80 @ accuracy - .byte 25 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ LOW_KICK - .byte EFFECT_LOW_KICK - .byte 1 @ power - .byte TYPE_FIGHTING - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ COUNTER - .byte EFFECT_COUNTER - .byte 1 @ power - .byte TYPE_FIGHTING - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SPECIAL - .byte -5 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_MAKES_CONTACT @ misc. flags - -@ SEISMIC_TOSS - .byte EFFECT_LEVEL_DAMAGE - .byte 1 @ power - .byte TYPE_FIGHTING - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ STRENGTH - .byte EFFECT_HIT - .byte 80 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ ABSORB - .byte EFFECT_ABSORB - .byte 20 @ power - .byte TYPE_GRASS - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ MEGA_DRAIN - .byte EFFECT_ABSORB - .byte 40 @ power - .byte TYPE_GRASS - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ LEECH_SEED - .byte EFFECT_LEECH_SEED - .byte 0 @ power - .byte TYPE_GRASS - .byte 90 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ GROWTH - .byte EFFECT_SPECIAL_ATTACK_UP - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ RAZOR_LEAF - .byte EFFECT_HIGH_CRITICAL - .byte 55 @ power - .byte TYPE_GRASS - .byte 95 @ accuracy - .byte 25 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SOLAR_BEAM - .byte EFFECT_SOLARBEAM - .byte 120 @ power - .byte TYPE_GRASS - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ POISON_POWDER - .byte EFFECT_POISON - .byte 0 @ power - .byte TYPE_POISON - .byte 75 @ accuracy - .byte 35 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ STUN_SPORE - .byte EFFECT_PARALYZE - .byte 0 @ power - .byte TYPE_GRASS - .byte 75 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SLEEP_POWDER - .byte EFFECT_SLEEP - .byte 0 @ power - .byte TYPE_GRASS - .byte 75 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ PETAL_DANCE - .byte EFFECT_RAMPAGE - .byte 70 @ power - .byte TYPE_GRASS - .byte 100 @ accuracy - .byte 20 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_RANDOM - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ STRING_SHOT - .byte EFFECT_SPEED_DOWN - .byte 0 @ power - .byte TYPE_BUG - .byte 95 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ DRAGON_RAGE - .byte EFFECT_DRAGON_RAGE - .byte 1 @ power - .byte TYPE_DRAGON - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FIRE_SPIN - .byte EFFECT_TRAP - .byte 15 @ power - .byte TYPE_FIRE - .byte 70 @ accuracy - .byte 15 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ THUNDER_SHOCK - .byte EFFECT_PARALYZE_HIT - .byte 40 @ power - .byte TYPE_ELECTRIC - .byte 100 @ accuracy - .byte 30 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ THUNDERBOLT - .byte EFFECT_PARALYZE_HIT - .byte 95 @ power - .byte TYPE_ELECTRIC - .byte 100 @ accuracy - .byte 15 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ THUNDER_WAVE - .byte EFFECT_PARALYZE - .byte 0 @ power - .byte TYPE_ELECTRIC - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ THUNDER - .byte EFFECT_THUNDER - .byte 120 @ power - .byte TYPE_ELECTRIC - .byte 70 @ accuracy - .byte 10 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ ROCK_THROW - .byte EFFECT_HIT - .byte 50 @ power - .byte TYPE_ROCK - .byte 90 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ EARTHQUAKE - .byte EFFECT_EARTHQUAKE - .byte 100 @ power - .byte TYPE_GROUND - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_ALL_EXCEPT_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FISSURE - .byte EFFECT_OHKO - .byte 1 @ power - .byte TYPE_GROUND - .byte 30 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ DIG - .byte EFFECT_FLY - .byte 60 @ power - .byte TYPE_GROUND - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ TOXIC - .byte EFFECT_TOXIC - .byte 0 @ power - .byte TYPE_POISON - .byte 85 @ accuracy - .byte 10 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ CONFUSION - .byte EFFECT_CONFUSE_HIT - .byte 50 @ power - .byte TYPE_PSYCHIC - .byte 100 @ accuracy - .byte 25 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ PSYCHIC - .byte EFFECT_SPECIAL_DEFENSE_DOWN_HIT - .byte 90 @ power - .byte TYPE_PSYCHIC - .byte 100 @ accuracy - .byte 10 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ HYPNOSIS - .byte EFFECT_SLEEP - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 60 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ MEDITATE - .byte EFFECT_ATTACK_UP - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 0 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ AGILITY - .byte EFFECT_SPEED_UP_2 - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 0 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ QUICK_ATTACK - .byte EFFECT_QUICK_ATTACK - .byte 40 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 1 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ RAGE - .byte EFFECT_RAGE - .byte 20 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ TELEPORT - .byte EFFECT_TELEPORT - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ NIGHT_SHADE - .byte EFFECT_LEVEL_DAMAGE - .byte 1 @ power - .byte TYPE_GHOST - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ MIMIC - .byte EFFECT_MIMIC - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_PROTECT @ misc. flags - -@ SCREECH - .byte EFFECT_DEFENSE_DOWN_2 - .byte 0 @ power - .byte TYPE_NORMAL - .byte 85 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ DOUBLE_TEAM - .byte EFFECT_EVASION_UP - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ RECOVER - .byte EFFECT_RESTORE_HP - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ HARDEN - .byte EFFECT_DEFENSE_UP - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ MINIMIZE - .byte EFFECT_MINIMIZE - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ SMOKESCREEN - .byte EFFECT_ACCURACY_DOWN - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ CONFUSE_RAY - .byte EFFECT_CONFUSE - .byte 0 @ power - .byte TYPE_GHOST - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ WITHDRAW - .byte EFFECT_DEFENSE_UP - .byte 0 @ power - .byte TYPE_WATER - .byte 0 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ DEFENSE_CURL - .byte EFFECT_DEFENSE_CURL - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ BARRIER - .byte EFFECT_DEFENSE_UP_2 - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 0 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ LIGHT_SCREEN - .byte EFFECT_LIGHT_SCREEN - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 0 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ HAZE - .byte EFFECT_HAZE - .byte 0 @ power - .byte TYPE_ICE - .byte 0 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_PROTECT @ misc. flags - -@ REFLECT - .byte EFFECT_REFLECT - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ FOCUS_ENERGY - .byte EFFECT_FOCUS_ENERGY - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ BIDE - .byte EFFECT_BIDE - .byte 1 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ METRONOME - .byte EFFECT_METRONOME - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SPECIAL - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ MIRROR_MOVE - .byte EFFECT_MIRROR_MOVE - .byte 0 @ power - .byte TYPE_FLYING - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SPECIAL - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ SELF_DESTRUCT - .byte EFFECT_EXPLOSION - .byte 200 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_ALL_EXCEPT_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ EGG_BOMB - .byte EFFECT_HIT - .byte 100 @ power - .byte TYPE_NORMAL - .byte 75 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ LICK - .byte EFFECT_PARALYZE_HIT - .byte 20 @ power - .byte TYPE_GHOST - .byte 100 @ accuracy - .byte 30 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SMOG - .byte EFFECT_POISON_HIT - .byte 20 @ power - .byte TYPE_POISON - .byte 70 @ accuracy - .byte 20 @ PP - .byte 40 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SLUDGE - .byte EFFECT_POISON_HIT - .byte 65 @ power - .byte TYPE_POISON - .byte 100 @ accuracy - .byte 20 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ BONE_CLUB - .byte EFFECT_FLINCH_HIT - .byte 65 @ power - .byte TYPE_GROUND - .byte 85 @ accuracy - .byte 20 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FIRE_BLAST - .byte EFFECT_BURN_HIT - .byte 120 @ power - .byte TYPE_FIRE - .byte 85 @ accuracy - .byte 5 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ WATERFALL - .byte EFFECT_HIT - .byte 80 @ power - .byte TYPE_WATER - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ CLAMP - .byte EFFECT_TRAP - .byte 35 @ power - .byte TYPE_WATER - .byte 75 @ accuracy - .byte 10 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SWIFT - .byte EFFECT_ALWAYS_HIT - .byte 60 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SKULL_BASH - .byte EFFECT_SKULL_BASH - .byte 100 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SPIKE_CANNON - .byte EFFECT_MULTI_HIT - .byte 20 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ CONSTRICT - .byte EFFECT_SPEED_DOWN_HIT - .byte 10 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 35 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ AMNESIA - .byte EFFECT_SPECIAL_DEFENSE_UP_2 - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ KINESIS - .byte EFFECT_ACCURACY_DOWN - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 80 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SOFT_BOILED - .byte EFFECT_SOFTBOILED - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_SNATCH @ misc. flags - -@ HI_JUMP_KICK - .byte EFFECT_RECOIL_IF_MISS - .byte 85 @ power - .byte TYPE_FIGHTING - .byte 90 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ GLARE - .byte EFFECT_PARALYZE - .byte 0 @ power - .byte TYPE_NORMAL - .byte 75 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ DREAM_EATER - .byte EFFECT_DREAM_EATER - .byte 100 @ power - .byte TYPE_PSYCHIC - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ POISON_GAS - .byte EFFECT_POISON - .byte 0 @ power - .byte TYPE_POISON - .byte 55 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ BARRAGE - .byte EFFECT_MULTI_HIT - .byte 15 @ power - .byte TYPE_NORMAL - .byte 85 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ LEECH_LIFE - .byte EFFECT_ABSORB - .byte 20 @ power - .byte TYPE_BUG - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ LOVELY_KISS - .byte EFFECT_SLEEP - .byte 0 @ power - .byte TYPE_NORMAL - .byte 75 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SKY_ATTACK - .byte EFFECT_SKY_ATTACK - .byte 140 @ power - .byte TYPE_FLYING - .byte 90 @ accuracy - .byte 5 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ TRANSFORM - .byte EFFECT_TRANSFORM - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ BUBBLE - .byte EFFECT_SPEED_DOWN_HIT - .byte 20 @ power - .byte TYPE_WATER - .byte 100 @ accuracy - .byte 30 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ DIZZY_PUNCH - .byte EFFECT_CONFUSE_HIT - .byte 70 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 20 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SPORE - .byte EFFECT_SLEEP - .byte 0 @ power - .byte TYPE_GRASS - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FLASH - .byte EFFECT_ACCURACY_DOWN - .byte 0 @ power - .byte TYPE_NORMAL - .byte 70 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ PSYWAVE - .byte EFFECT_PSYWAVE - .byte 1 @ power - .byte TYPE_PSYCHIC - .byte 80 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SPLASH - .byte EFFECT_SPLASH - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ ACID_ARMOR - .byte EFFECT_DEFENSE_UP_2 - .byte 0 @ power - .byte TYPE_POISON - .byte 0 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ CRABHAMMER - .byte EFFECT_HIGH_CRITICAL - .byte 90 @ power - .byte TYPE_WATER - .byte 85 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ EXPLOSION - .byte EFFECT_EXPLOSION - .byte 250 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_ALL_EXCEPT_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FURY_SWIPES - .byte EFFECT_MULTI_HIT - .byte 18 @ power - .byte TYPE_NORMAL - .byte 80 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ BONEMERANG - .byte EFFECT_DOUBLE_HIT - .byte 50 @ power - .byte TYPE_GROUND - .byte 90 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ REST - .byte EFFECT_REST - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ ROCK_SLIDE - .byte EFFECT_FLINCH_HIT - .byte 75 @ power - .byte TYPE_ROCK - .byte 90 @ accuracy - .byte 10 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ HYPER_FANG - .byte EFFECT_FLINCH_HIT - .byte 80 @ power - .byte TYPE_NORMAL - .byte 90 @ accuracy - .byte 15 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SHARPEN - .byte EFFECT_ATTACK_UP - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ CONVERSION - .byte EFFECT_CONVERSION - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ TRI_ATTACK - .byte EFFECT_TRI_ATTACK - .byte 80 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 20 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SUPER_FANG - .byte EFFECT_SUPER_FANG - .byte 1 @ power - .byte TYPE_NORMAL - .byte 90 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SLASH - .byte EFFECT_HIGH_CRITICAL - .byte 70 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SUBSTITUTE - .byte EFFECT_SUBSTITUTE - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ STRUGGLE - .byte EFFECT_RECOIL - .byte 50 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 1 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SKETCH - .byte EFFECT_SKETCH - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 1 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ TRIPLE_KICK - .byte EFFECT_TRIPLE_KICK - .byte 10 @ power - .byte TYPE_FIGHTING - .byte 90 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ THIEF - .byte EFFECT_THIEF - .byte 40 @ power - .byte TYPE_DARK - .byte 100 @ accuracy - .byte 10 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SPIDER_WEB - .byte EFFECT_MEAN_LOOK - .byte 0 @ power - .byte TYPE_BUG - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ MIND_READER - .byte EFFECT_LOCK_ON - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ NIGHTMARE - .byte EFFECT_NIGHTMARE - .byte 0 @ power - .byte TYPE_GHOST - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FLAME_WHEEL - .byte EFFECT_THAW_HIT - .byte 60 @ power - .byte TYPE_FIRE - .byte 100 @ accuracy - .byte 25 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SNORE - .byte EFFECT_SNORE - .byte 40 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 15 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ CURSE - .byte EFFECT_CURSE - .byte 0 @ power - .byte TYPE_MYSTERY - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ FLAIL - .byte EFFECT_FLAIL - .byte 1 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ CONVERSION_2 - .byte EFFECT_CONVERSION_2 - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ AEROBLAST - .byte EFFECT_HIGH_CRITICAL - .byte 100 @ power - .byte TYPE_FLYING - .byte 95 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ COTTON_SPORE - .byte EFFECT_SPEED_DOWN_2 - .byte 0 @ power - .byte TYPE_GRASS - .byte 85 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ REVERSAL - .byte EFFECT_FLAIL - .byte 1 @ power - .byte TYPE_FIGHTING - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SPITE - .byte EFFECT_SPITE - .byte 0 @ power - .byte TYPE_GHOST - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ POWDER_SNOW - .byte EFFECT_FREEZE_HIT - .byte 40 @ power - .byte TYPE_ICE - .byte 100 @ accuracy - .byte 25 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ PROTECT - .byte EFFECT_PROTECT - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 3 @ priority - .4byte 0 @ misc. flags - -@ MACH_PUNCH - .byte EFFECT_QUICK_ATTACK - .byte 40 @ power - .byte TYPE_FIGHTING - .byte 100 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 1 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SCARY_FACE - .byte EFFECT_SPEED_DOWN_2 - .byte 0 @ power - .byte TYPE_NORMAL - .byte 90 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FAINT_ATTACK - .byte EFFECT_ALWAYS_HIT - .byte 60 @ power - .byte TYPE_DARK - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SWEET_KISS - .byte EFFECT_CONFUSE - .byte 0 @ power - .byte TYPE_NORMAL - .byte 75 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ BELLY_DRUM - .byte EFFECT_BELLY_DRUM - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ SLUDGE_BOMB - .byte EFFECT_POISON_HIT - .byte 90 @ power - .byte TYPE_POISON - .byte 100 @ accuracy - .byte 10 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ MUD_SLAP - .byte EFFECT_ACCURACY_DOWN_HIT - .byte 20 @ power - .byte TYPE_GROUND - .byte 100 @ accuracy - .byte 10 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ OCTAZOOKA - .byte EFFECT_ACCURACY_DOWN_HIT - .byte 65 @ power - .byte TYPE_WATER - .byte 85 @ accuracy - .byte 10 @ PP - .byte 50 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SPIKES - .byte EFFECT_SPIKES - .byte 0 @ power - .byte TYPE_GROUND - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_ENEMY_SIDE - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ ZAP_CANNON - .byte EFFECT_PARALYZE_HIT - .byte 100 @ power - .byte TYPE_ELECTRIC - .byte 50 @ accuracy - .byte 5 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FORESIGHT - .byte EFFECT_FORESIGHT - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ DESTINY_BOND - .byte EFFECT_DESTINY_BOND - .byte 0 @ power - .byte TYPE_GHOST - .byte 0 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ PERISH_SONG - .byte EFFECT_PERISH_SONG - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ ICY_WIND - .byte EFFECT_SPEED_DOWN_HIT - .byte 55 @ power - .byte TYPE_ICE - .byte 95 @ accuracy - .byte 15 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ DETECT - .byte EFFECT_PROTECT - .byte 0 @ power - .byte TYPE_FIGHTING - .byte 0 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 3 @ priority - .4byte 0 @ misc. flags - -@ BONE_RUSH - .byte EFFECT_MULTI_HIT - .byte 25 @ power - .byte TYPE_GROUND - .byte 80 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ LOCK_ON - .byte EFFECT_LOCK_ON - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ OUTRAGE - .byte EFFECT_RAMPAGE - .byte 90 @ power - .byte TYPE_DRAGON - .byte 100 @ accuracy - .byte 15 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_RANDOM - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SANDSTORM - .byte EFFECT_SANDSTORM - .byte 0 @ power - .byte TYPE_ROCK - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ GIGA_DRAIN - .byte EFFECT_ABSORB - .byte 60 @ power - .byte TYPE_GRASS - .byte 100 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ ENDURE - .byte EFFECT_ENDURE - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 3 @ priority - .4byte 0 @ misc. flags - -@ CHARM - .byte EFFECT_ATTACK_DOWN_2 - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ ROLLOUT - .byte EFFECT_ROLLOUT - .byte 30 @ power - .byte TYPE_ROCK - .byte 90 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ FALSE_SWIPE - .byte EFFECT_FALSE_SWIPE - .byte 40 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SWAGGER - .byte EFFECT_SWAGGER - .byte 0 @ power - .byte TYPE_NORMAL - .byte 90 @ accuracy - .byte 15 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ MILK_DRINK - .byte EFFECT_SOFTBOILED - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SPARK - .byte EFFECT_PARALYZE_HIT - .byte 65 @ power - .byte TYPE_ELECTRIC - .byte 100 @ accuracy - .byte 20 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ FURY_CUTTER - .byte EFFECT_FURY_CUTTER - .byte 10 @ power - .byte TYPE_BUG - .byte 95 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ STEEL_WING - .byte EFFECT_DEFENSE_UP_HIT - .byte 70 @ power - .byte TYPE_STEEL - .byte 90 @ accuracy - .byte 25 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ MEAN_LOOK - .byte EFFECT_MEAN_LOOK - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ ATTRACT - .byte EFFECT_ATTRACT - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SLEEP_TALK - .byte EFFECT_SLEEP_TALK - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SPECIAL - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ HEAL_BELL - .byte EFFECT_HEAL_BELL - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ RETURN - .byte EFFECT_RETURN - .byte 1 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ PRESENT - .byte EFFECT_PRESENT - .byte 1 @ power - .byte TYPE_NORMAL - .byte 90 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FRUSTRATION - .byte EFFECT_FRUSTRATION - .byte 1 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SAFEGUARD - .byte EFFECT_SAFEGUARD - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 25 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ PAIN_SPLIT - .byte EFFECT_PAIN_SPLIT - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SACRED_FIRE - .byte EFFECT_THAW_HIT - .byte 100 @ power - .byte TYPE_FIRE - .byte 95 @ accuracy - .byte 5 @ PP - .byte 50 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ MAGNITUDE - .byte EFFECT_MAGNITUDE - .byte 1 @ power - .byte TYPE_GROUND - .byte 100 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_ALL_EXCEPT_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ DYNAMIC_PUNCH - .byte EFFECT_CONFUSE_HIT - .byte 100 @ power - .byte TYPE_FIGHTING - .byte 50 @ accuracy - .byte 5 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ MEGAHORN - .byte EFFECT_HIT - .byte 120 @ power - .byte TYPE_BUG - .byte 85 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ DRAGON_BREATH - .byte EFFECT_PARALYZE_HIT - .byte 60 @ power - .byte TYPE_DRAGON - .byte 100 @ accuracy - .byte 20 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ BATON_PASS - .byte EFFECT_BATON_PASS - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ ENCORE - .byte EFFECT_ENCORE - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ PURSUIT - .byte EFFECT_PURSUIT - .byte 40 @ power - .byte TYPE_DARK - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ RAPID_SPIN - .byte EFFECT_RAPID_SPIN - .byte 20 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SWEET_SCENT - .byte EFFECT_EVASION_DOWN - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ IRON_TAIL - .byte EFFECT_DEFENSE_DOWN_HIT - .byte 100 @ power - .byte TYPE_STEEL - .byte 75 @ accuracy - .byte 15 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ METAL_CLAW - .byte EFFECT_ATTACK_UP_HIT - .byte 50 @ power - .byte TYPE_STEEL - .byte 95 @ accuracy - .byte 35 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ VITAL_THROW - .byte EFFECT_VITAL_THROW - .byte 70 @ power - .byte TYPE_FIGHTING - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte -1 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ MORNING_SUN - .byte EFFECT_MORNING_SUN - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ SYNTHESIS - .byte EFFECT_SYNTHESIS - .byte 0 @ power - .byte TYPE_GRASS - .byte 0 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ MOONLIGHT - .byte EFFECT_MOONLIGHT - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ HIDDEN_POWER - .byte EFFECT_HIDDEN_POWER - .byte 1 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ CROSS_CHOP - .byte EFFECT_HIGH_CRITICAL - .byte 100 @ power - .byte TYPE_FIGHTING - .byte 80 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ TWISTER - .byte EFFECT_TWISTER - .byte 40 @ power - .byte TYPE_DRAGON - .byte 100 @ accuracy - .byte 20 @ PP - .byte 20 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ RAIN_DANCE - .byte EFFECT_RAIN_DANCE - .byte 0 @ power - .byte TYPE_WATER - .byte 0 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ SUNNY_DAY - .byte EFFECT_SUNNY_DAY - .byte 0 @ power - .byte TYPE_FIRE - .byte 0 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ CRUNCH - .byte EFFECT_SPECIAL_DEFENSE_DOWN_HIT - .byte 80 @ power - .byte TYPE_DARK - .byte 100 @ accuracy - .byte 15 @ PP - .byte 20 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ MIRROR_COAT - .byte EFFECT_MIRROR_COAT - .byte 1 @ power - .byte TYPE_PSYCHIC - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SPECIAL - .byte -5 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE @ misc. flags - -@ PSYCH_UP - .byte EFFECT_PSYCH_UP - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ EXTREME_SPEED - .byte EFFECT_QUICK_ATTACK - .byte 80 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 1 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ ANCIENT_POWER - .byte EFFECT_ALL_STATS_UP_HIT - .byte 60 @ power - .byte TYPE_ROCK - .byte 100 @ accuracy - .byte 5 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SHADOW_BALL - .byte EFFECT_SPECIAL_DEFENSE_DOWN_HIT - .byte 80 @ power - .byte TYPE_GHOST - .byte 100 @ accuracy - .byte 15 @ PP - .byte 20 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FUTURE_SIGHT - .byte EFFECT_FUTURE_SIGHT - .byte 80 @ power - .byte TYPE_PSYCHIC - .byte 90 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ ROCK_SMASH - .byte EFFECT_DEFENSE_DOWN_HIT - .byte 20 @ power - .byte TYPE_FIGHTING - .byte 100 @ accuracy - .byte 15 @ PP - .byte 50 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ WHIRLPOOL - .byte EFFECT_TRAP - .byte 15 @ power - .byte TYPE_WATER - .byte 70 @ accuracy - .byte 15 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ BEAT_UP - .byte EFFECT_BEAT_UP - .byte 10 @ power - .byte TYPE_DARK - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FAKE_OUT - .byte EFFECT_FAKE_OUT - .byte 40 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 1 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ UPROAR - .byte EFFECT_UPROAR - .byte 50 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_RANDOM - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ STOCKPILE - .byte EFFECT_STOCKPILE - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ SPIT_UP - .byte EFFECT_SPIT_UP - .byte 100 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SWALLOW - .byte EFFECT_SWALLOW - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ HEAT_WAVE - .byte EFFECT_BURN_HIT - .byte 100 @ power - .byte TYPE_FIRE - .byte 90 @ accuracy - .byte 10 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ HAIL - .byte EFFECT_HAIL - .byte 0 @ power - .byte TYPE_ICE - .byte 0 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_PROTECT @ misc. flags - -@ TORMENT - .byte EFFECT_TORMENT - .byte 0 @ power - .byte TYPE_DARK - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FLATTER - .byte EFFECT_FLATTER - .byte 0 @ power - .byte TYPE_DARK - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ WILL_O_WISP - .byte EFFECT_WILL_O_WISP - .byte 0 @ power - .byte TYPE_FIRE - .byte 75 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ MEMENTO - .byte EFFECT_MEMENTO - .byte 0 @ power - .byte TYPE_DARK - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FACADE - .byte EFFECT_FACADE - .byte 70 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ FOCUS_PUNCH - .byte EFFECT_FOCUS_PUNCH - .byte 150 @ power - .byte TYPE_FIGHTING - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte -3 @ priority - .4byte F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SMELLING_SALT - .byte EFFECT_SMELLINGSALT - .byte 60 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ FOLLOW_ME - .byte EFFECT_FOLLOW_ME - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 3 @ priority - .4byte 0 @ misc. flags - -@ NATURE_POWER - .byte EFFECT_NATURE_POWER - .byte 0 @ power - .byte TYPE_NORMAL - .byte 95 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SPECIAL - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ CHARGE - .byte EFFECT_CHARGE - .byte 0 @ power - .byte TYPE_ELECTRIC - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ TAUNT - .byte EFFECT_TAUNT - .byte 0 @ power - .byte TYPE_DARK - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_PROTECT @ misc. flags - -@ HELPING_HAND - .byte EFFECT_HELPING_HAND - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 5 @ priority - .4byte 0 @ misc. flags - -@ TRICK - .byte EFFECT_TRICK - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ ROLE_PLAY - .byte EFFECT_ROLE_PLAY - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ WISH - .byte EFFECT_WISH - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_PROTECT @ misc. flags - -@ ASSIST - .byte EFFECT_ASSIST - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SPECIAL - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ INGRAIN - .byte EFFECT_INGRAIN - .byte 0 @ power - .byte TYPE_GRASS - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ SUPERPOWER - .byte EFFECT_SUPERPOWER - .byte 120 @ power - .byte TYPE_FIGHTING - .byte 100 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ MAGIC_COAT - .byte EFFECT_MAGIC_COAT - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SPECIAL - .byte 4 @ priority - .4byte 0 @ misc. flags - -@ RECYCLE - .byte EFFECT_RECYCLE - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ REVENGE - .byte EFFECT_REVENGE - .byte 60 @ power - .byte TYPE_FIGHTING - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte -4 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ BRICK_BREAK - .byte EFFECT_BRICK_BREAK - .byte 75 @ power - .byte TYPE_FIGHTING - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ YAWN - .byte EFFECT_YAWN - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ KNOCK_OFF - .byte EFFECT_KNOCK_OFF - .byte 20 @ power - .byte TYPE_DARK - .byte 100 @ accuracy - .byte 20 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ ENDEAVOR - .byte EFFECT_ENDEAVOR - .byte 1 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ ERUPTION - .byte EFFECT_ERUPTION - .byte 150 @ power - .byte TYPE_FIRE - .byte 100 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SKILL_SWAP - .byte EFFECT_SKILL_SWAP - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ IMPRISON - .byte EFFECT_IMPRISON - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_PROTECT @ misc. flags - -@ REFRESH - .byte EFFECT_REFRESH - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ GRUDGE - .byte EFFECT_GRUDGE - .byte 0 @ power - .byte TYPE_GHOST - .byte 100 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SNATCH - .byte EFFECT_SNATCH - .byte 0 @ power - .byte TYPE_DARK - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SPECIAL - .byte 4 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE @ misc. flags - -@ SECRET_POWER - .byte EFFECT_SECRET_POWER - .byte 70 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ DIVE - .byte EFFECT_FLY - .byte 60 @ power - .byte TYPE_WATER - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ ARM_THRUST - .byte EFFECT_MULTI_HIT - .byte 15 @ power - .byte TYPE_FIGHTING - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ CAMOUFLAGE - .byte EFFECT_CAMOUFLAGE - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ TAIL_GLOW - .byte EFFECT_SPECIAL_ATTACK_UP_2 - .byte 0 @ power - .byte TYPE_BUG - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ LUSTER_PURGE - .byte EFFECT_SPECIAL_DEFENSE_DOWN_HIT - .byte 70 @ power - .byte TYPE_PSYCHIC - .byte 100 @ accuracy - .byte 5 @ PP - .byte 50 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ MIST_BALL - .byte EFFECT_SPECIAL_ATTACK_DOWN_HIT - .byte 70 @ power - .byte TYPE_PSYCHIC - .byte 100 @ accuracy - .byte 5 @ PP - .byte 50 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ FEATHER_DANCE - .byte EFFECT_ATTACK_DOWN_2 - .byte 0 @ power - .byte TYPE_FLYING - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ TEETER_DANCE - .byte EFFECT_TEETER_DANCE - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_ALL_EXCEPT_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_PROTECT @ misc. flags - -@ BLAZE_KICK - .byte EFFECT_BLAZE_KICK - .byte 85 @ power - .byte TYPE_FIRE - .byte 90 @ accuracy - .byte 10 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ MUD_SPORT - .byte EFFECT_MUD_SPORT - .byte 0 @ power - .byte TYPE_GROUND - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ ICE_BALL - .byte EFFECT_ROLLOUT - .byte 30 @ power - .byte TYPE_ICE - .byte 90 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ NEEDLE_ARM - .byte EFFECT_FLINCH_HIT_2 - .byte 60 @ power - .byte TYPE_GRASS - .byte 100 @ accuracy - .byte 15 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SLACK_OFF - .byte EFFECT_RESTORE_HP - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ HYPER_VOICE - .byte EFFECT_HIT - .byte 90 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ POISON_FANG - .byte EFFECT_POISON_FANG - .byte 50 @ power - .byte TYPE_POISON - .byte 100 @ accuracy - .byte 15 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ CRUSH_CLAW - .byte EFFECT_DEFENSE_DOWN_HIT - .byte 75 @ power - .byte TYPE_NORMAL - .byte 95 @ accuracy - .byte 10 @ PP - .byte 50 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ BLAST_BURN - .byte EFFECT_RECHARGE - .byte 150 @ power - .byte TYPE_FIRE - .byte 90 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ HYDRO_CANNON - .byte EFFECT_RECHARGE - .byte 150 @ power - .byte TYPE_WATER - .byte 90 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ METEOR_MASH - .byte EFFECT_ATTACK_UP_HIT - .byte 100 @ power - .byte TYPE_STEEL - .byte 85 @ accuracy - .byte 10 @ PP - .byte 20 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ ASTONISH - .byte EFFECT_FLINCH_HIT_2 - .byte 30 @ power - .byte TYPE_GHOST - .byte 100 @ accuracy - .byte 15 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ WEATHER_BALL - .byte EFFECT_WEATHER_BALL - .byte 50 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ AROMATHERAPY - .byte EFFECT_HEAL_BELL - .byte 0 @ power - .byte TYPE_GRASS - .byte 0 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ FAKE_TEARS - .byte EFFECT_SPECIAL_DEFENSE_DOWN_2 - .byte 0 @ power - .byte TYPE_DARK - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ AIR_CUTTER - .byte EFFECT_HIGH_CRITICAL - .byte 55 @ power - .byte TYPE_FLYING - .byte 95 @ accuracy - .byte 25 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ OVERHEAT - .byte EFFECT_OVERHEAT - .byte 140 @ power - .byte TYPE_FIRE - .byte 90 @ accuracy - .byte 5 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ ODOR_SLEUTH - .byte EFFECT_FORESIGHT - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ ROCK_TOMB - .byte EFFECT_SPEED_DOWN_HIT - .byte 50 @ power - .byte TYPE_ROCK - .byte 80 @ accuracy - .byte 10 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SILVER_WIND - .byte EFFECT_ALL_STATS_UP_HIT - .byte 60 @ power - .byte TYPE_BUG - .byte 100 @ accuracy - .byte 5 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ METAL_SOUND - .byte EFFECT_SPECIAL_DEFENSE_DOWN_2 - .byte 0 @ power - .byte TYPE_STEEL - .byte 85 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ GRASS_WHISTLE - .byte EFFECT_SLEEP - .byte 0 @ power - .byte TYPE_GRASS - .byte 55 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ TICKLE - .byte EFFECT_TICKLE - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ COSMIC_POWER - .byte EFFECT_COSMIC_POWER - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ WATER_SPOUT - .byte EFFECT_ERUPTION - .byte 150 @ power - .byte TYPE_WATER - .byte 100 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SIGNAL_BEAM - .byte EFFECT_CONFUSE_HIT - .byte 75 @ power - .byte TYPE_BUG - .byte 100 @ accuracy - .byte 15 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SHADOW_PUNCH - .byte EFFECT_ALWAYS_HIT - .byte 60 @ power - .byte TYPE_GHOST - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ EXTRASENSORY - .byte EFFECT_FLINCH_HIT_2 - .byte 80 @ power - .byte TYPE_PSYCHIC - .byte 100 @ accuracy - .byte 30 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SKY_UPPERCUT - .byte EFFECT_SKY_UPPERCUT - .byte 85 @ power - .byte TYPE_FIGHTING - .byte 90 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ SAND_TOMB - .byte EFFECT_TRAP - .byte 15 @ power - .byte TYPE_GROUND - .byte 70 @ accuracy - .byte 15 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SHEER_COLD - .byte EFFECT_OHKO - .byte 1 @ power - .byte TYPE_ICE - .byte 30 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ MUDDY_WATER - .byte EFFECT_ACCURACY_DOWN_HIT - .byte 95 @ power - .byte TYPE_WATER - .byte 85 @ accuracy - .byte 10 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_BOTH_ENEMIES - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ BULLET_SEED - .byte EFFECT_MULTI_HIT - .byte 10 @ power - .byte TYPE_GRASS - .byte 100 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ AERIAL_ACE - .byte EFFECT_ALWAYS_HIT - .byte 60 @ power - .byte TYPE_FLYING - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ ICICLE_SPEAR - .byte EFFECT_MULTI_HIT - .byte 10 @ power - .byte TYPE_ICE - .byte 100 @ accuracy - .byte 30 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ IRON_DEFENSE - .byte EFFECT_DEFENSE_UP_2 - .byte 0 @ power - .byte TYPE_STEEL - .byte 0 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ BLOCK - .byte EFFECT_MEAN_LOOK - .byte 0 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT @ misc. flags - -@ HOWL - .byte EFFECT_ATTACK_UP - .byte 0 @ power - .byte TYPE_NORMAL - .byte 0 @ accuracy - .byte 40 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ DRAGON_CLAW - .byte EFFECT_HIT - .byte 80 @ power - .byte TYPE_DRAGON - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ FRENZY_PLANT - .byte EFFECT_RECHARGE - .byte 150 @ power - .byte TYPE_GRASS - .byte 90 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ BULK_UP - .byte EFFECT_BULK_UP - .byte 0 @ power - .byte TYPE_FIGHTING - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ BOUNCE - .byte EFFECT_FLY - .byte 85 @ power - .byte TYPE_FLYING - .byte 85 @ accuracy - .byte 5 @ PP - .byte 30 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ MUD_SHOT - .byte EFFECT_SPEED_DOWN_HIT - .byte 55 @ power - .byte TYPE_GROUND - .byte 95 @ accuracy - .byte 15 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ POISON_TAIL - .byte EFFECT_POISON_TAIL - .byte 50 @ power - .byte TYPE_POISON - .byte 100 @ accuracy - .byte 25 @ PP - .byte 10 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ COVET - .byte EFFECT_THIEF - .byte 40 @ power - .byte TYPE_NORMAL - .byte 100 @ accuracy - .byte 40 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ VOLT_TACKLE - .byte EFFECT_DOUBLE_EDGE - .byte 120 @ power - .byte TYPE_ELECTRIC - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ MAGICAL_LEAF - .byte EFFECT_ALWAYS_HIT - .byte 60 @ power - .byte TYPE_GRASS - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ WATER_SPORT - .byte EFFECT_WATER_SPORT - .byte 0 @ power - .byte TYPE_WATER - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ CALM_MIND - .byte EFFECT_CALM_MIND - .byte 0 @ power - .byte TYPE_PSYCHIC - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ LEAF_BLADE - .byte EFFECT_HIGH_CRITICAL - .byte 70 @ power - .byte TYPE_GRASS - .byte 100 @ accuracy - .byte 15 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT @ misc. flags - -@ DRAGON_DANCE - .byte EFFECT_DRAGON_DANCE - .byte 0 @ power - .byte TYPE_DRAGON - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_USER - .byte 0 @ priority - .4byte F_AFFECTED_BY_SNATCH @ misc. flags - -@ ROCK_BLAST - .byte EFFECT_MULTI_HIT - .byte 25 @ power - .byte TYPE_ROCK - .byte 80 @ accuracy - .byte 10 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ SHOCK_WAVE - .byte EFFECT_ALWAYS_HIT - .byte 60 @ power - .byte TYPE_ELECTRIC - .byte 0 @ accuracy - .byte 20 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ WATER_PULSE - .byte EFFECT_CONFUSE_HIT - .byte 60 @ power - .byte TYPE_WATER - .byte 100 @ accuracy - .byte 20 @ PP - .byte 20 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags - -@ DOOM_DESIRE - .byte EFFECT_FUTURE_SIGHT - .byte 120 @ power - .byte TYPE_STEEL - .byte 85 @ accuracy - .byte 5 @ PP - .byte 0 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte 0 @ misc. flags - -@ PSYCHO_BOOST - .byte EFFECT_OVERHEAT - .byte 140 @ power - .byte TYPE_PSYCHIC - .byte 90 @ accuracy - .byte 5 @ PP - .byte 100 @ secondary effect chance - .byte TARGET_SELECTED_POKEMON - .byte 0 @ priority - .4byte F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT @ misc. flags diff --git a/include/battle.h b/include/battle.h index e63560421..b1677d90a 100644 --- a/include/battle.h +++ b/include/battle.h @@ -42,6 +42,10 @@ #define TYPE_FORESIGHT 0xFE #define TYPE_ENDTABLE 0xFF +// physical/special types +#define TYPE_IS_PHYSICAL(type) ((type) < TYPE_MYSTERY) +#define TYPE_IS_SPECIAL(type) ((type) > TYPE_MYSTERY) + enum { BATTLE_TERRAIN_GRASS, diff --git a/include/macros/event.inc b/include/macros/event.inc index a27e1da76..8b2d587c9 100644 --- a/include/macros/event.inc +++ b/include/macros/event.inc @@ -1233,9 +1233,9 @@ .byte 0xb7 .endm - .macro setvaddress long, word + .macro setvaddress addr .byte 0xb8 - .4byte \long + .4byte \addr .endm .macro vgoto pointer diff --git a/include/pokemon.h b/include/pokemon.h index 82ec9d644..6bb44a227 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -441,12 +441,6 @@ struct BattleMove u8 flags; }; -#define FLAG_MAKES_CONTACT 0x1 -#define FLAG_PROTECT_AFFECTED 0x2 -#define FLAG_MAGICCOAT_AFFECTED 0x4 -#define FLAG_SNATCH_AFFECTED 0x8 -#define FLAG_KINGSROCK_AFFECTED 0x20 - struct PokemonStorage { /*0x0000*/ u8 currentBox; diff --git a/ld_script.txt b/ld_script.txt index 0655384af..219dd51ed 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -498,7 +498,7 @@ SECTIONS { data/battle_7.o(.rodata); src/battle/battle_controller_opponent.o(.rodata); src/battle/battle_controller_linkopponent.o(.rodata); - data/battle_moves.o(.rodata); + src/data/battle_moves.o(.rodata); src/battle/battle_util.o(.rodata); src/pokemon_1.o(.rodata); src/pokemon_1.o(.data); /* gEvolutionTable needs to be non-const to match */ diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c index 9181ce8a6..9dc9d62ec 100644 --- a/src/battle/battle_4.c +++ b/src/battle/battle_4.c @@ -307,7 +307,7 @@ extern u8 BattleScript_SelectingImprisionedMoveInPalace[]; #define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8)) #define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr)) -#define TARGET_PROTECT_AFFECTED ((gProtectStructs[gBankTarget].protected && gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED)) +#define TARGET_PROTECT_AFFECTED ((gProtectStructs[gBankTarget].protected && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_PROTECT)) //array entries for battle communication #define MOVE_EFFECT_BYTE 0x3 @@ -1142,7 +1142,7 @@ static void atk00_attackcanceler(void) gHitMarker |= HITMARKER_OBEYS; - if (gProtectStructs[gBankTarget].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGICCOAT_AFFECTED) + if (gProtectStructs[gBankTarget].bounceMove && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_MAGIC_COAT) { PressurePPLose(gBankAttacker, gBankTarget, MOVE_MAGIC_COAT); gProtectStructs[gBankTarget].bounceMove = 0; @@ -1153,7 +1153,7 @@ static void atk00_attackcanceler(void) for (i = 0; i < gBattlersCount; i++) { - if ((gProtectStructs[gBanksByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED) + if ((gProtectStructs[gBanksByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_SNATCH) { PressurePPLose(gBankAttacker, gBanksByTurnOrder[i], MOVE_SNATCH); gProtectStructs[gBanksByTurnOrder[i]].stealMove = 0; @@ -2087,7 +2087,7 @@ static void atk0C_datahpupdate(void) if (!gSpecialStatuses[gActiveBattler].moveturnLostHP && !(gHitMarker & HITMARKER_x100000)) gSpecialStatuses[gActiveBattler].moveturnLostHP = gHpDealt; - if (moveType <= 8 && !(gHitMarker & HITMARKER_x100000) && gCurrentMove != MOVE_PAIN_SPLIT) + if (TYPE_IS_PHYSICAL(moveType) && !(gHitMarker & HITMARKER_x100000) && gCurrentMove != MOVE_PAIN_SPLIT) { gProtectStructs[gActiveBattler].physicalDmg = gHpDealt; gSpecialStatuses[gActiveBattler].moveturnLostHP_physical = gHpDealt; @@ -2102,7 +2102,7 @@ static void atk0C_datahpupdate(void) gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBankTarget; } } - else if (moveType > 8 && !(gHitMarker & HITMARKER_x100000)) + else if (!TYPE_IS_PHYSICAL(moveType) && !(gHitMarker & HITMARKER_x100000)) { gProtectStructs[gActiveBattler].specialDmg = gHpDealt; gSpecialStatuses[gActiveBattler].moveturnLostHP_special = gHpDealt; @@ -10981,11 +10981,11 @@ static void atk73_hpthresholds(void) if (result == 0) result = 1; - if (result > 69 || !gBattleMons[opposing_bank].hp) + if (result >= 70 || !gBattleMons[opposing_bank].hp) gBattleStruct->hpScale = 0; - else if (result > 39) + else if (result >= 40) gBattleStruct->hpScale = 1; - else if (result > 9) + else if (result >= 10) gBattleStruct->hpScale = 2; else gBattleStruct->hpScale = 3; diff --git a/src/battle/battle_interface.c b/src/battle/battle_interface.c index b7c0dce4e..ec882bcce 100644 --- a/src/battle/battle_interface.c +++ b/src/battle/battle_interface.c @@ -3410,9 +3410,9 @@ u8 GetHPBarLevel(s16 hp, s16 maxhp) else { u8 fraction = GetScaledHPFraction(hp, maxhp, 48); - if (fraction > 24) + if (fraction >= 25) result = 3; - else if (fraction > 9) + else if (fraction >= 10) result = 2; else if (fraction > 0) result = 1; diff --git a/src/battle/battle_util.c b/src/battle/battle_util.c index e164a60dc..7cb39acb7 100644 --- a/src/battle/battle_util.c +++ b/src/battle/battle_util.c @@ -2026,7 +2026,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) + && (gBattleMoves[move].flags & F_MAKES_CONTACT)) { gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; if (gBattleMoveDamage == 0) @@ -2043,7 +2043,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) + && (gBattleMoves[move].flags & F_MAKES_CONTACT)) { do { @@ -2064,7 +2064,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gBattleMoves[move].flags & F_MAKES_CONTACT) && (Random() % 10) == 0) { do @@ -2088,7 +2088,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) + && (gBattleMoves[move].flags & F_MAKES_CONTACT)) { gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42; BattleScriptPushCursor(); @@ -2103,7 +2103,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gBattleMoves[move].flags & F_MAKES_CONTACT) && (Random() % 3) == 0) { gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42; @@ -2121,7 +2121,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) + && (gBattleMoves[move].flags & F_MAKES_CONTACT)) { gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45; BattleScriptPushCursor(); @@ -2136,7 +2136,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gBattleMoves[move].flags & F_MAKES_CONTACT) && (Random() % 3) == 0) { gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45; @@ -2153,7 +2153,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gBattleMoves[move].flags & F_MAKES_CONTACT) && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)) { gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43; @@ -2168,7 +2168,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gBattleMoves[move].flags & F_MAKES_CONTACT) && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) && (Random() % 3) == 0) { @@ -2186,7 +2186,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gBattleMoves[move].flags & F_MAKES_CONTACT) && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) && gBattleMons[gBankTarget].hp != 0 && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS @@ -2206,7 +2206,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gBattleMoves[move].flags & F_MAKES_CONTACT) && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) && gBattleMons[gBankTarget].hp != 0 && (Random() % 3) == 0 @@ -3271,7 +3271,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) && (Random() % 100) < bankQuality - && gBattleMoves[gCurrentMove].flags & FLAG_KINGSROCK_AFFECTED + && gBattleMoves[gCurrentMove].flags & F_AFFECTED_BY_KINGS_ROCK && gBattleMons[gBankTarget].hp) { gBattleCommunication[MOVE_EFFECT_BYTE] = 8; diff --git a/src/battle/calculate_base_damage.c b/src/battle/calculate_base_damage.c index 5e63ee92c..d983e47a4 100644 --- a/src/battle/calculate_base_damage.c +++ b/src/battle/calculate_base_damage.c @@ -170,7 +170,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if (attackerHoldEffect == gHoldEffectToType[i][0] && type == gHoldEffectToType[i][1]) { - if (type <= 8) + if (TYPE_IS_PHYSICAL(type)) attack = (attack * (attackerHoldEffectParam + 100)) / 100; else spAttack = (spAttack * (attackerHoldEffectParam + 100)) / 100; @@ -221,7 +221,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if (gBattleMoves[gCurrentMove].effect == EFFECT_EXPLOSION) defense /= 2; - if (type < TYPE_MYSTERY) // is physical + if (TYPE_IS_PHYSICAL(type)) // type < TYPE_MYSTERY { if (gCritMultiplier == 2) { @@ -271,7 +271,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if (type == TYPE_MYSTERY) damage = 0; // is ??? type. does 0 damage. - if (type > TYPE_MYSTERY) // is special? + if (TYPE_IS_SPECIAL(type)) // type > TYPE_MYSTERY { if (gCritMultiplier == 2) { diff --git a/src/data/battle_moves.c b/src/data/battle_moves.c new file mode 100644 index 000000000..d2a4fcf8f --- /dev/null +++ b/src/data/battle_moves.c @@ -0,0 +1,4268 @@ +#include "global.h" +#include "battle.h" +#include "constants/battle_move_effects.h" +#include "constants/moves.h" + +const struct BattleMove gBattleMoves[] = { + + [MOVE_NONE] = { + .effect = EFFECT_HIT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 0, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = 0, + }, + + [MOVE_POUND] = { + .effect = EFFECT_HIT, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_KARATE_CHOP] = { + .effect = EFFECT_HIGH_CRITICAL, + .power = 50, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_DOUBLE_SLAP] = { + .effect = EFFECT_MULTI_HIT, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_COMET_PUNCH] = { + .effect = EFFECT_MULTI_HIT, + .power = 18, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_MEGA_PUNCH] = { + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_PAY_DAY] = { + .effect = EFFECT_PAY_DAY, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FIRE_PUNCH] = { + .effect = EFFECT_BURN_HIT, + .power = 75, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_ICE_PUNCH] = { + .effect = EFFECT_FREEZE_HIT, + .power = 75, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_THUNDER_PUNCH] = { + .effect = EFFECT_PARALYZE_HIT, + .power = 75, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SCRATCH] = { + .effect = EFFECT_HIT, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_VICE_GRIP] = { + .effect = EFFECT_HIT, + .power = 55, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_GUILLOTINE] = { + .effect = EFFECT_OHKO, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 30, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_RAZOR_WIND] = { + .effect = EFFECT_RAZOR_WIND, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SWORDS_DANCE] = { + .effect = EFFECT_ATTACK_UP_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_CUT] = { + .effect = EFFECT_HIT, + .power = 50, + .type = TYPE_NORMAL, + .accuracy = 95, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_GUST] = { + .effect = EFFECT_GUST, + .power = 40, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_WING_ATTACK] = { + .effect = EFFECT_HIT, + .power = 60, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_WHIRLWIND] = { + .effect = EFFECT_ROAR, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = -6, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FLY] = { + .effect = EFFECT_FLY, + .power = 70, + .type = TYPE_FLYING, + .accuracy = 95, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_BIND] = { + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 20, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SLAM] = { + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_VINE_WHIP] = { + .effect = EFFECT_HIT, + .power = 35, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_STOMP] = { + .effect = EFFECT_FLINCH_HIT_2, + .power = 65, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_DOUBLE_KICK] = { + .effect = EFFECT_DOUBLE_HIT, + .power = 30, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_MEGA_KICK] = { + .effect = EFFECT_HIT, + .power = 120, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_JUMP_KICK] = { + .effect = EFFECT_RECOIL_IF_MISS, + .power = 70, + .type = TYPE_FIGHTING, + .accuracy = 95, + .pp = 25, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_ROLLING_KICK] = { + .effect = EFFECT_FLINCH_HIT, + .power = 60, + .type = TYPE_FIGHTING, + .accuracy = 85, + .pp = 15, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SAND_ATTACK] = { + .effect = EFFECT_ACCURACY_DOWN, + .power = 0, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_HEADBUTT] = { + .effect = EFFECT_FLINCH_HIT, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_HORN_ATTACK] = { + .effect = EFFECT_HIT, + .power = 65, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_FURY_ATTACK] = { + .effect = EFFECT_MULTI_HIT, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_HORN_DRILL] = { + .effect = EFFECT_OHKO, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 30, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_TACKLE] = { + .effect = EFFECT_HIT, + .power = 35, + .type = TYPE_NORMAL, + .accuracy = 95, + .pp = 35, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_BODY_SLAM] = { + .effect = EFFECT_PARALYZE_HIT, + .power = 85, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_WRAP] = { + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_TAKE_DOWN] = { + .effect = EFFECT_RECOIL, + .power = 90, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_THRASH] = { + .effect = EFFECT_RAMPAGE, + .power = 90, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = TARGET_RANDOM, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_DOUBLE_EDGE] = { + .effect = EFFECT_DOUBLE_EDGE, + .power = 120, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_TAIL_WHIP] = { + .effect = EFFECT_DEFENSE_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_POISON_STING] = { + .effect = EFFECT_POISON_HIT, + .power = 15, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_TWINEEDLE] = { + .effect = EFFECT_TWINEEDLE, + .power = 25, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 20, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_PIN_MISSILE] = { + .effect = EFFECT_MULTI_HIT, + .power = 14, + .type = TYPE_BUG, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_LEER] = { + .effect = EFFECT_DEFENSE_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_BITE] = { + .effect = EFFECT_FLINCH_HIT, + .power = 60, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_GROWL] = { + .effect = EFFECT_ATTACK_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_ROAR] = { + .effect = EFFECT_ROAR, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = -6, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SING] = { + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 55, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SUPERSONIC] = { + .effect = EFFECT_CONFUSE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 55, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SONIC_BOOM] = { + .effect = EFFECT_SONICBOOM, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_DISABLE] = { + .effect = EFFECT_DISABLE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 55, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_ACID] = { + .effect = EFFECT_DEFENSE_DOWN_HIT, + .power = 40, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 10, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_EMBER] = { + .effect = EFFECT_BURN_HIT, + .power = 40, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FLAMETHROWER] = { + .effect = EFFECT_BURN_HIT, + .power = 95, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_MIST] = { + .effect = EFFECT_MIST, + .power = 0, + .type = TYPE_ICE, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_WATER_GUN] = { + .effect = EFFECT_HIT, + .power = 40, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_HYDRO_PUMP] = { + .effect = EFFECT_HIT, + .power = 120, + .type = TYPE_WATER, + .accuracy = 80, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SURF] = { + .effect = EFFECT_HIT, + .power = 95, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_ICE_BEAM] = { + .effect = EFFECT_FREEZE_HIT, + .power = 95, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_BLIZZARD] = { + .effect = EFFECT_FREEZE_HIT, + .power = 120, + .type = TYPE_ICE, + .accuracy = 70, + .pp = 5, + .secondaryEffectChance = 10, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_PSYBEAM] = { + .effect = EFFECT_CONFUSE_HIT, + .power = 65, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_BUBBLE_BEAM] = { + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 65, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_AURORA_BEAM] = { + .effect = EFFECT_ATTACK_DOWN_HIT, + .power = 65, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_HYPER_BEAM] = { + .effect = EFFECT_RECHARGE, + .power = 150, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_PECK] = { + .effect = EFFECT_HIT, + .power = 35, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_DRILL_PECK] = { + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SUBMISSION] = { + .effect = EFFECT_RECOIL, + .power = 80, + .type = TYPE_FIGHTING, + .accuracy = 80, + .pp = 25, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_LOW_KICK] = { + .effect = EFFECT_LOW_KICK, + .power = 1, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_COUNTER] = { + .effect = EFFECT_COUNTER, + .power = 1, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SPECIAL, + .priority = -5, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_MAKES_CONTACT, + }, + + [MOVE_SEISMIC_TOSS] = { + .effect = EFFECT_LEVEL_DAMAGE, + .power = 1, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_STRENGTH] = { + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_ABSORB] = { + .effect = EFFECT_ABSORB, + .power = 20, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_MEGA_DRAIN] = { + .effect = EFFECT_ABSORB, + .power = 40, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_LEECH_SEED] = { + .effect = EFFECT_LEECH_SEED, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_GROWTH] = { + .effect = EFFECT_SPECIAL_ATTACK_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_RAZOR_LEAF] = { + .effect = EFFECT_HIGH_CRITICAL, + .power = 55, + .type = TYPE_GRASS, + .accuracy = 95, + .pp = 25, + .secondaryEffectChance = 0, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SOLAR_BEAM] = { + .effect = EFFECT_SOLARBEAM, + .power = 120, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_POISON_POWDER] = { + .effect = EFFECT_POISON, + .power = 0, + .type = TYPE_POISON, + .accuracy = 75, + .pp = 35, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_STUN_SPORE] = { + .effect = EFFECT_PARALYZE, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 75, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SLEEP_POWDER] = { + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 75, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_PETAL_DANCE] = { + .effect = EFFECT_RAMPAGE, + .power = 70, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = TARGET_RANDOM, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_STRING_SHOT] = { + .effect = EFFECT_SPEED_DOWN, + .power = 0, + .type = TYPE_BUG, + .accuracy = 95, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_DRAGON_RAGE] = { + .effect = EFFECT_DRAGON_RAGE, + .power = 1, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FIRE_SPIN] = { + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_FIRE, + .accuracy = 70, + .pp = 15, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_THUNDER_SHOCK] = { + .effect = EFFECT_PARALYZE_HIT, + .power = 40, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_THUNDERBOLT] = { + .effect = EFFECT_PARALYZE_HIT, + .power = 95, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_THUNDER_WAVE] = { + .effect = EFFECT_PARALYZE, + .power = 0, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_THUNDER] = { + .effect = EFFECT_THUNDER, + .power = 120, + .type = TYPE_ELECTRIC, + .accuracy = 70, + .pp = 10, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_ROCK_THROW] = { + .effect = EFFECT_HIT, + .power = 50, + .type = TYPE_ROCK, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_EARTHQUAKE] = { + .effect = EFFECT_EARTHQUAKE, + .power = 100, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_ALL_EXCEPT_USER, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FISSURE] = { + .effect = EFFECT_OHKO, + .power = 1, + .type = TYPE_GROUND, + .accuracy = 30, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_DIG] = { + .effect = EFFECT_FLY, + .power = 60, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_TOXIC] = { + .effect = EFFECT_TOXIC, + .power = 0, + .type = TYPE_POISON, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_CONFUSION] = { + .effect = EFFECT_CONFUSE_HIT, + .power = 50, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_PSYCHIC] = { + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .power = 90, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_HYPNOSIS] = { + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 60, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_MEDITATE] = { + .effect = EFFECT_ATTACK_UP, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_AGILITY] = { + .effect = EFFECT_SPEED_UP_2, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_QUICK_ATTACK] = { + .effect = EFFECT_QUICK_ATTACK, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 1, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_RAGE] = { + .effect = EFFECT_RAGE, + .power = 20, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_TELEPORT] = { + .effect = EFFECT_TELEPORT, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_NIGHT_SHADE] = { + .effect = EFFECT_LEVEL_DAMAGE, + .power = 1, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_MIMIC] = { + .effect = EFFECT_MIMIC, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SCREECH] = { + .effect = EFFECT_DEFENSE_DOWN_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_DOUBLE_TEAM] = { + .effect = EFFECT_EVASION_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_RECOVER] = { + .effect = EFFECT_RESTORE_HP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_HARDEN] = { + .effect = EFFECT_DEFENSE_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_MINIMIZE] = { + .effect = EFFECT_MINIMIZE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_SMOKESCREEN] = { + .effect = EFFECT_ACCURACY_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_CONFUSE_RAY] = { + .effect = EFFECT_CONFUSE, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_WITHDRAW] = { + .effect = EFFECT_DEFENSE_UP, + .power = 0, + .type = TYPE_WATER, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_DEFENSE_CURL] = { + .effect = EFFECT_DEFENSE_CURL, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_BARRIER] = { + .effect = EFFECT_DEFENSE_UP_2, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_LIGHT_SCREEN] = { + .effect = EFFECT_LIGHT_SCREEN, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_HAZE] = { + .effect = EFFECT_HAZE, + .power = 0, + .type = TYPE_ICE, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_PROTECT, + }, + + [MOVE_REFLECT] = { + .effect = EFFECT_REFLECT, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_FOCUS_ENERGY] = { + .effect = EFFECT_FOCUS_ENERGY, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_BIDE] = { + .effect = EFFECT_BIDE, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_METRONOME] = { + .effect = EFFECT_METRONOME, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SPECIAL, + .priority = 0, + .flags = 0, + }, + + [MOVE_MIRROR_MOVE] = { + .effect = EFFECT_MIRROR_MOVE, + .power = 0, + .type = TYPE_FLYING, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SPECIAL, + .priority = 0, + .flags = 0, + }, + + [MOVE_SELF_DESTRUCT] = { + .effect = EFFECT_EXPLOSION, + .power = 200, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_ALL_EXCEPT_USER, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_EGG_BOMB] = { + .effect = EFFECT_HIT, + .power = 100, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_LICK] = { + .effect = EFFECT_PARALYZE_HIT, + .power = 20, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SMOG] = { + .effect = EFFECT_POISON_HIT, + .power = 20, + .type = TYPE_POISON, + .accuracy = 70, + .pp = 20, + .secondaryEffectChance = 40, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SLUDGE] = { + .effect = EFFECT_POISON_HIT, + .power = 65, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_BONE_CLUB] = { + .effect = EFFECT_FLINCH_HIT, + .power = 65, + .type = TYPE_GROUND, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FIRE_BLAST] = { + .effect = EFFECT_BURN_HIT, + .power = 120, + .type = TYPE_FIRE, + .accuracy = 85, + .pp = 5, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_WATERFALL] = { + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_CLAMP] = { + .effect = EFFECT_TRAP, + .power = 35, + .type = TYPE_WATER, + .accuracy = 75, + .pp = 10, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SWIFT] = { + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SKULL_BASH] = { + .effect = EFFECT_SKULL_BASH, + .power = 100, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SPIKE_CANNON] = { + .effect = EFFECT_MULTI_HIT, + .power = 20, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_CONSTRICT] = { + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 10, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_AMNESIA] = { + .effect = EFFECT_SPECIAL_DEFENSE_UP_2, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_KINESIS] = { + .effect = EFFECT_ACCURACY_DOWN, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 80, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SOFT_BOILED] = { + .effect = EFFECT_SOFTBOILED, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_SNATCH, + }, + + [MOVE_HI_JUMP_KICK] = { + .effect = EFFECT_RECOIL_IF_MISS, + .power = 85, + .type = TYPE_FIGHTING, + .accuracy = 90, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_GLARE] = { + .effect = EFFECT_PARALYZE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_DREAM_EATER] = { + .effect = EFFECT_DREAM_EATER, + .power = 100, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_POISON_GAS] = { + .effect = EFFECT_POISON, + .power = 0, + .type = TYPE_POISON, + .accuracy = 55, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_BARRAGE] = { + .effect = EFFECT_MULTI_HIT, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_LEECH_LIFE] = { + .effect = EFFECT_ABSORB, + .power = 20, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_LOVELY_KISS] = { + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SKY_ATTACK] = { + .effect = EFFECT_SKY_ATTACK, + .power = 140, + .type = TYPE_FLYING, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_TRANSFORM] = { + .effect = EFFECT_TRANSFORM, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = 0, + }, + + [MOVE_BUBBLE] = { + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 20, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 10, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_DIZZY_PUNCH] = { + .effect = EFFECT_CONFUSE_HIT, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 20, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SPORE] = { + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FLASH] = { + .effect = EFFECT_ACCURACY_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 70, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_PSYWAVE] = { + .effect = EFFECT_PSYWAVE, + .power = 1, + .type = TYPE_PSYCHIC, + .accuracy = 80, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SPLASH] = { + .effect = EFFECT_SPLASH, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_ACID_ARMOR] = { + .effect = EFFECT_DEFENSE_UP_2, + .power = 0, + .type = TYPE_POISON, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_CRABHAMMER] = { + .effect = EFFECT_HIGH_CRITICAL, + .power = 90, + .type = TYPE_WATER, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_EXPLOSION] = { + .effect = EFFECT_EXPLOSION, + .power = 250, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_ALL_EXCEPT_USER, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FURY_SWIPES] = { + .effect = EFFECT_MULTI_HIT, + .power = 18, + .type = TYPE_NORMAL, + .accuracy = 80, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_BONEMERANG] = { + .effect = EFFECT_DOUBLE_HIT, + .power = 50, + .type = TYPE_GROUND, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_REST] = { + .effect = EFFECT_REST, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_ROCK_SLIDE] = { + .effect = EFFECT_FLINCH_HIT, + .power = 75, + .type = TYPE_ROCK, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 30, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_HYPER_FANG] = { + .effect = EFFECT_FLINCH_HIT, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SHARPEN] = { + .effect = EFFECT_ATTACK_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_CONVERSION] = { + .effect = EFFECT_CONVERSION, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_TRI_ATTACK] = { + .effect = EFFECT_TRI_ATTACK, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 20, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SUPER_FANG] = { + .effect = EFFECT_SUPER_FANG, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SLASH] = { + .effect = EFFECT_HIGH_CRITICAL, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SUBSTITUTE] = { + .effect = EFFECT_SUBSTITUTE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_STRUGGLE] = { + .effect = EFFECT_RECOIL, + .power = 50, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 1, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SKETCH] = { + .effect = EFFECT_SKETCH, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 1, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = 0, + }, + + [MOVE_TRIPLE_KICK] = { + .effect = EFFECT_TRIPLE_KICK, + .power = 10, + .type = TYPE_FIGHTING, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_THIEF] = { + .effect = EFFECT_THIEF, + .power = 40, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SPIDER_WEB] = { + .effect = EFFECT_MEAN_LOOK, + .power = 0, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_MIND_READER] = { + .effect = EFFECT_LOCK_ON, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_NIGHTMARE] = { + .effect = EFFECT_NIGHTMARE, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FLAME_WHEEL] = { + .effect = EFFECT_THAW_HIT, + .power = 60, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SNORE] = { + .effect = EFFECT_SNORE, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_CURSE] = { + .effect = EFFECT_CURSE, + .power = 0, + .type = TYPE_MYSTERY, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = 0, + }, + + [MOVE_FLAIL] = { + .effect = EFFECT_FLAIL, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_CONVERSION_2] = { + .effect = EFFECT_CONVERSION_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_AEROBLAST] = { + .effect = EFFECT_HIGH_CRITICAL, + .power = 100, + .type = TYPE_FLYING, + .accuracy = 95, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_COTTON_SPORE] = { + .effect = EFFECT_SPEED_DOWN_2, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 85, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_REVERSAL] = { + .effect = EFFECT_FLAIL, + .power = 1, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SPITE] = { + .effect = EFFECT_SPITE, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_POWDER_SNOW] = { + .effect = EFFECT_FREEZE_HIT, + .power = 40, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_PROTECT] = { + .effect = EFFECT_PROTECT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 3, + .flags = 0, + }, + + [MOVE_MACH_PUNCH] = { + .effect = EFFECT_QUICK_ATTACK, + .power = 40, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 1, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SCARY_FACE] = { + .effect = EFFECT_SPEED_DOWN_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FAINT_ATTACK] = { + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_DARK, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SWEET_KISS] = { + .effect = EFFECT_CONFUSE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_BELLY_DRUM] = { + .effect = EFFECT_BELLY_DRUM, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_SLUDGE_BOMB] = { + .effect = EFFECT_POISON_HIT, + .power = 90, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_MUD_SLAP] = { + .effect = EFFECT_ACCURACY_DOWN_HIT, + .power = 20, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_OCTAZOOKA] = { + .effect = EFFECT_ACCURACY_DOWN_HIT, + .power = 65, + .type = TYPE_WATER, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 50, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SPIKES] = { + .effect = EFFECT_SPIKES, + .power = 0, + .type = TYPE_GROUND, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_ENEMY_SIDE, + .priority = 0, + .flags = 0, + }, + + [MOVE_ZAP_CANNON] = { + .effect = EFFECT_PARALYZE_HIT, + .power = 100, + .type = TYPE_ELECTRIC, + .accuracy = 50, + .pp = 5, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FORESIGHT] = { + .effect = EFFECT_FORESIGHT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_DESTINY_BOND] = { + .effect = EFFECT_DESTINY_BOND, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_PERISH_SONG] = { + .effect = EFFECT_PERISH_SONG, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_ICY_WIND] = { + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 55, + .type = TYPE_ICE, + .accuracy = 95, + .pp = 15, + .secondaryEffectChance = 100, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_DETECT] = { + .effect = EFFECT_PROTECT, + .power = 0, + .type = TYPE_FIGHTING, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 3, + .flags = 0, + }, + + [MOVE_BONE_RUSH] = { + .effect = EFFECT_MULTI_HIT, + .power = 25, + .type = TYPE_GROUND, + .accuracy = 80, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_LOCK_ON] = { + .effect = EFFECT_LOCK_ON, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_OUTRAGE] = { + .effect = EFFECT_RAMPAGE, + .power = 90, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 100, + .target = TARGET_RANDOM, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SANDSTORM] = { + .effect = EFFECT_SANDSTORM, + .power = 0, + .type = TYPE_ROCK, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_GIGA_DRAIN] = { + .effect = EFFECT_ABSORB, + .power = 60, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_ENDURE] = { + .effect = EFFECT_ENDURE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 3, + .flags = 0, + }, + + [MOVE_CHARM] = { + .effect = EFFECT_ATTACK_DOWN_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_ROLLOUT] = { + .effect = EFFECT_ROLLOUT, + .power = 30, + .type = TYPE_ROCK, + .accuracy = 90, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_FALSE_SWIPE] = { + .effect = EFFECT_FALSE_SWIPE, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SWAGGER] = { + .effect = EFFECT_SWAGGER, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_MILK_DRINK] = { + .effect = EFFECT_SOFTBOILED, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SPARK] = { + .effect = EFFECT_PARALYZE_HIT, + .power = 65, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_FURY_CUTTER] = { + .effect = EFFECT_FURY_CUTTER, + .power = 10, + .type = TYPE_BUG, + .accuracy = 95, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_STEEL_WING] = { + .effect = EFFECT_DEFENSE_UP_HIT, + .power = 70, + .type = TYPE_STEEL, + .accuracy = 90, + .pp = 25, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_MEAN_LOOK] = { + .effect = EFFECT_MEAN_LOOK, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_ATTRACT] = { + .effect = EFFECT_ATTRACT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SLEEP_TALK] = { + .effect = EFFECT_SLEEP_TALK, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SPECIAL, + .priority = 0, + .flags = 0, + }, + + [MOVE_HEAL_BELL] = { + .effect = EFFECT_HEAL_BELL, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_RETURN] = { + .effect = EFFECT_RETURN, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_PRESENT] = { + .effect = EFFECT_PRESENT, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FRUSTRATION] = { + .effect = EFFECT_FRUSTRATION, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SAFEGUARD] = { + .effect = EFFECT_SAFEGUARD, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 25, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_PAIN_SPLIT] = { + .effect = EFFECT_PAIN_SPLIT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SACRED_FIRE] = { + .effect = EFFECT_THAW_HIT, + .power = 100, + .type = TYPE_FIRE, + .accuracy = 95, + .pp = 5, + .secondaryEffectChance = 50, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_MAGNITUDE] = { + .effect = EFFECT_MAGNITUDE, + .power = 1, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_ALL_EXCEPT_USER, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_DYNAMIC_PUNCH] = { + .effect = EFFECT_CONFUSE_HIT, + .power = 100, + .type = TYPE_FIGHTING, + .accuracy = 50, + .pp = 5, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_MEGAHORN] = { + .effect = EFFECT_HIT, + .power = 120, + .type = TYPE_BUG, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_DRAGON_BREATH] = { + .effect = EFFECT_PARALYZE_HIT, + .power = 60, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_BATON_PASS] = { + .effect = EFFECT_BATON_PASS, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_ENCORE] = { + .effect = EFFECT_ENCORE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_PURSUIT] = { + .effect = EFFECT_PURSUIT, + .power = 40, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_RAPID_SPIN] = { + .effect = EFFECT_RAPID_SPIN, + .power = 20, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SWEET_SCENT] = { + .effect = EFFECT_EVASION_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_IRON_TAIL] = { + .effect = EFFECT_DEFENSE_DOWN_HIT, + .power = 100, + .type = TYPE_STEEL, + .accuracy = 75, + .pp = 15, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_METAL_CLAW] = { + .effect = EFFECT_ATTACK_UP_HIT, + .power = 50, + .type = TYPE_STEEL, + .accuracy = 95, + .pp = 35, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_VITAL_THROW] = { + .effect = EFFECT_VITAL_THROW, + .power = 70, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = -1, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_MORNING_SUN] = { + .effect = EFFECT_MORNING_SUN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_SYNTHESIS] = { + .effect = EFFECT_SYNTHESIS, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_MOONLIGHT] = { + .effect = EFFECT_MOONLIGHT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_HIDDEN_POWER] = { + .effect = EFFECT_HIDDEN_POWER, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_CROSS_CHOP] = { + .effect = EFFECT_HIGH_CRITICAL, + .power = 100, + .type = TYPE_FIGHTING, + .accuracy = 80, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_TWISTER] = { + .effect = EFFECT_TWISTER, + .power = 40, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 20, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_RAIN_DANCE] = { + .effect = EFFECT_RAIN_DANCE, + .power = 0, + .type = TYPE_WATER, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_SUNNY_DAY] = { + .effect = EFFECT_SUNNY_DAY, + .power = 0, + .type = TYPE_FIRE, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_CRUNCH] = { + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .power = 80, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 20, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_MIRROR_COAT] = { + .effect = EFFECT_MIRROR_COAT, + .power = 1, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SPECIAL, + .priority = -5, + .flags = F_MIRROR_MOVE_COMPATIBLE, + }, + + [MOVE_PSYCH_UP] = { + .effect = EFFECT_PSYCH_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_EXTREME_SPEED] = { + .effect = EFFECT_QUICK_ATTACK, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 1, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_ANCIENT_POWER] = { + .effect = EFFECT_ALL_STATS_UP_HIT, + .power = 60, + .type = TYPE_ROCK, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SHADOW_BALL] = { + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .power = 80, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 20, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FUTURE_SIGHT] = { + .effect = EFFECT_FUTURE_SIGHT, + .power = 80, + .type = TYPE_PSYCHIC, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = 0, + }, + + [MOVE_ROCK_SMASH] = { + .effect = EFFECT_DEFENSE_DOWN_HIT, + .power = 20, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 50, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_WHIRLPOOL] = { + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_WATER, + .accuracy = 70, + .pp = 15, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_BEAT_UP] = { + .effect = EFFECT_BEAT_UP, + .power = 10, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FAKE_OUT] = { + .effect = EFFECT_FAKE_OUT, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 1, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_UPROAR] = { + .effect = EFFECT_UPROAR, + .power = 50, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = TARGET_RANDOM, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_STOCKPILE] = { + .effect = EFFECT_STOCKPILE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_SPIT_UP] = { + .effect = EFFECT_SPIT_UP, + .power = 100, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SWALLOW] = { + .effect = EFFECT_SWALLOW, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_HEAT_WAVE] = { + .effect = EFFECT_BURN_HIT, + .power = 100, + .type = TYPE_FIRE, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 10, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_HAIL] = { + .effect = EFFECT_HAIL, + .power = 0, + .type = TYPE_ICE, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_PROTECT, + }, + + [MOVE_TORMENT] = { + .effect = EFFECT_TORMENT, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FLATTER] = { + .effect = EFFECT_FLATTER, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_WILL_O_WISP] = { + .effect = EFFECT_WILL_O_WISP, + .power = 0, + .type = TYPE_FIRE, + .accuracy = 75, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_MEMENTO] = { + .effect = EFFECT_MEMENTO, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FACADE] = { + .effect = EFFECT_FACADE, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_FOCUS_PUNCH] = { + .effect = EFFECT_FOCUS_PUNCH, + .power = 150, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = -3, + .flags = F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SMELLING_SALT] = { + .effect = EFFECT_SMELLINGSALT, + .power = 60, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_FOLLOW_ME] = { + .effect = EFFECT_FOLLOW_ME, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 3, + .flags = 0, + }, + + [MOVE_NATURE_POWER] = { + .effect = EFFECT_NATURE_POWER, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 95, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SPECIAL, + .priority = 0, + .flags = 0, + }, + + [MOVE_CHARGE] = { + .effect = EFFECT_CHARGE, + .power = 0, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_TAUNT] = { + .effect = EFFECT_TAUNT, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_PROTECT, + }, + + [MOVE_HELPING_HAND] = { + .effect = EFFECT_HELPING_HAND, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 5, + .flags = 0, + }, + + [MOVE_TRICK] = { + .effect = EFFECT_TRICK, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_ROLE_PLAY] = { + .effect = EFFECT_ROLE_PLAY, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = 0, + }, + + [MOVE_WISH] = { + .effect = EFFECT_WISH, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_PROTECT, + }, + + [MOVE_ASSIST] = { + .effect = EFFECT_ASSIST, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SPECIAL, + .priority = 0, + .flags = 0, + }, + + [MOVE_INGRAIN] = { + .effect = EFFECT_INGRAIN, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_SUPERPOWER] = { + .effect = EFFECT_SUPERPOWER, + .power = 120, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_MAGIC_COAT] = { + .effect = EFFECT_MAGIC_COAT, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SPECIAL, + .priority = 4, + .flags = 0, + }, + + [MOVE_RECYCLE] = { + .effect = EFFECT_RECYCLE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_REVENGE] = { + .effect = EFFECT_REVENGE, + .power = 60, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = -4, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_BRICK_BREAK] = { + .effect = EFFECT_BRICK_BREAK, + .power = 75, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_YAWN] = { + .effect = EFFECT_YAWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_KNOCK_OFF] = { + .effect = EFFECT_KNOCK_OFF, + .power = 20, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_ENDEAVOR] = { + .effect = EFFECT_ENDEAVOR, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_ERUPTION] = { + .effect = EFFECT_ERUPTION, + .power = 150, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SKILL_SWAP] = { + .effect = EFFECT_SKILL_SWAP, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_IMPRISON] = { + .effect = EFFECT_IMPRISON, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_PROTECT, + }, + + [MOVE_REFRESH] = { + .effect = EFFECT_REFRESH, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_GRUDGE] = { + .effect = EFFECT_GRUDGE, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SNATCH] = { + .effect = EFFECT_SNATCH, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SPECIAL, + .priority = 4, + .flags = F_MIRROR_MOVE_COMPATIBLE, + }, + + [MOVE_SECRET_POWER] = { + .effect = EFFECT_SECRET_POWER, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_DIVE] = { + .effect = EFFECT_FLY, + .power = 60, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_ARM_THRUST] = { + .effect = EFFECT_MULTI_HIT, + .power = 15, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_CAMOUFLAGE] = { + .effect = EFFECT_CAMOUFLAGE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_TAIL_GLOW] = { + .effect = EFFECT_SPECIAL_ATTACK_UP_2, + .power = 0, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_LUSTER_PURGE] = { + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .power = 70, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 50, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_MIST_BALL] = { + .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, + .power = 70, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 50, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_FEATHER_DANCE] = { + .effect = EFFECT_ATTACK_DOWN_2, + .power = 0, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_TEETER_DANCE] = { + .effect = EFFECT_TEETER_DANCE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_ALL_EXCEPT_USER, + .priority = 0, + .flags = F_AFFECTED_BY_PROTECT, + }, + + [MOVE_BLAZE_KICK] = { + .effect = EFFECT_BLAZE_KICK, + .power = 85, + .type = TYPE_FIRE, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_MUD_SPORT] = { + .effect = EFFECT_MUD_SPORT, + .power = 0, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_ICE_BALL] = { + .effect = EFFECT_ROLLOUT, + .power = 30, + .type = TYPE_ICE, + .accuracy = 90, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_NEEDLE_ARM] = { + .effect = EFFECT_FLINCH_HIT_2, + .power = 60, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SLACK_OFF] = { + .effect = EFFECT_RESTORE_HP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_HYPER_VOICE] = { + .effect = EFFECT_HIT, + .power = 90, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_POISON_FANG] = { + .effect = EFFECT_POISON_FANG, + .power = 50, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_CRUSH_CLAW] = { + .effect = EFFECT_DEFENSE_DOWN_HIT, + .power = 75, + .type = TYPE_NORMAL, + .accuracy = 95, + .pp = 10, + .secondaryEffectChance = 50, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_BLAST_BURN] = { + .effect = EFFECT_RECHARGE, + .power = 150, + .type = TYPE_FIRE, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_HYDRO_CANNON] = { + .effect = EFFECT_RECHARGE, + .power = 150, + .type = TYPE_WATER, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_METEOR_MASH] = { + .effect = EFFECT_ATTACK_UP_HIT, + .power = 100, + .type = TYPE_STEEL, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 20, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_ASTONISH] = { + .effect = EFFECT_FLINCH_HIT_2, + .power = 30, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_WEATHER_BALL] = { + .effect = EFFECT_WEATHER_BALL, + .power = 50, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_AROMATHERAPY] = { + .effect = EFFECT_HEAL_BELL, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_FAKE_TEARS] = { + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_2, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_AIR_CUTTER] = { + .effect = EFFECT_HIGH_CRITICAL, + .power = 55, + .type = TYPE_FLYING, + .accuracy = 95, + .pp = 25, + .secondaryEffectChance = 0, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_OVERHEAT] = { + .effect = EFFECT_OVERHEAT, + .power = 140, + .type = TYPE_FIRE, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_ODOR_SLEUTH] = { + .effect = EFFECT_FORESIGHT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_ROCK_TOMB] = { + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 50, + .type = TYPE_ROCK, + .accuracy = 80, + .pp = 10, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SILVER_WIND] = { + .effect = EFFECT_ALL_STATS_UP_HIT, + .power = 60, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_METAL_SOUND] = { + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_2, + .power = 0, + .type = TYPE_STEEL, + .accuracy = 85, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_GRASS_WHISTLE] = { + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 55, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_TICKLE] = { + .effect = EFFECT_TICKLE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_COSMIC_POWER] = { + .effect = EFFECT_COSMIC_POWER, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_WATER_SPOUT] = { + .effect = EFFECT_ERUPTION, + .power = 150, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SIGNAL_BEAM] = { + .effect = EFFECT_CONFUSE_HIT, + .power = 75, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SHADOW_PUNCH] = { + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_GHOST, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_EXTRASENSORY] = { + .effect = EFFECT_FLINCH_HIT_2, + .power = 80, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SKY_UPPERCUT] = { + .effect = EFFECT_SKY_UPPERCUT, + .power = 85, + .type = TYPE_FIGHTING, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_SAND_TOMB] = { + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_GROUND, + .accuracy = 70, + .pp = 15, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SHEER_COLD] = { + .effect = EFFECT_OHKO, + .power = 1, + .type = TYPE_ICE, + .accuracy = 30, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_MUDDY_WATER] = { + .effect = EFFECT_ACCURACY_DOWN_HIT, + .power = 95, + .type = TYPE_WATER, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 30, + .target = TARGET_BOTH_ENEMIES, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_BULLET_SEED] = { + .effect = EFFECT_MULTI_HIT, + .power = 10, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_AERIAL_ACE] = { + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_FLYING, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_ICICLE_SPEAR] = { + .effect = EFFECT_MULTI_HIT, + .power = 10, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_IRON_DEFENSE] = { + .effect = EFFECT_DEFENSE_UP_2, + .power = 0, + .type = TYPE_STEEL, + .accuracy = 0, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_BLOCK] = { + .effect = EFFECT_MEAN_LOOK, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_MAGIC_COAT | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_HOWL] = { + .effect = EFFECT_ATTACK_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_DRAGON_CLAW] = { + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_FRENZY_PLANT] = { + .effect = EFFECT_RECHARGE, + .power = 150, + .type = TYPE_GRASS, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_BULK_UP] = { + .effect = EFFECT_BULK_UP, + .power = 0, + .type = TYPE_FIGHTING, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_BOUNCE] = { + .effect = EFFECT_FLY, + .power = 85, + .type = TYPE_FLYING, + .accuracy = 85, + .pp = 5, + .secondaryEffectChance = 30, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_MUD_SHOT] = { + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 55, + .type = TYPE_GROUND, + .accuracy = 95, + .pp = 15, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_POISON_TAIL] = { + .effect = EFFECT_POISON_TAIL, + .power = 50, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_COVET] = { + .effect = EFFECT_THIEF, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_VOLT_TACKLE] = { + .effect = EFFECT_DOUBLE_EDGE, + .power = 120, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_MAGICAL_LEAF] = { + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_WATER_SPORT] = { + .effect = EFFECT_WATER_SPORT, + .power = 0, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_CALM_MIND] = { + .effect = EFFECT_CALM_MIND, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_LEAF_BLADE] = { + .effect = EFFECT_HIGH_CRITICAL, + .power = 70, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT | F_MAKES_CONTACT, + }, + + [MOVE_DRAGON_DANCE] = { + .effect = EFFECT_DRAGON_DANCE, + .power = 0, + .type = TYPE_DRAGON, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_USER, + .priority = 0, + .flags = F_AFFECTED_BY_SNATCH, + }, + + [MOVE_ROCK_BLAST] = { + .effect = EFFECT_MULTI_HIT, + .power = 25, + .type = TYPE_ROCK, + .accuracy = 80, + .pp = 10, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_SHOCK_WAVE] = { + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_ELECTRIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_WATER_PULSE] = { + .effect = EFFECT_CONFUSE_HIT, + .power = 60, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 20, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + + [MOVE_DOOM_DESIRE] = { + .effect = EFFECT_FUTURE_SIGHT, + .power = 120, + .type = TYPE_STEEL, + .accuracy = 85, + .pp = 5, + .secondaryEffectChance = 0, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = 0, + }, + + [MOVE_PSYCHO_BOOST] = { + .effect = EFFECT_OVERHEAT, + .power = 140, + .type = TYPE_PSYCHIC, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 100, + .target = TARGET_SELECTED_POKEMON, + .priority = 0, + .flags = F_AFFECTED_BY_KINGS_ROCK | F_MIRROR_MOVE_COMPATIBLE | F_AFFECTED_BY_PROTECT, + }, + +}; diff --git a/src/pokemon_3.c b/src/pokemon_3.c index ac739728e..abf1ef9c6 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -460,13 +460,13 @@ u16 HoennToNationalOrder(u16 hoennNum) u16 SpeciesToCryId(u16 species) { - if (species <= 250) + if (species < SPECIES_OLD_UNOWN_B - 1) return species; - if (species < 276) - return 200; + if (species <= SPECIES_OLD_UNOWN_Z - 1) + return SPECIES_UNOWN - 1; - return gSpeciesIdToCryId[species - 276]; + return gSpeciesIdToCryId[species - ((SPECIES_OLD_UNOWN_Z + 1) - 1)]; } void unref_sub_803F938(u16 species, u32 personality, u8 *dest) |