summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTING.md6
-rw-r--r--data/battle_moves.s3913
-rw-r--r--include/battle.h4
-rw-r--r--include/macros/event.inc4
-rw-r--r--include/pokemon.h6
-rw-r--r--ld_script.txt2
-rw-r--r--src/battle/battle_4.c16
-rw-r--r--src/battle/battle_interface.c4
-rw-r--r--src/battle/battle_util.c24
-rw-r--r--src/battle/calculate_base_damage.c6
-rw-r--r--src/data/battle_moves.c4268
-rw-r--r--src/pokemon_3.c8
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)