pokeemmo/src/data/moves_info.h
Hedara bdd7c5bfa8 Merge branch 'master' into master-merge
Conflicts:
	src/contest_painting.c
2025-06-09 23:27:18 +02:00

22855 lines
749 KiB
C

#include "battle_dynamax.h"
#include "battle_anim_scripts.h"
#include "constants/battle.h"
#include "constants/battle_move_effects.h"
#include "constants/battle_script_commands.h"
#include "constants/battle_string_ids.h"
#include "constants/battle_z_move_effects.h"
#include "constants/hold_effects.h"
#include "constants/moves.h"
#include "constants/contest.h"
// The Gen. 4+ contest data comes from urpg's contest movedex.
#if B_BINDING_TURNS >= GEN_5
#define BINDING_TURNS "4 or 5"
#else
#define BINDING_TURNS "2 to 5"
#endif
// Shared Move Description entries
const u8 gNotDoneYetDescription[] = _(
"This move can't be used. Its\n"
"effect is in development.");
static const u8 sNullDescription[] = _("");
static const u8 sMegaDrainDescription[] = _(
"An attack that absorbs\n"
"half the damage inflicted.");
#if B_SKIP_RECHARGE != GEN_1
static const u8 sHyperBeamDescription[] = _(
"Powerful, but leaves the\n"
"user immobile the next turn.");
#else
static const u8 sHyperBeamDescription[] = _(
"Leaves the user immobile\n"
"if target is not KO'd.");
#endif
static const u8 sRevengeDescription[] = _(
"An attack that moves last\n"
"and gains power if hit.");
static const u8 sPluckDescription[] = _(
"Eats the foe's held Berry\n"
"gaining its effect.");
static const u8 sHealingWishDescription[] = _(
"The user faints to heal up\n"
"the recipient.");
static const u8 sWringOutDescription[] = _(
"The higher the foe's HP\n"
"the more damage caused.");
static const u8 sUTurnDescription[] = _(
"Does damage then switches\n"
"out the user.");
static const u8 sStormThrowDescription[] = _(
"This attack always results\n"
"in a critical hit.");
static const u8 sCircleThrowDescription[] = _(
"Knocks foe away to switch\n"
"it out or end wild battle.");
static const u8 sChipAwayDescription[] = _(
"Strikes through the foe's\n"
"stat changes.");
static const u8 sHeavySlamDescription[] = _(
"Does more damage if the\n"
"user outweighs the foe.");
static const u8 sPsyshockDescription[] = _(
"Attacks with a psychic wave\n"
"that does physical damage.");
static const u8 sLavaPlumeDescription[] = _(
"Scarlet flames torch\n"
"everything around the user.");
static const u8 sShadowForceDescription[] = _(
"Vanishes on the first turn\n"
"then strikes the next turn.");
static const u8 sFalseSwipeDescription[] = _(
"An attack that leaves the\n"
"foe with at least 1 HP.");
static const u8 sDrainingKissDescription[] = _(
"An attack that absorbs over\n"
"half the damage inflicted.");
static const u8 sCloseCombatDescription[] = _(
"A strong attack but lowers\n"
"the defensive stats.");
static const u8 sHyperspaceHoleDescription[] = _(
"Uses a warp hole to attack.\n"
"Can't be evaded.");
static const u8 sSuckerPunchDescription[] = _(
"Strikes first if the foe\n"
"is preparing an attack.");
static const u8 sFeintDescription[] = _(
"An attack that hits foes\n"
"using moves like Protect.");
static const u8 sProtectDescription[] = _(
"Evades attack, but may fail\n"
"if used in succession.");
static const u8 sGMaxOneBlowDescription[] = _(
"G-max Urshifu attack.\n"
"Ignores Max Guard.");
const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL] =
{
[MOVE_NONE] =
{
.name = COMPOUND_STRING("-"),
.description = COMPOUND_STRING(""),
.effect = EFFECT_HIT,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.metronomeBanned = TRUE,
.mirrorMoveBanned = TRUE,
.sketchBanned = TRUE,
.assistBanned = TRUE,
.battleAnimScript = gBattleAnimMove_None,
},
[MOVE_POUND] =
{
.name = COMPOUND_STRING("Pound"),
.description = COMPOUND_STRING(
"Pounds the foe with\n"
"forelegs or tail."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 35,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ignoresKingsRock = B_UPDATED_MOVE_FLAGS == GEN_4,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_POUND,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Pound,
},
[MOVE_KARATE_CHOP] =
{
.name = COMPOUND_STRING("Karate Chop"),
.description = COMPOUND_STRING(
"A chopping attack with a\n"
"high critical-hit ratio."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_FIGHTING,
.accuracy = 100,
.criticalHitStage = 1,
.pp = 25,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY},
.battleAnimScript = gBattleAnimMove_KarateChop,
.validApprenticeMove = TRUE,
},
[MOVE_DOUBLE_SLAP] =
{
.name = COMPOUND_STRING("Double Slap"),
.description = COMPOUND_STRING(
"Repeatedly slaps the foe\n"
"2 to 5 times."),
.effect = EFFECT_MULTI_HIT,
.power = 15,
.type = TYPE_NORMAL,
.accuracy = 85,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_POUND},
.battleAnimScript = gBattleAnimMove_DoubleSlap,
.validApprenticeMove = TRUE,
},
[MOVE_COMET_PUNCH] =
{
.name = COMPOUND_STRING("Comet Punch"),
.description = COMPOUND_STRING(
"Repeatedly punches the foe\n"
"2 to 5 times."),
.effect = EFFECT_MULTI_HIT,
.power = 18,
.type = TYPE_NORMAL,
.accuracy = 85,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_CometPunch,
},
[MOVE_MEGA_PUNCH] =
{
.name = COMPOUND_STRING("Mega Punch"),
.description = COMPOUND_STRING(
"A strong punch thrown with\n"
"incredible power."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_NORMAL,
.accuracy = 85,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER},
.battleAnimScript = gBattleAnimMove_MegaPunch,
.validApprenticeMove = TRUE,
},
[MOVE_PAY_DAY] =
{
.name = COMPOUND_STRING("Pay Day"),
.description = COMPOUND_STRING(
"Throws coins at the foe.\n"
"Money is recovered after."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PAYDAY,
}),
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PayDay,
},
[MOVE_FIRE_PUNCH] =
{
.name = COMPOUND_STRING("Fire Punch"),
.description = COMPOUND_STRING(
"A fiery punch that may burn\n"
"the foe."),
.effect = EFFECT_HIT,
.power = 75,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_FIRE_PUNCH,
.contestComboMoves = {COMBO_STARTER_ICE_PUNCH, COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_THUNDER_PUNCH},
.battleAnimScript = gBattleAnimMove_FirePunch,
.validApprenticeMove = TRUE,
},
[MOVE_ICE_PUNCH] =
{
.name = COMPOUND_STRING("Ice Punch"),
.description = COMPOUND_STRING(
"An icy punch that may\n"
#if B_USE_FROSTBITE == TRUE
"leave the foe with frostbite."),
#else
"freeze the foe."),
#endif
.effect = EFFECT_HIT,
.power = 75,
.type = TYPE_ICE,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_ICE_PUNCH,
.contestComboMoves = {COMBO_STARTER_FIRE_PUNCH, COMBO_STARTER_THUNDER_PUNCH},
.battleAnimScript = gBattleAnimMove_IcePunch,
.validApprenticeMove = TRUE,
},
[MOVE_THUNDER_PUNCH] =
{
.name = COMPOUND_STRING("Thunder Punch"),
.description = COMPOUND_STRING(
"An electrified punch that\n"
"may paralyze the foe."),
.effect = EFFECT_HIT,
.power = 75,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = COMBO_STARTER_THUNDER_PUNCH,
.contestComboMoves = {COMBO_STARTER_CHARGE, COMBO_STARTER_FIRE_PUNCH, COMBO_STARTER_ICE_PUNCH},
.battleAnimScript = gBattleAnimMove_ThunderPunch,
.validApprenticeMove = TRUE,
},
[MOVE_SCRATCH] =
{
.name = COMPOUND_STRING("Scratch"),
.description = COMPOUND_STRING(
"Scratches the foe with\n"
"sharp claws."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 35,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_SCRATCH,
.contestComboMoves = {COMBO_STARTER_LEER},
.battleAnimScript = gBattleAnimMove_Scratch,
},
[MOVE_VISE_GRIP] =
{
.name = COMPOUND_STRING("Vise Grip"),
.description = COMPOUND_STRING(
"Grips the foe with large and\n"
"powerful pincers."),
.effect = EFFECT_HIT,
.power = 55,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_VICE_GRIP,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ViseGrip,
},
[MOVE_GUILLOTINE] =
{
.name = COMPOUND_STRING("Guillotine"),
.description = COMPOUND_STRING(
"A powerful pincer attack\n"
"that KOs if it hits."),
.effect = EFFECT_OHKO,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 30,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_VICE_GRIP},
.battleAnimScript = gBattleAnimMove_Guillotine,
.validApprenticeMove = TRUE,
},
[MOVE_RAZOR_WIND] =
{
.name = COMPOUND_STRING("Razor Wind"),
.description = COMPOUND_STRING(
"A 2-turn move with a high\n"
"critical-hit ratio."),
.effect = EFFECT_TWO_TURNS_ATTACK,
.power = 80,
.type = TYPE_NORMAL,
.accuracy = 100,
.criticalHitStage = 1,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.windMove = B_EXTRAPOLATED_MOVE_FLAGS,
.argument.twoTurnAttack = { .stringId = STRINGID_PKMNWHIPPEDWHIRLWIND },
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RazorWind,
},
[MOVE_SWORDS_DANCE] =
{
.name = COMPOUND_STRING("Swords Dance"),
.description = COMPOUND_STRING(
"A fighting dance that\n"
"sharply raises Attack."),
.effect = EFFECT_ATTACK_UP_2,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 20 : 30,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.danceMove = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_SWORDS_DANCE,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SwordsDance,
.validApprenticeMove = TRUE,
},
[MOVE_CUT] =
{
.name = COMPOUND_STRING("Cut"),
.description = COMPOUND_STRING(
"Cuts the foe with sharp\n"
"scythes, claws, etc."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_NORMAL,
.accuracy = 95,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SWORDS_DANCE},
.battleAnimScript = gBattleAnimMove_Cut,
},
[MOVE_GUST] =
{
.name = COMPOUND_STRING("Gust"),
.description = COMPOUND_STRING(
"Strikes the foe with a gust\n"
"of wind whipped up by wings."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_FLYING,
.accuracy = 100,
.pp = 35,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_4) || (B_UPDATED_MOVE_FLAGS < GEN_3),
.damagesAirborneDoubleDamage = TRUE,
.windMove = TRUE,
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Gust,
},
[MOVE_WING_ATTACK] =
{
.name = COMPOUND_STRING("Wing Attack"),
.description = COMPOUND_STRING(
"Strikes the foe with wings\n"
"spread wide."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_FLYING,
.accuracy = 100,
.pp = 35,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_WingAttack,
},
[MOVE_WHIRLWIND] =
{
.name = COMPOUND_STRING("Whirlwind"),
.description = COMPOUND_STRING(
"Blows away the foe, switches\n"
"it out or ends wild battle."),
.effect = EFFECT_ROAR,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_6 ? 0 : 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = -6,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.windMove = TRUE,
.ignoresProtect = B_UPDATED_MOVE_FLAGS >= GEN_6,
.ignoresSubstitute = TRUE,
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Whirlwind,
.validApprenticeMove = TRUE,
},
[MOVE_FLY] =
{
.name = COMPOUND_STRING("Fly"),
.description = COMPOUND_STRING(
"Flies up on the first turn,\n"
"then strikes the next turn."),
.effect = EFFECT_SEMI_INVULNERABLE,
.power = B_UPDATED_MOVE_DATA >= GEN_4 ? 90 : 70,
.type = TYPE_FLYING,
.accuracy = 95,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.gravityBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.argument.twoTurnAttack = { .stringId = STRINGID_PKMNFLEWHIGH, .status = COMPRESS_BITS(STATUS3_ON_AIR) },
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Fly,
.validApprenticeMove = TRUE,
},
[MOVE_BIND] =
{
.name = COMPOUND_STRING("Bind"),
.description = COMPOUND_STRING(
"Binds and squeezes the foe\n"
"for "BINDING_TURNS" turns."),
.effect = EFFECT_HIT,
.power = 15,
.type = TYPE_NORMAL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 85 : 75,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_WRAP,
}),
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_VICE_GRIP},
.battleAnimScript = gBattleAnimMove_Bind,
.validApprenticeMove = TRUE,
},
[MOVE_SLAM] =
{
.name = COMPOUND_STRING("Slam"),
.description = COMPOUND_STRING(
"Slams the foe with a long\n"
"tail, vine, etc."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_NORMAL,
.accuracy = 75,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_POUND},
.battleAnimScript = gBattleAnimMove_Slam,
.validApprenticeMove = TRUE,
},
[MOVE_VINE_WHIP] =
{
.name = COMPOUND_STRING("Vine Whip"),
.description = COMPOUND_STRING(
"Strikes the foe with\n"
"slender, whiplike vines."),
#if B_UPDATED_MOVE_DATA >= GEN_6
.pp = 25,
#elif B_UPDATED_MOVE_DATA >= GEN_4
.pp = 15,
#else
.pp = 10,
#endif
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 45 : 35,
.type = TYPE_GRASS,
.accuracy = 100,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_GROWTH},
.battleAnimScript = gBattleAnimMove_VineWhip,
},
[MOVE_STOMP] =
{
.name = COMPOUND_STRING("Stomp"),
.description = COMPOUND_STRING(
"Stomps the enemy with a big\n"
"foot. May cause flinching."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.minimizeDoubleDamage = TRUE,
.skyBattleBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_LEER},
.battleAnimScript = gBattleAnimMove_Stomp,
.validApprenticeMove = TRUE,
},
[MOVE_DOUBLE_KICK] =
{
.name = COMPOUND_STRING("Double Kick"),
.description = COMPOUND_STRING(
"A double-kicking attack\n"
"that strikes the foe twice."),
.effect = EFFECT_HIT,
.power = 30,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.strikeCount = 2,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DoubleKick,
.validApprenticeMove = TRUE,
},
[MOVE_MEGA_KICK] =
{
.name = COMPOUND_STRING("Mega Kick"),
.description = COMPOUND_STRING(
"An extremely powerful kick\n"
"with intense force."),
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_NORMAL,
.accuracy = 75,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER},
.battleAnimScript = gBattleAnimMove_MegaKick,
.validApprenticeMove = TRUE,
},
[MOVE_JUMP_KICK] =
{
.name = COMPOUND_STRING("Jump Kick"),
.description = COMPOUND_STRING(
"A strong jumping kick. May\n"
"miss and hurt the kicker."),
#if B_UPDATED_MOVE_DATA >= GEN_5
.power = 100,
#elif B_UPDATED_MOVE_DATA >= GEN_4
.power = 85,
#else
.power = 70,
#endif
.effect = EFFECT_RECOIL_IF_MISS,
.type = TYPE_FIGHTING,
.accuracy = 95,
.pp = B_UPDATED_MOVE_DATA >= GEN_5 ? 10 : 25,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.gravityBanned = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_MIND_READER},
.battleAnimScript = gBattleAnimMove_JumpKick,
.validApprenticeMove = TRUE,
},
[MOVE_ROLLING_KICK] =
{
.name = COMPOUND_STRING("Rolling Kick"),
.description = COMPOUND_STRING(
"A fast kick delivered from\n"
"a rapid spin. May flinch."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_FIGHTING,
.accuracy = 85,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RollingKick,
.validApprenticeMove = TRUE,
},
[MOVE_SAND_ATTACK] =
{
.name = COMPOUND_STRING("Sand Attack"),
.description = COMPOUND_STRING(
"Reduces the foe's accuracy\n"
"by hurling sand in its face."),
.effect = EFFECT_ACCURACY_DOWN,
.power = 0,
.type = TYPE_GROUND,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_EVSN_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_SAND_ATTACK,
.contestComboMoves = {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_SANDSTORM},
.battleAnimScript = gBattleAnimMove_SandAttack,
.validApprenticeMove = TRUE,
},
[MOVE_HEADBUTT] =
{
.name = COMPOUND_STRING("Headbutt"),
.description = COMPOUND_STRING(
"A ramming attack that may\n"
"cause flinching."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY},
.battleAnimScript = gBattleAnimMove_Headbutt,
.validApprenticeMove = TRUE,
},
[MOVE_HORN_ATTACK] =
{
.name = COMPOUND_STRING("Horn Attack"),
.description = COMPOUND_STRING(
"Jabs the foe with sharp\n"
"horns."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 25,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = COMBO_STARTER_HORN_ATTACK,
.contestComboMoves = {COMBO_STARTER_LEER},
.battleAnimScript = gBattleAnimMove_HornAttack,
},
[MOVE_FURY_ATTACK] =
{
.name = COMPOUND_STRING("Fury Attack"),
.description = COMPOUND_STRING(
"Jabs the foe 2 to 5 times\n"
"with sharp horns, etc."),
.effect = EFFECT_MULTI_HIT,
.power = 15,
.type = TYPE_NORMAL,
.accuracy = 85,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_HORN_ATTACK, COMBO_STARTER_PECK},
.battleAnimScript = gBattleAnimMove_FuryAttack,
},
[MOVE_HORN_DRILL] =
{
.name = COMPOUND_STRING("Horn Drill"),
.description = COMPOUND_STRING(
"A one-hit KO attack that\n"
"uses a horn like a drill."),
.effect = EFFECT_OHKO,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 30,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_HORN_ATTACK},
.battleAnimScript = gBattleAnimMove_HornDrill,
.validApprenticeMove = TRUE,
},
[MOVE_TACKLE] =
{
.name = COMPOUND_STRING("Tackle"),
.description = COMPOUND_STRING(
"Charges the foe with a full-\n"
"body tackle."),
#if B_UPDATED_MOVE_DATA >= GEN_7
.power = 40,
#elif B_UPDATED_MOVE_DATA >= GEN_5
.power = 50,
#else
.power = 35,
#endif
.effect = EFFECT_HIT,
.type = TYPE_NORMAL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 100 : 95,
.pp = 35,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_HARDEN, COMBO_STARTER_LEER},
.battleAnimScript = gBattleAnimMove_Tackle,
},
[MOVE_BODY_SLAM] =
{
.name = COMPOUND_STRING("Body Slam"),
.description = COMPOUND_STRING(
"A full-body slam that may\n"
"cause paralysis."),
.effect = EFFECT_HIT,
.power = 85,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS >= GEN_6,
.skyBattleBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BodySlam,
.validApprenticeMove = TRUE,
},
[MOVE_WRAP] =
{
.name = COMPOUND_STRING("Wrap"),
.description = COMPOUND_STRING(
"Wraps and squeezes the foe\n"
BINDING_TURNS" times with vines, etc."),
.effect = EFFECT_HIT,
.power = 15,
.type = TYPE_NORMAL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 90 : 85,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_WRAP,
}),
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Wrap,
.validApprenticeMove = TRUE,
},
[MOVE_TAKE_DOWN] =
{
.name = COMPOUND_STRING("Take Down"),
.description = COMPOUND_STRING(
"A reckless charge attack\n"
"that also hurts the user."),
.effect = EFFECT_RECOIL,
.power = 90,
.type = TYPE_NORMAL,
.accuracy = 85,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .recoilPercentage = 25 },
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN},
.battleAnimScript = gBattleAnimMove_TakeDown,
.validApprenticeMove = TRUE,
},
[MOVE_THRASH] =
{
.name = COMPOUND_STRING("Thrash"),
.description = COMPOUND_STRING(
"A rampage of 2 to 3 turns\n"
"that confuses the user."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_5 ? 120 : 90,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_5 ? 10 : 20,
.target = MOVE_TARGET_RANDOM,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.instructBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_THRASH,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAGE},
.battleAnimScript = gBattleAnimMove_Thrash,
.validApprenticeMove = TRUE,
},
[MOVE_DOUBLE_EDGE] =
{
.name = COMPOUND_STRING("Double-Edge"),
.description = COMPOUND_STRING(
"A life-risking tackle that\n"
"also hurts the user."),
.effect = EFFECT_RECOIL,
.power = 120,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .recoilPercentage = 33 },
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN},
.battleAnimScript = gBattleAnimMove_DoubleEdge,
.validApprenticeMove = TRUE,
},
[MOVE_TAIL_WHIP] =
{
.name = COMPOUND_STRING("Tail Whip"),
.description = COMPOUND_STRING(
"Wags the tail to lower the\n"
"foe's Defense."),
.effect = EFFECT_DEFENSE_DOWN,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARM},
.battleAnimScript = gBattleAnimMove_TailWhip,
},
[MOVE_POISON_STING] =
{
.name = COMPOUND_STRING("Poison Sting"),
.description = COMPOUND_STRING(
"A toxic attack with barbs,\n"
"etc., that may poison."),
.effect = EFFECT_HIT,
.power = 15,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 35,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PoisonSting,
},
[MOVE_TWINEEDLE] =
{
.name = COMPOUND_STRING("Twineedle"),
.description = COMPOUND_STRING(
"Foreleg stingers jab foe\n"
"twice. May poison."),
.effect = EFFECT_HIT,
.power = 25,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4),
.strikeCount = 2,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Twineedle,
.validApprenticeMove = TRUE,
},
[MOVE_PIN_MISSILE] =
{
.name = COMPOUND_STRING("Pin Missile"),
.description = COMPOUND_STRING(
"Sharp pins are fired to\n"
"strike 2 to 5 times."),
.effect = EFFECT_MULTI_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 25 : 14,
.type = TYPE_BUG,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_6 ? 95 : 85,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PinMissile,
},
[MOVE_LEER] =
{
.name = COMPOUND_STRING("Leer"),
.description = COMPOUND_STRING(
"Frightens the foes with a\n"
"leer to lower Defense."),
.effect = EFFECT_DEFENSE_DOWN,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = COMBO_STARTER_LEER,
.contestComboMoves = {COMBO_STARTER_RAGE, COMBO_STARTER_SCARY_FACE},
.battleAnimScript = gBattleAnimMove_Leer,
},
[MOVE_BITE] =
{
.name = COMPOUND_STRING("Bite"),
.description = COMPOUND_STRING(
"Bites with vicious fangs.\n"
"May cause flinching."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 25,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.bitingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_LEER, COMBO_STARTER_SCARY_FACE},
.battleAnimScript = gBattleAnimMove_Bite,
.validApprenticeMove = TRUE,
},
[MOVE_GROWL] =
{
.name = COMPOUND_STRING("Growl"),
.description = COMPOUND_STRING(
"Growls cutely to reduce the\n"
"foe's Attack."),
.effect = EFFECT_ATTACK_DOWN,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 40,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.magicCoatAffected = TRUE,
.soundMove = TRUE,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARM},
.battleAnimScript = gBattleAnimMove_Growl,
},
[MOVE_ROAR] =
{
.name = COMPOUND_STRING("Roar"),
.description = COMPOUND_STRING(
"Switches the foe out\n"
"or ends wild battle."),
.effect = EFFECT_ROAR,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_6 ? 0 : 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = -6,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = B_UPDATED_MOVE_FLAGS >= GEN_6,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.soundMove = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Roar,
.validApprenticeMove = TRUE,
},
[MOVE_SING] =
{
.name = COMPOUND_STRING("Sing"),
.description = COMPOUND_STRING(
"A soothing song lulls the\n"
"foe into a deep slumber."),
.effect = EFFECT_NON_VOLATILE_STATUS,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 55,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .nonVolatileStatus = MOVE_EFFECT_SLEEP },
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.magicCoatAffected = TRUE,
.soundMove = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_SING,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Sing,
.validApprenticeMove = TRUE,
},
[MOVE_SUPERSONIC] =
{
.name = COMPOUND_STRING("Supersonic"),
.description = COMPOUND_STRING(
"Emits bizarre sound waves\n"
"that may confuse the foe."),
.effect = EFFECT_CONFUSE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 55,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.magicCoatAffected = TRUE,
.soundMove = TRUE,
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Supersonic,
.validApprenticeMove = TRUE,
},
[MOVE_SONIC_BOOM] =
{
.name = COMPOUND_STRING("Sonic Boom"),
.description = COMPOUND_STRING(
"Launches shock waves that\n"
"always inflict 20 HP damage."),
.effect = EFFECT_FIXED_HP_DAMAGE,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 90,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .fixedDamage = 20 },
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SonicBoom,
.validApprenticeMove = TRUE,
},
[MOVE_DISABLE] =
{
.name = COMPOUND_STRING("Disable"),
.description = COMPOUND_STRING(
#if B_DISABLE_TURNS >= GEN_5
"For 4 turns, prevents foe\n"
#elif B_DISABLE_TURNS == GEN_4
"For 4-7 turns, prevents foe\n"
#else
"For 2-5 turns, prevents foe\n"
#endif
"from using last used move."),
#if B_UPDATED_MOVE_DATA >= GEN_5
.accuracy = 100,
#elif B_UPDATED_MOVE_DATA == GEN_4
.accuracy = 80,
#else
.accuracy = 55,
#endif
.effect = EFFECT_DISABLE,
.power = 0,
.type = TYPE_NORMAL,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresSubstitute = TRUE,
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Disable,
.validApprenticeMove = TRUE,
},
[MOVE_ACID] =
{
.name = COMPOUND_STRING("Acid"),
.description = COMPOUND_STRING(
"Sprays a hide-melting acid.\n"
#if B_UPDATED_MOVE_DATA >= GEN_4
"May lower Sp. Def."),
#else
"May lower Defense."),
#endif
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = B_UPDATED_MOVE_DATA >= GEN_4 ? MOVE_EFFECT_SP_DEF_MINUS_1 : MOVE_EFFECT_DEF_MINUS_1,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Acid,
},
[MOVE_EMBER] =
{
.name = COMPOUND_STRING("Ember"),
.description = COMPOUND_STRING(
"A weak fire attack that may\n"
"inflict a burn."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 25,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_Ember,
},
[MOVE_FLAMETHROWER] =
{
.name = COMPOUND_STRING("Flamethrower"),
.description = COMPOUND_STRING(
"A powerful fire attack that\n"
"may inflict a burn."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 90 : 95,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_Flamethrower,
.validApprenticeMove = TRUE,
},
[MOVE_MIST] =
{
.name = COMPOUND_STRING("Mist"),
.description = COMPOUND_STRING(
"Creates a mist that stops\n"
"reduction of stats."),
.effect = EFFECT_MIST,
.power = 0,
.type = TYPE_ICE,
.accuracy = 0,
.pp = 30,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RECOVER_HP },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Mist,
.validApprenticeMove = TRUE,
},
[MOVE_WATER_GUN] =
{
.name = COMPOUND_STRING("Water Gun"),
.description = COMPOUND_STRING(
"Squirts water to attack\n"
"the foe."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 25,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_MUD_SPORT, COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_WATER_SPORT},
.battleAnimScript = gBattleAnimMove_WaterGun,
},
[MOVE_HYDRO_PUMP] =
{
.name = COMPOUND_STRING("Hydro Pump"),
.description = COMPOUND_STRING(
"Blasts water at high power\n"
"to strike the foe."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 110 : 120,
.type = TYPE_WATER,
.accuracy = 80,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_HydroPump,
.validApprenticeMove = TRUE,
},
[MOVE_SURF] =
{
.name = COMPOUND_STRING("Surf"),
.description = COMPOUND_STRING(
"Creates a huge wave, then\n"
#if B_UPDATED_MOVE_DATA >= GEN_4
"crashes it down on the field."),
#else
"crashes it down on the foes."),
#endif
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 90 : 95,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 15,
.target = B_UPDATED_MOVE_DATA >= GEN_4 ? MOVE_TARGET_FOES_AND_ALLY : MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.damagesUnderwater = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_SURF,
.contestComboMoves = {COMBO_STARTER_DIVE, COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_Surf,
.validApprenticeMove = TRUE,
},
[MOVE_ICE_BEAM] =
{
.name = COMPOUND_STRING("Ice Beam"),
.description = COMPOUND_STRING(
"Blasts the foe with an icy\n"
#if B_USE_FROSTBITE == TRUE
"beam. May cause frostbite."),
#else
"beam that may freeze it."),
#endif
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 90 : 95,
.type = TYPE_ICE,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
// The following effect is also relevant in battle_Pike.c
// If you cherry-pick this to use something other than the config, make sure to update it there too
.moveEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_HAIL},
.battleAnimScript = gBattleAnimMove_IceBeam,
.validApprenticeMove = TRUE,
},
[MOVE_BLIZZARD] =
{
.name = COMPOUND_STRING("Blizzard"),
.description = COMPOUND_STRING(
"Hits the foes with an icy\n"
#if B_USE_FROSTBITE == TRUE
"storm. May cause frostbite."),
#else
"storm that may freeze it."),
#endif
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 110 : 120,
.type = TYPE_ICE,
.accuracy = 70,
.pp = 5,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.windMove = TRUE,
.alwaysHitsInHailSnow = B_BLIZZARD_HAIL >= GEN_4,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_HAIL, COMBO_STARTER_POWDER_SNOW},
.battleAnimScript = gBattleAnimMove_Blizzard,
.validApprenticeMove = TRUE,
},
[MOVE_PSYBEAM] =
{
.name = COMPOUND_STRING("Psybeam"),
.description = COMPOUND_STRING(
"Fires a peculiar ray that\n"
"may confuse the foe."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSION,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CALM_MIND},
.battleAnimScript = gBattleAnimMove_Psybeam,
.validApprenticeMove = TRUE,
},
[MOVE_BUBBLE_BEAM] =
{
.name = COMPOUND_STRING("Bubble Beam"),
.description = COMPOUND_STRING(
"Forcefully sprays bubbles\n"
"that may lower Speed."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_BubbleBeam,
},
[MOVE_AURORA_BEAM] =
{
.name = COMPOUND_STRING("Aurora Beam"),
.description = COMPOUND_STRING(
"Fires a rainbow-colored\n"
"beam that may lower Attack."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_ICE,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ATK_MINUS_1,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_HAIL},
.battleAnimScript = gBattleAnimMove_AuroraBeam,
},
[MOVE_HYPER_BEAM] =
{
.name = COMPOUND_STRING("Hyper Beam"),
.description = sHyperBeamDescription,
.effect = EFFECT_HIT,
.power = 150,
.type = TYPE_NORMAL,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RECHARGE,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HyperBeam,
.validApprenticeMove = TRUE,
},
[MOVE_PECK] =
{
.name = COMPOUND_STRING("Peck"),
.description = COMPOUND_STRING(
"Attacks the foe with a\n"
"jabbing beak, etc."),
.effect = EFFECT_HIT,
.power = 35,
.type = TYPE_FLYING,
.accuracy = 100,
.pp = 35,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = COMBO_STARTER_PECK,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Peck,
},
[MOVE_DRILL_PECK] =
{
.name = COMPOUND_STRING("Drill Peck"),
.description = COMPOUND_STRING(
"A corkscrewing attack with\n"
"the beak acting as a drill."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_FLYING,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_PECK},
.battleAnimScript = gBattleAnimMove_DrillPeck,
.validApprenticeMove = TRUE,
},
[MOVE_SUBMISSION] =
{
.name = COMPOUND_STRING("Submission"),
.description = COMPOUND_STRING(
"A reckless body slam that\n"
"also hurts the user."),
.effect = EFFECT_RECOIL,
.power = 80,
.type = TYPE_FIGHTING,
.accuracy = 80,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 20 : 25,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.argument = { .recoilPercentage = 25 },
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_MIND_READER},
.battleAnimScript = gBattleAnimMove_Submission,
.validApprenticeMove = TRUE,
},
[MOVE_LOW_KICK] =
{
.name = COMPOUND_STRING("Low Kick"),
.description = COMPOUND_STRING(
"A kick that inflicts more\n"
"damage on heavier foes."),
.effect = EFFECT_LOW_KICK,
.power = 1,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_LowKick,
.validApprenticeMove = TRUE,
},
[MOVE_COUNTER] =
{
.name = COMPOUND_STRING("Counter"),
.description = COMPOUND_STRING(
"Retaliates any physical hit\n"
"with double the power."),
.effect = EFFECT_COUNTER,
.power = 1,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_DEPENDS,
.priority = -5,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4),
.meFirstBanned = TRUE,
.metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_2,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_TAUNT},
.battleAnimScript = gBattleAnimMove_Counter,
.validApprenticeMove = TRUE,
},
[MOVE_SEISMIC_TOSS] =
{
.name = COMPOUND_STRING("Seismic Toss"),
.description = COMPOUND_STRING(
"Inflicts damage identical\n"
"to the user's level."),
.effect = EFFECT_LEVEL_DAMAGE,
.power = 1,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FAKE_OUT},
.battleAnimScript = gBattleAnimMove_SeismicToss,
.validApprenticeMove = TRUE,
},
[MOVE_STRENGTH] =
{
.name = COMPOUND_STRING("Strength"),
.description = COMPOUND_STRING(
"Builds enormous power,\n"
"then slams the foe."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Strength,
.validApprenticeMove = TRUE,
},
[MOVE_ABSORB] =
{
.name = COMPOUND_STRING("Absorb"),
.description = COMPOUND_STRING(
"An attack that absorbs\n"
"half the damage inflicted."),
.effect = EFFECT_ABSORB,
.power = 20,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_4 ? 25 : 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .absorbPercentage = 50 },
.ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4),
.healingMove = B_HEAL_BLOCKING >= GEN_6,
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_GROWTH},
.battleAnimScript = gBattleAnimMove_Absorb,
},
[MOVE_MEGA_DRAIN] =
{
.name = COMPOUND_STRING("Mega Drain"),
.description = sMegaDrainDescription,
.effect = EFFECT_ABSORB,
.power = 40,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_4 ? 15 : 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .absorbPercentage = 50 },
.zMove = { .powerOverride = 120 },
.ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4),
.healingMove = B_HEAL_BLOCKING >= GEN_6,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_GROWTH},
.battleAnimScript = gBattleAnimMove_MegaDrain,
},
[MOVE_LEECH_SEED] =
{
.name = COMPOUND_STRING("Leech Seed"),
.description = COMPOUND_STRING(
"Plants a seed on the foe to\n"
"steal HP on every turn."),
.effect = EFFECT_LEECH_SEED,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_LEECH_SEED,
.contestComboMoves = {COMBO_STARTER_GROWTH, COMBO_STARTER_WORRY_SEED},
.battleAnimScript = gBattleAnimMove_LeechSeed,
.validApprenticeMove = TRUE,
},
[MOVE_GROWTH] =
{
.name = COMPOUND_STRING("Growth"),
.description = COMPOUND_STRING(
#if B_GROWTH_STAT_RAISE >= GEN_5
"Forces the body to grow,\n"
"raising Attack and Sp. Atk."),
#else
"Forces the body to grow\n"
"and heightens Sp. Atk."),
#endif
.effect = B_GROWTH_STAT_RAISE >= GEN_5 ? EFFECT_GROWTH : EFFECT_SPECIAL_ATTACK_UP,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 20 : 40,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_GROWTH,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Growth,
.validApprenticeMove = TRUE,
},
[MOVE_RAZOR_LEAF] =
{
.name = COMPOUND_STRING("Razor Leaf"),
.description = COMPOUND_STRING(
"Cuts enemies with leaves.\n"
"High critical-hit ratio."),
.effect = EFFECT_HIT,
.power = 55,
.type = TYPE_GRASS,
.accuracy = 95,
.criticalHitStage = 1,
.pp = 25,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.slicingMove = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_GROWTH},
.battleAnimScript = gBattleAnimMove_RazorLeaf,
.validApprenticeMove = TRUE,
},
[MOVE_SOLAR_BEAM] =
{
.name = COMPOUND_STRING("Solar Beam"),
.description = COMPOUND_STRING(
"Absorbs light in one turn,\n"
"then attacks next turn."),
.effect = EFFECT_SOLAR_BEAM,
.power = 120,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.argument.twoTurnAttack = { .stringId = STRINGID_PKMNTOOKSUNLIGHT, .status = B_WEATHER_SUN },
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_GROWTH, COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_SolarBeam,
.validApprenticeMove = TRUE,
},
[MOVE_POISON_POWDER] =
{
.name = COMPOUND_STRING("Poison Powder"),
.description = COMPOUND_STRING(
"Scatters a toxic powder\n"
"that may poison the foe."),
.effect = EFFECT_NON_VOLATILE_STATUS,
.power = 0,
.type = TYPE_POISON,
.accuracy = 75,
.pp = 35,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .nonVolatileStatus = MOVE_EFFECT_POISON },
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.magicCoatAffected = TRUE,
.powderMove = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SWEET_SCENT},
.battleAnimScript = gBattleAnimMove_PoisonPowder,
.validApprenticeMove = TRUE,
},
[MOVE_STUN_SPORE] =
{
.name = COMPOUND_STRING("Stun Spore"),
.description = COMPOUND_STRING(
"Scatters a powder that may\n"
"paralyze the foe."),
.effect = EFFECT_NON_VOLATILE_STATUS,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 75,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.magicCoatAffected = TRUE,
.argument = { .nonVolatileStatus = MOVE_EFFECT_PARALYSIS },
.powderMove = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SWEET_SCENT},
.battleAnimScript = gBattleAnimMove_StunSpore,
.validApprenticeMove = TRUE,
},
[MOVE_SLEEP_POWDER] =
{
.name = COMPOUND_STRING("Sleep Powder"),
.description = COMPOUND_STRING(
"Scatters a powder that may\n"
"cause the foe to sleep."),
.effect = EFFECT_NON_VOLATILE_STATUS,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 75,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .nonVolatileStatus = MOVE_EFFECT_SLEEP },
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.magicCoatAffected = TRUE,
.powderMove = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SWEET_SCENT},
.battleAnimScript = gBattleAnimMove_SleepPowder,
.validApprenticeMove = TRUE,
},
[MOVE_PETAL_DANCE] =
{
.name = COMPOUND_STRING("Petal Dance"),
.description = COMPOUND_STRING(
"A rampage of 2 to 3 turns\n"
"that confuses the user."),
#if B_UPDATED_MOVE_DATA >= GEN_5
.power = 120,
#elif B_UPDATED_MOVE_DATA == GEN_4
.power = 90,
#else
.power = 70,
#endif
.effect = EFFECT_HIT,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_5 ? 10 : 20,
.target = MOVE_TARGET_RANDOM,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.makesContact = TRUE,
.danceMove = TRUE,
.instructBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_THRASH,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_GROWTH},
.battleAnimScript = gBattleAnimMove_PetalDance,
.validApprenticeMove = TRUE,
},
[MOVE_STRING_SHOT] =
{
.name = COMPOUND_STRING("String Shot"),
.description = COMPOUND_STRING(
"Binds the foe with string\n"
"to reduce its Speed."),
.effect = B_UPDATED_MOVE_DATA >= GEN_6 ? EFFECT_SPEED_DOWN_2 : EFFECT_SPEED_DOWN,
.power = 0,
.type = TYPE_BUG,
.accuracy = 95,
.pp = 40,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_STRING_SHOT,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_StringShot,
},
[MOVE_DRAGON_RAGE] =
{
.name = COMPOUND_STRING("Dragon Rage"),
.description = COMPOUND_STRING(
"Launches shock waves that\n"
"always inflict 40 HP damage."),
.effect = EFFECT_FIXED_HP_DAMAGE,
.power = 1,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_4) || (B_UPDATED_MOVE_FLAGS < GEN_3),
.argument = { .fixedDamage = 40 },
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_LATER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = COMBO_STARTER_DRAGON_RAGE,
.contestComboMoves = {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE, COMBO_STARTER_DRAGON_RUSH, COMBO_STARTER_DRAGON_TAIL},
.battleAnimScript = gBattleAnimMove_DragonRage,
.validApprenticeMove = TRUE,
},
[MOVE_FIRE_SPIN] =
{
.name = COMPOUND_STRING("Fire Spin"),
.description = COMPOUND_STRING(
"Traps the foe in a ring of\n"
"fire for "BINDING_TURNS" turns."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_5 ? 35 : 15,
.type = TYPE_FIRE,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 85 : 70,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_WRAP,
}),
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_FireSpin,
.validApprenticeMove = TRUE,
},
[MOVE_THUNDER_SHOCK] =
{
.name = COMPOUND_STRING("Thunder Shock"),
.description = COMPOUND_STRING(
"An electrical attack that\n"
"may paralyze the foe."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARGE},
.battleAnimScript = gBattleAnimMove_ThunderShock,
},
[MOVE_THUNDERBOLT] =
{
.name = COMPOUND_STRING("Thunderbolt"),
.description = COMPOUND_STRING(
"A strong electrical attack\n"
"that may paralyze the foe."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 90 : 95,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARGE},
.battleAnimScript = gBattleAnimMove_Thunderbolt,
.validApprenticeMove = TRUE,
},
[MOVE_THUNDER_WAVE] =
{
.name = COMPOUND_STRING("Thunder Wave"),
.description = COMPOUND_STRING(
"A weak jolt of electricity\n"
"that paralyzes the foe."),
.effect = EFFECT_NON_VOLATILE_STATUS,
.power = 0,
.type = TYPE_ELECTRIC,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_7 ? 90 : 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .nonVolatileStatus = MOVE_EFFECT_PARALYSIS },
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARGE},
.battleAnimScript = gBattleAnimMove_ThunderWave,
.validApprenticeMove = TRUE,
},
[MOVE_THUNDER] =
{
.name = COMPOUND_STRING("Thunder"),
.description = COMPOUND_STRING(
"A lightning attack that may\n"
"cause paralysis."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 110 : 120,
.type = TYPE_ELECTRIC,
.accuracy = 70,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.damagesAirborne = TRUE,
.alwaysHitsInRain = TRUE,
.accuracy50InSun = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARGE, COMBO_STARTER_LOCK_ON, COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_Thunder,
.validApprenticeMove = TRUE,
},
[MOVE_ROCK_THROW] =
{
.name = COMPOUND_STRING("Rock Throw"),
.description = COMPOUND_STRING(
"Throws small rocks to\n"
"strike the foe."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_ROCK,
.accuracy = 90,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_ROCK_THROW,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RockThrow,
},
[MOVE_EARTHQUAKE] =
{
.name = COMPOUND_STRING("Earthquake"),
.description = COMPOUND_STRING(
"A powerful quake that\n"
"hits all other POKéMON."),
.effect = EFFECT_EARTHQUAKE,
.power = 100,
.type = TYPE_GROUND,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3,
.damagesUnderground = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_EARTHQUAKE,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Earthquake,
.validApprenticeMove = TRUE,
},
[MOVE_FISSURE] =
{
.name = COMPOUND_STRING("Fissure"),
.description = COMPOUND_STRING(
"A one-hit KO move that\n"
"drops the foe in a fissure."),
.effect = EFFECT_OHKO,
.power = 1,
.type = TYPE_GROUND,
.accuracy = 30,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.damagesUnderground = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_EARTHQUAKE},
.battleAnimScript = gBattleAnimMove_Fissure,
.validApprenticeMove = TRUE,
},
[MOVE_DIG] =
{
.name = COMPOUND_STRING("Dig"),
.description = COMPOUND_STRING(
"Digs underground the first\n"
"turn and strikes next turn."),
.effect = EFFECT_SEMI_INVULNERABLE,
.power = B_UPDATED_MOVE_DATA >= GEN_4 ? 80 : 60,
.type = TYPE_GROUND,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.skyBattleBanned = TRUE,
.argument.twoTurnAttack = { .stringId = STRINGID_PKMNDUGHOLE, .status = COMPRESS_BITS(STATUS3_UNDERGROUND) },
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Dig,
.validApprenticeMove = TRUE,
},
[MOVE_TOXIC] =
{
.name = COMPOUND_STRING("Toxic"),
.description = COMPOUND_STRING(
"Poisons the foe with an\n"
"intensifying toxin."),
.effect = EFFECT_NON_VOLATILE_STATUS,
.power = 0,
.type = TYPE_POISON,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 90 : 85,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .nonVolatileStatus = MOVE_EFFECT_TOXIC },
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_TOXIC,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Toxic,
.validApprenticeMove = TRUE,
},
[MOVE_CONFUSION] =
{
.name = COMPOUND_STRING("Confusion"),
.description = COMPOUND_STRING(
"A psychic attack that may\n"
"cause confusion."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 25,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSION,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_CONFUSION,
.contestComboMoves = {COMBO_STARTER_CALM_MIND, COMBO_STARTER_KINESIS, COMBO_STARTER_PSYCHIC},
.battleAnimScript = gBattleAnimMove_Confusion,
},
[MOVE_PSYCHIC] =
{
.name = COMPOUND_STRING("Psychic"),
.description = COMPOUND_STRING(
"A powerful psychic attack\n"
"that may lower Sp. Def."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_DEF_MINUS_1,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_PSYCHIC,
.contestComboMoves = {COMBO_STARTER_CALM_MIND, COMBO_STARTER_CONFUSION, COMBO_STARTER_KINESIS},
.battleAnimScript = gBattleAnimMove_Psychic,
.validApprenticeMove = TRUE,
},
[MOVE_HYPNOSIS] =
{
.name = COMPOUND_STRING("Hypnosis"),
.description = COMPOUND_STRING(
"A hypnotizing move that\n"
"may induce sleep."),
.effect = EFFECT_NON_VOLATILE_STATUS,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 60,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .nonVolatileStatus = MOVE_EFFECT_SLEEP },
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_HYPNOSIS,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Hypnosis,
.validApprenticeMove = TRUE,
},
[MOVE_MEDITATE] =
{
.name = COMPOUND_STRING("Meditate"),
.description = COMPOUND_STRING(
"Meditates in a peaceful\n"
"fashion to raise Attack."),
.effect = EFFECT_ATTACK_UP,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 40,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CALM_MIND},
.battleAnimScript = gBattleAnimMove_Meditate,
.validApprenticeMove = TRUE,
},
[MOVE_AGILITY] =
{
.name = COMPOUND_STRING("Agility"),
.description = COMPOUND_STRING(
"Relaxes the body to sharply\n"
"boost Speed."),
.effect = EFFECT_SPEED_UP_2,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 30,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_DOUBLE_TEAM},
.battleAnimScript = gBattleAnimMove_Agility,
.validApprenticeMove = TRUE,
},
[MOVE_QUICK_ATTACK] =
{
.name = COMPOUND_STRING("Quick Attack"),
.description = COMPOUND_STRING(
"An extremely fast attack\n"
"that always strikes first."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_DOUBLE_TEAM},
.battleAnimScript = gBattleAnimMove_QuickAttack,
.validApprenticeMove = TRUE,
},
[MOVE_RAGE] =
{
.name = COMPOUND_STRING("Rage"),
.description = COMPOUND_STRING(
"Raises the user's Attack\n"
"every time it is hit."),
.effect = EFFECT_RAGE,
.power = 20,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = COMBO_STARTER_RAGE,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Rage,
},
[MOVE_TELEPORT] =
{
.name = COMPOUND_STRING("Teleport"),
#if B_TELEPORT_BEHAVIOUR >= GEN_8
.description = COMPOUND_STRING(
"Switches the user out last.\n"
"Flees when used by wild {PKMN}.")
#else
.description = COMPOUND_STRING(
"A psychic move for fleeing\n"
"from battle instantly."),
#endif
.effect = EFFECT_TELEPORT,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = -6,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RECOVER_HP },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CONFUSION, COMBO_STARTER_DOUBLE_TEAM, COMBO_STARTER_KINESIS, COMBO_STARTER_PSYCHIC},
.battleAnimScript = gBattleAnimMove_Teleport,
},
[MOVE_NIGHT_SHADE] =
{
.name = COMPOUND_STRING("Night Shade"),
.description = COMPOUND_STRING(
"Inflicts damage identical\n"
"to the user's level."),
.effect = EFFECT_LEVEL_DAMAGE,
.power = 1,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_NightShade,
.validApprenticeMove = TRUE,
},
[MOVE_MIMIC] =
{
.name = COMPOUND_STRING("Mimic"),
.description = COMPOUND_STRING(
"Copies last move used by the\n"
"foe during one battle."),
.effect = EFFECT_MIMIC,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ACC_UP_1 },
.ignoresSubstitute = TRUE,
.mimicBanned = TRUE,
.metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_2,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Mimic,
.validApprenticeMove = TRUE,
},
[MOVE_SCREECH] =
{
.name = COMPOUND_STRING("Screech"),
.description = COMPOUND_STRING(
"Emits a screech to sharply\n"
"reduce the foe's Defense."),
.effect = EFFECT_DEFENSE_DOWN_2,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 85,
.pp = 40,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.magicCoatAffected = TRUE,
.soundMove = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Screech,
.validApprenticeMove = TRUE,
},
[MOVE_DOUBLE_TEAM] =
{
.name = COMPOUND_STRING("Double Team"),
.description = COMPOUND_STRING(
"Creates illusory copies to\n"
"raise evasiveness."),
.effect = EFFECT_EVASION_UP,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = COMBO_STARTER_DOUBLE_TEAM,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DoubleTeam,
.validApprenticeMove = TRUE,
},
[MOVE_RECOVER] =
{
.name = COMPOUND_STRING("Recover"),
.description = COMPOUND_STRING(
"Recovers up to half the\n"
"user's maximum HP."),
#if B_UPDATED_MOVE_DATA >= GEN_9
.pp = 5,
#elif B_UPDATED_MOVE_DATA >= GEN_4
.pp = 10,
#else
.pp = 20,
#endif
.effect = EFFECT_RESTORE_HP,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.healingMove = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Recover,
.validApprenticeMove = TRUE,
},
[MOVE_HARDEN] =
{
.name = COMPOUND_STRING("Harden"),
.description = COMPOUND_STRING(
"Stiffens the body's \n"
"muscles to raise Defense."),
.effect = EFFECT_DEFENSE_UP,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 30,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_HARDEN,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Harden,
.validApprenticeMove = TRUE,
},
[MOVE_MINIMIZE] =
{
.name = COMPOUND_STRING("Minimize"),
.description = COMPOUND_STRING(
"Minimizes the user's size to\n"
#if B_MINIMIZE_EVASION >= GEN_5
"sharply raise evasiveness."),
#else
"raise evasiveness."),
#endif
.effect = EFFECT_MINIMIZE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 10 : 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Minimize,
.validApprenticeMove = TRUE,
},
[MOVE_SMOKESCREEN] =
{
.name = COMPOUND_STRING("Smokescreen"),
.description = COMPOUND_STRING(
"Lowers the foe's accuracy\n"
"using smoke, ink, etc."),
.effect = EFFECT_ACCURACY_DOWN,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_EVSN_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SMOG},
.battleAnimScript = gBattleAnimMove_Smokescreen,
.validApprenticeMove = TRUE,
},
[MOVE_CONFUSE_RAY] =
{
.name = COMPOUND_STRING("Confuse Ray"),
.description = COMPOUND_STRING(
"A sinister ray that\n"
"confuses the foe."),
.effect = EFFECT_CONFUSE,
.power = 0,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ConfuseRay,
.validApprenticeMove = TRUE,
},
[MOVE_WITHDRAW] =
{
.name = COMPOUND_STRING("Withdraw"),
.description = COMPOUND_STRING(
"Withdraws the body into its\n"
"hard shell to raise Defense."),
.effect = EFFECT_DEFENSE_UP,
.power = 0,
.type = TYPE_WATER,
.accuracy = 0,
.pp = 40,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_Withdraw,
.validApprenticeMove = TRUE,
},
[MOVE_DEFENSE_CURL] =
{
.name = COMPOUND_STRING("Defense Curl"),
.description = COMPOUND_STRING(
"Curls up to conceal weak\n"
"spots and raise Defense."),
.effect = EFFECT_DEFENSE_CURL,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 40,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ACC_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_DEFENSE_CURL,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DefenseCurl,
.validApprenticeMove = TRUE,
},
[MOVE_BARRIER] =
{
.name = COMPOUND_STRING("Barrier"),
.description = COMPOUND_STRING(
"Creates a barrier that\n"
"sharply raises Defense."),
.effect = EFFECT_DEFENSE_UP_2,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 20 : 30,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Barrier,
.validApprenticeMove = TRUE,
},
[MOVE_LIGHT_SCREEN] =
{
.name = COMPOUND_STRING("Light Screen"),
.description = COMPOUND_STRING(
"Wall of light cuts special\n"
"damage for 5 turns."),
.effect = EFFECT_LIGHT_SCREEN,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 30,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CALM_MIND},
.battleAnimScript = gBattleAnimMove_LightScreen,
.validApprenticeMove = TRUE,
},
[MOVE_HAZE] =
{
.name = COMPOUND_STRING("Haze"),
.description = COMPOUND_STRING(
"Creates a black haze that\n"
"eliminates all stat changes."),
.effect = EFFECT_HAZE,
.power = 0,
.type = TYPE_ICE,
.accuracy = 0,
.pp = 30,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RECOVER_HP },
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_HAIL},
.battleAnimScript = gBattleAnimMove_Haze,
.validApprenticeMove = TRUE,
},
[MOVE_REFLECT] =
{
.name = COMPOUND_STRING("Reflect"),
.description = COMPOUND_STRING(
"Wall of light cuts physical\n"
"damage for 5 turns."),
.effect = EFFECT_REFLECT,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CALM_MIND},
.battleAnimScript = gBattleAnimMove_Reflect,
.validApprenticeMove = TRUE,
},
[MOVE_FOCUS_ENERGY] =
{
.name = COMPOUND_STRING("Focus Energy"),
.description = COMPOUND_STRING(
"Focuses power to raise the\n"
"critical-hit ratio."),
.effect = EFFECT_FOCUS_ENERGY,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 30,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ACC_UP_1 },
.argument = { .status = STATUS2_FOCUS_ENERGY },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = COMBO_STARTER_FOCUS_ENERGY,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FocusEnergy,
.validApprenticeMove = TRUE,
},
[MOVE_BIDE] =
{
.name = COMPOUND_STRING("Bide"),
.description = COMPOUND_STRING(
"Endures attack for 2\n"
"turns to retaliate double."),
.effect = EFFECT_BIDE,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_4 ? 0 : 100,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = B_UPDATED_MOVE_DATA >= GEN_4 ? 1 : 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Bide,
},
[MOVE_METRONOME] =
{
.name = COMPOUND_STRING("Metronome"),
.description = COMPOUND_STRING(
"Waggles a finger to use any\n"
"Pokémon move at random."),
.effect = EFFECT_METRONOME,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_DEPENDS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.mimicBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = B_UPDATED_MOVE_FLAGS >= GEN_3,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Metronome,
.validApprenticeMove = TRUE,
},
[MOVE_MIRROR_MOVE] =
{
.name = COMPOUND_STRING("Mirror Move"),
.description = COMPOUND_STRING(
"Counters the foe's attack\n"
"with the same move."),
.effect = EFFECT_MIRROR_MOVE,
.power = 0,
.type = TYPE_FLYING,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_DEPENDS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_2 },
.mimicBanned = TRUE,
.metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_4,
.copycatBanned = TRUE,
.sleepTalkBanned = B_UPDATED_MOVE_FLAGS >= GEN_3,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MirrorMove,
.validApprenticeMove = TRUE,
},
[MOVE_SELF_DESTRUCT] =
{
.name = COMPOUND_STRING("Self-Destruct"),
.description = COMPOUND_STRING(
"Inflicts severe damage but\n"
"makes the user faint."),
.effect = EFFECT_EXPLOSION,
.power = 200,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.parentalBondBanned = TRUE,
.contestEffect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SelfDestruct,
.validApprenticeMove = TRUE,
},
[MOVE_EGG_BOMB] =
{
.name = COMPOUND_STRING("Egg Bomb"),
.description = COMPOUND_STRING(
"An egg is forcibly hurled at\n"
"the foe."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_NORMAL,
.accuracy = 75,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ballisticMove = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SOFT_BOILED},
.battleAnimScript = gBattleAnimMove_EggBomb,
.validApprenticeMove = TRUE,
},
[MOVE_LICK] =
{
.name = COMPOUND_STRING("Lick"),
.description = COMPOUND_STRING(
"Licks with a long tongue to\n"
"injure. May also paralyze."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 30 : 20,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Lick,
.validApprenticeMove = TRUE,
},
[MOVE_SMOG] =
{
.name = COMPOUND_STRING("Smog"),
.description = COMPOUND_STRING(
"An exhaust-gas attack\n"
"that may also poison."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 30 : 20,
.type = TYPE_POISON,
.accuracy = 70,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON,
.chance = 40,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_SMOG,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Smog,
},
[MOVE_SLUDGE] =
{
.name = COMPOUND_STRING("Sludge"),
.description = COMPOUND_STRING(
"Sludge is hurled to inflict\n"
"damage. May also poison."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_SLUDGE,
.contestComboMoves = {COMBO_STARTER_SLUDGE_BOMB},
.battleAnimScript = gBattleAnimMove_Sludge,
},
[MOVE_BONE_CLUB] =
{
.name = COMPOUND_STRING("Bone Club"),
.description = COMPOUND_STRING(
"Clubs the foe with a bone.\n"
"May cause flinching."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_GROUND,
.accuracy = 85,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_BONE_CLUB,
.contestComboMoves = {COMBO_STARTER_BONEMERANG, COMBO_STARTER_BONE_RUSH, COMBO_STARTER_SHADOW_BONE},
.battleAnimScript = gBattleAnimMove_BoneClub,
},
[MOVE_FIRE_BLAST] =
{
.name = COMPOUND_STRING("Fire Blast"),
.description = COMPOUND_STRING(
"Incinerates everything it\n"
"strikes. May cause a burn."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 110 : 120,
.type = TYPE_FIRE,
.accuracy = 85,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_FireBlast,
.validApprenticeMove = TRUE,
},
[MOVE_WATERFALL] =
{
.name = COMPOUND_STRING("Waterfall"),
.description = COMPOUND_STRING(
"Charges with speed to climb\n"
"waterfalls. May flinch."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
#if B_UPDATED_MOVE_DATA >= GEN_4
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 20,
}),
#endif
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_Waterfall,
.validApprenticeMove = TRUE,
},
[MOVE_CLAMP] =
{
.name = COMPOUND_STRING("Clamp"),
.description = COMPOUND_STRING(
"Traps and squeezes the\n"
"foe for "BINDING_TURNS" turns."),
.effect = EFFECT_HIT,
.power = 35,
.type = TYPE_WATER,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 85 : 75,
.pp = B_UPDATED_MOVE_DATA >= GEN_5 ? 15 : 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_WRAP,
}),
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_Clamp,
.validApprenticeMove = TRUE,
},
[MOVE_SWIFT] =
{
.name = COMPOUND_STRING("Swift"),
.description = COMPOUND_STRING(
"Sprays star-shaped rays\n"
"that never miss."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Swift,
.validApprenticeMove = TRUE,
},
[MOVE_SKULL_BASH] =
{
.name = COMPOUND_STRING("Skull Bash"),
.description = COMPOUND_STRING(
"Tucks in the head, then\n"
"attacks on the next turn."),
.effect = EFFECT_TWO_TURNS_ATTACK,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 130 : 100,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 10 : 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.argument.twoTurnAttack = { .stringId = STRINGID_PKMNLOWEREDHEAD },
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_PLUS_1,
.self = TRUE,
.onChargeTurnOnly = TRUE,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SkullBash,
.validApprenticeMove = TRUE,
},
[MOVE_SPIKE_CANNON] =
{
.name = COMPOUND_STRING("Spike Cannon"),
.description = COMPOUND_STRING(
"Launches sharp spikes that\n"
"strike 2 to 5 times."),
.effect = EFFECT_MULTI_HIT,
.power = 20,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SpikeCannon,
},
[MOVE_CONSTRICT] =
{
.name = COMPOUND_STRING("Constrict"),
.description = COMPOUND_STRING(
"Constricts to inflict pain.\n"
"May lower Speed."),
.effect = EFFECT_HIT,
.power = 10,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 35,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Constrict,
},
[MOVE_AMNESIA] =
{
.name = COMPOUND_STRING("Amnesia"),
.description = COMPOUND_STRING(
"Forgets about something\n"
"and sharply raises Sp. Def."),
.effect = EFFECT_SPECIAL_DEFENSE_UP_2,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Amnesia,
.validApprenticeMove = TRUE,
},
[MOVE_KINESIS] =
{
.name = COMPOUND_STRING("Kinesis"),
.description = COMPOUND_STRING(
"Distracts the foe.\n"
"May lower accuracy."),
.effect = EFFECT_ACCURACY_DOWN,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 80,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_EVSN_UP_1 },
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_KINESIS,
.contestComboMoves = {COMBO_STARTER_CONFUSION, COMBO_STARTER_PSYCHIC},
.battleAnimScript = gBattleAnimMove_Kinesis,
.validApprenticeMove = TRUE,
},
[MOVE_SOFT_BOILED] =
{
.name = COMPOUND_STRING("Soft-Boiled"),
.description = COMPOUND_STRING(
"Recovers up to half the\n"
"user's maximum HP."),
.effect = EFFECT_SOFTBOILED,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_9 ? 5 : 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.healingMove = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_SOFT_BOILED,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SoftBoiled,
.validApprenticeMove = TRUE,
},
[MOVE_HIGH_JUMP_KICK] =
{
.name = COMPOUND_STRING("High Jump Kick"),
.description = COMPOUND_STRING(
"A jumping knee kick. If it\n"
"misses, the user is hurt."),
#if B_UPDATED_MOVE_DATA >= GEN_5
.power = 130,
#elif B_UPDATED_MOVE_DATA == GEN_4
.power = 100,
#else
.power = 85,
#endif
.effect = EFFECT_RECOIL_IF_MISS,
.type = TYPE_FIGHTING,
.accuracy = 90,
.pp = B_UPDATED_MOVE_DATA >= GEN_5 ? 10 : 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.gravityBanned = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_MIND_READER},
.battleAnimScript = gBattleAnimMove_HighJumpKick,
.validApprenticeMove = TRUE,
},
[MOVE_GLARE] =
{
.name = COMPOUND_STRING("Glare"),
.description = COMPOUND_STRING(
"Intimidates and frightens\n"
"the foe into paralysis."),
#if B_UPDATED_MOVE_DATA >= GEN_6
.accuracy = 100,
#elif B_UPDATED_MOVE_DATA == GEN_5
.accuracy = 90,
#else
.accuracy = 75,
#endif
.effect = EFFECT_NON_VOLATILE_STATUS,
.power = 0,
.type = TYPE_NORMAL,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .nonVolatileStatus = MOVE_EFFECT_PARALYSIS },
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_LEER},
.battleAnimScript = gBattleAnimMove_Glare,
.validApprenticeMove = TRUE,
},
[MOVE_DREAM_EATER] =
{
.name = COMPOUND_STRING("Dream Eater"),
.description = COMPOUND_STRING(
"Takes one half the damage\n"
"inflicted on a sleeping foe."),
.effect = EFFECT_DREAM_EATER,
.power = 100,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.healingMove = B_HEAL_BLOCKING >= GEN_6,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_5,
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CALM_MIND, COMBO_STARTER_HYPNOSIS},
.battleAnimScript = gBattleAnimMove_DreamEater,
.validApprenticeMove = TRUE,
},
[MOVE_POISON_GAS] =
{
.name = COMPOUND_STRING("Poison Gas"),
.description = COMPOUND_STRING(
#if B_UPDATED_MOVE_DATA >= GEN_5
"Envelops the foes in a toxic\n"
#else
"Envelops the foe in a toxic\n"
#endif
"gas that may poison."),
#if B_UPDATED_MOVE_DATA >= GEN_6
.accuracy = 90,
#elif B_UPDATED_MOVE_DATA >= GEN_5
.accuracy = 80,
#else
.accuracy = 55,
#endif
.effect = EFFECT_NON_VOLATILE_STATUS,
.power = 0,
.type = TYPE_POISON,
.pp = 40,
.target = B_UPDATED_MOVE_DATA >= GEN_5 ? MOVE_TARGET_BOTH : MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .nonVolatileStatus = MOVE_EFFECT_POISON },
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PoisonGas,
},
[MOVE_BARRAGE] =
{
.name = COMPOUND_STRING("Barrage"),
.description = COMPOUND_STRING(
"Hurls round objects at the\n"
"foe 2 to 5 times."),
.effect = EFFECT_MULTI_HIT,
.power = 15,
.type = TYPE_NORMAL,
.accuracy = 85,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ballisticMove = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Barrage,
},
[MOVE_LEECH_LIFE] =
{
.name = COMPOUND_STRING("Leech Life"),
.description = COMPOUND_STRING(
"An attack that steals half\n"
"the damage inflicted."),
.effect = EFFECT_ABSORB,
.power = B_UPDATED_MOVE_DATA >= GEN_7 ? 80 : 20,
.type = TYPE_BUG,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_7 ? 10 : 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .absorbPercentage = 50 },
.makesContact = TRUE,
.ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4),
.healingMove = B_HEAL_BLOCKING >= GEN_6,
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_LeechLife,
},
[MOVE_LOVELY_KISS] =
{
.name = COMPOUND_STRING("Lovely Kiss"),
.description = COMPOUND_STRING(
"Demands a kiss with a scary\n"
"face that induces sleep."),
.effect = EFFECT_NON_VOLATILE_STATUS,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 75,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .nonVolatileStatus = MOVE_EFFECT_SLEEP },
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_LovelyKiss,
.validApprenticeMove = TRUE,
},
[MOVE_SKY_ATTACK] =
{
.name = COMPOUND_STRING("Sky Attack"),
.description = COMPOUND_STRING(
"2-turn attack. High critical\n"
"hit ratio, and may flinch."),
.effect = EFFECT_TWO_TURNS_ATTACK,
.power = 140,
.type = TYPE_FLYING,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.criticalHitStage = B_UPDATED_MOVE_DATA >= GEN_3,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.argument.twoTurnAttack = { .stringId = B_UPDATED_MOVE_DATA >= GEN_4 ? STRINGID_CLOAKEDINAHARSHLIGHT : STRINGID_PKMNISGLOWING },
#if B_UPDATED_MOVE_DATA >= GEN_3
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
#endif
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SkyAttack,
.validApprenticeMove = TRUE,
},
[MOVE_TRANSFORM] =
{
.name = COMPOUND_STRING("Transform"),
.description = COMPOUND_STRING(
"Alters the user's cells to\n"
"become a copy of the foe."),
.effect = EFFECT_TRANSFORM,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RECOVER_HP },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.mimicBanned = TRUE,
.metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_5,
.copycatBanned = TRUE,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Transform,
.validApprenticeMove = TRUE,
},
[MOVE_BUBBLE] =
{
.name = COMPOUND_STRING("Bubble"),
.description = COMPOUND_STRING(
"An attack using bubbles.\n"
"May lower the foe's Speed."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 40 : 20,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_Bubble,
},
[MOVE_DIZZY_PUNCH] =
{
.name = COMPOUND_STRING("Dizzy Punch"),
.description = COMPOUND_STRING(
"A rhythmic punch that may\n"
"confuse the foe."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSION,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DizzyPunch,
.validApprenticeMove = TRUE,
},
[MOVE_SPORE] =
{
.name = COMPOUND_STRING("Spore"),
.description = COMPOUND_STRING(
"Scatters a cloud of spores\n"
"that always induce sleep."),
.effect = EFFECT_NON_VOLATILE_STATUS,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .nonVolatileStatus = MOVE_EFFECT_SLEEP },
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.magicCoatAffected = TRUE,
.powderMove = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Spore,
.validApprenticeMove = TRUE,
},
[MOVE_FLASH] =
{
.name = COMPOUND_STRING("Flash"),
.description = COMPOUND_STRING(
"Looses a powerful blast of\n"
"light that cuts accuracy."),
.effect = EFFECT_ACCURACY_DOWN,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_4 ? 100 : 70,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_EVSN_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Flash,
.validApprenticeMove = TRUE,
},
[MOVE_PSYWAVE] =
{
.name = COMPOUND_STRING("Psywave"),
.description = COMPOUND_STRING(
"Attacks with a psychic\n"
"wave of varying intensity."),
.effect = EFFECT_PSYWAVE,
.power = 1,
.type = TYPE_PSYCHIC,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_6 ? 100 : 80,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CALM_MIND},
.battleAnimScript = gBattleAnimMove_Psywave,
.validApprenticeMove = TRUE,
},
[MOVE_SPLASH] =
{
.name = COMPOUND_STRING("Splash"),
.description = COMPOUND_STRING(
"It's just a splash...\n"
"Has no effect whatsoever."),
.effect = EFFECT_DO_NOTHING,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 40,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_3 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.gravityBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Splash,
},
[MOVE_ACID_ARMOR] =
{
.name = COMPOUND_STRING("Acid Armor"),
.description = COMPOUND_STRING(
"Liquifies the user's body\n"
"to sharply raise Defense."),
.effect = EFFECT_DEFENSE_UP_2,
.power = 0,
.type = TYPE_POISON,
.accuracy = 0,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 20 : 40,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AcidArmor,
.validApprenticeMove = TRUE,
},
[MOVE_CRABHAMMER] =
{
.name = COMPOUND_STRING("Crabhammer"),
.description = COMPOUND_STRING(
"Hammers with a pincer. Has a\n"
"high critical-hit ratio."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 100 : 90,
.type = TYPE_WATER,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 90 : 85,
.criticalHitStage = 1,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SWORDS_DANCE},
.battleAnimScript = gBattleAnimMove_Crabhammer,
.validApprenticeMove = TRUE,
},
[MOVE_EXPLOSION] =
{
.name = COMPOUND_STRING("Explosion"),
.description = COMPOUND_STRING(
"Inflicts severe damage but\n"
"makes the user faint."),
.effect = EFFECT_EXPLOSION,
.power = 250,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.parentalBondBanned = TRUE,
.contestEffect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Explosion,
.validApprenticeMove = TRUE,
},
[MOVE_FURY_SWIPES] =
{
.name = COMPOUND_STRING("Fury Swipes"),
.description = COMPOUND_STRING(
"Rakes the foe with sharp\n"
"claws, etc., 2 to 5 times."),
.effect = EFFECT_MULTI_HIT,
.power = 18,
.type = TYPE_NORMAL,
.accuracy = 80,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SCRATCH},
.battleAnimScript = gBattleAnimMove_FurySwipes,
},
[MOVE_BONEMERANG] =
{
.name = COMPOUND_STRING("Bonemerang"),
.description = COMPOUND_STRING(
"Throws a bone boomerang\n"
"that strikes twice."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_GROUND,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.strikeCount = 2,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_BONEMERANG,
.contestComboMoves = {COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONE_RUSH, COMBO_STARTER_SHADOW_BONE},
.battleAnimScript = gBattleAnimMove_Bonemerang,
.validApprenticeMove = TRUE,
},
[MOVE_REST] =
{
.name = COMPOUND_STRING("Rest"),
.description = COMPOUND_STRING(
"The user sleeps for 2 turns,\n"
"restoring HP and status."),
.effect = EFFECT_REST,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = B_UPDATED_MOVE_DATA >= GEN_9 ? 5 : 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.healingMove = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_REST,
.contestComboMoves = {COMBO_STARTER_BELLY_DRUM, COMBO_STARTER_CHARM, COMBO_STARTER_YAWN},
.battleAnimScript = gBattleAnimMove_Rest,
.validApprenticeMove = TRUE,
},
[MOVE_ROCK_SLIDE] =
{
.name = COMPOUND_STRING("Rock Slide"),
.description = COMPOUND_STRING(
"Large boulders are hurled.\n"
"May cause flinching."),
.effect = EFFECT_HIT,
.power = 75,
.type = TYPE_ROCK,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_ROCK_THROW},
.battleAnimScript = gBattleAnimMove_RockSlide,
.validApprenticeMove = TRUE,
},
[MOVE_HYPER_FANG] =
{
.name = COMPOUND_STRING("Hyper Fang"),
.description = COMPOUND_STRING(
"Attacks with sharp fangs.\n"
"May cause flinching."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_NORMAL,
.accuracy = 90,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.bitingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HyperFang,
.validApprenticeMove = TRUE,
},
[MOVE_SHARPEN] =
{
.name = COMPOUND_STRING("Sharpen"),
.description = COMPOUND_STRING(
"Reduces the polygon count\n"
"and raises Attack."),
.effect = EFFECT_ATTACK_UP,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 30,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Sharpen,
.validApprenticeMove = TRUE,
},
[MOVE_CONVERSION] =
{
.name = COMPOUND_STRING("Conversion"),
.description = COMPOUND_STRING(
"Changes the user's type\n"
#if B_UPDATED_CONVERSION >= GEN_6
"into first known move's type."),
#else
"into a known move's type."),
#endif
.effect = EFFECT_CONVERSION,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 30,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 },
.snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Conversion,
.validApprenticeMove = TRUE,
},
[MOVE_TRI_ATTACK] =
{
.name = COMPOUND_STRING("Tri Attack"),
.description = COMPOUND_STRING(
"Fires three types of beams.\n"
#if B_USE_FROSTBITE == TRUE
"May burn/para/frostbite."),
#else
"May burn/paralyze/freeze."),
#endif
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_TRI_ATTACK,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_LOCK_ON},
.battleAnimScript = gBattleAnimMove_TriAttack,
.validApprenticeMove = TRUE,
},
[MOVE_SUPER_FANG] =
{
.name = COMPOUND_STRING("Super Fang"),
.description = COMPOUND_STRING(
"Attacks with sharp fangs\n"
"and cuts half the foe's HP."),
.effect = EFFECT_FIXED_PERCENT_DAMAGE,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .damagePercentage = 50 },
.makesContact = TRUE,
.ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SCARY_FACE},
.battleAnimScript = gBattleAnimMove_SuperFang,
.validApprenticeMove = TRUE,
},
[MOVE_SLASH] =
{
.name = COMPOUND_STRING("Slash"),
.description = COMPOUND_STRING(
"Slashes with claws, etc. Has\n"
"a high critical-hit ratio."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_NORMAL,
.accuracy = 100,
.criticalHitStage = 1,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SCRATCH, COMBO_STARTER_SWORDS_DANCE},
.battleAnimScript = gBattleAnimMove_Slash,
.validApprenticeMove = TRUE,
},
[MOVE_SUBSTITUTE] =
{
.name = COMPOUND_STRING("Substitute"),
.description = COMPOUND_STRING(
"Creates a decoy using 1/4\n"
"of the user's maximum HP."),
.effect = EFFECT_SUBSTITUTE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Substitute,
.validApprenticeMove = TRUE,
},
[MOVE_STRUGGLE] =
{
.name = COMPOUND_STRING("Struggle"),
.description = COMPOUND_STRING(
"Used only if all PP are gone.\n"
"Also hurts the user a little."),
#if B_UPDATED_MOVE_DATA >= GEN_4
.effect = EFFECT_STRUGGLE,
.accuracy = 0,
.mirrorMoveBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RECOIL_HP_25,
.self = TRUE,
}),
#else
.effect = EFFECT_RECOIL,
.accuracy = 100,
.argument = { .recoilPercentage = 25 },
#endif
.power = 50,
.type = TYPE_NORMAL,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.meFirstBanned = TRUE,
.mimicBanned = TRUE,
.metronomeBanned = TRUE,
.sleepTalkBanned = TRUE,
.copycatBanned = TRUE,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.sketchBanned = TRUE,
.battleAnimScript = gBattleAnimMove_Struggle,
.validApprenticeMove = TRUE,
},
[MOVE_SKETCH] =
{
.name = COMPOUND_STRING("Sketch"),
.description = COMPOUND_STRING(
"Copies the foe's last move\n"
"permanently."),
.effect = EFFECT_SKETCH,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 },
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.mimicBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = B_UPDATED_MOVE_FLAGS >= GEN_5,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.sketchBanned = TRUE,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Sketch,
.validApprenticeMove = TRUE,
},
[MOVE_TRIPLE_KICK] =
{
.name = COMPOUND_STRING("Triple Kick"),
.description = COMPOUND_STRING(
"Kicks the foe 3 times in a\n"
"row with rising intensity."),
.effect = EFFECT_TRIPLE_KICK,
.power = 10,
.type = TYPE_FIGHTING,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.strikeCount = 3,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY},
.battleAnimScript = gBattleAnimMove_TripleKick,
.validApprenticeMove = TRUE,
},
[MOVE_THIEF] =
{
.name = COMPOUND_STRING("Thief"),
.description = COMPOUND_STRING(
"While attacking, it may\n"
"steal the foe's held item."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 60 : 40,
.type = TYPE_DARK,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 25 : 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_STEAL_ITEM,
}),
.ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4),
.meFirstBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Thief,
.validApprenticeMove = TRUE,
},
[MOVE_SPIDER_WEB] =
{
.name = COMPOUND_STRING("Spider Web"),
.description = COMPOUND_STRING(
"Ensnares the foe to stop it\n"
"from fleeing or switching."),
.effect = EFFECT_MEAN_LOOK,
.power = 0,
.type = TYPE_BUG,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = (B_UPDATED_MOVE_FLAGS >= GEN_6) || (B_UPDATED_MOVE_FLAGS <= GEN_3),
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_STRING_SHOT},
.battleAnimScript = gBattleAnimMove_SpiderWeb,
.validApprenticeMove = TRUE,
},
[MOVE_MIND_READER] =
{
.name = COMPOUND_STRING("Mind Reader"),
.description = COMPOUND_STRING(
"Senses the foe's action to\n"
"ensure the next move's hit."),
.effect = EFFECT_LOCK_ON,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_4 ? 0 : 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_MIND_READER,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MindReader,
.validApprenticeMove = TRUE,
},
[MOVE_NIGHTMARE] =
{
.name = COMPOUND_STRING("Nightmare"),
.description = COMPOUND_STRING(
"Inflicts 1/4 damage on a\n"
"sleeping foe every turn."),
.effect = EFFECT_NIGHTMARE,
.power = 0,
.type = TYPE_GHOST,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_4 ? 100 : 0,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.ignoresProtect = B_UPDATED_MOVE_FLAGS <= GEN_3,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Nightmare,
.validApprenticeMove = TRUE,
},
[MOVE_FLAME_WHEEL] =
{
.name = COMPOUND_STRING("Flame Wheel"),
.description = COMPOUND_STRING(
"A fiery charge attack that\n"
"may inflict a burn."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 25,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.thawsUser = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_FlameWheel,
},
[MOVE_SNORE] =
{
.name = COMPOUND_STRING("Snore"),
.description = COMPOUND_STRING(
"A loud attack that can only\n"
"be used asleep. May flinch."),
.effect = EFFECT_SNORE,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 50 : 40,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.soundMove = TRUE,
.metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_5,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_REST},
.battleAnimScript = gBattleAnimMove_Snore,
.validApprenticeMove = TRUE,
},
[MOVE_CURSE] =
{
.name = COMPOUND_STRING("Curse"),
.description = COMPOUND_STRING(
"A move that functions\n"
"differently for GHOSTS."),
.effect = EFFECT_CURSE,
.power = 0,
.type = B_UPDATED_MOVE_TYPES >= GEN_5 ? TYPE_GHOST : TYPE_MYSTERY,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_CURSE },
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_LATER,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_CURSE,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Curse,
.validApprenticeMove = TRUE,
},
[MOVE_FLAIL] =
{
.name = COMPOUND_STRING("Flail"),
.description = COMPOUND_STRING(
"Inflicts more damage when\n"
"the user's HP is down."),
.effect = EFFECT_FLAIL,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_LATER,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_ENDURE},
.battleAnimScript = gBattleAnimMove_Flail,
.validApprenticeMove = TRUE,
},
[MOVE_CONVERSION_2] =
{
.name = COMPOUND_STRING("Conversion 2"),
.description = COMPOUND_STRING(
"Makes the user resistant\n"
"to the last attack's type."),
.effect = EFFECT_CONVERSION_2,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 30,
.target = B_UPDATED_MOVE_DATA >= GEN_5 ? MOVE_TARGET_SELECTED : MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RECOVER_HP },
.ignoresProtect = B_UPDATED_MOVE_FLAGS >= GEN_5,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Conversion2,
.validApprenticeMove = TRUE,
},
[MOVE_AEROBLAST] =
{
.name = COMPOUND_STRING("Aeroblast"),
.description = COMPOUND_STRING(
"Launches a vacuumed blast.\n"
"High critical-hit ratio."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_FLYING,
.accuracy = 95,
.criticalHitStage = 1,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.windMove = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Aeroblast,
.validApprenticeMove = TRUE,
},
[MOVE_COTTON_SPORE] =
{
.name = COMPOUND_STRING("Cotton Spore"),
.description = COMPOUND_STRING(
#if B_UPDATED_MOVE_DATA >= GEN_6
"Spores cling to the foes,\n"
#else
"Spores cling to the foe,\n"
#endif
"sharply reducing Speed."),
.effect = EFFECT_SPEED_DOWN_2,
.power = 0,
.type = TYPE_GRASS,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 100 : 85,
.pp = 40,
.target = B_UPDATED_MOVE_DATA >= GEN_6 ? MOVE_TARGET_BOTH : MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.magicCoatAffected = TRUE,
.powderMove = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_CottonSpore,
.validApprenticeMove = TRUE,
},
[MOVE_REVERSAL] =
{
.name = COMPOUND_STRING("Reversal"),
.description = COMPOUND_STRING(
"Inflicts more damage when\n"
"the user's HP is down."),
.effect = EFFECT_FLAIL,
.power = 1,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_ENDURE},
.battleAnimScript = gBattleAnimMove_Reversal,
.validApprenticeMove = TRUE,
},
[MOVE_SPITE] =
{
.name = COMPOUND_STRING("Spite"),
.description = COMPOUND_STRING(
"Spitefully cuts the PP\n"
#if B_PP_REDUCED_BY_SPITE >= GEN_4
"of the foe's last move by 4."),
#else
"of foe's last move by 2-5."),
#endif
.effect = EFFECT_SPITE,
.power = 0,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RECOVER_HP },
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.ignoresSubstitute = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_LATER,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CURSE},
.battleAnimScript = gBattleAnimMove_Spite,
.validApprenticeMove = TRUE,
},
[MOVE_POWDER_SNOW] =
{
.name = COMPOUND_STRING("Powder Snow"),
.description = COMPOUND_STRING(
"Blasts the foes with a snowy\n"
#if B_USE_FROSTBITE == TRUE
"gust. May cause frostbite."),
#else
"gust. May cause freezing."),
#endif
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_ICE,
.accuracy = 100,
.pp = 25,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_POWDER_SNOW,
.contestComboMoves = {COMBO_STARTER_HAIL},
.battleAnimScript = gBattleAnimMove_PowderSnow,
},
[MOVE_PROTECT] =
{
.name = COMPOUND_STRING("Protect"),
.description = sProtectDescription,
.effect = EFFECT_PROTECT,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = B_UPDATED_MOVE_DATA >= GEN_5 ? 4 : 3,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .protectMethod = PROTECT_NORMAL },
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_HARDEN},
.battleAnimScript = gBattleAnimMove_Protect,
.validApprenticeMove = TRUE,
},
[MOVE_MACH_PUNCH] =
{
.name = COMPOUND_STRING("Mach Punch"),
.description = COMPOUND_STRING(
"A punch is thrown at wicked\n"
"speed to strike first."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MachPunch,
.validApprenticeMove = TRUE,
},
[MOVE_SCARY_FACE] =
{
.name = COMPOUND_STRING("Scary Face"),
.description = COMPOUND_STRING(
"Frightens with a scary face\n"
"to sharply reduce Speed."),
.effect = EFFECT_SPEED_DOWN_2,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 100 : 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_SCARY_FACE,
.contestComboMoves = {COMBO_STARTER_LEER, COMBO_STARTER_RAGE},
.battleAnimScript = gBattleAnimMove_ScaryFace,
.validApprenticeMove = TRUE,
},
[MOVE_FEINT_ATTACK] =
{
.name = COMPOUND_STRING("Feint Attack"),
.description = COMPOUND_STRING(
"Draws the foe close, then\n"
"strikes without fail."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_DARK,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = B_UPDATED_MOVE_DATA >= GEN_4,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FAKE_OUT, COMBO_STARTER_LEER, COMBO_STARTER_POUND},
.battleAnimScript = gBattleAnimMove_FeintAttack,
.validApprenticeMove = TRUE,
},
[MOVE_SWEET_KISS] =
{
.name = COMPOUND_STRING("Sweet Kiss"),
.description = COMPOUND_STRING(
"Demands a kiss with a cute\n"
"look. May cause confusion."),
.effect = EFFECT_CONFUSE,
.power = 0,
.type = B_UPDATED_MOVE_TYPES >= GEN_6 ? TYPE_FAIRY : TYPE_NORMAL,
.accuracy = 75,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARM},
.battleAnimScript = gBattleAnimMove_SweetKiss,
.validApprenticeMove = TRUE,
},
[MOVE_BELLY_DRUM] =
{
.name = COMPOUND_STRING("Belly Drum"),
.description = COMPOUND_STRING(
"Maximizes Attack while\n"
"sacrificing half of max HP."),
.effect = EFFECT_BELLY_DRUM,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RECOVER_HP },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_BELLY_DRUM,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BellyDrum,
.validApprenticeMove = TRUE,
},
[MOVE_SLUDGE_BOMB] =
{
.name = COMPOUND_STRING("Sludge Bomb"),
.description = COMPOUND_STRING(
"Sludge is hurled to inflict\n"
"damage. May also poison."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ballisticMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_SLUDGE_BOMB,
.contestComboMoves = {COMBO_STARTER_SLUDGE},
.battleAnimScript = gBattleAnimMove_SludgeBomb,
.validApprenticeMove = TRUE,
},
[MOVE_MUD_SLAP] =
{
.name = COMPOUND_STRING("Mud-Slap"),
.description = COMPOUND_STRING(
"Hurls mud in the foe's face\n"
"to reduce its accuracy."),
.effect = EFFECT_HIT,
.power = 20,
.type = TYPE_GROUND,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ACC_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_MUD_SLAP,
.contestComboMoves = {COMBO_STARTER_MUD_SPORT, COMBO_STARTER_SAND_ATTACK, COMBO_STARTER_SANDSTORM},
.battleAnimScript = gBattleAnimMove_MudSlap,
.validApprenticeMove = TRUE,
},
[MOVE_OCTAZOOKA] =
{
.name = COMPOUND_STRING("Octazooka"),
.description = COMPOUND_STRING(
"Fires a lump of ink to\n"
"damage and cut accuracy."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_WATER,
.accuracy = 85,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ballisticMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ACC_MINUS_1,
.chance = 50,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_LOCK_ON, COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_Octazooka,
.validApprenticeMove = TRUE,
},
[MOVE_SPIKES] =
{
.name = COMPOUND_STRING("Spikes"),
.description = COMPOUND_STRING(
"Sets spikes that hurt a \n"
"foe switching in."),
.effect = EFFECT_SPIKES,
.power = 0,
.type = TYPE_GROUND,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_OPPONENTS_FIELD,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.forcePressure = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Spikes,
.validApprenticeMove = TRUE,
},
[MOVE_ZAP_CANNON] =
{
.name = COMPOUND_STRING("Zap Cannon"),
.description = COMPOUND_STRING(
"Powerful and sure to cause\n"
"paralysis, but inaccurate."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_4 ? 120 : 100,
.type = TYPE_ELECTRIC,
.accuracy = 50,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ballisticMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARGE, COMBO_STARTER_LOCK_ON},
.battleAnimScript = gBattleAnimMove_ZapCannon,
.validApprenticeMove = TRUE,
},
[MOVE_FORESIGHT] =
{
.name = COMPOUND_STRING("Foresight"),
.description = COMPOUND_STRING(
"Negates the foe's efforts\n"
"to heighten evasiveness."),
.effect = EFFECT_FORESIGHT,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 0 : 100,
.pp = 40,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_BOOST_CRITS },
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.ignoresSubstitute = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Foresight,
.validApprenticeMove = TRUE,
},
[MOVE_DESTINY_BOND] =
{
.name = COMPOUND_STRING("Destiny Bond"),
.description = COMPOUND_STRING(
"If the user faints, the foe\n"
"is also made to faint."),
.effect = EFFECT_DESTINY_BOND,
.power = 0,
.type = TYPE_GHOST,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_FOLLOW_ME },
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CURSE, COMBO_STARTER_ENDURE, COMBO_STARTER_MEAN_LOOK},
.battleAnimScript = gBattleAnimMove_DestinyBond,
.validApprenticeMove = TRUE,
},
[MOVE_PERISH_SONG] =
{
.name = COMPOUND_STRING("Perish Song"),
.description = COMPOUND_STRING(
"Any Pokémon hearing this\n"
"song faints in 3 turns."),
.effect = EFFECT_PERISH_SONG,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresProtect = TRUE,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.mirrorMoveBanned = TRUE,
.soundMove = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_SING},
.battleAnimScript = gBattleAnimMove_PerishSong,
.validApprenticeMove = TRUE,
},
[MOVE_ICY_WIND] =
{
.name = COMPOUND_STRING("Icy Wind"),
.description = COMPOUND_STRING(
"A chilling attack that\n"
"lowers the foe's Speed."),
.effect = EFFECT_HIT,
.power = 55,
.type = TYPE_ICE,
.accuracy = 95,
.pp = 15,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.windMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_HAIL},
.battleAnimScript = gBattleAnimMove_IcyWind,
.validApprenticeMove = TRUE,
},
[MOVE_DETECT] =
{
.name = COMPOUND_STRING("Detect"),
.description = sProtectDescription,
.effect = EFFECT_PROTECT,
.power = 0,
.type = TYPE_FIGHTING,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_USER,
.priority = B_UPDATED_MOVE_DATA >= GEN_5 ? 4 : 3,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .protectMethod = PROTECT_NORMAL },
.zMove = { .effect = Z_EFFECT_EVSN_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_TAUNT},
.battleAnimScript = gBattleAnimMove_Detect,
.validApprenticeMove = TRUE,
},
[MOVE_BONE_RUSH] =
{
.name = COMPOUND_STRING("Bone Rush"),
.description = COMPOUND_STRING(
"Strikes the foe with a bone\n"
"in hand 2 to 5 times."),
.effect = EFFECT_MULTI_HIT,
.power = 25,
.type = TYPE_GROUND,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 90 : 80,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_BONE_RUSH,
.contestComboMoves = {COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONEMERANG, COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_SHADOW_BONE},
.battleAnimScript = gBattleAnimMove_BoneRush,
},
[MOVE_LOCK_ON] =
{
.name = COMPOUND_STRING("Lock-On"),
.description = COMPOUND_STRING(
"Locks on to the foe to\n"
"ensure the next move hits."),
.effect = EFFECT_LOCK_ON,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_4 ? 0 : 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_LOCK_ON,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_LockOn,
.validApprenticeMove = TRUE,
},
[MOVE_OUTRAGE] =
{
.name = COMPOUND_STRING("Outrage"),
.description = COMPOUND_STRING(
"A rampage of 2 to 3 turns\n"
"that confuses the user."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_4 ? 120 : 90,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_5 ? 10 : 15,
.target = MOVE_TARGET_RANDOM,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.instructBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_THRASH,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Outrage,
.validApprenticeMove = TRUE,
},
[MOVE_SANDSTORM] =
{
.name = COMPOUND_STRING("Sandstorm"),
.description = COMPOUND_STRING(
"Causes a sandstorm that\n"
"rages for several turns."),
.effect = EFFECT_SANDSTORM,
.power = 0,
.type = TYPE_ROCK,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.windMove = TRUE,
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_SANDSTORM,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Sandstorm,
.validApprenticeMove = TRUE,
},
[MOVE_GIGA_DRAIN] =
{
.name = COMPOUND_STRING("Giga Drain"),
.description = COMPOUND_STRING(
"An attack that steals half\n"
"the damage inflicted."),
.effect = EFFECT_ABSORB,
.power = B_UPDATED_MOVE_DATA >= GEN_5 ? 75 : 60,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_4 ? 10 : 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .absorbPercentage = 50 },
.ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4),
.healingMove = B_HEAL_BLOCKING >= GEN_6,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_GROWTH},
.battleAnimScript = gBattleAnimMove_GigaDrain,
.validApprenticeMove = TRUE,
},
[MOVE_ENDURE] =
{
.name = COMPOUND_STRING("Endure"),
.description = COMPOUND_STRING(
"Endures any attack for\n"
"1 turn, leaving at least 1HP."),
.effect = EFFECT_ENDURE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = B_UPDATED_MOVE_DATA >= GEN_5 ? 4 : 3,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_ENDURE,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Endure,
.validApprenticeMove = TRUE,
},
[MOVE_CHARM] =
{
.name = COMPOUND_STRING("Charm"),
.description = COMPOUND_STRING(
"Charms the foe and sharply\n"
"reduces its Attack."),
.effect = EFFECT_ATTACK_DOWN_2,
.power = 0,
.type = B_UPDATED_MOVE_TYPES >= GEN_6 ? TYPE_FAIRY : TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_CHARM,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Charm,
.validApprenticeMove = TRUE,
},
[MOVE_ROLLOUT] =
{
.name = COMPOUND_STRING("Rollout"),
.description = COMPOUND_STRING(
"An attack lasting 5 turns\n"
"with rising intensity."),
.effect = EFFECT_ROLLOUT,
.power = 30,
.type = TYPE_ROCK,
.accuracy = 90,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.instructBanned = TRUE,
.parentalBondBanned = TRUE,
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_HARDEN},
.battleAnimScript = gBattleAnimMove_Rollout,
.validApprenticeMove = TRUE,
},
[MOVE_FALSE_SWIPE] =
{
.name = COMPOUND_STRING("False Swipe"),
.description = sFalseSwipeDescription,
.effect = EFFECT_FALSE_SWIPE,
.power = 40,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 40,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SWORDS_DANCE},
.battleAnimScript = gBattleAnimMove_FalseSwipe,
.validApprenticeMove = TRUE,
},
[MOVE_SWAGGER] =
{
.name = COMPOUND_STRING("Swagger"),
.description = COMPOUND_STRING(
"Confuses the foe, but also\n"
"sharply raises its Attack."),
.effect = EFFECT_SWAGGER,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_7 ? 85 : 90,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Swagger,
.validApprenticeMove = TRUE,
},
[MOVE_MILK_DRINK] =
{
.name = COMPOUND_STRING("Milk Drink"),
.description = COMPOUND_STRING(
"Recovers up to half the\n"
"user's maximum HP."),
.effect = EFFECT_SOFTBOILED,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = B_UPDATED_MOVE_DATA >= GEN_9 ? 5 : 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.healingMove = TRUE,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MilkDrink,
.validApprenticeMove = TRUE,
},
[MOVE_SPARK] =
{
.name = COMPOUND_STRING("Spark"),
.description = COMPOUND_STRING(
"An electrified tackle that\n"
"may paralyze the foe."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARGE},
.battleAnimScript = gBattleAnimMove_Spark,
},
[MOVE_FURY_CUTTER] =
{
.name = COMPOUND_STRING("Fury Cutter"),
.description = COMPOUND_STRING(
"An attack that intensifies\n"
"on each successive hit."),
#if B_UPDATED_MOVE_DATA >= GEN_6
.power = 40,
#elif B_UPDATED_MOVE_DATA >= GEN_5
.power = 20,
#else
.power = 10,
#endif
.effect = EFFECT_FURY_CUTTER,
.type = TYPE_BUG,
.accuracy = 95,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SWORDS_DANCE},
.battleAnimScript = gBattleAnimMove_FuryCutter,
.validApprenticeMove = TRUE,
},
[MOVE_STEEL_WING] =
{
.name = COMPOUND_STRING("Steel Wing"),
.description = COMPOUND_STRING(
"Strikes the foe with hard\n"
"wings spread wide."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_STEEL,
.accuracy = 90,
.pp = 25,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_PLUS_1,
.self = TRUE,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SteelWing,
.validApprenticeMove = TRUE,
},
[MOVE_MEAN_LOOK] =
{
.name = COMPOUND_STRING("Mean Look"),
.description = COMPOUND_STRING(
"Fixes the foe with a mean\n"
"look that prevents escape."),
.effect = EFFECT_MEAN_LOOK,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.ignoresProtect = (B_UPDATED_MOVE_FLAGS >= GEN_6) || (B_UPDATED_MOVE_FLAGS <= GEN_3),
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_MEAN_LOOK,
.contestComboMoves = {COMBO_STARTER_CURSE},
.battleAnimScript = gBattleAnimMove_MeanLook,
.validApprenticeMove = TRUE,
},
[MOVE_ATTRACT] =
{
.name = COMPOUND_STRING("Attract"),
.description = COMPOUND_STRING(
"Makes the opposite gender\n"
"less likely to attack."),
.effect = EFFECT_ATTRACT,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.magicCoatAffected = TRUE,
.ignoresSubstitute = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Attract,
.validApprenticeMove = TRUE,
},
[MOVE_SLEEP_TALK] =
{
.name = COMPOUND_STRING("Sleep Talk"),
.description = COMPOUND_STRING(
"Uses an available move\n"
"randomly while asleep."),
.effect = EFFECT_SLEEP_TALK,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_DEPENDS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_BOOST_CRITS },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.mimicBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_REST},
.battleAnimScript = gBattleAnimMove_SleepTalk,
.validApprenticeMove = TRUE,
},
[MOVE_HEAL_BELL] =
{
.name = COMPOUND_STRING("Heal Bell"),
.description = COMPOUND_STRING(
"Chimes soothingly to heal\n"
"all status abnormalities."),
.effect = EFFECT_HEAL_BELL,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RECOVER_HP },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.soundMove = B_UPDATED_MOVE_FLAGS != GEN_5,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_HEAL_BELL,
.contestComboMoves = {COMBO_STARTER_LUCKY_CHANT},
.battleAnimScript = gBattleAnimMove_HealBell,
.validApprenticeMove = TRUE,
},
[MOVE_RETURN] =
{
.name = COMPOUND_STRING("Return"),
.description = COMPOUND_STRING(
"An attack that increases\n"
"in power with friendship."),
.effect = EFFECT_RETURN,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Return,
.validApprenticeMove = TRUE,
},
[MOVE_PRESENT] =
{
.name = COMPOUND_STRING("Present"),
.description = COMPOUND_STRING(
"A gift in the form of a\n"
"bomb. May restore HP."),
.effect = EFFECT_PRESENT,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 90,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4),
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Present,
.validApprenticeMove = TRUE,
},
[MOVE_FRUSTRATION] =
{
.name = COMPOUND_STRING("Frustration"),
.description = COMPOUND_STRING(
"An attack that is stronger\n"
"if the Trainer is disliked."),
.effect = EFFECT_FRUSTRATION,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Frustration,
.validApprenticeMove = TRUE,
},
[MOVE_SAFEGUARD] =
{
.name = COMPOUND_STRING("Safeguard"),
.description = COMPOUND_STRING(
"Protects allies from status\n"
"problems for 5 turns."),
.effect = EFFECT_SAFEGUARD,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 25,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Safeguard,
.validApprenticeMove = TRUE,
},
[MOVE_PAIN_SPLIT] =
{
.name = COMPOUND_STRING("Pain Split"),
.description = COMPOUND_STRING(
"Adds the user and foe's HP,\n"
"then shares them equally."),
.effect = EFFECT_PAIN_SPLIT,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_ENDURE},
.battleAnimScript = gBattleAnimMove_PainSplit,
.validApprenticeMove = TRUE,
},
[MOVE_SACRED_FIRE] =
{
.name = COMPOUND_STRING("Sacred Fire"),
.description = COMPOUND_STRING(
"A mystical fire attack that\n"
"may inflict a burn."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_FIRE,
.accuracy = 95,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.thawsUser = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 50,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_SacredFire,
.validApprenticeMove = TRUE,
},
[MOVE_MAGNITUDE] =
{
.name = COMPOUND_STRING("Magnitude"),
.description = COMPOUND_STRING(
"A ground-shaking attack\n"
"of random intensity."),
.effect = EFFECT_MAGNITUDE,
.power = 1,
.type = TYPE_GROUND,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.damagesUnderground = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Magnitude,
},
[MOVE_DYNAMIC_PUNCH] =
{
.name = COMPOUND_STRING("Dynamic Punch"),
.description = COMPOUND_STRING(
"Powerful and sure to cause\n"
"confusion, but inaccurate."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_FIGHTING,
.accuracy = 50,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSION,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER},
.battleAnimScript = gBattleAnimMove_DynamicPunch,
.validApprenticeMove = TRUE,
},
[MOVE_MEGAHORN] =
{
.name = COMPOUND_STRING("Megahorn"),
.description = COMPOUND_STRING(
"A brutal ramming attack\n"
"using out-thrust horns."),
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_BUG,
.accuracy = 85,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Megahorn,
.validApprenticeMove = TRUE,
},
[MOVE_DRAGON_BREATH] =
{
.name = COMPOUND_STRING("Dragon Breath"),
.description = COMPOUND_STRING(
"Strikes the foe with a blast\n"
"of breath. May paralyze."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = COMBO_STARTER_DRAGON_BREATH,
.contestComboMoves = {COMBO_STARTER_DRAGON_DANCE, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_RUSH, COMBO_STARTER_DRAGON_TAIL},
.battleAnimScript = gBattleAnimMove_DragonBreath,
.validApprenticeMove = TRUE,
},
[MOVE_BATON_PASS] =
{
.name = COMPOUND_STRING("Baton Pass"),
.description = COMPOUND_STRING(
"Switches out the user while\n"
"keeping effects in play."),
.effect = EFFECT_BATON_PASS,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 40,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BatonPass,
.validApprenticeMove = TRUE,
},
[MOVE_ENCORE] =
{
.name = COMPOUND_STRING("Encore"),
.description = COMPOUND_STRING(
"Makes the foe repeat its\n"
"last move over 3 turns."),
.effect = EFFECT_ENCORE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.encoreBanned = TRUE,
.ignoresSubstitute = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Encore,
.validApprenticeMove = TRUE,
},
[MOVE_PURSUIT] =
{
.name = COMPOUND_STRING("Pursuit"),
.description = COMPOUND_STRING(
"Inflicts bad damage if used\n"
"on a foe switching out."),
.effect = EFFECT_PURSUIT,
.power = 40,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Pursuit,
.validApprenticeMove = TRUE,
},
[MOVE_RAPID_SPIN] =
{
.name = COMPOUND_STRING("Rapid Spin"),
.description = COMPOUND_STRING(
"Spins attack that removes\n"
#if B_SPEED_BUFFING_RAPID_SPIN >= GEN_8
"some effects and ups speed."),
#else
"certain effects."),
#endif
.effect = EFFECT_RAPID_SPIN,
.power = B_UPDATED_MOVE_DATA >= GEN_8 ? 50 : 20,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 40,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS(
#if B_SPEED_BUFFING_RAPID_SPIN >= GEN_8
{
.moveEffect = MOVE_EFFECT_SPD_PLUS_1,
.self = TRUE,
.chance = 100,
}
#endif
),
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RapidSpin,
.validApprenticeMove = TRUE,
},
[MOVE_SWEET_SCENT] =
{
.name = COMPOUND_STRING("Sweet Scent"),
.description = COMPOUND_STRING(
#if B_UPDATED_MOVE_DATA >= GEN_6
"Allures the foes to harshly\n"
"reduce evasiveness."),
#else
"Allures the foes to reduce\n"
"evasiveness."),
#endif
.effect = B_UPDATED_MOVE_DATA >= GEN_6 ? EFFECT_EVASION_DOWN_2 : EFFECT_EVASION_DOWN,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ACC_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_SWEET_SCENT,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SweetScent,
.validApprenticeMove = TRUE,
},
[MOVE_IRON_TAIL] =
{
.name = COMPOUND_STRING("Iron Tail"),
.description = COMPOUND_STRING(
"Attacks with a rock-hard\n"
"tail. May lower Defense."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_STEEL,
.accuracy = 75,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_MINUS_1,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_IronTail,
.validApprenticeMove = TRUE,
},
[MOVE_METAL_CLAW] =
{
.name = COMPOUND_STRING("Metal Claw"),
.description = COMPOUND_STRING(
"A claw attack that may\n"
"raise the user's Attack."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_STEEL,
.accuracy = 95,
.pp = 35,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ATK_PLUS_1,
.self = TRUE,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_METAL_SOUND},
.battleAnimScript = gBattleAnimMove_MetalClaw,
.validApprenticeMove = TRUE,
},
[MOVE_VITAL_THROW] =
{
.name = COMPOUND_STRING("Vital Throw"),
.description = COMPOUND_STRING(
"Makes the user's move last,\n"
"but it never misses."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_FIGHTING,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = -1,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_LATER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FAKE_OUT},
.battleAnimScript = gBattleAnimMove_VitalThrow,
.validApprenticeMove = TRUE,
},
[MOVE_MORNING_SUN] =
{
.name = COMPOUND_STRING("Morning Sun"),
.description = COMPOUND_STRING(
"Restores HP. The amount\n"
"varies with the weather."),
.effect = EFFECT_MORNING_SUN,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.healingMove = TRUE,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_MorningSun,
.validApprenticeMove = TRUE,
},
[MOVE_SYNTHESIS] =
{
.name = COMPOUND_STRING("Synthesis"),
.description = COMPOUND_STRING(
"Restores HP. The amount\n"
"varies with the weather."),
.effect = EFFECT_SYNTHESIS,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.healingMove = TRUE,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_Synthesis,
.validApprenticeMove = TRUE,
},
[MOVE_MOONLIGHT] =
{
.name = COMPOUND_STRING("Moonlight"),
.description = COMPOUND_STRING(
"Restores HP. The amount\n"
"varies with the weather."),
.effect = EFFECT_MOONLIGHT,
.power = 0,
.type = B_UPDATED_MOVE_TYPES >= GEN_6 ? TYPE_FAIRY : TYPE_NORMAL,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.healingMove = TRUE,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_Moonlight,
.validApprenticeMove = TRUE,
},
[MOVE_HIDDEN_POWER] =
{
.name = COMPOUND_STRING("Hidden Power"),
.description = COMPOUND_STRING(
#if B_HIDDEN_POWER_DMG >= GEN_6
"The type varies\n"
"with the user."),
#else
"The type and effectiveness\n"
"vary with the user."),
#endif
.power = B_HIDDEN_POWER_DMG >= GEN_6 ? 60 : 1,
.effect = EFFECT_HIDDEN_POWER,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HiddenPower,
.validApprenticeMove = TRUE,
},
[MOVE_CROSS_CHOP] =
{
.name = COMPOUND_STRING("Cross Chop"),
.description = COMPOUND_STRING(
"A double-chopping attack.\n"
"High critical-hit ratio."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_FIGHTING,
.accuracy = 80,
.criticalHitStage = 1,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY},
.battleAnimScript = gBattleAnimMove_CrossChop,
.validApprenticeMove = TRUE,
},
[MOVE_TWISTER] =
{
.name = COMPOUND_STRING("Twister"),
.description = COMPOUND_STRING(
"Whips up a vicious twister\n"
"to tear at foes. May flinch."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.damagesAirborneDoubleDamage = TRUE,
.windMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Twister,
},
[MOVE_RAIN_DANCE] =
{
.name = COMPOUND_STRING("Rain Dance"),
.description = COMPOUND_STRING(
"Boosts the power of Water-\n"
"type moves for 5 turns."),
.effect = EFFECT_RAIN_DANCE,
.power = 0,
.type = TYPE_WATER,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_RAIN_DANCE,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RainDance,
.validApprenticeMove = TRUE,
},
[MOVE_SUNNY_DAY] =
{
.name = COMPOUND_STRING("Sunny Day"),
.description = COMPOUND_STRING(
"Boosts the power of Fire-\n"
"type moves for 5 turns."),
.effect = EFFECT_SUNNY_DAY,
.power = 0,
.type = TYPE_FIRE,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_SUNNY_DAY,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SunnyDay,
.validApprenticeMove = TRUE,
},
[MOVE_CRUNCH] =
{
.name = COMPOUND_STRING("Crunch"),
.description = COMPOUND_STRING(
"Crunches with sharp fangs.\n"
#if B_UPDATED_MOVE_DATA >= GEN_4
"May lower Defense."),
#else
"May lower Sp. Def."),
#endif
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.bitingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
#if B_UPDATED_MOVE_DATA >= GEN_4
.moveEffect = MOVE_EFFECT_DEF_MINUS_1,
#else
.moveEffect = MOVE_EFFECT_SP_DEF_MINUS_1,
#endif
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SCARY_FACE},
.battleAnimScript = gBattleAnimMove_Crunch,
.validApprenticeMove = TRUE,
},
[MOVE_MIRROR_COAT] =
{
.name = COMPOUND_STRING("Mirror Coat"),
.description = COMPOUND_STRING(
"Counters the foe's special\n"
"attack at double the power."),
.effect = EFFECT_MIRROR_COAT,
.power = 1,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_DEPENDS,
.priority = -5,
.category = DAMAGE_CATEGORY_SPECIAL,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS >= GEN_4,
.meFirstBanned = TRUE,
.metronomeBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_TAUNT},
.battleAnimScript = gBattleAnimMove_MirrorCoat,
.validApprenticeMove = TRUE,
},
[MOVE_PSYCH_UP] =
{
.name = COMPOUND_STRING("Psych Up"),
.description = COMPOUND_STRING(
"Copies foe's stat changes\n"
"and gives to the user."),
.effect = EFFECT_PSYCH_UP,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RECOVER_HP },
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = B_UPDATED_MOVE_FLAGS < GEN_5,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PsychUp,
.validApprenticeMove = TRUE,
},
[MOVE_EXTREME_SPEED] =
{
.name = COMPOUND_STRING("Extreme Speed"),
.description = COMPOUND_STRING(
"An extremely fast and\n"
"powerful attack."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = B_UPDATED_MOVE_DATA >= GEN_5 ? 2 : 1,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ExtremeSpeed,
.validApprenticeMove = TRUE,
},
[MOVE_ANCIENT_POWER] =
{
.name = COMPOUND_STRING("Ancient Power"),
.description = COMPOUND_STRING(
"An attack that may raise\n"
"all stats."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_ROCK,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.makesContact = B_UPDATED_MOVE_DATA < GEN_4,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ALL_STATS_UP,
.self = TRUE,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AncientPower,
.validApprenticeMove = TRUE,
},
[MOVE_SHADOW_BALL] =
{
.name = COMPOUND_STRING("Shadow Ball"),
.description = COMPOUND_STRING(
"Hurls a black blob that may\n"
"lower the foe's Sp. Def."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ballisticMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_DEF_MINUS_1,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ShadowBall,
.validApprenticeMove = TRUE,
},
[MOVE_FUTURE_SIGHT] =
{
.name = COMPOUND_STRING("Future Sight"),
.description = COMPOUND_STRING(
"Heightens inner power to\n"
"strike 2 turns later."),
#if B_UPDATED_MOVE_DATA >= GEN_6
.power = 120,
#elif B_UPDATED_MOVE_DATA >= GEN_5
.power = 100,
#else
.power = 80,
#endif
.effect = EFFECT_FUTURE_SIGHT,
.type = TYPE_PSYCHIC,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 100 : 90,
.pp = B_UPDATED_MOVE_DATA >= GEN_5 ? 10 : 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CALM_MIND, COMBO_STARTER_CONFUSION, COMBO_STARTER_KINESIS, COMBO_STARTER_PSYCHIC},
.battleAnimScript = gBattleAnimMove_FutureSight,
.validApprenticeMove = TRUE,
},
[MOVE_ROCK_SMASH] =
{
.name = COMPOUND_STRING("Rock Smash"),
.description = COMPOUND_STRING(
"A rock-crushing attack\n"
"that may lower Defense."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_4 ? 40 : 20,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_MINUS_1,
.chance = 50,
}),
.contestEffect = CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RockSmash,
.validApprenticeMove = TRUE,
},
[MOVE_WHIRLPOOL] =
{
.name = COMPOUND_STRING("Whirlpool"),
.description = COMPOUND_STRING(
"Traps and hurts the foe in\n"
"a whirlpool for "BINDING_TURNS" turns."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_5 ? 35 : 15,
.type = TYPE_WATER,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 85 : 70,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.damagesUnderwater = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_WRAP,
}),
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_Whirlpool,
.validApprenticeMove = TRUE,
},
[MOVE_BEAT_UP] =
{
.name = COMPOUND_STRING("Beat Up"),
.description = COMPOUND_STRING(
"Summons party Pokémon to\n"
"join in the attack."),
.effect = EFFECT_BEAT_UP,
.power = B_UPDATED_MOVE_DATA >= GEN_5 ? 1 : 10,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BeatUp,
.validApprenticeMove = TRUE,
},
[MOVE_FAKE_OUT] =
{
.name = COMPOUND_STRING("Fake Out"),
.description = COMPOUND_STRING(
"Moves 1st and flinches. Only\n"
"works on user's 1st turn."),
.priority = B_UPDATED_MOVE_DATA >= GEN_5 ? 3 : 1,
.makesContact = B_UPDATED_MOVE_DATA >= GEN_4,
.effect = EFFECT_FIRST_TURN_ONLY,
.power = 40,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.category = DAMAGE_CATEGORY_PHYSICAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_FAKE_OUT,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FakeOut,
.validApprenticeMove = TRUE,
},
[MOVE_UPROAR] =
{
.name = COMPOUND_STRING("Uproar"),
.description = COMPOUND_STRING(
#if B_UPROAR_TURNS >= GEN_5
"Causes an uproar for 2 to 5\n"
#else
"Causes an uproar for 3\n"
#endif
"turns and prevents sleep."),
.effect = EFFECT_UPROAR,
.power = B_UPDATED_MOVE_DATA >= GEN_5 ? 90 : 50,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_RANDOM,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.soundMove = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_UPROAR,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Uproar,
.validApprenticeMove = TRUE,
},
[MOVE_STOCKPILE] =
{
.name = COMPOUND_STRING("Stockpile"),
.description = COMPOUND_STRING(
"Charges up power for up to\n"
"3 turns."),
.effect = EFFECT_STOCKPILE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = B_UPDATED_MOVE_DATA >= GEN_4 ? 20 : 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RECOVER_HP },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_STOCKPILE,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Stockpile,
.validApprenticeMove = TRUE,
},
[MOVE_SPIT_UP] =
{
.name = COMPOUND_STRING("Spit Up"),
.description = COMPOUND_STRING(
"Releases stockpiled power\n"
"(the more the better)."),
.effect = EFFECT_SPIT_UP,
.power = B_UPDATED_MOVE_DATA >= GEN_4 ? 1 : 100,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_STOCKPILE},
.battleAnimScript = gBattleAnimMove_SpitUp,
.validApprenticeMove = TRUE,
},
[MOVE_SWALLOW] =
{
.name = COMPOUND_STRING("Swallow"),
.description = COMPOUND_STRING(
"Absorbs stockpiled power\n"
"and restores HP."),
.effect = EFFECT_SWALLOW,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.healingMove = TRUE,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_STOCKPILE},
.battleAnimScript = gBattleAnimMove_Swallow,
.validApprenticeMove = TRUE,
},
[MOVE_HEAT_WAVE] =
{
.name = COMPOUND_STRING("Heat Wave"),
.description = COMPOUND_STRING(
"Exhales a hot breath on the\n"
"foes. May inflict a burn."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 95 : 100,
.type = TYPE_FIRE,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.windMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_HeatWave,
.validApprenticeMove = TRUE,
},
[MOVE_HAIL] =
{
.name = COMPOUND_STRING("Hail"),
#if B_PREFERRED_ICE_WEATHER == B_ICE_WEATHER_SNOW
.description = COMPOUND_STRING(
"Summons a snowstorm that\n"
"lasts for five turns."),
.effect = EFFECT_SNOWSCAPE,
#else
.description = COMPOUND_STRING(
"Summons a hailstorm that\n"
"strikes every turn."),
.effect = EFFECT_HAIL,
#endif
.power = 0,
.type = TYPE_ICE,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_HAIL,
.contestComboMoves = {0},
.battleAnimScript = (B_PREFERRED_ICE_WEATHER == B_ICE_WEATHER_SNOW) ? gBattleAnimMove_Snowscape : gBattleAnimMove_Hail,
.validApprenticeMove = TRUE,
},
[MOVE_TORMENT] =
{
.name = COMPOUND_STRING("Torment"),
.description = COMPOUND_STRING(
"Torments the foe and stops\n"
"successive use of a move."),
.effect = EFFECT_TORMENT,
.power = 0,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Torment,
.validApprenticeMove = TRUE,
},
[MOVE_FLATTER] =
{
.name = COMPOUND_STRING("Flatter"),
.description = COMPOUND_STRING(
"Confuses the foe, but\n"
"raises its Sp. Atk."),
.effect = EFFECT_FLATTER,
.power = 0,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARM},
.battleAnimScript = gBattleAnimMove_Flatter,
.validApprenticeMove = TRUE,
},
[MOVE_WILL_O_WISP] =
{
.name = COMPOUND_STRING("Will-O-Wisp"),
.description = COMPOUND_STRING(
"Inflicts a burn on the foe\n"
"with intense fire."),
.effect = EFFECT_NON_VOLATILE_STATUS,
.power = 0,
.type = TYPE_FIRE,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_6 ? 85 : 75,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .nonVolatileStatus = MOVE_EFFECT_BURN },
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_WillOWisp,
.validApprenticeMove = TRUE,
},
[MOVE_MEMENTO] =
{
.name = COMPOUND_STRING("Memento"),
.description = COMPOUND_STRING(
"The user faints and harshly\n"
"lowers foes Atk and Sp.Atk."),
.effect = EFFECT_MEMENTO,
.power = 0,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESTORE_REPLACEMENT_HP },
.contestEffect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Memento,
.validApprenticeMove = TRUE,
},
[MOVE_FACADE] =
{
.name = COMPOUND_STRING("Facade"),
.description = COMPOUND_STRING(
"Boosts power when burned,\n"
"paralyzed, or poisoned."),
.effect = EFFECT_FACADE,
.power = 70,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Facade,
.validApprenticeMove = TRUE,
},
[MOVE_FOCUS_PUNCH] =
{
.name = COMPOUND_STRING("Focus Punch"),
.description = COMPOUND_STRING(
"Powerful attack, moves last.\n"
"The user flinches if hit."),
.effect = EFFECT_FOCUS_PUNCH,
.power = 150,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = -3,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.mirrorMoveBanned = TRUE,
.punchingMove = TRUE,
.meFirstBanned = TRUE,
.sleepTalkBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_LATER,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY},
.battleAnimScript = gBattleAnimMove_FocusPunch,
.validApprenticeMove = TRUE,
},
[MOVE_SMELLING_SALTS] =
{
.name = COMPOUND_STRING("Smelling Salts"),
.description = COMPOUND_STRING(
"Powerful against paralyzed\n"
"foes, but also heals them."),
.effect = EFFECT_DOUBLE_POWER_ON_ARG_STATUS,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 70 : 60,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .status = STATUS1_PARALYSIS },
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_REMOVE_STATUS,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SmellingSalts,
.validApprenticeMove = TRUE,
},
[MOVE_FOLLOW_ME] =
{
.name = COMPOUND_STRING("Follow Me"),
.description = COMPOUND_STRING(
"Draws attention to make\n"
"foes attack only the user."),
.effect = EFFECT_FOLLOW_ME,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = B_UPDATED_MOVE_DATA >= GEN_6 ? 2 : 3,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FollowMe,
.validApprenticeMove = TRUE,
},
[MOVE_NATURE_POWER] =
{
.name = COMPOUND_STRING("Nature Power"),
.description = COMPOUND_STRING(
"The type of attack varies\n"
"depending on the location."),
.effect = EFFECT_NATURE_POWER,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_DEPENDS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_4,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.mimicBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_NaturePower,
.validApprenticeMove = TRUE,
},
[MOVE_CHARGE] =
{
.name = COMPOUND_STRING("Charge"),
.description = COMPOUND_STRING(
"Charges power to boost the\n"
"Electric move used next."),
.effect = EFFECT_CHARGE,
.power = 0,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_CHARGE,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Charge,
.validApprenticeMove = TRUE,
},
[MOVE_TAUNT] =
{
.name = COMPOUND_STRING("Taunt"),
.description = COMPOUND_STRING(
"Taunts the foe into only\n"
"using attack moves."),
.effect = EFFECT_TAUNT,
.power = 0,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.ignoresSubstitute = TRUE,
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_TAUNT,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Taunt,
.validApprenticeMove = TRUE,
},
[MOVE_HELPING_HAND] =
{
.name = COMPOUND_STRING("Helping Hand"),
.description = COMPOUND_STRING(
"Boosts the power of ally\n"
"recipient's moves."),
.effect = EFFECT_HELPING_HAND,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = B_UPDATED_MOVE_DATA >= GEN_4 ? MOVE_TARGET_ALLY : MOVE_TARGET_USER,
.priority = 5,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HelpingHand,
.validApprenticeMove = TRUE,
},
[MOVE_TRICK] =
{
.name = COMPOUND_STRING("Trick"),
.description = COMPOUND_STRING(
"Tricks the foe into trading\n"
"held items."),
.effect = EFFECT_TRICK,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_2 },
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Trick,
.validApprenticeMove = TRUE,
},
[MOVE_ROLE_PLAY] =
{
.name = COMPOUND_STRING("Role Play"),
.description = COMPOUND_STRING(
"Mimics the target and\n"
"copies its Ability."),
.effect = EFFECT_ROLE_PLAY,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RolePlay,
.validApprenticeMove = TRUE,
},
[MOVE_WISH] =
{
.name = COMPOUND_STRING("Wish"),
.description = COMPOUND_STRING(
"A wish that restores HP.\n"
"It takes time to work."),
.effect = EFFECT_WISH,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.healingMove = TRUE,
.snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Wish,
.validApprenticeMove = TRUE,
},
[MOVE_ASSIST] =
{
.name = COMPOUND_STRING("Assist"),
.description = COMPOUND_STRING(
"Attacks randomly with one\n"
"of the partner's moves."),
.effect = EFFECT_ASSIST,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_DEPENDS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_4,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.mimicBanned = TRUE,
.contestEffect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Assist,
.validApprenticeMove = TRUE,
},
[MOVE_INGRAIN] =
{
.name = COMPOUND_STRING("Ingrain"),
.description = COMPOUND_STRING(
"Lays roots that restore HP.\n"
"The user can't switch out."),
.effect = EFFECT_INGRAIN,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Ingrain,
.validApprenticeMove = TRUE,
},
[MOVE_SUPERPOWER] =
{
.name = COMPOUND_STRING("Superpower"),
.description = COMPOUND_STRING(
"Boosts strength sharply,\n"
"but lowers abilities."),
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ATK_DEF_DOWN,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_LOCK_ON, COMBO_STARTER_MIND_READER},
.battleAnimScript = gBattleAnimMove_Superpower,
.validApprenticeMove = TRUE,
},
[MOVE_MAGIC_COAT] =
{
.name = COMPOUND_STRING("Magic Coat"),
.description = COMPOUND_STRING(
"Reflects special effects\n"
"back to the attacker."),
.effect = EFFECT_MAGIC_COAT,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_DEPENDS,
.priority = 4,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_2 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MagicCoat,
.validApprenticeMove = TRUE,
},
[MOVE_RECYCLE] =
{
.name = COMPOUND_STRING("Recycle"),
.description = COMPOUND_STRING(
"Recycles a used item for\n"
"one more use."),
.effect = EFFECT_RECYCLE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_2 },
.snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Recycle,
.validApprenticeMove = TRUE,
},
[MOVE_REVENGE] =
{
.name = COMPOUND_STRING("Revenge"),
.description = sRevengeDescription,
.effect = EFFECT_REVENGE,
.power = 60,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = -4,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_LATER,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_REVENGE,
.contestComboMoves = {COMBO_STARTER_PAYBACK},
.battleAnimScript = gBattleAnimMove_Revenge,
.validApprenticeMove = TRUE,
},
[MOVE_BRICK_BREAK] =
{
.name = COMPOUND_STRING("Brick Break"),
.description = COMPOUND_STRING(
"Destroys barriers such as\n"
"REFLECT and causes damage."),
.effect = EFFECT_BRICK_BREAK,
.power = 75,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY},
.battleAnimScript = gBattleAnimMove_BrickBreak,
.validApprenticeMove = TRUE,
},
[MOVE_YAWN] =
{
.name = COMPOUND_STRING("Yawn"),
.description = COMPOUND_STRING(
"Lulls the foe into yawning,\n"
"then sleeping next turn."),
.effect = EFFECT_YAWN,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .nonVolatileStatus = MOVE_EFFECT_SLEEP },
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_YAWN,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Yawn,
.validApprenticeMove = TRUE,
},
[MOVE_KNOCK_OFF] =
{
.name = COMPOUND_STRING("Knock Off"),
.description = COMPOUND_STRING(
"Knocks down the foe's held\n"
"item to prevent its use."),
.effect = EFFECT_KNOCK_OFF,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 65 : 20,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FAKE_OUT},
.battleAnimScript = gBattleAnimMove_KnockOff,
.validApprenticeMove = TRUE,
},
[MOVE_ENDEAVOR] =
{
.name = COMPOUND_STRING("Endeavor"),
.description = COMPOUND_STRING(
"Cuts foe's HP to equal\n"
"user's HP."),
.effect = EFFECT_ENDEAVOR,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.parentalBondBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_ENDURE},
.battleAnimScript = gBattleAnimMove_Endeavor,
.validApprenticeMove = TRUE,
},
[MOVE_ERUPTION] =
{
.name = COMPOUND_STRING("Eruption"),
.description = COMPOUND_STRING(
"The higher the user's HP,\n"
"the more damage caused."),
.effect = EFFECT_POWER_BASED_ON_USER_HP,
.power = 150,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_LATER,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_EARTHQUAKE, COMBO_STARTER_ENDURE, COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_Eruption,
.validApprenticeMove = TRUE,
},
[MOVE_SKILL_SWAP] =
{
.name = COMPOUND_STRING("Skill Swap"),
.description = COMPOUND_STRING(
"The user swaps special\n"
"abilities with the target."),
.effect = EFFECT_SKILL_SWAP,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresSubstitute = TRUE,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SkillSwap,
.validApprenticeMove = TRUE,
},
[MOVE_IMPRISON] =
{
.name = COMPOUND_STRING("Imprison"),
.description = COMPOUND_STRING(
"Prevents foes from using\n"
"moves known by the user."),
.effect = EFFECT_IMPRISON,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_2 },
.snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.forcePressure = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Imprison,
.validApprenticeMove = TRUE,
},
[MOVE_REFRESH] =
{
.name = COMPOUND_STRING("Refresh"),
.description = COMPOUND_STRING(
"Heals poisoning, paralysis,\n"
"or a burn."),
.effect = EFFECT_REFRESH,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RECOVER_HP },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SING, COMBO_STARTER_WATER_SPORT},
.battleAnimScript = gBattleAnimMove_Refresh,
.validApprenticeMove = TRUE,
},
[MOVE_GRUDGE] =
{
.name = COMPOUND_STRING("Grudge"),
.description = COMPOUND_STRING(
"If the user faints, deletes\n"
"all PP of foe's last move."),
.effect = EFFECT_GRUDGE,
.power = 0,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_FOLLOW_ME },
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_LATER,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CURSE},
.battleAnimScript = gBattleAnimMove_Grudge,
.validApprenticeMove = TRUE,
},
[MOVE_SNATCH] =
{
.name = COMPOUND_STRING("Snatch"),
.description = COMPOUND_STRING(
"Steals the effects of the\n"
"move the target uses next."),
.effect = EFFECT_SNATCH,
.power = 0,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_DEPENDS,
.priority = 4,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_2 },
.ignoresSubstitute = TRUE,
.forcePressure = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Snatch,
.validApprenticeMove = TRUE,
},
[MOVE_SECRET_POWER] =
{
.name = COMPOUND_STRING("Secret Power"),
.description = COMPOUND_STRING(
"An attack with effects\n"
"that vary by location."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SECRET_POWER,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SecretPower,
.validApprenticeMove = TRUE,
},
[MOVE_DIVE] =
{
.name = COMPOUND_STRING("Dive"),
.description = COMPOUND_STRING(
"Dives underwater the first\n"
"turn and strikes next turn."),
.effect = EFFECT_SEMI_INVULNERABLE,
.power = B_UPDATED_MOVE_DATA >= GEN_4 ? 80 : 60,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.skyBattleBanned = TRUE,
.argument.twoTurnAttack = { .stringId = STRINGID_PKMNHIDUNDERWATER, .status = COMPRESS_BITS(STATUS3_UNDERWATER) },
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_DIVE,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SURF},
.battleAnimScript = gBattleAnimMove_Dive,
.validApprenticeMove = TRUE,
},
[MOVE_ARM_THRUST] =
{
.name = COMPOUND_STRING("Arm Thrust"),
.description = COMPOUND_STRING(
"Straight-arm punches that\n"
"strike the foe 2 to 5 times."),
.effect = EFFECT_MULTI_HIT,
.power = 15,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FAKE_OUT, COMBO_STARTER_FOCUS_ENERGY},
.battleAnimScript = gBattleAnimMove_ArmThrust,
},
[MOVE_CAMOUFLAGE] =
{
.name = COMPOUND_STRING("Camouflage"),
.description = COMPOUND_STRING(
"Alters the Pokémon's type\n"
"depending on the location."),
.effect = EFFECT_CAMOUFLAGE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_EVSN_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Camouflage,
.validApprenticeMove = TRUE,
},
[MOVE_TAIL_GLOW] =
{
.name = COMPOUND_STRING("Tail Glow"),
.description = COMPOUND_STRING(
#if B_UPDATED_MOVE_DATA >= GEN_5
"Flash light that drastically\n"
#else
"Flashes a light that sharply\n"
#endif
"raises Sp. Atk."),
.effect = B_UPDATED_MOVE_DATA >= GEN_5 ? EFFECT_SPECIAL_ATTACK_UP_3 : EFFECT_SPECIAL_ATTACK_UP_2,
.power = 0,
.type = TYPE_BUG,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_TailGlow,
.validApprenticeMove = TRUE,
},
[MOVE_LUSTER_PURGE] =
{
.name = COMPOUND_STRING("Luster Purge"),
.description = COMPOUND_STRING(
"Attacks with a burst of\n"
"light. May lower Sp. Def."),
.effect = EFFECT_HIT,
.power = (B_UPDATED_MOVE_DATA >= GEN_9) ? 95 : 70,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_DEF_MINUS_1,
.chance = 50,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CALM_MIND},
.battleAnimScript = gBattleAnimMove_LusterPurge,
.validApprenticeMove = TRUE,
},
[MOVE_MIST_BALL] =
{
.name = COMPOUND_STRING("Mist Ball"),
.description = COMPOUND_STRING(
"Attacks with a flurry of\n"
"down. May lower Sp. Atk."),
.effect = EFFECT_HIT,
.power = (B_UPDATED_MOVE_DATA >= GEN_9) ? 95 : 70,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ballisticMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_MINUS_1,
.chance = 50,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CALM_MIND},
.battleAnimScript = gBattleAnimMove_MistBall,
.validApprenticeMove = TRUE,
},
[MOVE_FEATHER_DANCE] =
{
.name = COMPOUND_STRING("Feather Dance"),
.description = COMPOUND_STRING(
"Envelops the foe with down\n"
"to sharply reduce Attack."),
.effect = EFFECT_ATTACK_DOWN_2,
.power = 0,
.type = TYPE_FLYING,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.magicCoatAffected = TRUE,
.danceMove = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FeatherDance,
.validApprenticeMove = TRUE,
},
[MOVE_TEETER_DANCE] =
{
.name = COMPOUND_STRING("Teeter Dance"),
.description = COMPOUND_STRING(
"Confuses all Pokémon on\n"
"the scene."),
.effect = EFFECT_CONFUSE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.danceMove = TRUE,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_4,
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_TeeterDance,
.validApprenticeMove = TRUE,
},
[MOVE_BLAZE_KICK] =
{
.name = COMPOUND_STRING("Blaze Kick"),
.description = COMPOUND_STRING(
"A kick with a high critical-\n"
"hit ratio. May cause a burn."),
.effect = EFFECT_HIT,
.power = 85,
.type = TYPE_FIRE,
.accuracy = 90,
.criticalHitStage = 1,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_BlazeKick,
.validApprenticeMove = TRUE,
},
[MOVE_MUD_SPORT] =
{
.name = COMPOUND_STRING("Mud Sport"),
.description = COMPOUND_STRING(
"Covers the user in mud to\n"
"weaken all Electric moves."),
// in theory this should mention 5 turns (gen 6+)
.effect = EFFECT_MUD_SPORT,
.power = 0,
.type = TYPE_GROUND,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_MUD_SPORT,
.contestComboMoves = {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_SANDSTORM, COMBO_STARTER_WATER_SPORT},
.battleAnimScript = gBattleAnimMove_MudSport,
.validApprenticeMove = TRUE,
},
[MOVE_ICE_BALL] =
{
.name = COMPOUND_STRING("Ice Ball"),
.description = COMPOUND_STRING(
"A 5-turn attack that gains\n"
"power on successive hits."),
.effect = EFFECT_ROLLOUT,
.power = 30,
.type = TYPE_ICE,
.accuracy = 90,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ballisticMove = TRUE,
.instructBanned = TRUE,
.parentalBondBanned = TRUE,
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_HAIL},
.battleAnimScript = gBattleAnimMove_IceBall,
},
[MOVE_NEEDLE_ARM] =
{
.name = COMPOUND_STRING("Needle Arm"),
.description = COMPOUND_STRING(
"Attacks with thorny arms.\n"
"May cause flinching."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS < GEN_4,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_NeedleArm,
.validApprenticeMove = TRUE,
},
[MOVE_SLACK_OFF] =
{
.name = COMPOUND_STRING("Slack Off"),
.description = COMPOUND_STRING(
"Slacks off and restores\n"
"half the maximum HP."),
.effect = EFFECT_RESTORE_HP,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_9 ? 5 : 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.healingMove = TRUE,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_LATER,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SlackOff,
.validApprenticeMove = TRUE,
},
[MOVE_HYPER_VOICE] =
{
.name = COMPOUND_STRING("Hyper Voice"),
.description = COMPOUND_STRING(
"A loud attack that uses\n"
"sound waves to injure."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.soundMove = TRUE,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HyperVoice,
.validApprenticeMove = TRUE,
},
[MOVE_POISON_FANG] =
{
.name = COMPOUND_STRING("Poison Fang"),
.description = COMPOUND_STRING(
"A sharp-fanged attack.\n"
"May badly poison the foe."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.bitingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_TOXIC,
.chance = B_UPDATED_MOVE_DATA >= GEN_6 ? 50 : 30,
}),
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PoisonFang,
},
[MOVE_CRUSH_CLAW] =
{
.name = COMPOUND_STRING("Crush Claw"),
.description = COMPOUND_STRING(
"Tears at the foe with sharp\n"
"claws. May lower Defense."),
.effect = EFFECT_HIT,
.power = 75,
.type = TYPE_NORMAL,
.accuracy = 95,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_MINUS_1,
.chance = 50,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SWORDS_DANCE},
.battleAnimScript = gBattleAnimMove_CrushClaw,
.validApprenticeMove = TRUE,
},
[MOVE_BLAST_BURN] =
{
.name = COMPOUND_STRING("Blast Burn"),
.description = COMPOUND_STRING(
"Powerful, but leaves the\n"
"user immobile the next turn."),
.effect = EFFECT_HIT,
.power = 150,
.type = TYPE_FIRE,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RECHARGE,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_BlastBurn,
.validApprenticeMove = TRUE,
},
[MOVE_HYDRO_CANNON] =
{
.name = COMPOUND_STRING("Hydro Cannon"),
.description = COMPOUND_STRING(
"Powerful, but leaves the\n"
"user immobile the next turn."),
.effect = EFFECT_HIT,
.power = 150,
.type = TYPE_WATER,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RECHARGE,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_HydroCannon,
.validApprenticeMove = TRUE,
},
[MOVE_METEOR_MASH] =
{
.name = COMPOUND_STRING("Meteor Mash"),
.description = COMPOUND_STRING(
"Fires a meteor-like punch.\n"
"May raise Attack."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 90 : 100,
.type = TYPE_STEEL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_6 ? 90 : 85,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ATK_PLUS_1,
.self = TRUE,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MeteorMash,
.validApprenticeMove = TRUE,
},
[MOVE_ASTONISH] =
{
.name = COMPOUND_STRING("Astonish"),
.description = COMPOUND_STRING(
"An attack that may shock\n"
"the foe into flinching."),
.effect = EFFECT_HIT,
.power = 30,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS < GEN_4,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Astonish,
.validApprenticeMove = TRUE,
},
[MOVE_WEATHER_BALL] =
{
.name = COMPOUND_STRING("Weather Ball"),
.description = COMPOUND_STRING(
"The move's type and power\n"
"change with the weather."),
.effect = EFFECT_WEATHER_BALL,
.power = 50,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.zMove = { .powerOverride = 160 },
.ballisticMove = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_HAIL, COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SANDSTORM, COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_WeatherBall,
.validApprenticeMove = TRUE,
},
[MOVE_AROMATHERAPY] =
{
.name = COMPOUND_STRING("Aromatherapy"),
.description = COMPOUND_STRING(
"Heals all status problems\n"
"with a soothing scent."),
.effect = EFFECT_HEAL_BELL,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RECOVER_HP },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Aromatherapy,
.validApprenticeMove = TRUE,
},
[MOVE_FAKE_TEARS] =
{
.name = COMPOUND_STRING("Fake Tears"),
.description = COMPOUND_STRING(
"Feigns crying to sharply\n"
"lower the foe's Sp. Def."),
.effect = EFFECT_SPECIAL_DEFENSE_DOWN_2,
.power = 0,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FakeTears,
.validApprenticeMove = TRUE,
},
[MOVE_AIR_CUTTER] =
{
.name = COMPOUND_STRING("Air Cutter"),
.description = COMPOUND_STRING(
"Hacks with razorlike wind.\n"
"High critical-hit ratio."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 60 : 55,
.type = TYPE_FLYING,
.accuracy = 95,
.criticalHitStage = 1,
.pp = 25,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.windMove = TRUE,
.slicingMove = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AirCutter,
.validApprenticeMove = TRUE,
},
[MOVE_OVERHEAT] =
{
.name = COMPOUND_STRING("Overheat"),
.description = COMPOUND_STRING(
"Allows a full-power attack,\n"
"but sharply lowers Sp. Atk."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 130 : 140,
.type = TYPE_FIRE,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.makesContact = B_UPDATED_MOVE_DATA < GEN_4,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_MINUS_2,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_Overheat,
.validApprenticeMove = TRUE,
},
[MOVE_ODOR_SLEUTH] =
{
.name = COMPOUND_STRING("Odor Sleuth"),
.description = COMPOUND_STRING(
"Negate evasiveness and\n"
"Ghost type's immunities."),
.effect = EFFECT_FORESIGHT,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_4 ? 0 : 100,
.pp = 40,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.ignoresSubstitute = TRUE,
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_OdorSleuth,
.validApprenticeMove = TRUE,
},
[MOVE_ROCK_TOMB] =
{
.name = COMPOUND_STRING("Rock Tomb"),
.description = COMPOUND_STRING(
"Stops the foe from moving\n"
"with rocks and cuts Speed."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 60 : 50,
.type = TYPE_ROCK,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_6 ? 95 : 80,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 15 : 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_ROCK_THROW},
.battleAnimScript = gBattleAnimMove_RockTomb,
.validApprenticeMove = TRUE,
},
[MOVE_SILVER_WIND] =
{
.name = COMPOUND_STRING("Silver Wind"),
.description = COMPOUND_STRING(
"A powdery attack that may\n"
"raise abilities."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.windMove = B_EXTRAPOLATED_MOVE_FLAGS,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ALL_STATS_UP,
.self = TRUE,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SilverWind,
.validApprenticeMove = TRUE,
},
[MOVE_METAL_SOUND] =
{
.name = COMPOUND_STRING("Metal Sound"),
.description = COMPOUND_STRING(
"Emits a horrible screech\n"
"that sharply lowers Sp. Def."),
.effect = EFFECT_SPECIAL_DEFENSE_DOWN_2,
.power = 0,
.type = TYPE_STEEL,
.accuracy = 85,
.pp = 40,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.magicCoatAffected = TRUE,
.soundMove = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_METAL_SOUND,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MetalSound,
.validApprenticeMove = TRUE,
},
[MOVE_GRASS_WHISTLE] =
{
.name = COMPOUND_STRING("Grass Whistle"),
.description = COMPOUND_STRING(
"Lulls the foe into sleep\n"
"with a pleasant melody."),
.effect = EFFECT_NON_VOLATILE_STATUS,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 55,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .nonVolatileStatus = MOVE_EFFECT_SLEEP },
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.magicCoatAffected = TRUE,
.soundMove = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_GrassWhistle,
.validApprenticeMove = TRUE,
},
[MOVE_TICKLE] =
{
.name = COMPOUND_STRING("Tickle"),
.description = COMPOUND_STRING(
"Makes the foe laugh to\n"
"lower Attack and Defense."),
.effect = EFFECT_TICKLE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Tickle,
.validApprenticeMove = TRUE,
},
[MOVE_COSMIC_POWER] =
{
.name = COMPOUND_STRING("Cosmic Power"),
.description = COMPOUND_STRING(
"Raises Defense and Sp. Def\n"
"with a mystic power."),
.effect = EFFECT_COSMIC_POWER,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_CosmicPower,
.validApprenticeMove = TRUE,
},
[MOVE_WATER_SPOUT] =
{
.name = COMPOUND_STRING("Water Spout"),
.description = COMPOUND_STRING(
"Inflicts more damage if the\n"
"user's HP is high."),
.effect = EFFECT_POWER_BASED_ON_USER_HP,
.power = 150,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_LATER,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_WaterSpout,
.validApprenticeMove = TRUE,
},
[MOVE_SIGNAL_BEAM] =
{
.name = COMPOUND_STRING("Signal Beam"),
.description = COMPOUND_STRING(
"A strange beam attack that\n"
"may confuse the foe."),
.effect = EFFECT_HIT,
.power = 75,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSION,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SignalBeam,
.validApprenticeMove = TRUE,
},
[MOVE_SHADOW_PUNCH] =
{
.name = COMPOUND_STRING("Shadow Punch"),
.description = COMPOUND_STRING(
"An unavoidable punch that\n"
"is thrown from shadows."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_GHOST,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ShadowPunch,
.validApprenticeMove = TRUE,
},
[MOVE_EXTRASENSORY] =
{
.name = COMPOUND_STRING("Extrasensory"),
.description = COMPOUND_STRING(
"Attacks with a peculiar\n"
"power. May cause flinching."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 20 : 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS < GEN_4,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Extrasensory,
.validApprenticeMove = TRUE,
},
[MOVE_SKY_UPPERCUT] =
{
.name = COMPOUND_STRING("Sky Uppercut"),
.description = COMPOUND_STRING(
"An uppercut thrown as if\n"
"leaping into the sky."),
.effect = EFFECT_HIT,
.power = 85,
.type = TYPE_FIGHTING,
.accuracy = 90,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.damagesAirborne = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY},
.battleAnimScript = gBattleAnimMove_SkyUppercut,
.validApprenticeMove = TRUE,
},
[MOVE_SAND_TOMB] =
{
.name = COMPOUND_STRING("Sand Tomb"),
.description = COMPOUND_STRING(
"Traps and hurts the foe in\n"
"quicksand for "BINDING_TURNS" turns."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_5 ? 35 : 15,
.type = TYPE_GROUND,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 85 : 70,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_WRAP,
}),
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SANDSTORM},
.battleAnimScript = gBattleAnimMove_SandTomb,
.validApprenticeMove = TRUE,
},
[MOVE_SHEER_COLD] =
{
.name = COMPOUND_STRING("Sheer Cold"),
.description = COMPOUND_STRING(
"A chilling attack that\n"
"causes fainting if it hits."),
.effect = EFFECT_SHEER_COLD,
.power = 1,
.type = TYPE_ICE,
.accuracy = 30,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_HAIL, COMBO_STARTER_MIND_READER},
.battleAnimScript = gBattleAnimMove_SheerCold,
.validApprenticeMove = TRUE,
},
[MOVE_MUDDY_WATER] =
{
.name = COMPOUND_STRING("Muddy Water"),
.description = COMPOUND_STRING(
"Attacks with muddy water.\n"
"May lower accuracy."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 90 : 95,
.type = TYPE_WATER,
.accuracy = 85,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.skyBattleBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ACC_MINUS_1,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_MuddyWater,
.validApprenticeMove = TRUE,
},
[MOVE_BULLET_SEED] =
{
.name = COMPOUND_STRING("Bullet Seed"),
.description = COMPOUND_STRING(
"Shoots 2 to 5 seeds in a row\n"
"to strike the foe."),
.effect = EFFECT_MULTI_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_5 ? 25 : 10,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ballisticMove = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_GROWTH},
.battleAnimScript = gBattleAnimMove_BulletSeed,
},
[MOVE_AERIAL_ACE] =
{
.name = COMPOUND_STRING("Aerial Ace"),
.description = COMPOUND_STRING(
"An extremely speedy and\n"
"unavoidable attack."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_FLYING,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AerialAce,
.validApprenticeMove = TRUE,
},
[MOVE_ICICLE_SPEAR] =
{
.name = COMPOUND_STRING("Icicle Spear"),
.description = COMPOUND_STRING(
"Attacks the foe by firing\n"
"2 to 5 icicles in a row."),
.effect = EFFECT_MULTI_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_5 ? 25 : 10,
.type = TYPE_ICE,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_IcicleSpear,
},
[MOVE_IRON_DEFENSE] =
{
.name = COMPOUND_STRING("Iron Defense"),
.description = COMPOUND_STRING(
"Hardens the body's surface\n"
"to sharply raise Defense."),
.effect = EFFECT_DEFENSE_UP_2,
.power = 0,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_IronDefense,
.validApprenticeMove = TRUE,
},
[MOVE_BLOCK] =
{
.name = COMPOUND_STRING("Block"),
.description = COMPOUND_STRING(
"Blocks the foe's way and\n"
"prevents escape."),
.effect = EFFECT_MEAN_LOOK,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = (B_UPDATED_MOVE_FLAGS >= GEN_6) || (B_UPDATED_MOVE_FLAGS <= GEN_3),
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Block,
.validApprenticeMove = TRUE,
},
[MOVE_HOWL] =
{
.name = COMPOUND_STRING("Howl"),
.description = COMPOUND_STRING(
"Howls to raise the spirit\n"
"and boosts Attack."),
.power = 0,
.effect = B_UPDATED_MOVE_DATA >= GEN_8 ? EFFECT_ATTACK_UP_USER_ALLY : EFFECT_ATTACK_UP,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 40,
.target = MOVE_TARGET_USER, // Targeting is handled through the script
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.soundMove = B_UPDATED_MOVE_FLAGS >= GEN_8,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Howl,
.validApprenticeMove = TRUE,
},
[MOVE_DRAGON_CLAW] =
{
.name = COMPOUND_STRING("Dragon Claw"),
.description = COMPOUND_STRING(
"Slashes the foe with sharp\n"
"claws."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_RUSH, COMBO_STARTER_DRAGON_TAIL},
.battleAnimScript = gBattleAnimMove_DragonClaw,
.validApprenticeMove = TRUE,
},
[MOVE_FRENZY_PLANT] =
{
.name = COMPOUND_STRING("Frenzy Plant"),
.description = COMPOUND_STRING(
"Powerful, but leaves the\n"
"user immobile the next turn."),
.effect = EFFECT_HIT,
.power = 150,
.type = TYPE_GRASS,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.skyBattleBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RECHARGE,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_GROWTH},
.battleAnimScript = gBattleAnimMove_FrenzyPlant,
.validApprenticeMove = TRUE,
},
[MOVE_BULK_UP] =
{
.name = COMPOUND_STRING("Bulk Up"),
.description = COMPOUND_STRING(
"Bulks up the body to boost\n"
"both Attack and Defense."),
.effect = EFFECT_BULK_UP,
.power = 0,
.type = TYPE_FIGHTING,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BulkUp,
.validApprenticeMove = TRUE,
},
[MOVE_BOUNCE] =
{
.name = COMPOUND_STRING("Bounce"),
.description = COMPOUND_STRING(
"Bounces up, then down the\n"
"next turn. May paralyze."),
.effect = EFFECT_SEMI_INVULNERABLE,
.power = 85,
.type = TYPE_FLYING,
.accuracy = 85,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.gravityBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.argument.twoTurnAttack = { .stringId = STRINGID_PKMNSPRANGUP, .status = COMPRESS_BITS(STATUS3_ON_AIR) },
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Bounce,
.validApprenticeMove = TRUE,
},
[MOVE_MUD_SHOT] =
{
.name = COMPOUND_STRING("Mud Shot"),
.description = COMPOUND_STRING(
"Hurls mud at the foe and\n"
"reduces Speed."),
.effect = EFFECT_HIT,
.power = 55,
.type = TYPE_GROUND,
.accuracy = 95,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SANDSTORM},
.battleAnimScript = gBattleAnimMove_MudShot,
},
[MOVE_POISON_TAIL] =
{
.name = COMPOUND_STRING("Poison Tail"),
.description = COMPOUND_STRING(
"Has a high critical-hit\n"
"ratio. May also poison."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_POISON,
.accuracy = 100,
.criticalHitStage = 1,
.pp = 25,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PoisonTail,
.validApprenticeMove = TRUE,
},
[MOVE_COVET] =
{
.name = COMPOUND_STRING("Covet"),
.description = COMPOUND_STRING(
"Cutely begs to obtain an\n"
"item held by the foe."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_5 ? 60 : 40,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 25 : 40,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = B_UPDATED_MOVE_DATA >= GEN_4,
.meFirstBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_STEAL_ITEM,
}),
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Covet,
.validApprenticeMove = TRUE,
},
[MOVE_VOLT_TACKLE] =
{
.name = COMPOUND_STRING("Volt Tackle"),
#if B_UPDATED_MOVE_DATA >= GEN_4
.description = COMPOUND_STRING(
"A life-risking tackle that\n"
"hurts the user. May paralyze."),
#else
.description = COMPOUND_STRING(
"A life-risking tackle that\n"
"slightly hurts the user."),
#endif
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .recoilPercentage = 33 },
.makesContact = TRUE,
#if B_UPDATED_MOVE_DATA >= GEN_4
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 10,
}),
#endif
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_VoltTackle,
.validApprenticeMove = TRUE,
},
[MOVE_MAGICAL_LEAF] =
{
.name = COMPOUND_STRING("Magical Leaf"),
.description = COMPOUND_STRING(
"Attacks with a strange leaf\n"
"that cannot be evaded."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_GROWTH},
.battleAnimScript = gBattleAnimMove_MagicalLeaf,
.validApprenticeMove = TRUE,
},
[MOVE_WATER_SPORT] =
{
.name = COMPOUND_STRING("Water Sport"),
.description = COMPOUND_STRING(
"The user becomes soaked to\n"
"weaken all Fire moves."),
// in theory this should mention 5 turns (gen6+)
.effect = EFFECT_WATER_SPORT,
.power = 0,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_WATER_SPORT,
.contestComboMoves = {COMBO_STARTER_MUD_SPORT, COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_WaterSport,
.validApprenticeMove = TRUE,
},
[MOVE_CALM_MIND] =
{
.name = COMPOUND_STRING("Calm Mind"),
.description = COMPOUND_STRING(
"Raises Sp. Atk and Sp. Def\n"
"by focusing the mind."),
.effect = EFFECT_CALM_MIND,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_CALM_MIND,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_CalmMind,
.validApprenticeMove = TRUE,
},
[MOVE_LEAF_BLADE] =
{
.name = COMPOUND_STRING("Leaf Blade"),
.description = COMPOUND_STRING(
"Slashes with a sharp leaf.\n"
"High critical-hit ratio."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_4 ? 90 : 70,
.type = TYPE_GRASS,
.accuracy = 100,
.criticalHitStage = 1,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_LeafBlade,
.validApprenticeMove = TRUE,
},
[MOVE_DRAGON_DANCE] =
{
.name = COMPOUND_STRING("Dragon Dance"),
.description = COMPOUND_STRING(
"A mystical dance that ups\n"
"Attack and Speed."),
.effect = EFFECT_DRAGON_DANCE,
.power = 0,
.type = TYPE_DRAGON,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.danceMove = TRUE,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = COMBO_STARTER_DRAGON_DANCE,
.contestComboMoves = {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_RUSH, COMBO_STARTER_DRAGON_TAIL},
.battleAnimScript = gBattleAnimMove_DragonDance,
.validApprenticeMove = TRUE,
},
[MOVE_ROCK_BLAST] =
{
.name = COMPOUND_STRING("Rock Blast"),
.description = COMPOUND_STRING(
"Hurls boulders at the foe\n"
"2 to 5 times in a row."),
.effect = EFFECT_MULTI_HIT,
.power = 25,
.type = TYPE_ROCK,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 90 : 80,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ballisticMove = B_UPDATED_MOVE_FLAGS >= GEN_6,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RockBlast,
},
[MOVE_SHOCK_WAVE] =
{
.name = COMPOUND_STRING("Shock Wave"),
.description = COMPOUND_STRING(
"A fast and unavoidable\n"
"electric attack."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_ELECTRIC,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARGE},
.battleAnimScript = gBattleAnimMove_ShockWave,
.validApprenticeMove = TRUE,
},
[MOVE_WATER_PULSE] =
{
.name = COMPOUND_STRING("Water Pulse"),
.description = COMPOUND_STRING(
"Attacks with ultrasonic\n"
"waves. May confuse the foe."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.pulseMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSION,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_WaterPulse,
.validApprenticeMove = TRUE,
},
[MOVE_DOOM_DESIRE] =
{
.name = COMPOUND_STRING("Doom Desire"),
.description = COMPOUND_STRING(
"Summons strong light to\n"
"attack 2 turns later."),
.effect = EFFECT_FUTURE_SIGHT,
.power = B_UPDATED_MOVE_DATA >= GEN_5 ? 140 : 120,
.type = TYPE_STEEL,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 100 : 85,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DoomDesire,
.validApprenticeMove = TRUE,
},
[MOVE_PSYCHO_BOOST] =
{
.name = COMPOUND_STRING("Psycho Boost"),
.description = COMPOUND_STRING(
"Allows a full-power attack,\n"
"but sharply lowers Sp. Atk."),
.effect = EFFECT_HIT,
.power = 140,
.type = TYPE_PSYCHIC,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_MINUS_2,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CALM_MIND},
.battleAnimScript = gBattleAnimMove_PsychoBoost,
.validApprenticeMove = TRUE,
},
[MOVE_ROOST] =
{
.name = COMPOUND_STRING("Roost"),
.description = COMPOUND_STRING(
"Restores the user's HP by\n"
"half of its max HP."),
.effect = EFFECT_ROOST,
.power = 0,
.type = TYPE_FLYING,
.accuracy = 0,
.pp = B_UPDATED_MOVE_DATA >= GEN_9 ? 5 : 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.healingMove = TRUE,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_BRAVE_BIRD},
.battleAnimScript = gBattleAnimMove_Roost,
},
[MOVE_GRAVITY] =
{
.name = COMPOUND_STRING("Gravity"),
.description = COMPOUND_STRING(
"Gravity is intensified\n"
"negating levitation."),
.effect = EFFECT_GRAVITY,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Gravity,
},
[MOVE_MIRACLE_EYE] =
{
.name = COMPOUND_STRING("Miracle Eye"),
.description = COMPOUND_STRING(
"Negate evasiveness and\n"
"Dark type's immunities."),
.effect = EFFECT_MIRACLE_EYE,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 40,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.ignoresSubstitute = TRUE,
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MiracleEye,
},
[MOVE_WAKE_UP_SLAP] =
{
.name = COMPOUND_STRING("Wake-Up Slap"),
.description = COMPOUND_STRING(
"Powerful against sleeping\n"
"foes, but also wakes them."),
.effect = EFFECT_DOUBLE_POWER_ON_ARG_STATUS,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 70 : 60,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .status = STATUS1_SLEEP },
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_REMOVE_STATUS,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_WakeUpSlap,
},
[MOVE_HAMMER_ARM] =
{
.name = COMPOUND_STRING("Hammer Arm"),
.description = COMPOUND_STRING(
"A swinging fist attack\n"
"that also lowers Speed."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_FIGHTING,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY},
.battleAnimScript = gBattleAnimMove_HammerArm,
},
[MOVE_GYRO_BALL] =
{
.name = COMPOUND_STRING("Gyro Ball"),
.description = COMPOUND_STRING(
"A high-speed spin that does\n"
"more damage to faster foes."),
.effect = EFFECT_GYRO_BALL,
.power = 1,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ballisticMove = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_GyroBall,
},
[MOVE_HEALING_WISH] =
{
.name = COMPOUND_STRING("Healing Wish"),
.description = sHealingWishDescription,
.effect = EFFECT_HEALING_WISH,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.healingMove = TRUE,
.snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HealingWish,
},
[MOVE_BRINE] =
{
.name = COMPOUND_STRING("Brine"),
.description = COMPOUND_STRING(
"Does double damage to foes\n"
"with half HP or less."),
.effect = EFFECT_BRINE,
.power = 65,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_Brine,
},
[MOVE_NATURAL_GIFT] =
{
.name = COMPOUND_STRING("Natural Gift"),
.description = COMPOUND_STRING(
"The effectiveness varies\n"
"with the held Berry."),
.effect = EFFECT_NATURAL_GIFT,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_LATER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_NaturalGift,
},
[MOVE_FEINT] =
{
.name = COMPOUND_STRING("Feint"),
.description = sFeintDescription,
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_5 ? 30 : 50,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 2,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ignoresProtect = TRUE,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_6,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FEINT,
}),
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Feint,
},
[MOVE_PLUCK] =
{
.name = COMPOUND_STRING("Pluck"),
.description = sPluckDescription,
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_FLYING,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BUG_BITE,
}),
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Pluck,
},
[MOVE_TAILWIND] =
{
.name = COMPOUND_STRING("Tailwind"),
.description = COMPOUND_STRING(
"Whips up a breeze, doubling\n"
#if B_TAILWIND_TURNS >= GEN_5
"ally Speed for 4 turns."),
#else
"ally Speed for 3 turns."),
#endif
.effect = EFFECT_TAILWIND,
.power = 0,
.type = TYPE_FLYING,
.accuracy = 0,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 15 : 30,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_BOOST_CRITS },
.snatchAffected = TRUE,
.windMove = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Tailwind,
},
[MOVE_ACUPRESSURE] =
{
.name = COMPOUND_STRING("Acupressure"),
.description = COMPOUND_STRING(
"The user sharply raises\n"
"one of its stats."),
.effect = EFFECT_ACUPRESSURE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 30,
.target = MOVE_TARGET_USER | MOVE_TARGET_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_BOOST_CRITS },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.snatchAffected = B_UPDATED_MOVE_FLAGS < GEN_5,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Acupressure,
},
[MOVE_METAL_BURST] =
{
.name = COMPOUND_STRING("Metal Burst"),
.description = COMPOUND_STRING(
"Retaliates any hit with\n"
"greater power."),
.effect = EFFECT_METAL_BURST,
.power = 1,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_DEPENDS,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.meFirstBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_METAL_SOUND},
.battleAnimScript = gBattleAnimMove_MetalBurst,
},
[MOVE_U_TURN] =
{
.name = COMPOUND_STRING("U-turn"),
.description = sUTurnDescription,
.effect = EFFECT_HIT_ESCAPE,
.power = 70,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_UTurn,
},
[MOVE_CLOSE_COMBAT] =
{
.name = COMPOUND_STRING("Close Combat"),
.description = sCloseCombatDescription,
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_SPDEF_DOWN,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER},
.battleAnimScript = gBattleAnimMove_CloseCombat,
},
[MOVE_PAYBACK] =
{
.name = COMPOUND_STRING("Payback"),
.description = COMPOUND_STRING(
"An attack that gains power\n"
"if the user moves last."),
.effect = EFFECT_PAYBACK,
.power = 50,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = COMBO_STARTER_PAYBACK,
.contestComboMoves = {COMBO_STARTER_REVENGE},
.battleAnimScript = gBattleAnimMove_Payback,
},
[MOVE_ASSURANCE] =
{
.name = COMPOUND_STRING("Assurance"),
.description = COMPOUND_STRING(
"An attack that gains power\n"
"if the foe has been hurt."),
.effect = EFFECT_ASSURANCE,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 60 : 50,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_PAYBACK, COMBO_STARTER_REVENGE},
.battleAnimScript = gBattleAnimMove_Assurance,
},
[MOVE_EMBARGO] =
{
.name = COMPOUND_STRING("Embargo"),
.description = COMPOUND_STRING(
"Prevents the foe from\n"
"using any items."),
.effect = EFFECT_EMBARGO,
.power = 0,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Embargo,
},
[MOVE_FLING] =
{
.name = COMPOUND_STRING("Fling"),
.description = COMPOUND_STRING(
"The effectiveness varies\n"
"with the held item."),
.effect = EFFECT_FLING,
.power = 1,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.parentalBondBanned = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Fling,
},
[MOVE_PSYCHO_SHIFT] =
{
.name = COMPOUND_STRING("Psycho Shift"),
.description = COMPOUND_STRING(
"Transfers status problems\n"
"to the foe."),
.effect = EFFECT_PSYCHO_SHIFT,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_6 ? 100 : 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_2 },
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PsychoShift,
},
[MOVE_TRUMP_CARD] =
{
.name = COMPOUND_STRING("Trump Card"),
.description = COMPOUND_STRING(
"The less PP the move has\n"
"the more damage it does."),
.effect = EFFECT_TRUMP_CARD,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_LATER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_TrumpCard,
},
[MOVE_HEAL_BLOCK] =
{
.name = COMPOUND_STRING("Heal Block"),
.description = COMPOUND_STRING(
"Prevents the foes from\n"
"recovering HP for 5 turns."),
.effect = EFFECT_HEAL_BLOCK,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_2 },
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HealBlock,
},
[MOVE_WRING_OUT] =
{
.name = COMPOUND_STRING("Wring Out"),
.description = sWringOutDescription,
.effect = EFFECT_POWER_BASED_ON_TARGET_HP,
.power = 120,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_WringOut,
},
[MOVE_POWER_TRICK] =
{
.name = COMPOUND_STRING("Power Trick"),
.description = COMPOUND_STRING(
"The user swaps its Attack\n"
"and Defense stats."),
.effect = EFFECT_POWER_TRICK,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PowerTrick,
},
[MOVE_GASTRO_ACID] =
{
.name = COMPOUND_STRING("Gastro Acid"),
.description = COMPOUND_STRING(
"Stomach acid suppresses\n"
"the foe's Ability."),
.effect = EFFECT_GASTRO_ACID,
.power = 0,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_GastroAcid,
},
[MOVE_LUCKY_CHANT] =
{
.name = COMPOUND_STRING("Lucky Chant"),
.description = COMPOUND_STRING(
"Prevents the foe from\n"
"landing critical hits."),
.effect = EFFECT_LUCKY_CHANT,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 30,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_EVSN_UP_1 },
.snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_LUCKY_CHANT,
.contestComboMoves = {COMBO_STARTER_HEAL_BELL},
.battleAnimScript = gBattleAnimMove_LuckyChant,
},
[MOVE_ME_FIRST] =
{
.name = COMPOUND_STRING("Me First"),
.description = COMPOUND_STRING(
"Executes the foe's attack\n"
"with greater power."),
.effect = EFFECT_ME_FIRST,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_OPPONENT,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_2 },
.ignoresSubstitute = TRUE,
.metronomeBanned = TRUE,
.mirrorMoveBanned = TRUE,
.meFirstBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.mimicBanned = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MeFirst,
},
[MOVE_COPYCAT] =
{
.name = COMPOUND_STRING("Copycat"),
.description = COMPOUND_STRING(
"The user mimics the last\n"
"move used by a foe."),
.effect = EFFECT_COPYCAT,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_DEPENDS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ACC_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.mimicBanned = TRUE,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Copycat,
},
[MOVE_POWER_SWAP] =
{
.name = COMPOUND_STRING("Power Swap"),
.description = COMPOUND_STRING(
"Swaps changes to Attack\n"
"and Sp. Atk with the foe."),
.effect = EFFECT_POWER_SWAP,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresSubstitute = TRUE,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PowerSwap,
},
[MOVE_GUARD_SWAP] =
{
.name = COMPOUND_STRING("Guard Swap"),
.description = COMPOUND_STRING(
"Swaps changes to Defense\n"
"and Sp. Def with the foe."),
.effect = EFFECT_GUARD_SWAP,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresSubstitute = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_GuardSwap,
},
[MOVE_PUNISHMENT] =
{
.name = COMPOUND_STRING("Punishment"),
.description = COMPOUND_STRING(
"Does more damage the more\n"
"the foe has powered up."),
.effect = EFFECT_PUNISHMENT,
.power = 60,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_LATER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Punishment,
},
[MOVE_LAST_RESORT] =
{
.name = COMPOUND_STRING("Last Resort"),
.description = COMPOUND_STRING(
"Can only be used if every\n"
"other move has been used."),
.effect = EFFECT_LAST_RESORT,
.power = B_UPDATED_MOVE_DATA >= GEN_5 ? 140 : 130,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_LastResort,
},
[MOVE_WORRY_SEED] =
{
.name = COMPOUND_STRING("Worry Seed"),
.description = COMPOUND_STRING(
"Plants a seed on the foe\n"
"giving it Insomnia."),
.effect = EFFECT_WORRY_SEED,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_WORRY_SEED,
.contestComboMoves = {COMBO_STARTER_LEECH_SEED},
.battleAnimScript = gBattleAnimMove_WorrySeed,
},
[MOVE_SUCKER_PUNCH] =
{
.name = COMPOUND_STRING("Sucker Punch"),
.description = sSuckerPunchDescription,
.effect = EFFECT_SUCKER_PUNCH,
.power = B_UPDATED_MOVE_DATA >= GEN_7 ? 70 : 80,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SuckerPunch,
},
[MOVE_TOXIC_SPIKES] =
{
.name = COMPOUND_STRING("Toxic Spikes"),
.description = COMPOUND_STRING(
"Sets spikes that poison a\n"
"foe switching in."),
.effect = EFFECT_TOXIC_SPIKES,
.power = 0,
.type = TYPE_POISON,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_OPPONENTS_FIELD,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.forcePressure = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ToxicSpikes,
},
[MOVE_HEART_SWAP] =
{
.name = COMPOUND_STRING("Heart Swap"),
.description = COMPOUND_STRING(
"Swaps any stat changes\n"
"with the foe."),
.effect = EFFECT_HEART_SWAP,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_BOOST_CRITS },
.ignoresSubstitute = TRUE,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HeartSwap,
},
[MOVE_AQUA_RING] =
{
.name = COMPOUND_STRING("Aqua Ring"),
.description = COMPOUND_STRING(
"Forms a veil of water\n"
"that restores HP."),
.effect = EFFECT_AQUA_RING,
.power = 0,
.type = TYPE_WATER,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AquaRing,
},
[MOVE_MAGNET_RISE] =
{
.name = COMPOUND_STRING("Magnet Rise"),
.description = COMPOUND_STRING(
"The user levitates with\n"
"electromagnetism."),
.effect = EFFECT_MAGNET_RISE,
.power = 0,
.type = TYPE_ELECTRIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_EVSN_UP_1 },
.snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.gravityBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MagnetRise,
},
[MOVE_FLARE_BLITZ] =
{
.name = COMPOUND_STRING("Flare Blitz"),
.description = COMPOUND_STRING(
"A charge that may burn the\n"
"foe. Also hurts the user."),
.effect = EFFECT_RECOIL,
.power = 120,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .recoilPercentage = 33 },
.makesContact = TRUE,
.thawsUser = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_FlareBlitz,
},
[MOVE_FORCE_PALM] =
{
.name = COMPOUND_STRING("Force Palm"),
.description = COMPOUND_STRING(
"A shock wave attack that\n"
"may paralyze the foe."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ForcePalm,
},
[MOVE_AURA_SPHERE] =
{
.name = COMPOUND_STRING("Aura Sphere"),
.description = COMPOUND_STRING(
"Attacks with an aura blast\n"
"that cannot be evaded."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 80 : 90,
.type = TYPE_FIGHTING,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.pulseMove = TRUE,
.ballisticMove = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AuraSphere,
},
[MOVE_ROCK_POLISH] =
{
.name = COMPOUND_STRING("Rock Polish"),
.description = COMPOUND_STRING(
"Polishes the body to\n"
"sharply raise Speed."),
.effect = EFFECT_SPEED_UP_2,
.power = 0,
.type = TYPE_ROCK,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RockPolish,
},
[MOVE_POISON_JAB] =
{
.name = COMPOUND_STRING("Poison Jab"),
.description = COMPOUND_STRING(
"A stabbing attack that\n"
"may poison the foe."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PoisonJab,
},
[MOVE_DARK_PULSE] =
{
.name = COMPOUND_STRING("Dark Pulse"),
.description = COMPOUND_STRING(
"Attacks with a horrible\n"
"aura. May cause flinching."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.pulseMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DarkPulse,
},
[MOVE_NIGHT_SLASH] =
{
.name = COMPOUND_STRING("Night Slash"),
.description = COMPOUND_STRING(
"Hits as soon as possible.\n"
"High critical-hit ratio."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_DARK,
.accuracy = 100,
.criticalHitStage = 1,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_NightSlash,
},
[MOVE_AQUA_TAIL] =
{
.name = COMPOUND_STRING("Aqua Tail"),
.description = COMPOUND_STRING(
"The user swings its tail\n"
"like a wave to attack."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_WATER,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_AquaTail,
},
[MOVE_SEED_BOMB] =
{
.name = COMPOUND_STRING("Seed Bomb"),
.description = COMPOUND_STRING(
"A barrage of hard seeds\n"
"is fired at the foe."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ballisticMove = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SeedBomb,
},
[MOVE_AIR_SLASH] =
{
.name = COMPOUND_STRING("Air Slash"),
.description = COMPOUND_STRING(
"Attacks with a blade of\n"
"air. May cause flinching."),
.effect = EFFECT_HIT,
.power = 75,
.type = TYPE_FLYING,
.accuracy = 95,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 15 : 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.slicingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AirSlash,
},
[MOVE_X_SCISSOR] =
{
.name = COMPOUND_STRING("X-Scissor"),
.description = COMPOUND_STRING(
"Slashes the foe with crossed\n"
"scythes, claws, etc."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SWORDS_DANCE},
.battleAnimScript = gBattleAnimMove_XScissor,
},
[MOVE_BUG_BUZZ] =
{
.name = COMPOUND_STRING("Bug Buzz"),
.description = COMPOUND_STRING(
"A damaging sound wave that\n"
"may lower Sp. Def."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.soundMove = TRUE,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_DEF_MINUS_1,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BugBuzz,
},
[MOVE_DRAGON_PULSE] =
{
.name = COMPOUND_STRING("Dragon Pulse"),
.description = COMPOUND_STRING(
"Generates a shock wave to\n"
"damage the foe."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 85 : 90,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.pulseMove = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DragonPulse,
},
[MOVE_DRAGON_RUSH] =
{
.name = COMPOUND_STRING("Dragon Rush"),
.description = COMPOUND_STRING(
"Tackles the foe with menace.\n"
"May cause flinching."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_DRAGON,
.accuracy = 75,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS >= GEN_6,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = COMBO_STARTER_DRAGON_RUSH,
.contestComboMoves = {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_TAIL},
.battleAnimScript = gBattleAnimMove_DragonRush,
},
[MOVE_POWER_GEM] =
{
.name = COMPOUND_STRING("Power Gem"),
.description = COMPOUND_STRING(
"Attacks with rays of light\n"
"that sparkle like diamonds."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 80 : 70,
.type = TYPE_ROCK,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PowerGem,
},
[MOVE_DRAIN_PUNCH] =
{
.name = COMPOUND_STRING("Drain Punch"),
.description = sMegaDrainDescription,
.effect = EFFECT_ABSORB,
.power = B_UPDATED_MOVE_DATA >= GEN_5 ? 75 : 60,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_5 ? 10 : 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .absorbPercentage = 50 },
.makesContact = TRUE,
.punchingMove = TRUE,
.healingMove = B_HEAL_BLOCKING >= GEN_6,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY},
.battleAnimScript = gBattleAnimMove_DrainPunch,
},
[MOVE_VACUUM_WAVE] =
{
.name = COMPOUND_STRING("Vacuum Wave"),
.description = COMPOUND_STRING(
"Whirls its fists to send\n"
"a wave that strikes first."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_VacuumWave,
},
[MOVE_FOCUS_BLAST] =
{
.name = COMPOUND_STRING("Focus Blast"),
.description = COMPOUND_STRING(
"Attacks at full power.\n"
"May lower Sp. Def."),
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_FIGHTING,
.accuracy = 70,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ballisticMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_DEF_MINUS_1,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_FOCUS_ENERGY},
.battleAnimScript = gBattleAnimMove_FocusBlast,
},
[MOVE_ENERGY_BALL] =
{
.name = COMPOUND_STRING("Energy Ball"),
.description = COMPOUND_STRING(
"Draws power from nature to\n"
"attack. May lower Sp. Def."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 90 : 80,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ballisticMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_DEF_MINUS_1,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_GROWTH},
.battleAnimScript = gBattleAnimMove_EnergyBall,
},
[MOVE_BRAVE_BIRD] =
{
.name = COMPOUND_STRING("Brave Bird"),
.description = COMPOUND_STRING(
"A low altitude charge that\n"
"also hurts the user."),
.effect = EFFECT_RECOIL,
.power = 120,
.type = TYPE_FLYING,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .recoilPercentage = 33 },
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_BRAVE_BIRD,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BraveBird,
},
[MOVE_EARTH_POWER] =
{
.name = COMPOUND_STRING("Earth Power"),
.description = COMPOUND_STRING(
"Makes the ground erupt with\n"
"power. May lower Sp. Def."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_GROUND,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.skyBattleBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_DEF_MINUS_1,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_EarthPower,
},
[MOVE_SWITCHEROO] =
{
.name = COMPOUND_STRING("Switcheroo"),
.description = COMPOUND_STRING(
"Swaps items with the foe\n"
"faster than the eye can see."),
.effect = EFFECT_TRICK,
.power = 0,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_2 },
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Switcheroo,
},
[MOVE_GIGA_IMPACT] =
{
.name = COMPOUND_STRING("Giga Impact"),
.description = sHyperBeamDescription,
.effect = EFFECT_HIT,
.power = 150,
.type = TYPE_NORMAL,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RECHARGE,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_GigaImpact,
},
[MOVE_NASTY_PLOT] =
{
.name = COMPOUND_STRING("Nasty Plot"),
.description = COMPOUND_STRING(
"Thinks bad thoughts to\n"
"sharply boost Sp. Atk."),
.effect = EFFECT_SPECIAL_ATTACK_UP_2,
.power = 0,
.type = TYPE_DARK,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_NastyPlot,
},
[MOVE_BULLET_PUNCH] =
{
.name = COMPOUND_STRING("Bullet Punch"),
.description = COMPOUND_STRING(
"Punches as fast as a bul-\n"
"let. It always hits first."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BulletPunch,
},
[MOVE_AVALANCHE] =
{
.name = COMPOUND_STRING("Avalanche"),
.description = sRevengeDescription,
.effect = EFFECT_REVENGE,
.power = 60,
.type = TYPE_ICE,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = -4,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_LATER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Avalanche,
},
[MOVE_ICE_SHARD] =
{
.name = COMPOUND_STRING("Ice Shard"),
.description = COMPOUND_STRING(
"Hurls a chunk of ice that\n"
"always strikes first."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_ICE,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.category = DAMAGE_CATEGORY_PHYSICAL,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_IceShard,
},
[MOVE_SHADOW_CLAW] =
{
.name = COMPOUND_STRING("Shadow Claw"),
.description = COMPOUND_STRING(
"Strikes with a shadow claw.\n"
"High critical-hit ratio."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_GHOST,
.accuracy = 100,
.criticalHitStage = 1,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ShadowClaw,
},
[MOVE_THUNDER_FANG] =
{
.name = COMPOUND_STRING("Thunder Fang"),
.description = COMPOUND_STRING(
"May cause flinching or\n"
"leave the foe paralyzed."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_ELECTRIC,
.accuracy = 95,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.bitingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 10,
},
{
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_THUNDER_FANG,
.contestComboMoves = {COMBO_STARTER_CHARGE, COMBO_STARTER_FIRE_FANG, COMBO_STARTER_ICE_FANG},
.battleAnimScript = gBattleAnimMove_ThunderFang,
},
[MOVE_ICE_FANG] =
{
.name = COMPOUND_STRING("Ice Fang"),
.description = COMPOUND_STRING(
"May cause flinching or\n"
#if B_USE_FROSTBITE == TRUE
"leave the foe with frostbite."),
#else
"leave the foe frozen."),
#endif
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_ICE,
.accuracy = 95,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.bitingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE,
.chance = 10,
},
{
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = COMBO_STARTER_ICE_FANG,
.contestComboMoves = {COMBO_STARTER_FIRE_FANG, COMBO_STARTER_THUNDER_FANG},
.battleAnimScript = gBattleAnimMove_IceFang,
},
[MOVE_FIRE_FANG] =
{
.name = COMPOUND_STRING("Fire Fang"),
.description = COMPOUND_STRING(
"May cause flinching or\n"
"leave the foe with a burn."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_FIRE,
.accuracy = 95,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.bitingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 10,
},
{
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_FIRE_FANG,
.contestComboMoves = {COMBO_STARTER_ICE_FANG, COMBO_STARTER_THUNDER_FANG},
.battleAnimScript = gBattleAnimMove_FireFang,
},
[MOVE_SHADOW_SNEAK] =
{
.name = COMPOUND_STRING("Shadow Sneak"),
.description = COMPOUND_STRING(
"Extends the user's shadow\n"
"to strike first."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ShadowSneak,
},
[MOVE_MUD_BOMB] =
{
.name = COMPOUND_STRING("Mud Bomb"),
.description = COMPOUND_STRING(
"Throws a blob of mud to\n"
"damage and cut accuracy."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_GROUND,
.accuracy = 85,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ballisticMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ACC_MINUS_1,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MudBomb,
},
[MOVE_PSYCHO_CUT] =
{
.name = COMPOUND_STRING("Psycho Cut"),
.description = COMPOUND_STRING(
"Tears with psychic blades.\n"
"High critical-hit ratio."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.criticalHitStage = 1,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.slicingMove = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PsychoCut,
},
[MOVE_ZEN_HEADBUTT] =
{
.name = COMPOUND_STRING("Zen Headbutt"),
.description = COMPOUND_STRING(
"Hits with a strong head-\n"
"butt. May cause flinching."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_PSYCHIC,
.accuracy = 90,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ZenHeadbutt,
},
[MOVE_MIRROR_SHOT] =
{
.name = COMPOUND_STRING("Mirror Shot"),
.description = COMPOUND_STRING(
"Emits a flash of energy to\n"
"damage and cut accuracy."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_STEEL,
.accuracy = 85,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ACC_MINUS_1,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MirrorShot,
},
[MOVE_FLASH_CANNON] =
{
.name = COMPOUND_STRING("Flash Cannon"),
.description = COMPOUND_STRING(
"Releases a blast of light\n"
"that may lower Sp. Def."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_DEF_MINUS_1,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FlashCannon,
},
[MOVE_ROCK_CLIMB] =
{
.name = COMPOUND_STRING("Rock Climb"),
.description = COMPOUND_STRING(
"A charging attack that may\n"
"confuse the foe."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_NORMAL,
.accuracy = 85,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSION,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RockClimb,
},
[MOVE_DEFOG] =
{
.name = COMPOUND_STRING("Defog"),
.description = COMPOUND_STRING(
"Removes obstacles and\n"
"lowers evasion."),
.effect = EFFECT_DEFOG,
.power = 0,
.type = TYPE_FLYING,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ACC_UP_1 },
//.ignoresSubstitute = TRUE, In Gen5+, the evasion drop will no longer bypass Substitute. However, this is tricky to code
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Defog,
},
[MOVE_TRICK_ROOM] =
{
.name = COMPOUND_STRING("Trick Room"),
.description = COMPOUND_STRING(
"Slower Pokémon get to move\n"
"first for 5 turns."),
.effect = EFFECT_TRICK_ROOM,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = -7,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ACC_UP_1 },
.ignoresProtect = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_LATER,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_TrickRoom,
},
[MOVE_DRACO_METEOR] =
{
.name = COMPOUND_STRING("Draco Meteor"),
.description = COMPOUND_STRING(
"Casts comets onto the foe.\n"
"Harshly lowers the Sp. Atk."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 130 : 140,
.type = TYPE_DRAGON,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_MINUS_2,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DracoMeteor,
},
[MOVE_DISCHARGE] =
{
.name = COMPOUND_STRING("Discharge"),
.description = COMPOUND_STRING(
"Zaps all other {PKMN} with\n"
"electricity. May paralyze."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARGE},
.battleAnimScript = gBattleAnimMove_Discharge,
},
[MOVE_LAVA_PLUME] =
{
.name = COMPOUND_STRING("Lava Plume"),
.description = sLavaPlumeDescription,
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_LavaPlume,
},
[MOVE_LEAF_STORM] =
{
.name = COMPOUND_STRING("Leaf Storm"),
.description = COMPOUND_STRING(
"Whips up a storm of leaves.\n"
"Harshly lowers the Sp. Atk."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 130 : 140,
.type = TYPE_GRASS,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_MINUS_2,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_LeafStorm,
},
[MOVE_POWER_WHIP] =
{
.name = COMPOUND_STRING("Power Whip"),
.description = COMPOUND_STRING(
"Violently lashes the foe\n"
"with vines or tentacles."),
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_GRASS,
.accuracy = 85,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_GROWTH},
.battleAnimScript = gBattleAnimMove_PowerWhip,
},
[MOVE_ROCK_WRECKER] =
{
.name = COMPOUND_STRING("Rock Wrecker"),
.description = sHyperBeamDescription,
.effect = EFFECT_HIT,
.power = 150,
.type = TYPE_ROCK,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ballisticMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RECHARGE,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RockWrecker,
},
[MOVE_CROSS_POISON] =
{
.name = COMPOUND_STRING("Cross Poison"),
.description = COMPOUND_STRING(
"A slash that may poison a\n"
"foe and do critical damage."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_POISON,
.accuracy = 100,
.criticalHitStage = 1,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_CrossPoison,
},
[MOVE_GUNK_SHOT] =
{
.name = COMPOUND_STRING("Gunk Shot"),
.description = COMPOUND_STRING(
"Shoots filthy garbage at\n"
"the foe. May also poison."),
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_POISON,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_6 ? 80 : 70,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_GunkShot,
},
[MOVE_IRON_HEAD] =
{
.name = COMPOUND_STRING("Iron Head"),
.description = COMPOUND_STRING(
"Slams the foe with a hard\n"
"head. May cause flinching."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_IronHead,
},
[MOVE_MAGNET_BOMB] =
{
.name = COMPOUND_STRING("Magnet Bomb"),
.description = COMPOUND_STRING(
"Launches a magnet that\n"
"strikes without fail."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ballisticMove = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MagnetBomb,
},
[MOVE_STONE_EDGE] =
{
.name = COMPOUND_STRING("Stone Edge"),
.description = COMPOUND_STRING(
"Stabs the foe with stones.\n"
"High critical-hit ratio."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_ROCK,
.accuracy = 80,
.criticalHitStage = 1,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_StoneEdge,
},
[MOVE_CAPTIVATE] =
{
.name = COMPOUND_STRING("Captivate"),
.description = COMPOUND_STRING(
"Makes the opposite gender\n"
"sharply reduce its Sp. Atk."),
.effect = EFFECT_CAPTIVATE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_2 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARM},
.battleAnimScript = gBattleAnimMove_Captivate,
},
[MOVE_STEALTH_ROCK] =
{
.name = COMPOUND_STRING("Stealth Rock"),
.description = COMPOUND_STRING(
"Sets floating stones that\n"
"hurt a foe switching in."),
.effect = EFFECT_STEALTH_ROCK,
.power = 0,
.type = TYPE_ROCK,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_OPPONENTS_FIELD,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.forcePressure = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_StealthRock,
},
[MOVE_GRASS_KNOT] =
{
.name = COMPOUND_STRING("Grass Knot"),
.description = COMPOUND_STRING(
"A snare attack that does\n"
"more damage to heavier foes."),
.effect = EFFECT_LOW_KICK,
.power = 1,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.makesContact = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_GrassKnot,
},
[MOVE_CHATTER] =
{
.name = COMPOUND_STRING("Chatter"),
.description = COMPOUND_STRING(
"Attacks with a sound wave\n"
"that causes confusion."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 65 : 60,
.type = TYPE_FLYING,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.soundMove = TRUE,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_6,
.mimicBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSION,
#if B_UPDATED_MOVE_DATA >= GEN_6
.chance = 100,
#elif B_UPDATED_MOVE_DATA >= GEN_5
.chance = 10,
#else
.chance = 31,
#endif
}),
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Chatter,
},
[MOVE_JUDGMENT] =
{
.name = COMPOUND_STRING("Judgment"),
.description = COMPOUND_STRING(
"The type varies with the\n"
"kind of Plate held."),
.effect = EFFECT_CHANGE_TYPE_ON_ITEM,
.power = 100,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .holdEffect = HOLD_EFFECT_PLATE },
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Judgment,
},
[MOVE_BUG_BITE] =
{
.name = COMPOUND_STRING("Bug Bite"),
.description = sPluckDescription,
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BUG_BITE,
}),
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BugBite,
},
[MOVE_CHARGE_BEAM] =
{
.name = COMPOUND_STRING("Charge Beam"),
.description = COMPOUND_STRING(
"Fires a beam of electricity.\n"
"May raise Sp. Atk."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_ELECTRIC,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_PLUS_1,
.self = TRUE,
.chance = 70,
}),
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARGE},
.battleAnimScript = gBattleAnimMove_ChargeBeam,
},
[MOVE_WOOD_HAMMER] =
{
.name = COMPOUND_STRING("Wood Hammer"),
.description = COMPOUND_STRING(
"Slams the body into a foe.\n"
"The user gets hurt too."),
.effect = EFFECT_RECOIL,
.power = 120,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .recoilPercentage = 33 },
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_WoodHammer,
},
[MOVE_AQUA_JET] =
{
.name = COMPOUND_STRING("Aqua Jet"),
.description = COMPOUND_STRING(
"Strikes first by dashing\n"
"at the foe at a high speed."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_AquaJet,
},
[MOVE_ATTACK_ORDER] =
{
.name = COMPOUND_STRING("Attack Order"),
.description = COMPOUND_STRING(
"Underlings pummel the foe.\n"
"High critical-hit ratio."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_BUG,
.accuracy = 100,
.criticalHitStage = 1,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_ATTACK_ORDER,
.contestComboMoves = {COMBO_STARTER_DEFEND_ORDER, COMBO_STARTER_HEAL_ORDER},
.battleAnimScript = gBattleAnimMove_AttackOrder,
},
[MOVE_DEFEND_ORDER] =
{
.name = COMPOUND_STRING("Defend Order"),
.description = COMPOUND_STRING(
"Raises Defense and Sp. Def\n"
"with a living shield."),
.effect = EFFECT_COSMIC_POWER,
.power = 0,
.type = TYPE_BUG,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_DEFEND_ORDER,
.contestComboMoves = {COMBO_STARTER_ATTACK_ORDER, COMBO_STARTER_HEAL_ORDER},
.battleAnimScript = gBattleAnimMove_DefendOrder,
},
[MOVE_HEAL_ORDER] =
{
.name = COMPOUND_STRING("Heal Order"),
.description = COMPOUND_STRING(
"The user's underlings show\n"
"up to heal half its max HP."),
.effect = EFFECT_RESTORE_HP,
.power = 0,
.type = TYPE_BUG,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.healingMove = TRUE,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_HEAL_ORDER,
.contestComboMoves = {COMBO_STARTER_ATTACK_ORDER, COMBO_STARTER_DEFEND_ORDER},
.battleAnimScript = gBattleAnimMove_HealOrder,
},
[MOVE_HEAD_SMASH] =
{
.name = COMPOUND_STRING("Head Smash"),
.description = COMPOUND_STRING(
"A life-risking headbutt that\n"
"seriously hurts the user."),
.effect = EFFECT_RECOIL,
.power = 150,
.type = TYPE_ROCK,
.accuracy = 80,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .recoilPercentage = 50 },
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HeadSmash,
},
[MOVE_DOUBLE_HIT] =
{
.name = COMPOUND_STRING("Double Hit"),
.description = COMPOUND_STRING(
"Slams the foe with a tail\n"
"etc. Strikes twice."),
.effect = EFFECT_HIT,
.power = 35,
.type = TYPE_NORMAL,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.strikeCount = 2,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DoubleHit,
},
[MOVE_ROAR_OF_TIME] =
{
.name = COMPOUND_STRING("Roar of Time"),
.description = COMPOUND_STRING(
"Powerful, but leaves the\n"
"user immobile the next turn."),
.effect = EFFECT_HIT,
.power = 150,
.type = TYPE_DRAGON,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RECHARGE,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RoarOfTime,
},
[MOVE_SPACIAL_REND] =
{
.name = COMPOUND_STRING("Spacial Rend"),
.description = COMPOUND_STRING(
"Tears the foe, and space.\n"
"High critical-hit ratio."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_DRAGON,
.accuracy = 95,
.criticalHitStage = 1,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SpacialRend,
},
[MOVE_LUNAR_DANCE] =
{
.name = COMPOUND_STRING("Lunar Dance"),
.description = sHealingWishDescription,
.effect = EFFECT_HEALING_WISH,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.healingMove = TRUE,
.danceMove = TRUE,
.contestEffect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_LunarDance,
},
[MOVE_CRUSH_GRIP] =
{
.name = COMPOUND_STRING("Crush Grip"),
.description = sWringOutDescription,
.effect = EFFECT_POWER_BASED_ON_TARGET_HP,
.power = 120,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_CrushGrip,
},
[MOVE_MAGMA_STORM] =
{
.name = COMPOUND_STRING("Magma Storm"),
.description = COMPOUND_STRING(
"Traps the foe in a vortex\n"
"of fire for "BINDING_TURNS" turns."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 100 : 120,
.type = TYPE_FIRE,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_5 ? 75 : 70,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_WRAP,
}),
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_MagmaStorm,
},
[MOVE_DARK_VOID] =
{
.name = COMPOUND_STRING("Dark Void"),
.description = COMPOUND_STRING(
"Drags the foes into total\n"
"darkness, inducing Sleep."),
.effect = EFFECT_DARK_VOID,
.power = 0,
.type = TYPE_DARK,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_7 ? 50 : 80,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .nonVolatileStatus = MOVE_EFFECT_SLEEP },
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.magicCoatAffected = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DarkVoid,
},
[MOVE_SEED_FLARE] =
{
.name = COMPOUND_STRING("Seed Flare"),
.description = COMPOUND_STRING(
"Generates a shock wave that\n"
"sharply reduces Sp. Def."),
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_GRASS,
.accuracy = 85,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_DEF_MINUS_2,
.chance = 40,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SeedFlare,
},
[MOVE_OMINOUS_WIND] =
{
.name = COMPOUND_STRING("Ominous Wind"),
.description = COMPOUND_STRING(
"A repulsive attack that may\n"
"raise all stats."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.windMove = B_EXTRAPOLATED_MOVE_FLAGS,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ALL_STATS_UP,
.self = TRUE,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_OminousWind,
},
[MOVE_SHADOW_FORCE] =
{
.name = COMPOUND_STRING("Shadow Force"),
.description = sShadowForceDescription,
.effect = EFFECT_SEMI_INVULNERABLE,
.power = 120,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ignoresProtect = TRUE,
.minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS == GEN_6,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.argument.twoTurnAttack = { .stringId = STRINGID_VANISHEDINSTANTLY, .status = COMPRESS_BITS(STATUS3_PHANTOM_FORCE) },
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FEINT,
}),
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ShadowForce,
},
[MOVE_HONE_CLAWS] =
{
.name = COMPOUND_STRING("Hone Claws"),
.description = COMPOUND_STRING(
"Sharpens its claws to raise\n"
"Attack and Accuracy."),
.effect = EFFECT_ATTACK_ACCURACY_UP,
.power = 0,
.type = TYPE_DARK,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HoneClaws,
},
[MOVE_WIDE_GUARD] =
{
.name = COMPOUND_STRING("Wide Guard"),
.description = COMPOUND_STRING(
"Evades wide-ranging attacks\n"
"for one turn."),
.effect = EFFECT_PROTECT,
.power = 0,
.type = TYPE_ROCK,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 3,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .protectMethod = PROTECT_WIDE_GUARD },
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_WideGuard,
},
[MOVE_GUARD_SPLIT] =
{
.name = COMPOUND_STRING("Guard Split"),
.description = COMPOUND_STRING(
"Averages changes to Defense\n"
"and Sp. Def with the foe."),
.effect = EFFECT_GUARD_SPLIT,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_GuardSplit,
},
[MOVE_POWER_SPLIT] =
{
.name = COMPOUND_STRING("Power Split"),
.description = COMPOUND_STRING(
"Averages changes to Attack\n"
"and Sp. Atk with the foe."),
.effect = EFFECT_POWER_SPLIT,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PowerSplit,
},
[MOVE_WONDER_ROOM] =
{
.name = COMPOUND_STRING("Wonder Room"),
.description = COMPOUND_STRING(
"Defense and Sp. Def stats\n"
"are swapped for 5 turns."),
.effect = EFFECT_WONDER_ROOM,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = B_UPDATED_MOVE_DATA >= GEN_6 ? 0 : -7,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.ignoresProtect = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_WonderRoom,
},
[MOVE_PSYSHOCK] =
{
.name = COMPOUND_STRING("Psyshock"),
.description = sPsyshockDescription,
.effect = EFFECT_PSYSHOCK,
.power = 80,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Psyshock,
},
[MOVE_VENOSHOCK] =
{
.name = COMPOUND_STRING("Venoshock"),
.description = COMPOUND_STRING(
"Does double damage if the\n"
"foe is poisoned."),
.effect = EFFECT_DOUBLE_POWER_ON_ARG_STATUS,
.power = 65,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .status = STATUS1_PSN_ANY },
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_TOXIC},
.battleAnimScript = gBattleAnimMove_Venoshock,
},
[MOVE_AUTOTOMIZE] =
{
.name = COMPOUND_STRING("Autotomize"),
.description = COMPOUND_STRING(
"Sheds additional weight to\n"
"sharply boost Speed."),
.effect = EFFECT_AUTOTOMIZE,
.power = 0,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Autotomize,
},
[MOVE_RAGE_POWDER] =
{
.name = COMPOUND_STRING("Rage Powder"),
.description = COMPOUND_STRING(
"Scatters powder to make\n"
"foes attack only the user."),
.effect = EFFECT_FOLLOW_ME,
.power = 0,
.type = TYPE_BUG,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = B_UPDATED_MOVE_DATA >= GEN_6 ? 2 : 3,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.powderMove = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RagePowder,
},
[MOVE_TELEKINESIS] =
{
.name = COMPOUND_STRING("Telekinesis"),
.description = COMPOUND_STRING(
"Makes the foe float. It is\n"
"easier to hit for 3 turns."),
.effect = EFFECT_TELEKINESIS,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.magicCoatAffected = TRUE,
.gravityBanned = TRUE,
.contestEffect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Telekinesis,
},
[MOVE_MAGIC_ROOM] =
{
.name = COMPOUND_STRING("Magic Room"),
.description = COMPOUND_STRING(
"Hold items lose their\n"
"effects for 5 turns."),
.effect = EFFECT_MAGIC_ROOM,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = B_UPDATED_MOVE_DATA >= GEN_6 ? 0 : -7,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.ignoresProtect = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MagicRoom,
},
[MOVE_SMACK_DOWN] =
{
.name = COMPOUND_STRING("Smack Down"),
.description = COMPOUND_STRING(
"Throws a rock to knock the\n"
"foe down to the ground."),
.effect = EFFECT_SMACK_DOWN,
.power = 50,
.type = TYPE_ROCK,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.damagesAirborne = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SmackDown,
},
[MOVE_STORM_THROW] =
{
.name = COMPOUND_STRING("Storm Throw"),
.description = sStormThrowDescription,
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 60 : 40,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.alwaysCriticalHit = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_StormThrow,
},
[MOVE_FLAME_BURST] =
{
.name = COMPOUND_STRING("Flame Burst"),
.description = COMPOUND_STRING(
"A bursting flame that does\n"
"damage to all foes."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLAME_BURST,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FlameBurst,
},
[MOVE_SLUDGE_WAVE] =
{
.name = COMPOUND_STRING("Sludge Wave"),
.description = COMPOUND_STRING(
"Swamps all others with a wave\n"
"of sludge. May also poison."),
.effect = EFFECT_HIT,
.power = 95,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SludgeWave,
},
[MOVE_QUIVER_DANCE] =
{
.name = COMPOUND_STRING("Quiver Dance"),
.description = COMPOUND_STRING(
"Dances to raise Sp. Atk\n"
"Sp. Def and Speed."),
.effect = EFFECT_QUIVER_DANCE,
.power = 0,
.type = TYPE_BUG,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.danceMove = TRUE,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_QuiverDance,
},
[MOVE_HEAVY_SLAM] =
{
.name = COMPOUND_STRING("Heavy Slam"),
.description = sHeavySlamDescription,
.effect = EFFECT_HEAT_CRASH,
.power = 1,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS >= GEN_7,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HeavySlam,
},
[MOVE_SYNCHRONOISE] =
{
.name = COMPOUND_STRING("Synchronoise"),
.description = COMPOUND_STRING(
"An odd shock wave that only\n"
"damages same-type {PKMN}."),
.effect = EFFECT_SYNCHRONOISE,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 120 : 70,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 10 : 15,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Synchronoise,
},
[MOVE_ELECTRO_BALL] =
{
.name = COMPOUND_STRING("Electro Ball"),
.description = COMPOUND_STRING(
"Hurls an orb that does more\n"
"damage to slower foes."),
.effect = EFFECT_ELECTRO_BALL,
.power = 1,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ballisticMove = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ElectroBall,
},
[MOVE_SOAK] =
{
.name = COMPOUND_STRING("Soak"),
.description = COMPOUND_STRING(
"Sprays water at the foe,\n"
"changing it to Water type."),
.effect = EFFECT_SOAK,
.power = 0,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Soak,
},
[MOVE_FLAME_CHARGE] =
{
.name = COMPOUND_STRING("Flame Charge"),
.description = COMPOUND_STRING(
"Attacks in a cloak of\n"
"flames. Raises Speed."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_PLUS_1,
.self = TRUE,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FlameCharge,
},
[MOVE_COIL] =
{
.name = COMPOUND_STRING("Coil"),
.description = COMPOUND_STRING(
"Coils up to raise Attack,\n"
"Defense and Accuracy."),
.effect = EFFECT_COIL,
.power = 0,
.type = TYPE_POISON,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Coil,
},
[MOVE_LOW_SWEEP] =
{
.name = COMPOUND_STRING("Low Sweep"),
.description = COMPOUND_STRING(
"Attacks the foe's legs\n"
"lowering its Speed."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 65 : 60,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_LowSweep,
},
[MOVE_ACID_SPRAY] =
{
.name = COMPOUND_STRING("Acid Spray"),
.description = COMPOUND_STRING(
"Sprays a hide-melting acid.\n"
"Sharply reduces Sp. Def."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ballisticMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_DEF_MINUS_2,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AcidSpray,
},
[MOVE_FOUL_PLAY] =
{
.name = COMPOUND_STRING("Foul Play"),
.description = COMPOUND_STRING(
"The higher the foe's Attack\n"
"the more damage caused."),
.effect = EFFECT_FOUL_PLAY,
.power = 95,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FoulPlay,
},
[MOVE_SIMPLE_BEAM] =
{
.name = COMPOUND_STRING("Simple Beam"),
.description = COMPOUND_STRING(
"A beam that changes the\n"
"foe's Ability to Simple."),
.effect = EFFECT_SIMPLE_BEAM,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SimpleBeam,
},
[MOVE_ENTRAINMENT] =
{
.name = COMPOUND_STRING("Entrainment"),
.description = COMPOUND_STRING(
"Makes the foe mimic the\n"
"user, gaining its Ability."),
.effect = EFFECT_ENTRAINMENT,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Entrainment,
},
[MOVE_AFTER_YOU] =
{
.name = COMPOUND_STRING("After You"),
.description = COMPOUND_STRING(
"Helps out the target, letting\n"
"it move next."),
.effect = EFFECT_AFTER_YOU,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_LATER,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AfterYou,
},
[MOVE_ROUND] =
{
.name = COMPOUND_STRING("Round"),
.description = COMPOUND_STRING(
"A song that inflicts damage.\n"
"Others can join in too."),
.effect = EFFECT_ROUND,
.power = 60,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.soundMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ROUND,
}),
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Round,
},
[MOVE_ECHOED_VOICE] =
{
.name = COMPOUND_STRING("Echoed Voice"),
.description = COMPOUND_STRING(
"Does more damage every turn\n"
"it is used."),
.effect = EFFECT_ECHOED_VOICE,
.power = 40,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.soundMove = TRUE,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_EchoedVoice,
},
[MOVE_CHIP_AWAY] =
{
.name = COMPOUND_STRING("Chip Away"),
.description = sChipAwayDescription,
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ignoresTargetDefenseEvasionStages = TRUE,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ChipAway,
},
[MOVE_CLEAR_SMOG] =
{
.name = COMPOUND_STRING("Clear Smog"),
.description = COMPOUND_STRING(
"Attacks with white haze that\n"
"eliminates all stat changes."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_POISON,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CLEAR_SMOG,
}),
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ClearSmog,
},
[MOVE_STORED_POWER] =
{
.name = COMPOUND_STRING("Stored Power"),
.description = COMPOUND_STRING(
"The higher the user's stats\n"
"the more damage caused."),
.effect = EFFECT_STORED_POWER,
.power = 20,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_LATER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_StoredPower,
},
[MOVE_QUICK_GUARD] =
{
.name = COMPOUND_STRING("Quick Guard"),
.description = COMPOUND_STRING(
"Evades priority attacks\n"
"for one turn."),
.effect = EFFECT_PROTECT,
.power = 0,
.type = TYPE_FIGHTING,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_USER,
.priority = 3,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .protectMethod = PROTECT_QUICK_GUARD, },
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_QuickGuard,
},
[MOVE_ALLY_SWITCH] =
{
.name = COMPOUND_STRING("Ally Switch"),
.description = COMPOUND_STRING(
"The user switches places\n"
"with its partner."),
.effect = EFFECT_ALLY_SWITCH,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_USER,
.priority = B_UPDATED_MOVE_DATA >= GEN_7 ? 2 : 1,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_2 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AllySwitch,
},
[MOVE_SCALD] =
{
.name = COMPOUND_STRING("Scald"),
.description = COMPOUND_STRING(
"Shoots boiling water at the\n"
"foe. May inflict a burn."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.thawsUser = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_SCALD,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Scald,
},
[MOVE_SHELL_SMASH] =
{
.name = COMPOUND_STRING("Shell Smash"),
.description = COMPOUND_STRING(
"Sharply raises Atk/Sp.Atk/\n"
"Speed, but drops Def/Sp.Def."),
.effect = EFFECT_SHELL_SMASH,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ShellSmash,
},
[MOVE_HEAL_PULSE] =
{
.name = COMPOUND_STRING("Heal Pulse"),
.description = COMPOUND_STRING(
"Recovers up to half the\n"
"target's maximum HP."),
.effect = EFFECT_HEAL_PULSE,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.magicCoatAffected = TRUE,
.mirrorMoveBanned = TRUE,
.healingMove = TRUE,
.pulseMove = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HealPulse,
},
[MOVE_HEX] =
{
.name = COMPOUND_STRING("Hex"),
.description = COMPOUND_STRING(
"Does double damage if the\n"
"foe has a status problem."),
.effect = EFFECT_DOUBLE_POWER_ON_ARG_STATUS,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 65 : 50,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.zMove = { .powerOverride = 160 },
.argument = { .status = STATUS1_ANY },
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_TOXIC},
.battleAnimScript = gBattleAnimMove_Hex,
},
[MOVE_SKY_DROP] =
{
.name = COMPOUND_STRING("Sky Drop"),
.description = COMPOUND_STRING(
"Takes the foe into the sky\n"
"then drops it the next turn."),
.effect = EFFECT_SKY_DROP,
.power = 60,
.type = TYPE_FLYING,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.gravityBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.argument.twoTurnAttack = { .stringId = STRINGID_PKMNTOOKTARGETHIGH, .status = COMPRESS_BITS(STATUS3_ON_AIR) },
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SkyDrop,
},
[MOVE_SHIFT_GEAR] =
{
.name = COMPOUND_STRING("Shift Gear"),
.description = COMPOUND_STRING(
"Rotates its gears to raise\n"
"Attack and Speed."),
.effect = EFFECT_SHIFT_GEAR,
.power = 0,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ShiftGear,
},
[MOVE_CIRCLE_THROW] =
{
.name = COMPOUND_STRING("Circle Throw"),
.description = sCircleThrowDescription,
.effect = EFFECT_HIT_SWITCH_TARGET,
.power = 60,
.type = TYPE_FIGHTING,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = -6,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_CircleThrow,
},
[MOVE_INCINERATE] =
{
.name = COMPOUND_STRING("Incinerate"),
.description = COMPOUND_STRING(
"Burns up Berries and Gems\n"
"preventing their use."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 60 : 30,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_INCINERATE,
}),
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Incinerate,
},
[MOVE_QUASH] =
{
.name = COMPOUND_STRING("Quash"),
.description = COMPOUND_STRING(
"Suppresses the foe, making\n"
"it move last."),
.effect = EFFECT_QUASH,
.power = 0,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_LATER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Quash,
},
[MOVE_ACROBATICS] =
{
.name = COMPOUND_STRING("Acrobatics"),
.description = COMPOUND_STRING(
"Does double damage if the\n"
"user has no item."),
.effect = EFFECT_ACROBATICS,
.power = 55,
.type = TYPE_FLYING,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Acrobatics,
},
[MOVE_REFLECT_TYPE] =
{
.name = COMPOUND_STRING("Reflect Type"),
.description = COMPOUND_STRING(
"The user reflects the foe's\n"
"type, copying it."),
.effect = EFFECT_REFLECT_TYPE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ReflectType,
},
[MOVE_RETALIATE] =
{
.name = COMPOUND_STRING("Retaliate"),
.description = COMPOUND_STRING(
"An attack that does more\n"
"damage if an ally fainted."),
.effect = EFFECT_RETALIATE,
.power = 70,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_LATER,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Retaliate,
},
[MOVE_FINAL_GAMBIT] =
{
.name = COMPOUND_STRING("Final Gambit"),
.description = COMPOUND_STRING(
"The user faints to damage\n"
"the foe equal to its HP."),
.effect = EFFECT_FINAL_GAMBIT,
.power = 1,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.mirrorMoveBanned = TRUE,
.parentalBondBanned = TRUE,
.contestEffect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FinalGambit,
},
[MOVE_BESTOW] =
{
.name = COMPOUND_STRING("Bestow"),
.description = COMPOUND_STRING(
"The user gives its held\n"
"item to the foe."),
.effect = EFFECT_BESTOW,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_2 },
.ignoresProtect = B_UPDATED_MOVE_FLAGS >= GEN_6,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Bestow,
},
[MOVE_INFERNO] =
{
.name = COMPOUND_STRING("Inferno"),
.description = COMPOUND_STRING(
"Powerful and sure to inflict\n"
"a burn, but inaccurate."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_FIRE,
.accuracy = 50,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Inferno,
},
[MOVE_WATER_PLEDGE] =
{
.name = COMPOUND_STRING("Water Pledge"),
.description = COMPOUND_STRING(
"Attacks with a column of\n"
"water. May make a rainbow."),
.effect = EFFECT_PLEDGE,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 80 : 50,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_WaterPledge,
},
[MOVE_FIRE_PLEDGE] =
{
.name = COMPOUND_STRING("Fire Pledge"),
.description = COMPOUND_STRING(
"Attacks with a column of\n"
"fire. May burn the grass."),
.effect = EFFECT_PLEDGE,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 80 : 50,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FirePledge,
},
[MOVE_GRASS_PLEDGE] =
{
.name = COMPOUND_STRING("Grass Pledge"),
.description = COMPOUND_STRING(
"Attacks with a column of\n"
"grass. May create a swamp."),
.effect = EFFECT_PLEDGE,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 80 : 50,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_GrassPledge,
},
[MOVE_VOLT_SWITCH] =
{
.name = COMPOUND_STRING("Volt Switch"),
.description = sUTurnDescription,
.effect = EFFECT_HIT_ESCAPE,
.power = 70,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_VoltSwitch,
},
[MOVE_STRUGGLE_BUG] =
{
.name = COMPOUND_STRING("Struggle Bug"),
.description = COMPOUND_STRING(
"Resisting, the user attacks\n"
"the foes. Lowers Sp. Atk."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 50 : 30,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_StruggleBug,
},
[MOVE_BULLDOZE] =
{
.name = COMPOUND_STRING("Bulldoze"),
.description = COMPOUND_STRING(
"Stomps down on the ground.\n"
"Hits all and lowers Speed."),
.effect = EFFECT_EARTHQUAKE,
.power = 60,
.type = TYPE_GROUND,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.skyBattleBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Bulldoze,
},
[MOVE_FROST_BREATH] =
{
.name = COMPOUND_STRING("Frost Breath"),
.description = sStormThrowDescription,
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 60 : 40,
.type = TYPE_ICE,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.alwaysCriticalHit = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FrostBreath,
},
[MOVE_DRAGON_TAIL] =
{
.name = COMPOUND_STRING("Dragon Tail"),
.description = sCircleThrowDescription,
.effect = EFFECT_HIT_SWITCH_TARGET,
.power = 60,
.type = TYPE_DRAGON,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = -6,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = COMBO_STARTER_DRAGON_TAIL,
.contestComboMoves = {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_RUSH},
.battleAnimScript = gBattleAnimMove_DragonTail,
},
[MOVE_WORK_UP] =
{
.name = COMPOUND_STRING("Work Up"),
.description = COMPOUND_STRING(
"The user is roused.\n"
"Ups Attack and Sp. Atk."),
.effect = EFFECT_ATTACK_SPATK_UP,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 30,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_WorkUp,
},
[MOVE_ELECTROWEB] =
{
.name = COMPOUND_STRING("Electroweb"),
.description = COMPOUND_STRING(
"Snares the foes with an\n"
"electric net. Lowers Speed."),
.effect = EFFECT_HIT,
.power = 55,
.type = TYPE_ELECTRIC,
.accuracy = 95,
.pp = 15,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Electroweb,
},
[MOVE_WILD_CHARGE] =
{
.name = COMPOUND_STRING("Wild Charge"),
.description = COMPOUND_STRING(
"An electrical tackle that\n"
"also hurts the user."),
.effect = EFFECT_RECOIL,
.power = 90,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .recoilPercentage = 25 },
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_WildCharge,
},
[MOVE_DRILL_RUN] =
{
.name = COMPOUND_STRING("Drill Run"),
.description = COMPOUND_STRING(
"Spins its body like a drill.\n"
"High critical-hit ratio."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_GROUND,
.accuracy = 95,
.criticalHitStage = 1,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DrillRun,
},
[MOVE_DUAL_CHOP] =
{
.name = COMPOUND_STRING("Dual Chop"),
.description = COMPOUND_STRING(
"Attacks with brutal hits\n"
"that strike twice."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_DRAGON,
.accuracy = 90,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.strikeCount = 2,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DualChop,
},
[MOVE_HEART_STAMP] =
{
.name = COMPOUND_STRING("Heart Stamp"),
.description = COMPOUND_STRING(
"A sudden blow after a cute\n"
"act. May cause flinching."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 25,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HeartStamp,
},
[MOVE_HORN_LEECH] =
{
.name = COMPOUND_STRING("Horn Leech"),
.description = sMegaDrainDescription,
.effect = EFFECT_ABSORB,
.power = 75,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .absorbPercentage = 50 },
.makesContact = TRUE,
.healingMove = B_HEAL_BLOCKING >= GEN_6,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HornLeech,
},
[MOVE_SACRED_SWORD] =
{
.name = COMPOUND_STRING("Sacred Sword"),
.description = sChipAwayDescription,
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_6 ? 15 : 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ignoresTargetDefenseEvasionStages = TRUE,
.slicingMove = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SacredSword,
},
[MOVE_RAZOR_SHELL] =
{
.name = COMPOUND_STRING("Razor Shell"),
.description = COMPOUND_STRING(
"Tears at the foe with sharp\n"
"shells. May lower Defense."),
.effect = EFFECT_HIT,
.power = 75,
.type = TYPE_WATER,
.accuracy = 95,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_MINUS_1,
.chance = 50,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RazorShell,
},
[MOVE_HEAT_CRASH] =
{
.name = COMPOUND_STRING("Heat Crash"),
.description = sHeavySlamDescription,
.effect = EFFECT_HEAT_CRASH,
.power = 1,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS >= GEN_6,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HeatCrash,
},
[MOVE_LEAF_TORNADO] =
{
.name = COMPOUND_STRING("Leaf Tornado"),
.description = COMPOUND_STRING(
"Circles the foe with leaves\n"
"to damage and cut accuracy."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_GRASS,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ACC_MINUS_1,
.chance = 50,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_LeafTornado,
},
[MOVE_STEAMROLLER] =
{
.name = COMPOUND_STRING("Steamroller"),
.description = COMPOUND_STRING(
"Crushes the foe with its\n"
"body. May cause flinching."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.minimizeDoubleDamage = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Steamroller,
},
[MOVE_COTTON_GUARD] =
{
.name = COMPOUND_STRING("Cotton Guard"),
.description = COMPOUND_STRING(
"Wraps its body in cotton.\n"
"Drastically raises Defense."),
.effect = EFFECT_DEFENSE_UP_3,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_CottonGuard,
},
[MOVE_NIGHT_DAZE] =
{
.name = COMPOUND_STRING("Night Daze"),
.description = COMPOUND_STRING(
"Looses a pitch-black shock\n"
"wave. May lower accuracy."),
.effect = EFFECT_HIT,
.power = 85,
.type = TYPE_DARK,
.accuracy = 95,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ACC_MINUS_1,
.chance = 40,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_NightDaze,
},
[MOVE_PSYSTRIKE] =
{
.name = COMPOUND_STRING("Psystrike"),
.description = sPsyshockDescription,
.effect = EFFECT_PSYSHOCK,
.power = 100,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Psystrike,
},
[MOVE_TAIL_SLAP] =
{
.name = COMPOUND_STRING("Tail Slap"),
.description = COMPOUND_STRING(
"Strikes the foe with its\n"
"tail 2 to 5 times."),
.effect = EFFECT_MULTI_HIT,
.power = 25,
.type = TYPE_NORMAL,
.accuracy = 85,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_TailSlap,
},
[MOVE_HURRICANE] =
{
.name = COMPOUND_STRING("Hurricane"),
.description = COMPOUND_STRING(
"Traps the foe in a fierce\n"
"wind. May cause confusion."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 110 : 120,
.type = TYPE_FLYING,
.accuracy = 70,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.windMove = TRUE,
.damagesAirborne = TRUE,
.alwaysHitsInRain = TRUE,
.accuracy50InSun = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSION,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Hurricane,
},
[MOVE_HEAD_CHARGE] =
{
.name = COMPOUND_STRING("Head Charge"),
.description = COMPOUND_STRING(
"A charge using guard hair.\n"
"It hurts the user a little."),
.effect = EFFECT_RECOIL,
.power = 120,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .recoilPercentage = 25 },
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HeadCharge,
},
[MOVE_GEAR_GRIND] =
{
.name = COMPOUND_STRING("Gear Grind"),
.description = COMPOUND_STRING(
"Throws two steel gears\n"
"that strike twice."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_STEEL,
.accuracy = 85,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.zMove = { .powerOverride = 180 },
.makesContact = TRUE,
.strikeCount = 2,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_GearGrind,
},
[MOVE_SEARING_SHOT] =
{
.name = COMPOUND_STRING("Searing Shot"),
.description = sLavaPlumeDescription,
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ballisticMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SearingShot,
},
[MOVE_TECHNO_BLAST] =
{
.name = COMPOUND_STRING("Techno Blast"),
.description = COMPOUND_STRING(
"The type varies with the\n"
"kind of Drive held."),
.effect = EFFECT_CHANGE_TYPE_ON_ITEM,
.power = B_UPDATED_MOVE_DATA >= GEN_6 ? 120 : 85,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .holdEffect = HOLD_EFFECT_DRIVE },
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_TechnoBlast,
},
[MOVE_RELIC_SONG] =
{
.name = COMPOUND_STRING("Relic Song"),
.description = COMPOUND_STRING(
"Attacks with an ancient\n"
"song. May induce sleep."),
.effect = EFFECT_RELIC_SONG,
.power = 75,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .status = STATUS1_SLEEP },
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.soundMove = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SLEEP,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RelicSong,
},
[MOVE_SECRET_SWORD] =
{
.name = COMPOUND_STRING("Secret Sword"),
.description = COMPOUND_STRING(
"Cuts with a long horn that\n"
"does physical damage."),
.effect = EFFECT_PSYSHOCK,
.power = 85,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.slicingMove = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SecretSword,
},
[MOVE_GLACIATE] =
{
.name = COMPOUND_STRING("Glaciate"),
.description = COMPOUND_STRING(
"Blows very cold air at the\n"
"foes. It lowers their Speed."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_ICE,
.accuracy = 95,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Glaciate,
},
[MOVE_BOLT_STRIKE] =
{
.name = COMPOUND_STRING("Bolt Strike"),
.description = COMPOUND_STRING(
"Strikes with a great amount\n"
"of lightning. May paralyze."),
.effect = EFFECT_HIT,
.power = 130,
.type = TYPE_ELECTRIC,
.accuracy = 85,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BoltStrike,
},
[MOVE_BLUE_FLARE] =
{
.name = COMPOUND_STRING("Blue Flare"),
.description = COMPOUND_STRING(
"Engulfs the foe in a blue\n"
"flame. May inflict a burn."),
.effect = EFFECT_HIT,
.power = 130,
.type = TYPE_FIRE,
.accuracy = 85,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BlueFlare,
},
[MOVE_FIERY_DANCE] =
{
.name = COMPOUND_STRING("Fiery Dance"),
.description = COMPOUND_STRING(
"Dances cloaked in flames.\n"
"May raise Sp. Atk."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.danceMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_PLUS_1,
.self = TRUE,
.chance = 50,
}),
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FieryDance,
},
[MOVE_FREEZE_SHOCK] =
{
.name = COMPOUND_STRING("Freeze Shock"),
.description = COMPOUND_STRING(
"A powerful 2-turn move that\n"
"may paralyze the foe."),
.effect = EFFECT_TWO_TURNS_ATTACK,
.power = 140,
.type = TYPE_ICE,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.metronomeBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.argument.twoTurnAttack = { .stringId = STRINGID_CLOAKEDINAFREEZINGLIGHT },
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FreezeShock,
},
[MOVE_ICE_BURN] =
{
.name = COMPOUND_STRING("Ice Burn"),
.description = COMPOUND_STRING(
"A powerful 2-turn move that\n"
"may inflict a burn."),
.effect = EFFECT_TWO_TURNS_ATTACK,
.power = 140,
.type = TYPE_ICE,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.argument.twoTurnAttack = { .stringId = STRINGID_CLOAKEDINAFREEZINGLIGHT },
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_IceBurn,
},
[MOVE_SNARL] =
{
.name = COMPOUND_STRING("Snarl"),
.description = COMPOUND_STRING(
"Yells and rants at the foe\n"
"lowering its Sp. Atk."),
.effect = EFFECT_HIT,
.power = 55,
.type = TYPE_DARK,
.accuracy = 95,
.pp = 15,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.soundMove = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Snarl,
},
[MOVE_ICICLE_CRASH] =
{
.name = COMPOUND_STRING("Icicle Crash"),
.description = COMPOUND_STRING(
"Drops large icicles on the\n"
"foe. May cause flinching."),
.effect = EFFECT_HIT,
.power = 85,
.type = TYPE_ICE,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_IcicleCrash,
},
[MOVE_V_CREATE] =
{
.name = COMPOUND_STRING("V-create"),
.description = COMPOUND_STRING(
"Very powerful, but lowers\n"
"Defense, Sp. Def and Speed."),
.effect = EFFECT_HIT,
.power = 180,
.type = TYPE_FIRE,
.accuracy = 95,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.zMove = { .powerOverride = 220 },
.makesContact = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_V_CREATE,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_VCreate,
},
[MOVE_FUSION_FLARE] =
{
.name = COMPOUND_STRING("Fusion Flare"),
.description = COMPOUND_STRING(
"Summons a fireball. Works\n"
"well with a thunderbolt."),
.effect = EFFECT_FUSION_COMBO,
.power = 100,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.thawsUser = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FusionFlare,
},
[MOVE_FUSION_BOLT] =
{
.name = COMPOUND_STRING("Fusion Bolt"),
.description = COMPOUND_STRING(
"Summons a thunderbolt.\n"
"Works well with a fireball."),
.effect = EFFECT_FUSION_COMBO,
.power = 100,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FusionBolt,
},
[MOVE_FLYING_PRESS] =
{
.name = COMPOUND_STRING("Flying Press"),
.description = COMPOUND_STRING(
"This attack does Fighting\n"
"and Flying-type damage."),
.effect = EFFECT_TWO_TYPED_MOVE,
.power = B_UPDATED_MOVE_DATA >= GEN_7 ? 100 : 80,
.type = TYPE_FIGHTING,
.accuracy = 95,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.zMove = { .powerOverride = 170 },
.argument = { .type = TYPE_FLYING },
.makesContact = TRUE,
.minimizeDoubleDamage = TRUE,
.gravityBanned = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FlyingPress,
},
[MOVE_MAT_BLOCK] =
{
.name = COMPOUND_STRING("Mat Block"),
.description = COMPOUND_STRING(
"Evades damaging moves.\n"
"Only works on 1st turn."),
.effect = EFFECT_MAT_BLOCK,
.power = 0,
.type = TYPE_FIGHTING,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .protectMethod = PROTECT_MAT_BLOCK, },
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MatBlock,
},
[MOVE_BELCH] =
{
.name = COMPOUND_STRING("Belch"),
.description = COMPOUND_STRING(
"Lets out a loud belch.\n"
"Must eat a Berry to use it."),
.effect = EFFECT_BELCH,
.power = 120,
.type = TYPE_POISON,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.mirrorMoveBanned = TRUE,
.meFirstBanned = TRUE,
.metronomeBanned = TRUE,
.mimicBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Belch,
},
[MOVE_ROTOTILLER] =
{
.name = COMPOUND_STRING("Rototiller"),
.description = COMPOUND_STRING(
"Ups the Attack and Sp. Atk\n"
"of Grass-type Pokémon."),
.effect = EFFECT_ROTOTILLER,
.power = 0,
.type = TYPE_GROUND,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Rototiller,
},
[MOVE_STICKY_WEB] =
{
.name = COMPOUND_STRING("Sticky Web"),
.description = COMPOUND_STRING(
"Weaves a sticky net that\n"
"slows foes switching in."),
.effect = EFFECT_STICKY_WEB,
.power = 0,
.type = TYPE_BUG,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_OPPONENTS_FIELD,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.magicCoatAffected = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_StickyWeb,
},
[MOVE_FELL_STINGER] =
{
.name = COMPOUND_STRING("Fell Stinger"),
.description = COMPOUND_STRING(
"If it knocks out a foe\n"
"the Attack stat is raised."),
.effect = EFFECT_FELL_STINGER,
.power = B_UPDATED_MOVE_DATA >= GEN_7 ? 50 : 30,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 25,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FellStinger,
},
[MOVE_PHANTOM_FORCE] =
{
.name = COMPOUND_STRING("Phantom Force"),
.description = sShadowForceDescription,
.effect = EFFECT_SEMI_INVULNERABLE,
.power = 90,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ignoresProtect = TRUE,
.makesContact = TRUE,
.minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS == GEN_6,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.argument.twoTurnAttack = { .stringId = STRINGID_VANISHEDINSTANTLY, .status = COMPRESS_BITS(STATUS3_PHANTOM_FORCE) },
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FEINT,
}),
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PhantomForce,
},
[MOVE_TRICK_OR_TREAT] =
{
.name = COMPOUND_STRING("Trick-or-Treat"),
.description = COMPOUND_STRING(
"Goes trick-or-treating,\n"
"adding Ghost type to foe."),
.effect = EFFECT_THIRD_TYPE,
.power = 0,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .type = TYPE_GHOST },
.zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_TrickOrTreat,
},
[MOVE_NOBLE_ROAR] =
{
.name = COMPOUND_STRING("Noble Roar"),
.description = COMPOUND_STRING(
"Intimidates the foe, to cut\n"
"Attack and Sp. Atk."),
.effect = EFFECT_NOBLE_ROAR,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.magicCoatAffected = TRUE,
.soundMove = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_NobleRoar,
},
[MOVE_ION_DELUGE] =
{
.name = COMPOUND_STRING("Ion Deluge"),
.description = COMPOUND_STRING(
"Electrifies Normal-type\n"
"moves with charged atoms."),
.effect = EFFECT_ION_DELUGE,
.power = 0,
.type = TYPE_ELECTRIC,
.accuracy = 0,
.pp = 25,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 1,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_IonDeluge,
},
[MOVE_PARABOLIC_CHARGE] =
{
.name = COMPOUND_STRING("Parabolic Charge"),
.description = COMPOUND_STRING(
"Damages adjacent Pokémon\n"
"and heals up by half of it."),
.effect = EFFECT_ABSORB,
.power = B_UPDATED_MOVE_DATA >= GEN_7 ? 65 : 50,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .absorbPercentage = 50 },
.healingMove = B_HEAL_BLOCKING >= GEN_6,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ParabolicCharge,
},
[MOVE_FORESTS_CURSE] =
{
.name = COMPOUND_STRING("Forest's Curse"),
.description = COMPOUND_STRING(
"Puts a curse on the foe,\n"
"adding the Grass type."),
.effect = EFFECT_THIRD_TYPE,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .type = TYPE_GRASS },
.zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ForestsCurse,
},
[MOVE_PETAL_BLIZZARD] =
{
.name = COMPOUND_STRING("Petal Blizzard"),
.description = COMPOUND_STRING(
"Stirs up a violent storm\n"
"of petals to attack all."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.windMove = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PetalBlizzard,
},
[MOVE_FREEZE_DRY] =
{
.name = COMPOUND_STRING("Freeze-Dry"),
.description = COMPOUND_STRING(
"Super effective on Water-\n"
#if B_USE_FROSTBITE == TRUE
"types. May cause frostbite."),
#else
"types. May cause freezing."),
#endif
.effect = EFFECT_SUPER_EFFECTIVE_ON_ARG,
.power = 70,
.type = TYPE_ICE,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .type = TYPE_WATER },
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FreezeDry,
},
[MOVE_DISARMING_VOICE] =
{
.name = COMPOUND_STRING("Disarming Voice"),
.description = COMPOUND_STRING(
"Lets out a charming cry\n"
"that cannot be evaded."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.soundMove = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DisarmingVoice,
},
[MOVE_PARTING_SHOT] =
{
.name = COMPOUND_STRING("Parting Shot"),
.description = COMPOUND_STRING(
"Lowers the foe's Attack and\n"
"Sp. Atk, then switches out."),
.effect = EFFECT_PARTING_SHOT,
.power = 0,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESTORE_REPLACEMENT_HP },
.magicCoatAffected = TRUE,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.soundMove = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PartingShot,
},
[MOVE_TOPSY_TURVY] =
{
.name = COMPOUND_STRING("Topsy-Turvy"),
.description = COMPOUND_STRING(
"Swaps all stat changes that\n"
"affect the target."),
.effect = EFFECT_TOPSY_TURVY,
.power = 0,
.type = TYPE_DARK,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_7 ? 0 : 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_TopsyTurvy,
},
[MOVE_DRAINING_KISS] =
{
.name = COMPOUND_STRING("Draining Kiss"),
.description = sDrainingKissDescription,
.effect = EFFECT_ABSORB,
.power = 50,
.type = TYPE_FAIRY,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .absorbPercentage = 75 },
.makesContact = TRUE,
.healingMove = B_HEAL_BLOCKING >= GEN_6,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DrainingKiss,
},
[MOVE_CRAFTY_SHIELD] =
{
.name = COMPOUND_STRING("Crafty Shield"),
.description = COMPOUND_STRING(
"Evades status moves for\n"
"one turn."),
.effect = EFFECT_PROTECT,
.power = 0,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 3,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .protectMethod = PROTECT_CRAFTY_SHIELD },
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_CraftyShield,
},
[MOVE_FLOWER_SHIELD] =
{
.name = COMPOUND_STRING("Flower Shield"),
.description = COMPOUND_STRING(
"Raises the Defense of\n"
"Grass-type Pokémon."),
.effect = EFFECT_FLOWER_SHIELD,
.power = 0,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER, // The targeting of Flower Shield is handled through a script
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FlowerShield,
},
[MOVE_GRASSY_TERRAIN] =
{
.name = COMPOUND_STRING("Grassy Terrain"),
.description = COMPOUND_STRING(
"The ground turns to grass\n"
"for 5 turns. Restores HP."),
.effect = EFFECT_GRASSY_TERRAIN,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_GRASSY_TERRAIN,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_GrassyTerrain,
},
[MOVE_MISTY_TERRAIN] =
{
.name = COMPOUND_STRING("Misty Terrain"),
.description = COMPOUND_STRING(
"Covers the ground with mist\n"
"for 5 turns. Blocks status."),
.effect = EFFECT_MISTY_TERRAIN,
.power = 0,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = COMBO_STARTER_MISTY_TERRAIN,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MistyTerrain,
},
[MOVE_ELECTRIFY] =
{
.name = COMPOUND_STRING("Electrify"),
.description = COMPOUND_STRING(
"Electrifies the foe, making\n"
"its next move Electric-type."),
.effect = EFFECT_ELECTRIFY,
.power = 0,
.type = TYPE_ELECTRIC,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Electrify,
},
[MOVE_PLAY_ROUGH] =
{
.name = COMPOUND_STRING("Play Rough"),
.description = COMPOUND_STRING(
"Plays rough with the foe.\n"
"May lower Attack."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_FAIRY,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ATK_MINUS_1,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PlayRough,
},
[MOVE_FAIRY_WIND] =
{
.name = COMPOUND_STRING("Fairy Wind"),
.description = COMPOUND_STRING(
"Stirs up a fairy wind to\n"
"strike the foe."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_FAIRY,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.windMove = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FairyWind,
},
[MOVE_MOONBLAST] =
{
.name = COMPOUND_STRING("Moonblast"),
.description = COMPOUND_STRING(
"Attacks with the power of\n"
"the moon. May lower Sp. Atk."),
.effect = EFFECT_HIT,
.power = 95,
.type = TYPE_FAIRY,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_MINUS_1,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Moonblast,
},
[MOVE_BOOMBURST] =
{
.name = COMPOUND_STRING("Boomburst"),
.description = COMPOUND_STRING(
"Attacks everything with a\n"
"destructive sound wave."),
.effect = EFFECT_HIT,
.power = 140,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.soundMove = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Boomburst,
},
[MOVE_FAIRY_LOCK] =
{
.name = COMPOUND_STRING("Fairy Lock"),
.description = COMPOUND_STRING(
"Locks down the battlefield\n"
"preventing escape next turn."),
.effect = EFFECT_FAIRY_LOCK,
.power = 0,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FairyLock,
},
[MOVE_KINGS_SHIELD] =
{
.name = COMPOUND_STRING("King's Shield"),
.description = COMPOUND_STRING(
"Evades damage, and sharply\n"
"reduces Attack if struck."),
.effect = EFFECT_PROTECT,
.power = 0,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 4,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .protectMethod = PROTECT_KINGS_SHIELD },
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_KingsShield,
},
[MOVE_PLAY_NICE] =
{
.name = COMPOUND_STRING("Play Nice"),
.description = COMPOUND_STRING(
"Befriend the foe, lowering\n"
"its Attack without fail."),
.effect = EFFECT_ATTACK_DOWN,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PlayNice,
},
[MOVE_CONFIDE] =
{
.name = COMPOUND_STRING("Confide"),
.description = COMPOUND_STRING(
"Shares a secret with the\n"
"foe, lowering Sp. Atk."),
.effect = EFFECT_SPECIAL_ATTACK_DOWN,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.ignoresProtect = TRUE,
.magicCoatAffected = TRUE,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.soundMove = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Confide,
},
[MOVE_DIAMOND_STORM] =
{
.name = COMPOUND_STRING("Diamond Storm"),
.description = COMPOUND_STRING(
"Whips up a storm of\n"
"diamonds. May up Defense."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_ROCK,
.accuracy = 95,
.pp = 5,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = B_UPDATED_MOVE_DATA >= GEN_7 ? MOVE_EFFECT_DEF_PLUS_2: MOVE_EFFECT_DEF_PLUS_1,
.self = TRUE,
.chance = 50,
}),
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DiamondStorm,
},
[MOVE_STEAM_ERUPTION] =
{
.name = COMPOUND_STRING("Steam Eruption"),
.description = COMPOUND_STRING(
"Immerses the foe in heated\n"
"steam. May inflict a burn."),
.effect = EFFECT_HIT,
.power = 110,
.type = TYPE_WATER,
.accuracy = 95,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.thawsUser = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SCALD},
.battleAnimScript = gBattleAnimMove_SteamEruption,
},
[MOVE_HYPERSPACE_HOLE] =
{
.name = COMPOUND_STRING("Hyperspace Hole"),
.description = sHyperspaceHoleDescription,
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FEINT,
}),
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_HYPERSPACE_HOLE,
.contestComboMoves = {COMBO_STARTER_HYPERSPACE_FURY},
.battleAnimScript = gBattleAnimMove_HyperspaceHole,
},
[MOVE_WATER_SHURIKEN] =
{
.name = COMPOUND_STRING("Water Shuriken"),
.description = COMPOUND_STRING(
"Throws 2 to 5 stars that\n"
"are sure to strike first."),
.effect = EFFECT_MULTI_HIT,
.power = 15,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.category = B_UPDATED_MOVE_DATA >= GEN_7 ? DAMAGE_CATEGORY_SPECIAL : DAMAGE_CATEGORY_PHYSICAL,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_WaterShuriken,
},
[MOVE_MYSTICAL_FIRE] =
{
.name = COMPOUND_STRING("Mystical Fire"),
.description = COMPOUND_STRING(
"Breathes a special, hot\n"
"fire. Lowers Sp. Atk."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_7 ? 75 : 65,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MysticalFire,
},
[MOVE_SPIKY_SHIELD] =
{
.name = COMPOUND_STRING("Spiky Shield"),
.description = COMPOUND_STRING(
"Evades attack, and damages\n"
"the foe if struck."),
.effect = EFFECT_PROTECT,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 4,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .protectMethod = PROTECT_SPIKY_SHIELD },
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SpikyShield,
},
[MOVE_AROMATIC_MIST] =
{
.name = COMPOUND_STRING("Aromatic Mist"),
.description = COMPOUND_STRING(
"Raises the Sp. Def of a\n"
"partner Pokémon."),
.effect = EFFECT_AROMATIC_MIST,
.power = 0,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_2 },
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AromaticMist,
},
[MOVE_EERIE_IMPULSE] =
{
.name = COMPOUND_STRING("Eerie Impulse"),
.description = COMPOUND_STRING(
"Exposes the foe to a pulse\n"
"that sharply cuts Sp. Atk."),
.effect = EFFECT_SPECIAL_ATTACK_DOWN_2,
.power = 0,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_EerieImpulse,
},
[MOVE_VENOM_DRENCH] =
{
.name = COMPOUND_STRING("Venom Drench"),
.description = COMPOUND_STRING(
"Lowers the Attack, Sp. Atk\n"
"and Speed of poisoned foes."),
.effect = EFFECT_VENOM_DRENCH,
.power = 0,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_TOXIC},
.battleAnimScript = gBattleAnimMove_VenomDrench,
},
[MOVE_POWDER] =
{
.name = COMPOUND_STRING("Powder"),
.description = COMPOUND_STRING(
"Damages the foe if it uses\n"
"a Fire-type move."),
.effect = EFFECT_POWDER,
.power = 0,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_2 },
.powderMove = TRUE,
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Powder,
},
[MOVE_GEOMANCY] =
{
.name = COMPOUND_STRING("Geomancy"),
.description = COMPOUND_STRING(
"Raises Sp. Atk, Sp. Def and\n"
"Speed on the 2nd turn."),
.effect = EFFECT_GEOMANCY,
.power = 0,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 },
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.skyBattleBanned = TRUE,
.argument.twoTurnAttack = { .stringId = STRINGID_PKNMABSORBINGPOWER },
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Geomancy,
},
[MOVE_MAGNETIC_FLUX] =
{
.name = COMPOUND_STRING("Magnetic Flux"),
.description = COMPOUND_STRING(
"Boosts the defenses of\n"
"those with Plus or Minus."),
.effect = EFFECT_MAGNETIC_FLUX,
.power = 0,
.type = TYPE_ELECTRIC,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MagneticFlux,
},
[MOVE_HAPPY_HOUR] =
{
.name = COMPOUND_STRING("Happy Hour"),
.description = COMPOUND_STRING(
"Doubles the amount of\n"
"Prize Money received."),
.effect = EFFECT_HAPPY_HOUR,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 30,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HappyHour,
},
[MOVE_ELECTRIC_TERRAIN] =
{
.name = COMPOUND_STRING("Electric Terrain"),
.description = COMPOUND_STRING(
"Electrifies the ground for\n"
"5 turns. Prevents sleep."),
.effect = EFFECT_ELECTRIC_TERRAIN,
.power = 0,
.type = TYPE_ELECTRIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = COMBO_STARTER_ELECTRIC_TERRAIN,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ElectricTerrain,
},
[MOVE_DAZZLING_GLEAM] =
{
.name = COMPOUND_STRING("Dazzling Gleam"),
.description = COMPOUND_STRING(
"Damages foes by emitting\n"
"a bright flash."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_FAIRY,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DazzlingGleam,
},
[MOVE_CELEBRATE] =
{
.name = COMPOUND_STRING("Celebrate"),
.description = COMPOUND_STRING(
"Congratulates you on your\n"
"special day."),
.effect = EFFECT_CELEBRATE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 40,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.mimicBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Celebrate,
},
[MOVE_HOLD_HANDS] =
{
.name = COMPOUND_STRING("Hold Hands"),
.description = COMPOUND_STRING(
"The user and ally hold hands\n"
"making them happy."),
.effect = EFFECT_HOLD_HANDS,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 40,
.target = MOVE_TARGET_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 },
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.metronomeBanned = TRUE,
.mimicBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HoldHands,
},
[MOVE_BABY_DOLL_EYES] =
{
.name = COMPOUND_STRING("Baby-Doll Eyes"),
.description = COMPOUND_STRING(
"Lowers the foe's Attack\n"
"before it can move."),
.effect = EFFECT_ATTACK_DOWN,
.power = 0,
.type = TYPE_FAIRY,
.accuracy = 100,
.pp = 30,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BabyDollEyes,
},
[MOVE_NUZZLE] =
{
.name = COMPOUND_STRING("Nuzzle"),
.description = COMPOUND_STRING(
"Rubs its cheeks against\n"
"the foe, paralyzing it."),
.effect = EFFECT_HIT,
.power = 20,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Nuzzle,
},
[MOVE_HOLD_BACK] =
{
.name = COMPOUND_STRING("Hold Back"),
.description = sFalseSwipeDescription,
.effect = EFFECT_FALSE_SWIPE,
.power = 40,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 40,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HoldBack,
},
[MOVE_INFESTATION] =
{
.name = COMPOUND_STRING("Infestation"),
.description = COMPOUND_STRING(
"The foe is infested and\n"
"attacked for "BINDING_TURNS" turns."),
.effect = EFFECT_HIT,
.power = 20,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_WRAP,
}),
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Infestation,
},
[MOVE_POWER_UP_PUNCH] =
{
.name = COMPOUND_STRING("Power-Up Punch"),
.description = COMPOUND_STRING(
"A hard punch that raises\n"
"the user's Attack."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ATK_PLUS_1,
.self = TRUE,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PowerUpPunch,
},
[MOVE_OBLIVION_WING] =
{
.name = COMPOUND_STRING("Oblivion Wing"),
.description = sDrainingKissDescription,
.effect = EFFECT_ABSORB,
.power = 80,
.type = TYPE_FLYING,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .absorbPercentage = 75 },
.healingMove = B_HEAL_BLOCKING >= GEN_6,
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_OblivionWing,
},
[MOVE_THOUSAND_ARROWS] =
{
.name = COMPOUND_STRING("Thousand Arrows"),
.description = COMPOUND_STRING(
"Can hit Flying foes, then\n"
"knocks them to the ground."),
.effect = EFFECT_SMACK_DOWN,
.power = 90,
.type = TYPE_GROUND,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.damagesAirborne = TRUE,
.ignoreTypeIfFlyingAndUngrounded = TRUE,
.metronomeBanned = TRUE,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_THOUSAND_ARROWS,
.contestComboMoves = {COMBO_STARTER_THOUSAND_WAVES},
.battleAnimScript = gBattleAnimMove_ThousandArrows,
},
[MOVE_THOUSAND_WAVES] =
{
.name = COMPOUND_STRING("Thousand Waves"),
.description = COMPOUND_STRING(
"Those hit by the wave can\n"
"no longer escape."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_GROUND,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.metronomeBanned = TRUE,
.skyBattleBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PREVENT_ESCAPE,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_THOUSAND_WAVES,
.contestComboMoves = {COMBO_STARTER_THOUSAND_ARROWS},
.battleAnimScript = gBattleAnimMove_ThousandWaves,
},
[MOVE_LANDS_WRATH] =
{
.name = COMPOUND_STRING("Land's Wrath"),
.description = COMPOUND_STRING(
"Gathers the energy of the\n"
"land to attack every foe."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_GROUND,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_LandsWrath,
},
[MOVE_LIGHT_OF_RUIN] =
{
.name = COMPOUND_STRING("Light Of Ruin"),
.description = COMPOUND_STRING(
"Fires a great beam of light\n"
"that also hurts the user."),
.effect = EFFECT_RECOIL,
.power = 140,
.type = TYPE_FAIRY,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .recoilPercentage = 50 },
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_LightOfRuin,
},
[MOVE_ORIGIN_PULSE] =
{
.name = COMPOUND_STRING("Origin Pulse"),
.description = COMPOUND_STRING(
"Beams of glowing blue light\n"
"blast both foes."),
.effect = EFFECT_HIT,
.power = 110,
.type = TYPE_WATER,
.accuracy = 85,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.pulseMove = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_OriginPulse,
},
[MOVE_PRECIPICE_BLADES] =
{
.name = COMPOUND_STRING("Precipice Blades"),
.description = COMPOUND_STRING(
"Fearsome blades of stone\n"
"attack both foes."),
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_GROUND,
.accuracy = 85,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PrecipiceBlades,
},
[MOVE_DRAGON_ASCENT] =
{
.name = COMPOUND_STRING("Dragon Ascent"),
.description = sCloseCombatDescription,
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_FLYING,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_SPDEF_DOWN,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DragonAscent,
},
[MOVE_HYPERSPACE_FURY] =
{
.name = COMPOUND_STRING("Hyperspace Fury"),
.description = sHyperspaceHoleDescription,
.effect = EFFECT_HYPERSPACE_FURY,
.power = 100,
.type = TYPE_DARK,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.metronomeBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
.additionalEffects = ADDITIONAL_EFFECTS({
// Feint move effect handled in script as it goes before animation
.moveEffect = MOVE_EFFECT_DEF_MINUS_1,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_HYPERSPACE_FURY,
.contestComboMoves = {COMBO_STARTER_HYPERSPACE_HOLE},
.battleAnimScript = gBattleAnimMove_HyperspaceFury,
},
[MOVE_SHORE_UP] =
{
.name = COMPOUND_STRING("Shore Up"),
.description = COMPOUND_STRING(
"Restores the user's HP.\n"
"More HP in a sandstorm."),
.effect = EFFECT_SHORE_UP,
.power = 0,
.type = TYPE_GROUND,
.accuracy = 0,
.pp = B_UPDATED_MOVE_DATA >= GEN_9 ? 5 : 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.healingMove = TRUE,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SANDSTORM},
.battleAnimScript = gBattleAnimMove_ShoreUp,
},
[MOVE_FIRST_IMPRESSION] =
{
.name = COMPOUND_STRING("First Impression"),
.description = COMPOUND_STRING(
"Hits hard and first.\n"
"Only works first turn."),
.effect = EFFECT_FIRST_TURN_ONLY,
.power = 90,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 2,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .moveProperty = MOVE_FIRST_IMPRESSION },
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FirstImpression,
},
[MOVE_BANEFUL_BUNKER] =
{
.name = COMPOUND_STRING("Baneful Bunker"),
.description = COMPOUND_STRING(
"Protects user and poisons\n"
"foes on contact."),
.effect = EFFECT_PROTECT,
.power = 0,
.type = TYPE_POISON,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 4,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .protectMethod = PROTECT_BANEFUL_BUNKER },
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BanefulBunker,
},
[MOVE_SPIRIT_SHACKLE] =
{
.name = COMPOUND_STRING("Spirit Shackle"),
.description = COMPOUND_STRING(
"After being hit, foes can\n"
"no longer escape."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PREVENT_ESCAPE,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SpiritShackle,
},
[MOVE_DARKEST_LARIAT] =
{
.name = COMPOUND_STRING("Darkest Lariat"),
.description = COMPOUND_STRING(
"Swings the arms to strike\n"
"It ignores stat changes."),
.effect = EFFECT_HIT,
.power = 85,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ignoresTargetDefenseEvasionStages = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DarkestLariat,
},
[MOVE_SPARKLING_ARIA] =
{
.name = COMPOUND_STRING("Sparkling Aria"),
.description = COMPOUND_STRING(
"Sings with bubbles. Cures\n"
"burns on contact."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .status = STATUS1_BURN },
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.soundMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_REMOVE_STATUS,
.sheerForceBoost = SHEER_FORCE_BOOST,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SCALD},
.battleAnimScript = gBattleAnimMove_SparklingAria,
},
[MOVE_ICE_HAMMER] =
{
.name = COMPOUND_STRING("Ice Hammer"),
.description = COMPOUND_STRING(
"Swings the fist to strike.\n"
"Lowers the user's Speed."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_ICE,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_HAIL},
.battleAnimScript = gBattleAnimMove_IceHammer,
},
[MOVE_FLORAL_HEALING] =
{
.name = COMPOUND_STRING("Floral Healing"),
.description = COMPOUND_STRING(
"Restores an ally's HP.\n"
"Heals more on grass."),
.effect = EFFECT_HEAL_PULSE,
.power = 0,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.argument = { .moveProperty = MOVE_EFFECT_FLORAL_HEALING },
.mirrorMoveBanned = TRUE,
.healingMove = TRUE,
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FloralHealing,
},
[MOVE_HIGH_HORSEPOWER] =
{
.name = COMPOUND_STRING("High Horsepower"),
.description = COMPOUND_STRING(
"Slams hard into the foe with\n"
"its entire body."),
.effect = EFFECT_HIT,
.power = 95,
.type = TYPE_GROUND,
.accuracy = 95,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_HighHorsepower,
},
[MOVE_STRENGTH_SAP] =
{
.name = COMPOUND_STRING("Strength Sap"),
.description = COMPOUND_STRING(
"Saps the foe's Attack to\n"
"heal HP, then drops Attack."),
.effect = EFFECT_STRENGTH_SAP,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.magicCoatAffected = TRUE,
.healingMove = B_HEAL_BLOCKING >= GEN_6,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_StrengthSap,
},
[MOVE_SOLAR_BLADE] =
{
.name = COMPOUND_STRING("Solar Blade"),
.description = COMPOUND_STRING(
"Charges first turn, then\n"
"chops with a blade of light."),
.effect = EFFECT_SOLAR_BEAM,
.power = 125,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.argument.twoTurnAttack = { .stringId = STRINGID_PKMNTOOKSUNLIGHT, .status = B_WEATHER_SUN },
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_SolarBlade,
},
[MOVE_LEAFAGE] =
{
.name = COMPOUND_STRING("Leafage"),
.description = COMPOUND_STRING(
"Attacks with a flurry of\n"
"small leaves."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 40,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_GROWTH},
.battleAnimScript = gBattleAnimMove_Leafage,
},
[MOVE_SPOTLIGHT] =
{
.name = COMPOUND_STRING("Spotlight"),
.description = COMPOUND_STRING(
"Makes the foe attack the\n"
"spotlighted Pokémon."),
.effect = EFFECT_FOLLOW_ME,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 3,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPDEF_UP_1 },
.magicCoatAffected = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Spotlight,
},
[MOVE_TOXIC_THREAD] =
{
.name = COMPOUND_STRING("Toxic Thread"),
.description = COMPOUND_STRING(
"Attacks with a thread that\n"
"poisons and drops Speed."),
.effect = EFFECT_TOXIC_THREAD,
.power = 0,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_TOXIC},
.battleAnimScript = gBattleAnimMove_ToxicThread,
},
[MOVE_LASER_FOCUS] =
{
.name = COMPOUND_STRING("Laser Focus"),
.description = COMPOUND_STRING(
"Guarantees the next move\n"
"will be a critical hit."),
.effect = EFFECT_LASER_FOCUS,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 30,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ATK_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_LaserFocus,
},
[MOVE_GEAR_UP] =
{
.name = COMPOUND_STRING("Gear Up"),
.description = COMPOUND_STRING(
"Boosts the attacks of\n"
"those with Plus or Minus."),
.effect = EFFECT_GEAR_UP,
.power = 0,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_GearUp,
},
[MOVE_THROAT_CHOP] =
{
.name = COMPOUND_STRING("Throat Chop"),
.description = COMPOUND_STRING(
"Chops the throat to disable\n"
"sound moves for 2 turns."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_THROAT_CHOP,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ThroatChop,
},
[MOVE_POLLEN_PUFF] =
{
.name = COMPOUND_STRING("Pollen Puff"),
.description = COMPOUND_STRING(
"Explodes on foes, but\n"
"restores ally's HP."),
.effect = EFFECT_HIT_ENEMY_HEAL_ALLY,
.power = 90,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ballisticMove = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PollenPuff,
},
[MOVE_ANCHOR_SHOT] =
{
.name = COMPOUND_STRING("Anchor Shot"),
.description = COMPOUND_STRING(
"Strangles the foe with a\n"
"chain. The foe can't escape."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PREVENT_ESCAPE,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AnchorShot,
},
[MOVE_PSYCHIC_TERRAIN] =
{
.name = COMPOUND_STRING("Psychic Terrain"),
.description = COMPOUND_STRING(
"The ground turns weird for\n"
"5 turns. Blocks priority."),
.effect = EFFECT_PSYCHIC_TERRAIN,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = COMBO_STARTER_PSYCHIC_TERRAIN,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PsychicTerrain,
},
[MOVE_LUNGE] =
{
.name = COMPOUND_STRING("Lunge"),
.description = COMPOUND_STRING(
"Lunges at the foe to lower\n"
"its Attack stat."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ATK_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Lunge,
},
[MOVE_FIRE_LASH] =
{
.name = COMPOUND_STRING("Fire Lash"),
.description = COMPOUND_STRING(
"Whips the foe with fire\n"
"lowering its Defense."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_FireLash,
},
[MOVE_POWER_TRIP] =
{
.name = COMPOUND_STRING("Power Trip"),
.description = COMPOUND_STRING(
"It hits harder the more\n"
"stat boosts the user has."),
.effect = EFFECT_STORED_POWER,
.power = 20,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_LATER,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PowerTrip,
},
[MOVE_BURN_UP] =
{
.name = COMPOUND_STRING("Burn Up"),
.description = COMPOUND_STRING(
"Burns out the user fully\n"
"removing the Fire type."),
.effect = EFFECT_FAIL_IF_NOT_ARG_TYPE,
.power = 130,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.thawsUser = TRUE,
.argument = { .type = TYPE_FIRE },
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_REMOVE_ARG_TYPE,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SUNNY_DAY},
.battleAnimScript = gBattleAnimMove_BurnUp,
},
[MOVE_SPEED_SWAP] =
{
.name = COMPOUND_STRING("Speed Swap"),
.description = COMPOUND_STRING(
"Swaps user's Speed with\n"
"the target's."),
.effect = EFFECT_SPEED_SWAP,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresSubstitute = TRUE,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SpeedSwap,
},
[MOVE_SMART_STRIKE] =
{
.name = COMPOUND_STRING("Smart Strike"),
.description = COMPOUND_STRING(
"Hits with an accurate\n"
"horn that never misses."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SmartStrike,
},
[MOVE_PURIFY] =
{
.name = COMPOUND_STRING("Purify"),
.description = COMPOUND_STRING(
"Cures the foe's status\n"
"to restore HP."),
.effect = EFFECT_PURIFY,
.power = 0,
.type = TYPE_POISON,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 },
.mirrorMoveBanned = TRUE,
.healingMove = TRUE,
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Purify,
},
[MOVE_REVELATION_DANCE] =
{
.name = COMPOUND_STRING("Revelation Dance"),
.description = COMPOUND_STRING(
"Dances with mystical power.\n"
"Matches user's first type."),
.effect = EFFECT_REVELATION_DANCE,
.power = 90,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.danceMove = TRUE,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_RevelationDance,
},
[MOVE_CORE_ENFORCER] =
{
.name = COMPOUND_STRING("Core Enforcer"),
.description = COMPOUND_STRING(
"Hits with a ray that\n"
"nullifies the foe's Ability."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.zMove = { .powerOverride = 140 },
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CORE_ENFORCER,
}),
.contestEffect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_CoreEnforcer,
},
[MOVE_TROP_KICK] =
{
.name = COMPOUND_STRING("Trop Kick"),
.description = COMPOUND_STRING(
"An intense kick from the\n"
"tropics. Lowers Attack."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ATK_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_TropKick,
},
[MOVE_INSTRUCT] =
{
.name = COMPOUND_STRING("Instruct"),
.description = COMPOUND_STRING(
"Orders the target to use\n"
"its last move again."),
.effect = EFFECT_INSTRUCT,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPATK_UP_1 },
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.instructBanned = TRUE,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Instruct,
},
[MOVE_BEAK_BLAST] =
{
.name = COMPOUND_STRING("Beak Blast"),
.description = COMPOUND_STRING(
"Heats beak to attack last.\n"
"Burns foe on contact."),
.effect = EFFECT_BEAK_BLAST,
.power = 100,
.type = TYPE_FLYING,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = -3,
.category = DAMAGE_CATEGORY_PHYSICAL,
.mirrorMoveBanned = TRUE,
.ballisticMove = TRUE,
.meFirstBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BeakBlast,
},
[MOVE_CLANGING_SCALES] =
{
.name = COMPOUND_STRING("Clanging Scales"),
.description = COMPOUND_STRING(
"Makes a big noise with\n"
"its scales. Drops Defense."),
.effect = EFFECT_HIT,
.power = 110,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.soundMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_MINUS_1,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ClangingScales,
},
[MOVE_DRAGON_HAMMER] =
{
.name = COMPOUND_STRING("Dragon Hammer"),
.description = COMPOUND_STRING(
"Swings its whole body\n"
"like a hammer to damage."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_RUSH, COMBO_STARTER_DRAGON_TAIL},
.battleAnimScript = gBattleAnimMove_DragonHammer,
},
[MOVE_BRUTAL_SWING] =
{
.name = COMPOUND_STRING("Brutal Swing"),
.description = COMPOUND_STRING(
"Violently swings around\n"
"to hurt everyone nearby."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BrutalSwing,
},
[MOVE_AURORA_VEIL] =
{
.name = COMPOUND_STRING("Aurora Veil"),
#if B_PREFERRED_ICE_WEATHER == B_ICE_WEATHER_SNOW
.description = COMPOUND_STRING(
"Weakens all attacks, but\n"
"only usable with snow."),
#elif B_PREFERRED_ICE_WEATHER == B_ICE_WEATHER_BOTH
.description = COMPOUND_STRING(
"Weakens all attacks if\n"
"used in hail or snow."),
#else
.description = COMPOUND_STRING(
"Weakens all attacks, but\n"
"only usable with hail."),
#endif
.effect = EFFECT_AURORA_VEIL,
.power = 0,
.type = TYPE_ICE,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_HAIL},
.battleAnimScript = gBattleAnimMove_AuroraVeil,
},
[MOVE_SHELL_TRAP] =
{
.name = COMPOUND_STRING("Shell Trap"),
.description = COMPOUND_STRING(
"Sets a shell trap that\n"
"damages on contact."),
.effect = EFFECT_SHELL_TRAP,
.power = 150,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_BOTH,
.priority = -3,
.category = DAMAGE_CATEGORY_SPECIAL,
.mirrorMoveBanned = TRUE,
.meFirstBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.assistBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ShellTrap,
},
[MOVE_FLEUR_CANNON] =
{
.name = COMPOUND_STRING("Fleur Cannon"),
.description = COMPOUND_STRING(
"A strong ray that harshly\n"
"lowers Sp. Attack."),
.effect = EFFECT_HIT,
.power = 130,
.type = TYPE_FAIRY,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_MINUS_2,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FleurCannon,
},
[MOVE_PSYCHIC_FANGS] =
{
.name = COMPOUND_STRING("Psychic Fangs"),
.description = COMPOUND_STRING(
"Chomps with psychic fangs.\n"
"Destroys any barriers."),
.effect = EFFECT_BRICK_BREAK,
.power = 85,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.bitingMove = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PsychicFangs,
},
[MOVE_STOMPING_TANTRUM] =
{
.name = COMPOUND_STRING("Stomping Tantrum"),
.description = COMPOUND_STRING(
"Stomps around angrily.\n"
"Stronger after a failure."),
.effect = EFFECT_STOMPING_TANTRUM,
.power = 75,
.type = TYPE_GROUND,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_StompingTantrum,
},
[MOVE_SHADOW_BONE] =
{
.name = COMPOUND_STRING("Shadow Bone"),
.description = COMPOUND_STRING(
"Strikes with a haunted\n"
"bone. Might drop Defense."),
.effect = EFFECT_HIT,
.power = 85,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_MINUS_1,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = COMBO_STARTER_SHADOW_BONE,
.contestComboMoves = {COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONEMERANG, COMBO_STARTER_BONE_RUSH},
.battleAnimScript = gBattleAnimMove_ShadowBone,
},
[MOVE_ACCELEROCK] =
{
.name = COMPOUND_STRING("Accelerock"),
.description = COMPOUND_STRING(
"Hits with a high-speed\n"
"rock that always goes first."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_ROCK,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Accelerock,
},
[MOVE_LIQUIDATION] =
{
.name = COMPOUND_STRING("Liquidation"),
.description = COMPOUND_STRING(
"Slams the foe with water.\n"
"Can lower Defense."),
.effect = EFFECT_HIT,
.power = 85,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_MINUS_1,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_RAIN_DANCE},
.battleAnimScript = gBattleAnimMove_Liquidation,
},
[MOVE_PRISMATIC_LASER] =
{
.name = COMPOUND_STRING("Prismatic Laser"),
.description = COMPOUND_STRING(
"A high power laser that\n"
"forces recharge next turn."),
.effect = EFFECT_HIT,
.power = 160,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RECHARGE,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PrismaticLaser,
},
[MOVE_SPECTRAL_THIEF] =
{
.name = COMPOUND_STRING("Spectral Thief"),
.description = COMPOUND_STRING(
"Steals the target's stat\n"
"boosts, then attacks."),
.effect = EFFECT_SPECTRAL_THIEF,
.power = 90,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ignoresSubstitute = TRUE,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SpectralThief,
},
[MOVE_SUNSTEEL_STRIKE] =
{
.name = COMPOUND_STRING("Sunsteel Strike"),
.description = COMPOUND_STRING(
"A sun-fueled strike that\n"
"ignores abilities."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ignoresTargetAbility = TRUE,
.metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_8,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SunsteelStrike,
},
[MOVE_MOONGEIST_BEAM] =
{
.name = COMPOUND_STRING("Moongeist Beam"),
.description = COMPOUND_STRING(
"A moon-powered beam that\n"
"ignores abilities."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresTargetAbility = TRUE,
.metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_8,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MoongeistBeam,
},
[MOVE_TEARFUL_LOOK] =
{
.name = COMPOUND_STRING("Tearful Look"),
.description = COMPOUND_STRING(
"The user tears up, dropping\n"
"Attack and Sp. Attack."),
.effect = EFFECT_NOBLE_ROAR,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_DEF_UP_1 },
.ignoresProtect = TRUE,
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_TearfulLook,
},
[MOVE_ZING_ZAP] =
{
.name = COMPOUND_STRING("Zing Zap"),
.description = COMPOUND_STRING(
"An electrified impact that\n"
"can cause flinching."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_CHARGE},
.battleAnimScript = gBattleAnimMove_ZingZap,
},
[MOVE_NATURES_MADNESS] =
{
.name = COMPOUND_STRING("Nature's Madness"),
.description = COMPOUND_STRING(
"Halves the foe's HP with\n"
"the power of nature."),
.effect = EFFECT_FIXED_PERCENT_DAMAGE,
.power = 1,
.type = TYPE_FAIRY,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_8,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_NaturesMadness,
},
[MOVE_MULTI_ATTACK] =
{
.name = COMPOUND_STRING("Multi-Attack"),
.description = COMPOUND_STRING(
"An attack that changes\n"
"with Memories."),
.effect = EFFECT_CHANGE_TYPE_ON_ITEM,
.power = B_UPDATED_MOVE_DATA >= GEN_8 ? 120 : 90,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .holdEffect = HOLD_EFFECT_MEMORY },
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MultiAttack,
},
[MOVE_MIND_BLOWN] =
{
.name = COMPOUND_STRING("Mind Blown"),
.description = COMPOUND_STRING(
"It explodes the user's head\n"
"to damage everything around."),
.effect = EFFECT_MIND_BLOWN,
.power = 150,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MindBlown,
},
[MOVE_PLASMA_FISTS] =
{
.name = COMPOUND_STRING("Plasma Fists"),
.description = COMPOUND_STRING(
"Hits with electrical fists.\n"
"Normal moves turn Electric."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ION_DELUGE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
.battleAnimScript = gBattleAnimMove_PlasmaFists,
},
[MOVE_PHOTON_GEYSER] =
{
.name = COMPOUND_STRING("Photon Geyser"),
.description = COMPOUND_STRING(
"User's highest attack stat\n"
"determines its category."),
.effect = EFFECT_PHOTON_GEYSER,
.power = 100,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresTargetAbility = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PhotonGeyser,
},
[MOVE_ZIPPY_ZAP] =
{
.name = COMPOUND_STRING("Zippy Zap"),
.description = COMPOUND_STRING(
"Electric bursts always go\n"
"first and land a critical hit."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_8 ? 80 : 50,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_8 ? 10 : 15,
.target = MOVE_TARGET_SELECTED,
.priority = 2,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8,
.alwaysCriticalHit = TRUE,
.metronomeBanned = TRUE,
#if B_UPDATED_MOVE_DATA >= GEN_8
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_EVS_PLUS_1,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
#endif
.battleAnimScript = gBattleAnimMove_ZippyZap,
},
[MOVE_SPLISHY_SPLASH] =
{
.name = COMPOUND_STRING("Splishy Splash"),
.description = COMPOUND_STRING(
"A huge electrified wave that\n"
"may paralyze the foes."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 30,
}),
.battleAnimScript = gBattleAnimMove_SplishySplash,
},
[MOVE_FLOATY_FALL] =
{
.name = COMPOUND_STRING("Floaty Fall"),
.description = COMPOUND_STRING(
"Floats in air and dives at\n"
"angle. May cause flinching."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_FLYING,
.accuracy = 95,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8,
.gravityBanned = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
.battleAnimScript = gBattleAnimMove_FloatyFall,
},
[MOVE_PIKA_PAPOW] =
{
.name = COMPOUND_STRING("Pika Papow"),
.description = COMPOUND_STRING(
"Pikachu's love increases its\n"
"power. It never misses."),
.effect = EFFECT_RETURN,
.power = 1,
.type = TYPE_ELECTRIC,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_PikaPapow,
},
[MOVE_BOUNCY_BUBBLE] =
{
.name = COMPOUND_STRING("Bouncy Bubble"),
.description = COMPOUND_STRING(
"An attack that absorbs\n"
#if B_UPDATED_MOVE_DATA >= GEN_8
"all the damage inflicted."),
#else
"half the damage inflicted."),
#endif
.effect = EFFECT_ABSORB,
.power = B_UPDATED_MOVE_DATA >= GEN_8 ? 60 : 90,
.type = TYPE_WATER,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_8 ? 20 : 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .absorbPercentage = B_UPDATED_MOVE_DATA >= GEN_8 ? 100 : 50 },
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8,
.metronomeBanned = TRUE,
.healingMove = B_HEAL_BLOCKING >= GEN_6,
.battleAnimScript = gBattleAnimMove_BouncyBubble,
},
[MOVE_BUZZY_BUZZ] =
{
.name = COMPOUND_STRING("Buzzy Buzz"),
.description = COMPOUND_STRING(
"Shoots a jolt of electricity\n"
"that always paralyzes."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_8 ? 60 : 90,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_8 ? 20 : 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
.battleAnimScript = gBattleAnimMove_BuzzyBuzz,
},
[MOVE_SIZZLY_SLIDE] =
{
.name = COMPOUND_STRING("Sizzly Slide"),
.description = COMPOUND_STRING(
"User cloaked in fire charges.\n"
"Leaves the foe with a burn."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_8 ? 60 : 90,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_8 ? 20 : 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8,
.thawsUser = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
.battleAnimScript = gBattleAnimMove_SizzlySlide,
},
[MOVE_GLITZY_GLOW] =
{
.name = COMPOUND_STRING("Glitzy Glow"),
.description = COMPOUND_STRING(
"Telekinetic force that sets\n"
"wall, lowering Sp. Atk damage."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_8 ? 80 : 90,
.type = TYPE_PSYCHIC,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_8 ? 95 : 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_LIGHT_SCREEN,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
.battleAnimScript = gBattleAnimMove_GlitzyGlow,
},
[MOVE_BADDY_BAD] =
{
.name = COMPOUND_STRING("Baddy Bad"),
.description = COMPOUND_STRING(
"Acting badly, attacks. Sets\n"
"wall, lowering Attack damage."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_8 ? 80 : 90,
.type = TYPE_DARK,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_8 ? 95 : 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_REFLECT,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
.battleAnimScript = gBattleAnimMove_BaddyBad,
},
[MOVE_SAPPY_SEED] =
{
.name = COMPOUND_STRING("Sappy Seed"),
.description = COMPOUND_STRING(
"Giant stalk scatters seeds\n"
"that drain HP every turn."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_8 ? 100 : 90,
.type = TYPE_GRASS,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_8 ? 90 : 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_8 ? 10 : 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8,
.magicCoatAffected = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_LEECH_SEED,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
.battleAnimScript = gBattleAnimMove_SappySeed,
},
[MOVE_FREEZY_FROST] =
{
.name = COMPOUND_STRING("Freezy Frost"),
.description = COMPOUND_STRING(
"Crystal from cold haze hits.\n"
"Eliminates all stat changes."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_8 ? 100 : 90,
.type = TYPE_ICE,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_8 ? 90 : 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_8 ? 10 : 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_HAZE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
.battleAnimScript = gBattleAnimMove_FreezyFrost,
},
[MOVE_SPARKLY_SWIRL] =
{
.name = COMPOUND_STRING("Sparkly Swirl"),
.description = COMPOUND_STRING(
"Wrap foe with whirlwind of\n"
"scent. Heals party's status."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_8 ? 120 : 90,
.type = TYPE_FAIRY,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_8 ? 85 : 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_8 ? 5 : 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_AROMATHERAPY,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
.battleAnimScript = gBattleAnimMove_SparklySwirl,
},
[MOVE_VEEVEE_VOLLEY] =
{
.name = COMPOUND_STRING("Veevee Volley"),
.description = COMPOUND_STRING(
"Eevee's love increases its\n"
"power. It never misses."),
.effect = EFFECT_RETURN,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_VeeveeVolley,
},
[MOVE_DOUBLE_IRON_BASH] =
{
.name = COMPOUND_STRING("Double Iron Bash"),
.description = COMPOUND_STRING(
"The user spins and hits with\n"
"its arms. May cause flinch."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.strikeCount = 2,
.minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS < GEN_8,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DoubleIronBash,
},
[MOVE_DYNAMAX_CANNON] =
{
.name = COMPOUND_STRING("Dynamax Cannon"),
.description = COMPOUND_STRING(
"Unleashes core energy.\n"
"2x against Dynamaxed foes."),
.effect = EFFECT_DYNAMAX_DOUBLE_DMG,
.power = 100,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.mimicBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = B_EXTRAPOLATED_MOVE_FLAGS,
.parentalBondBanned = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DynamaxCannon,
},
[MOVE_SNIPE_SHOT] =
{
.name = COMPOUND_STRING("Snipe Shot"),
.description = COMPOUND_STRING(
"The user ignores effects\n"
"that draw in moves."),
.effect = EFFECT_SNIPE_SHOT,
.power = 80,
.type = TYPE_WATER,
.accuracy = 100,
.criticalHitStage = 1,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SnipeShot,
},
[MOVE_JAW_LOCK] =
{
.name = COMPOUND_STRING("Jaw Lock"),
.description = COMPOUND_STRING(
"Prevents the user and\n"
"the target from escaping."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.bitingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_TRAP_BOTH,
}),
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_JawLock,
},
[MOVE_STUFF_CHEEKS] =
{
.name = COMPOUND_STRING("Stuff Cheeks"),
.description = COMPOUND_STRING(
"Consumes the user's Berry,\n"
"then sharply raises Def."),
.effect = EFFECT_STUFF_CHEEKS,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_StuffCheeks,
},
[MOVE_NO_RETREAT] =
{
.name = COMPOUND_STRING("No Retreat"),
.description = COMPOUND_STRING(
"Raises all of the user's\n"
"stats but prevents escape."),
.effect = EFFECT_NO_RETREAT,
.power = 0,
.type = TYPE_FIGHTING,
.accuracy = 0,
.pp = 5,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_NoRetreat,
},
[MOVE_TAR_SHOT] =
{
.name = COMPOUND_STRING("Tar Shot"),
.description = COMPOUND_STRING(
"Lowers the foe's Speed and\n"
"makes it weak to Fire."),
.effect = EFFECT_TAR_SHOT,
.power = 0,
.type = TYPE_ROCK,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_TarShot,
},
[MOVE_MAGIC_POWDER] =
{
.name = COMPOUND_STRING("Magic Powder"),
.description = COMPOUND_STRING(
"Magic powder changes the\n"
"target into a Psychic type."),
.effect = EFFECT_SOAK,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .type = TYPE_PSYCHIC },
.magicCoatAffected = TRUE,
.powderMove = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MagicPowder,
},
[MOVE_DRAGON_DARTS] =
{
.name = COMPOUND_STRING("Dragon Darts"),
.description = COMPOUND_STRING(
"The user attacks twice. Two\n"
"targets are hit once each."),
.effect = EFFECT_DRAGON_DARTS,
.power = 50,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.strikeCount = 2,
.parentalBondBanned = TRUE,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DragonDarts,
},
[MOVE_TEATIME] =
{
.name = COMPOUND_STRING("Teatime"),
.description = COMPOUND_STRING(
"All Pokémon have teatime\n"
"and eat their Berries."),
.effect = EFFECT_TEATIME,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Teatime,
},
[MOVE_OCTOLOCK] =
{
.name = COMPOUND_STRING("Octolock"),
.description = COMPOUND_STRING(
"Traps the foe to lower Def\n"
"and Sp. Def each turn."),
.effect = EFFECT_OCTOLOCK,
.power = 0,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Octolock,
},
[MOVE_BOLT_BEAK] =
{
.name = COMPOUND_STRING("Bolt Beak"),
.description = COMPOUND_STRING(
"Double power if the user\n"
"moves before the target."),
.effect = EFFECT_BOLT_BEAK,
.power = 85,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BoltBeak,
},
[MOVE_FISHIOUS_REND] =
{
.name = COMPOUND_STRING("Fishious Rend"),
.description = COMPOUND_STRING(
"Double power if the user\n"
"moves before the target."),
.effect = EFFECT_BOLT_BEAK,
.power = 85,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.bitingMove = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FishiousRend,
},
[MOVE_COURT_CHANGE] =
{
.name = COMPOUND_STRING("Court Change"),
.description = COMPOUND_STRING(
"The user swaps effects on\n"
"either side of the field."),
.effect = EFFECT_COURT_CHANGE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.ignoresProtect = TRUE,
.contestEffect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_CourtChange,
},
[MOVE_CLANGOROUS_SOUL] =
{
.name = COMPOUND_STRING("Clangorous Soul"),
.description = COMPOUND_STRING(
"The user uses some of its\n"
"HP to raise all its stats."),
.effect = EFFECT_CLANGOROUS_SOUL,
.power = 0,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.soundMove = TRUE,
.danceMove = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ClangorousSoul,
},
[MOVE_BODY_PRESS] =
{
.name = COMPOUND_STRING("Body Press"),
.description = COMPOUND_STRING(
"Does more damage the\n"
"higher the user's Def."),
.effect = EFFECT_BODY_PRESS,
.power = 80,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BodyPress,
},
[MOVE_DECORATE] =
{
.name = COMPOUND_STRING("Decorate"),
.description = COMPOUND_STRING(
"The user sharply raises\n"
"the target's Atk and Sp.Atk."),
.effect = EFFECT_DECORATE,
.power = 0,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Decorate,
},
[MOVE_DRUM_BEATING] =
{
.name = COMPOUND_STRING("Drum Beating"),
.description = COMPOUND_STRING(
"Plays a drum to attack.\n"
"The foe's Speed is lowered."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DrumBeating,
},
[MOVE_SNAP_TRAP] =
{
.name = COMPOUND_STRING("Snap Trap"),
.description = COMPOUND_STRING(
"Snares the target in a snap\n"
"trap for four to five turns."),
.effect = EFFECT_HIT,
.power = 35,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_WRAP,
}),
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SnapTrap,
},
[MOVE_PYRO_BALL] =
{
.name = COMPOUND_STRING("Pyro Ball"),
.description = COMPOUND_STRING(
"Launches a fiery ball at the\n"
"target. It may cause a burn."),
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_FIRE,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.thawsUser = TRUE,
.ballisticMove = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_PyroBall,
},
[MOVE_BEHEMOTH_BLADE] =
{
.name = COMPOUND_STRING("Behemoth Blade"),
.description = COMPOUND_STRING(
"Strikes as a sword. Deals 2x\n"
"damage to Dynamaxed foes."),
.effect = EFFECT_DYNAMAX_DOUBLE_DMG,
.power = 100,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.mimicBanned = TRUE,
.assistBanned = B_EXTRAPOLATED_MOVE_FLAGS,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BehemothBlade,
},
[MOVE_BEHEMOTH_BASH] =
{
.name = COMPOUND_STRING("Behemoth Bash"),
.description = COMPOUND_STRING(
"Attacks as a shield. Deals 2x\n"
"damage to Dynamaxed foes."),
.effect = EFFECT_DYNAMAX_DOUBLE_DMG,
.power = 100,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.mimicBanned = TRUE,
.assistBanned = B_EXTRAPOLATED_MOVE_FLAGS,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BehemothBash,
},
[MOVE_AURA_WHEEL] =
{
.name = COMPOUND_STRING("Aura Wheel"),
.description = COMPOUND_STRING(
"Raises Speed to attack. The\n"
"Type is based on its form."),
.effect = EFFECT_AURA_WHEEL,
.power = 110,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_PLUS_1,
.self = TRUE,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AuraWheel,
},
[MOVE_BREAKING_SWIPE] =
{
.name = COMPOUND_STRING("Breaking Swipe"),
.description = COMPOUND_STRING(
"Swings its tail to attack.\n"
"Lowers the Atk of those hit."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ATK_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BreakingSwipe,
},
[MOVE_BRANCH_POKE] =
{
.name = COMPOUND_STRING("Branch Poke"),
.description = COMPOUND_STRING(
"The user pokes the target\n"
"with a pointed branch."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 40,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BranchPoke,
},
[MOVE_OVERDRIVE] =
{
.name = COMPOUND_STRING("Overdrive"),
.description = COMPOUND_STRING(
"The user twangs its guitar,\n"
"causing strong vibrations."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.soundMove = TRUE,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Overdrive,
},
[MOVE_APPLE_ACID] =
{
.name = COMPOUND_STRING("Apple Acid"),
.description = COMPOUND_STRING(
"Attacks with tart apple acid\n"
"to lower the foe's Sp. Def."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_DEF_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AppleAcid,
},
[MOVE_GRAV_APPLE] =
{
.name = COMPOUND_STRING("Grav Apple"),
.description = COMPOUND_STRING(
"Drops an apple from above.\n"
"Lowers the foe's Defense."),
.effect = EFFECT_GRAV_APPLE,
.power = 80,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_GravApple,
},
[MOVE_SPIRIT_BREAK] =
{
.name = COMPOUND_STRING("Spirit Break"),
.description = COMPOUND_STRING(
"Attacks with spirit-breaking\n"
"force. Lowers Sp. Atk."),
.effect = EFFECT_HIT,
.power = 75,
.type = TYPE_FAIRY,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SpiritBreak,
},
[MOVE_STRANGE_STEAM] =
{
.name = COMPOUND_STRING("Strange Steam"),
.description = COMPOUND_STRING(
"Emits a strange steam to\n"
"potentially confuse the foe."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_FAIRY,
.accuracy = 95,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSION,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_StrangeSteam,
},
[MOVE_LIFE_DEW] =
{
.name = COMPOUND_STRING("Life Dew"),
.description = COMPOUND_STRING(
"Scatters water to restore\n"
"the HP of itself and allies."),
.effect = EFFECT_JUNGLE_HEALING,
.power = 0,
.type = TYPE_WATER,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.healingMove = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_LifeDew,
},
[MOVE_OBSTRUCT] =
{
.name = COMPOUND_STRING("Obstruct"),
.description = COMPOUND_STRING(
"Protects itself, harshly\n"
"lowering Def on contact."),
.effect = EFFECT_PROTECT,
.power = 0,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 4,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .protectMethod = PROTECT_OBSTRUCT },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.instructBanned = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Obstruct,
},
[MOVE_FALSE_SURRENDER] =
{
.name = COMPOUND_STRING("False Surrender"),
.description = COMPOUND_STRING(
"Bows to stab the foe\n"
"with hair. It never misses."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_DARK,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FalseSurrender,
},
[MOVE_METEOR_ASSAULT] =
{
.name = COMPOUND_STRING("Meteor Assault"),
.description = COMPOUND_STRING(
"Attacks with a thick leek.\n"
"The user must then rest."),
.effect = EFFECT_HIT,
.power = 150,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.metronomeBanned = TRUE,
.instructBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RECHARGE,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MeteorAssault,
},
[MOVE_ETERNABEAM] =
{
.name = COMPOUND_STRING("Eternabeam"),
.description = COMPOUND_STRING(
"Eternatus' strongest move.\n"
"The user rests next turn."),
.effect = EFFECT_HIT,
.power = 160,
.type = TYPE_DRAGON,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RECHARGE,
.self = TRUE,
}),
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Eternabeam,
},
[MOVE_STEEL_BEAM] =
{
.name = COMPOUND_STRING("Steel Beam"),
.description = COMPOUND_STRING(
"Fires a beam of steel from\n"
"its body. It hurts the user."),
.effect = EFFECT_MAX_HP_50_RECOIL,
.power = 140,
.type = TYPE_STEEL,
.accuracy = 95,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SteelBeam,
},
[MOVE_EXPANDING_FORCE] =
{
.name = COMPOUND_STRING("Expanding Force"),
.description = COMPOUND_STRING(
"Power goes up and damages\n"
"all foes on Psychic Terrain."),
.effect = EFFECT_EXPANDING_FORCE,
.power = 80,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_PSYCHIC_TERRAIN},
.battleAnimScript = gBattleAnimMove_ExpandingForce,
},
[MOVE_STEEL_ROLLER] =
{
.name = COMPOUND_STRING("Steel Roller"),
.description = COMPOUND_STRING(
"Destroys terrain. Fails if\n"
"ground isn't terrain."),
.effect = EFFECT_HIT_SET_REMOVE_TERRAIN,
.power = 130,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.argument = { .moveProperty = ARG_TRY_REMOVE_TERRAIN_FAIL }, // Remove a field terrain if there is one and hit, otherwise fail.
.skyBattleBanned = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SteelRoller,
},
[MOVE_SCALE_SHOT] =
{
.name = COMPOUND_STRING("Scale Shot"),
.description = COMPOUND_STRING(
"Shoots scales 2 to 5 times.\n"
"Ups Speed, lowers defense."),
.effect = EFFECT_MULTI_HIT,
.power = 25,
.type = TYPE_DRAGON,
.accuracy = 90,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .moveProperty = MOVE_EFFECT_SCALE_SHOT },
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ScaleShot,
},
[MOVE_METEOR_BEAM] =
{
.name = COMPOUND_STRING("Meteor Beam"),
.description = COMPOUND_STRING(
"A 2-turn move that raises\n"
"Sp. Attack before attacking."),
.effect = EFFECT_TWO_TURNS_ATTACK,
.power = 120,
.type = TYPE_ROCK,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.instructBanned = TRUE,
.argument.twoTurnAttack = { .stringId = STRINGID_METEORBEAMCHARGING },
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_PLUS_1,
.self = TRUE,
.onChargeTurnOnly = TRUE,
}),
.contestEffect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_MeteorBeam,
},
[MOVE_SHELL_SIDE_ARM] =
{
.name = COMPOUND_STRING("Shell Side Arm"),
.description = COMPOUND_STRING(
"Deals better of physical and\n"
"special damage. May poison."),
.effect = EFFECT_SHELL_SIDE_ARM,
.power = 90,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ShellSideArm,
},
[MOVE_MISTY_EXPLOSION] =
{
.name = COMPOUND_STRING("Misty Explosion"),
.description = COMPOUND_STRING(
"Hit everything and faint.\n"
"Powers up on Misty Terrain."),
.effect = EFFECT_MISTY_EXPLOSION,
.power = 100,
.type = TYPE_FAIRY,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_MISTY_TERRAIN},
.battleAnimScript = gBattleAnimMove_MistyExplosion,
},
[MOVE_GRASSY_GLIDE] =
{
.name = COMPOUND_STRING("Grassy Glide"),
.description = COMPOUND_STRING(
"Gliding on ground, hits. Goes\n"
"first on Grassy Terrain."),
.effect = EFFECT_GRASSY_GLIDE,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 55 : 70,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS,
.contestEffect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_GRASSY_TERRAIN},
.battleAnimScript = gBattleAnimMove_GrassyGlide,
},
[MOVE_RISING_VOLTAGE] =
{
.name = COMPOUND_STRING("Rising Voltage"),
.description = COMPOUND_STRING(
"This move's power doubles\n"
"when on Electric Terrain."),
.effect = EFFECT_RISING_VOLTAGE,
.power = 70,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_ELECTRIC_TERRAIN},
.battleAnimScript = gBattleAnimMove_RisingVoltage,
},
[MOVE_TERRAIN_PULSE] =
{
.name = COMPOUND_STRING("Terrain Pulse"),
.description = COMPOUND_STRING(
"Type and power changes\n"
"depending on the terrain."),
.effect = EFFECT_TERRAIN_PULSE,
.power = 50,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.pulseMove = TRUE,
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_ELECTRIC_TERRAIN, COMBO_STARTER_MISTY_TERRAIN, COMBO_STARTER_GRASSY_TERRAIN, COMBO_STARTER_PSYCHIC_TERRAIN},
.battleAnimScript = gBattleAnimMove_TerrainPulse,
},
[MOVE_SKITTER_SMACK] =
{
.name = COMPOUND_STRING("Skitter Smack"),
.description = COMPOUND_STRING(
"User skitters behind foe to\n"
"attack. Lowers foe's Sp. Atk."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_BUG,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SkitterSmack,
},
[MOVE_BURNING_JEALOUSY] =
{
.name = COMPOUND_STRING("Burning Jealousy"),
.description = COMPOUND_STRING(
"Foes that have stats upped\n"
"during the turn get burned."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.onlyIfTargetRaisedStats = TRUE,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_BurningJealousy,
},
[MOVE_LASH_OUT] =
{
.name = COMPOUND_STRING("Lash Out"),
.description = COMPOUND_STRING(
"If stats lowered during this\n"
"turn, power is doubled."),
.effect = EFFECT_LASH_OUT,
.power = 75,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_LashOut,
},
[MOVE_POLTERGEIST] =
{
.name = COMPOUND_STRING("Poltergeist"),
.description = COMPOUND_STRING(
"Control foe's item to attack.\n"
"Fails if foe has no item."),
.effect = EFFECT_POLTERGEIST,
.power = 110,
.type = TYPE_GHOST,
.accuracy = 90,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Poltergeist,
},
[MOVE_CORROSIVE_GAS] =
{
.name = COMPOUND_STRING("Corrosive Gas"),
.description = COMPOUND_STRING(
"Highly acidic gas melts items\n"
"held by surrounding Pokémon."),
.effect = EFFECT_CORROSIVE_GAS,
.power = 0,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 40,
.target = MOVE_TARGET_FOES_AND_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.magicCoatAffected = TRUE,
.contestEffect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_CorrosiveGas,
},
[MOVE_COACHING] =
{
.name = COMPOUND_STRING("Coaching"),
.description = COMPOUND_STRING(
"Properly coaches allies to\n"
"up their Attack and Defense."),
.effect = EFFECT_COACHING,
.power = 0,
.type = TYPE_FIGHTING,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.contestEffect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_Coaching,
},
[MOVE_FLIP_TURN] =
{
.name = COMPOUND_STRING("Flip Turn"),
.description = COMPOUND_STRING(
"Attacks and rushes back to\n"
"switch with a party Pokémon."),
.effect = EFFECT_HIT_ESCAPE,
.power = 60,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.contestEffect = CONTEST_EFFECT_AVOID_STARTLE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FlipTurn,
},
[MOVE_TRIPLE_AXEL] =
{
.name = COMPOUND_STRING("Triple Axel"),
.description = COMPOUND_STRING(
"A 3-kick attack that gets\n"
"more powerful with each hit."),
.effect = EFFECT_TRIPLE_KICK,
.power = 20,
.type = TYPE_ICE,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.strikeCount = 3,
.contestEffect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_TripleAxel,
},
[MOVE_DUAL_WINGBEAT] =
{
.name = COMPOUND_STRING("Dual Wingbeat"),
.description = COMPOUND_STRING(
"User slams the target with\n"
"wings and hits twice in a row."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_FLYING,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.strikeCount = 2,
.contestEffect = CONTEST_EFFECT_REPETITION_NOT_BORING,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DualWingbeat,
},
[MOVE_SCORCHING_SANDS] =
{
.name = COMPOUND_STRING("Scorching Sands"),
.description = COMPOUND_STRING(
"Throws scorching sand at\n"
"the target. May leave a burn."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_GROUND,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.thawsUser = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 30,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ScorchingSands,
},
[MOVE_JUNGLE_HEALING] =
{
.name = COMPOUND_STRING("Jungle Healing"),
.description = COMPOUND_STRING(
"Heals HP and status of\n"
"itself and allies in battle."),
.effect = EFFECT_JUNGLE_HEALING,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.mirrorMoveBanned = TRUE,
.healingMove = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_JungleHealing,
},
[MOVE_WICKED_BLOW] =
{
.name = COMPOUND_STRING("Wicked Blow"),
.description = COMPOUND_STRING(
"Mastering the Dark style,\n"
"strikes with a critical hit."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 75 : 80,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.alwaysCriticalHit = TRUE,
.punchingMove = TRUE,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_WickedBlow,
},
[MOVE_SURGING_STRIKES] =
{
.name = COMPOUND_STRING("Surging Strikes"),
.description = COMPOUND_STRING(
"Mastering the Water style,\n"
"strikes with 3 critical hits."),
.effect = EFFECT_HIT,
.power = 25,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.alwaysCriticalHit = TRUE,
.punchingMove = TRUE,
.strikeCount = 3,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_SurgingStrikes,
},
[MOVE_THUNDER_CAGE] =
{
.name = COMPOUND_STRING("Thunder Cage"),
.description = COMPOUND_STRING(
"Traps the foe in a cage of\n"
"electricity for "BINDING_TURNS" turns."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_ELECTRIC,
.accuracy = 90,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_WRAP,
}),
.contestEffect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ThunderCage,
},
[MOVE_DRAGON_ENERGY] =
{
.name = COMPOUND_STRING("Dragon Energy"),
.description = COMPOUND_STRING(
"The higher the user's HP\n"
"the more damage caused."),
.effect = EFFECT_POWER_BASED_ON_USER_HP,
.power = 150,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_LATER,
.contestCategory = CONTEST_CATEGORY_COOL,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_DragonEnergy,
},
[MOVE_FREEZING_GLARE] =
{
.name = COMPOUND_STRING("Freezing Glare"),
.description = COMPOUND_STRING(
"Shoots psychic power from\n"
#if B_USE_FROSTBITE == TRUE
"the eyes. May frostbite."),
#else
"the eyes. May freeze the foe."),
#endif
.power = 90,
.effect = EFFECT_HIT,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FREEZE_OR_FROSTBITE,
.chance = 10,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_CUTE,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FreezingGlare,
},
[MOVE_FIERY_WRATH] =
{
.name = COMPOUND_STRING("Fiery Wrath"),
.description = COMPOUND_STRING(
"An attack fueled by your\n"
"wrath. May cause flinching."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 20,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_FieryWrath,
},
[MOVE_THUNDEROUS_KICK] =
{
.name = COMPOUND_STRING("Thunderous Kick"),
.description = COMPOUND_STRING(
"Uses a lightning-like kick\n"
"to hit. Lowers foe's Defense."),
.effect = EFFECT_HIT,
.power = 90,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_MINUS_1,
.chance = 100,
}),
.contestEffect = CONTEST_EFFECT_HIGHLY_APPEALING,
.contestCategory = CONTEST_CATEGORY_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_ThunderousKick,
},
[MOVE_GLACIAL_LANCE] =
{
.name = COMPOUND_STRING("Glacial Lance"),
.description = COMPOUND_STRING(
"Hurls a blizzard-cloaked\n"
"icicle lance at foes."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 120 : 130,
.type = TYPE_ICE,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_LAST,
.contestCategory = CONTEST_CATEGORY_BEAUTY,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_GlacialLance,
},
[MOVE_ASTRAL_BARRAGE] =
{
.name = COMPOUND_STRING("Astral Barrage"),
.description = COMPOUND_STRING(
"Sends a frightful amount\n"
"of small ghosts at foes."),
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.contestEffect = CONTEST_EFFECT_BETTER_IF_FIRST,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.battleAnimScript = gBattleAnimMove_AstralBarrage,
},
[MOVE_EERIE_SPELL] =
{
.name = COMPOUND_STRING("Eerie Spell"),
.description = COMPOUND_STRING(
"Attacks with psychic power.\n"
"Foe's last move has 3 PP cut."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.soundMove = TRUE,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.contestEffect = CONTEST_EFFECT_BETTER_WHEN_LATER,
.contestCategory = CONTEST_CATEGORY_SMART,
.contestComboStarterId = 0,
.contestComboMoves = {0},
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_EERIE_SPELL,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_EerieSpell,
},
[MOVE_DIRE_CLAW] =
{
.name = COMPOUND_STRING("Dire Claw"),
.description = COMPOUND_STRING(
"High critical hit chance. May\n"
"paralyze, poison or drowse."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 80 : 60,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DIRE_CLAW,
.chance = 50,
}),
.battleAnimScript = gBattleAnimMove_DireClaw,
},
[MOVE_PSYSHIELD_BASH] =
{
.name = COMPOUND_STRING("Psyshield Bash"),
.description = COMPOUND_STRING(
"Hits a foe with psychic\n"
"energy. May raise Defense."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_PSYCHIC,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_PLUS_1,
.self = TRUE,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_PsyshieldBash,
},
[MOVE_POWER_SHIFT] =
{
.name = COMPOUND_STRING("Power Shift"),
.description = COMPOUND_STRING(
"The user swaps its Attack\n"
"and Defense stats."),
.effect = EFFECT_POWER_TRICK,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_PowerShift,
},
[MOVE_STONE_AXE] =
{
.name = COMPOUND_STRING("Stone Axe"),
.description = COMPOUND_STRING(
"High critical hit ratio. Sets\n"
"Splinters that hurt the foe."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_ROCK,
.accuracy = 90,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_STEALTH_ROCK,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_StoneAxe,
},
[MOVE_SPRINGTIDE_STORM] =
{
.name = COMPOUND_STRING("Springtide Storm"),
.description = COMPOUND_STRING(
"Wraps a foe in fierce winds.\n"
"Varies with the user's form."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 100 : 95,
.type = TYPE_FAIRY,
.accuracy = 80,
.pp = 5,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.windMove = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ATK_MINUS_1,
.chance = 30,
}),
.battleAnimScript = gBattleAnimMove_SpringtideStorm,
},
[MOVE_MYSTICAL_POWER] =
{
.name = COMPOUND_STRING("Mystical Power"),
.description = COMPOUND_STRING(
"A mysterious power strikes,\n"
"raising the user's Sp. Atk."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_PSYCHIC,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_PLUS_1,
.self = TRUE,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_MysticalPower,
},
[MOVE_RAGING_FURY] =
{
.name = COMPOUND_STRING("Raging Fury"),
.description = COMPOUND_STRING(
"A rampage of 2 to 3 turns\n"
"that confuses the user."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 120 : 90,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_RANDOM,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_THRASH,
.self = TRUE,
}),
.battleAnimScript = gBattleAnimMove_RagingFury,
},
[MOVE_WAVE_CRASH] =
{
.name = COMPOUND_STRING("Wave Crash"),
.description = COMPOUND_STRING(
"A slam shrouded in water.\n"
"It also hurts the user."),
.effect = EFFECT_RECOIL,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 120 : 75,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .recoilPercentage = 33 },
.makesContact = TRUE,
.skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS,
.battleAnimScript = gBattleAnimMove_WaveCrash,
},
[MOVE_CHLOROBLAST] =
{
.name = COMPOUND_STRING("Chloroblast"),
.description = COMPOUND_STRING(
"A user-hurting blast of\n"
"amassed chlorophyll."),
.effect = EFFECT_CHLOROBLAST,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 150 : 120,
.type = TYPE_GRASS,
.accuracy = 95,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.battleAnimScript = gBattleAnimMove_Chloroblast,
},
[MOVE_MOUNTAIN_GALE] =
{
.name = COMPOUND_STRING("Mountain Gale"),
.description = COMPOUND_STRING(
"Giant chunks of ice damage\n"
"the foe. It may flinch."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_ICE,
.accuracy = 85,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.battleAnimScript = gBattleAnimMove_MountainGale,
},
[MOVE_VICTORY_DANCE] =
{
.name = COMPOUND_STRING("Victory Dance"),
.description = COMPOUND_STRING(
"Dances to raise Attack,\n"
"Defense and Speed."),
.effect = EFFECT_VICTORY_DANCE,
.power = 0,
.type = TYPE_FIGHTING,
.accuracy = 0,
.pp = 20,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.danceMove = TRUE,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.battleAnimScript = gBattleAnimMove_VictoryDance,
},
[MOVE_HEADLONG_RUSH] =
{
.name = COMPOUND_STRING("Headlong Rush"),
.description = COMPOUND_STRING(
"Hits with a full-body tackle.\n"
"Lowers the users's defenses."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 120 : 100,
.type = TYPE_GROUND,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_SPDEF_DOWN,
.self = TRUE,
}),
.battleAnimScript = gBattleAnimMove_HeadlongRush,
},
[MOVE_BARB_BARRAGE] =
{
.name = COMPOUND_STRING("Barb Barrage"),
.description = COMPOUND_STRING(
"Can poison on impact. Powers\n"
"up against poisoned foes."),
.effect = EFFECT_DOUBLE_POWER_ON_ARG_STATUS,
.power = 60,
.type = TYPE_POISON,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_9 ? 10 : 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .status = STATUS1_PSN_ANY },
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON,
.chance = 50,
}),
.battleAnimScript = gBattleAnimMove_BarbBarrage,
},
[MOVE_ESPER_WING] =
{
.name = COMPOUND_STRING("Esper Wing"),
.description = COMPOUND_STRING(
"High critical hit ratio.\n"
"Ups the user's Speed."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 80 : 75,
.type = TYPE_PSYCHIC,
.accuracy = B_UPDATED_MOVE_DATA >= GEN_9 ? 100 : 90,
.criticalHitStage = 1,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_PLUS_1,
.self = TRUE,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_EsperWing,
},
[MOVE_BITTER_MALICE] =
{
.name = COMPOUND_STRING("Bitter Malice"),
.description = COMPOUND_STRING(
"A spine-chilling resentment.\n"
"Lowers the foe's Attack."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 75 : 60,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ATK_MINUS_1,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_BitterMalice,
},
[MOVE_SHELTER] =
{
.name = COMPOUND_STRING("Shelter"),
.description = COMPOUND_STRING(
"The user hardens their skin,\n"
"sharply raising its Defense."),
.effect = EFFECT_DEFENSE_UP_2,
.power = 0,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.battleAnimScript = gBattleAnimMove_Shelter,
},
[MOVE_TRIPLE_ARROWS] =
{
.name = COMPOUND_STRING("Triple Arrows"),
.description = COMPOUND_STRING(
"High critical hit ratio.\n"
"May lower Defense or flinch."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 90 : 50,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = B_UPDATED_MOVE_DATA >= GEN_9 ? 10 : 15,
.criticalHitStage = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_MINUS_1,
.chance = 50,
},
{
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 30,
}),
.battleAnimScript = gBattleAnimMove_TripleArrows,
},
[MOVE_INFERNAL_PARADE] =
{
.name = COMPOUND_STRING("Infernal Parade"),
.description = COMPOUND_STRING(
"Hurts a foe harder if it has\n"
"an ailment. May leave a burn."),
.effect = EFFECT_DOUBLE_POWER_ON_ARG_STATUS,
.power = 60,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .status = STATUS1_ANY },
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 30,
}),
.battleAnimScript = gBattleAnimMove_InfernalParade,
},
[MOVE_CEASELESS_EDGE] =
{
.name = COMPOUND_STRING("Ceaseless Edge"),
.description = COMPOUND_STRING(
"High critical hit ratio. Sets\n"
"Splinters that hurt the foe."),
.effect = EFFECT_HIT,
.power = 65,
.type = TYPE_DARK,
.accuracy = 90,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPIKES,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_CeaselessEdge,
},
[MOVE_BLEAKWIND_STORM] =
{
.name = COMPOUND_STRING("Bleakwind Storm"),
.description = COMPOUND_STRING(
"Hits with brutal, cold winds.\n"
"May lower the foe's Speed."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 100 : 95,
.type = TYPE_FLYING,
.accuracy = 80,
.pp = B_UPDATED_MOVE_DATA >= GEN_9 ? 10 : 5,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.windMove = TRUE,
.alwaysHitsInRain = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.chance = 30,
}),
.battleAnimScript = gBattleAnimMove_BleakwindStorm,
},
[MOVE_WILDBOLT_STORM] =
{
.name = COMPOUND_STRING("Wildbolt Storm"),
.description = COMPOUND_STRING(
"Hits with a brutal tempest.\n"
"May inflict paralysis."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 100 : 95,
.type = TYPE_ELECTRIC,
.accuracy = 80,
.pp = B_UPDATED_MOVE_DATA >= GEN_9 ? 10 : 5,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.windMove = TRUE,
.alwaysHitsInRain = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 20,
}),
.battleAnimScript = gBattleAnimMove_WildboltStorm,
},
[MOVE_SANDSEAR_STORM] =
{
.name = COMPOUND_STRING("Sandsear Storm"),
.description = COMPOUND_STRING(
"Hits with brutally hot sand.\n"
"May inflict a burn."),
.effect = EFFECT_HIT,
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 100 : 95,
.type = TYPE_GROUND,
.accuracy = 80,
.pp = B_UPDATED_MOVE_DATA >= GEN_9 ? 10 : 5,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.windMove = TRUE,
.alwaysHitsInRain = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 20,
}),
.battleAnimScript = gBattleAnimMove_SandsearStorm,
},
[MOVE_LUNAR_BLESSING] =
{
.name = COMPOUND_STRING("Lunar Blessing"),
.description = COMPOUND_STRING(
"The user heals and cures\n"
"itself and its ally."),
.effect = EFFECT_JUNGLE_HEALING,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.healingMove = TRUE,
.battleAnimScript = gBattleAnimMove_LunarBlessing,
},
[MOVE_TAKE_HEART] =
{
.name = COMPOUND_STRING("Take Heart"),
.description = COMPOUND_STRING(
"The user lifts its spirits to\n"
"heal and strengthen itself."),
.effect = EFFECT_TAKE_HEART,
.power = 0,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.battleAnimScript = gBattleAnimMove_TakeHeart,
},
[MOVE_TERA_BLAST] =
{
.name = COMPOUND_STRING("Tera Blast"),
.description = COMPOUND_STRING(
"If the user's Terastallized,\n"
"it hits with its Tera type."),
.effect = EFFECT_TERA_BLAST,
.power = 80,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.forcePressure = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_TERA_BLAST,
.self = TRUE,
}),
.battleAnimScript = gBattleAnimMove_TeraBlast,
},
[MOVE_SILK_TRAP] =
{
.name = COMPOUND_STRING("Silk Trap"),
.description = COMPOUND_STRING(
"Protects itself, lowering\n"
"Speed on contact."),
.effect = EFFECT_PROTECT,
.power = 0,
.type = TYPE_BUG,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 4,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .protectMethod = PROTECT_SILK_TRAP },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_SilkTrap,
},
[MOVE_AXE_KICK] =
{
.name = COMPOUND_STRING("Axe Kick"),
.description = COMPOUND_STRING(
"May miss and hurt the kicker.\n"
"May cause confusion."),
.effect = EFFECT_RECOIL_IF_MISS,
.power = 120,
.type = TYPE_FIGHTING,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSION,
.chance = 30,
}),
.battleAnimScript = gBattleAnimMove_AxeKick,
},
[MOVE_LAST_RESPECTS] =
{
.name = COMPOUND_STRING("Last Respects"),
.description = COMPOUND_STRING(
"This move deals more damage\n"
"for each defeated ally."),
.effect = EFFECT_LAST_RESPECTS,
.power = 50,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.metronomeBanned = TRUE, // Only since it isn't implemented yet
.battleAnimScript = gBattleAnimMove_LastRespects,
},
[MOVE_LUMINA_CRASH] =
{
.name = COMPOUND_STRING("Lumina Crash"),
.description = COMPOUND_STRING(
"A mind-affecting light\n"
"harshly lowers Sp. Def."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_DEF_MINUS_2,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_LuminaCrash,
},
[MOVE_ORDER_UP] =
{
.name = COMPOUND_STRING("Order Up"),
.description = COMPOUND_STRING(
"Boosts a user's stats\n"
"depending on Tatsugiri."),
.effect = EFFECT_ORDER_UP,
.power = 80,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ORDER_UP,
.self = TRUE,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_OrderUp,
},
[MOVE_JET_PUNCH] =
{
.name = COMPOUND_STRING("Jet Punch"),
.description = COMPOUND_STRING(
"A punch is thrown at blinding\n"
"speed to strike first."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_JetPunch,
},
[MOVE_SPICY_EXTRACT] =
{
.name = COMPOUND_STRING("Spicy Extract"),
.description = COMPOUND_STRING(
"Sharply ups target's Attack,\n"
"harshly lowers its Defense."),
.effect = EFFECT_SPICY_EXTRACT,
.power = 0,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.magicCoatAffected = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_SpicyExtract,
},
[MOVE_SPIN_OUT] =
{
.name = COMPOUND_STRING("Spin Out"),
.description = COMPOUND_STRING(
"Furiously strains its legs.\n"
"Harshly lowers user's Speed."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_2,
.self = TRUE,
}),
.battleAnimScript = gBattleAnimMove_SpinOut,
},
[MOVE_POPULATION_BOMB] =
{
.name = COMPOUND_STRING("Population Bomb"),
.description = COMPOUND_STRING(
"The user's fellows hit one\n"
"to ten times in a row."),
.effect = EFFECT_POPULATION_BOMB,
.power = 20,
.type = TYPE_NORMAL,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.metronomeBanned = TRUE,
.strikeCount = 10,
.battleAnimScript = gBattleAnimMove_PopulationBomb,
},
[MOVE_ICE_SPINNER] =
{
.name = COMPOUND_STRING("Ice Spinner"),
.description = COMPOUND_STRING(
"Ice-covered feet hit a foe\n"
"and destroy the terrain."),
.effect = EFFECT_HIT_SET_REMOVE_TERRAIN,
.power = 80,
.type = TYPE_ICE,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.argument = { .moveProperty = ARG_TRY_REMOVE_TERRAIN_HIT }, // Remove the active field terrain if there is one.
.skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS,
.battleAnimScript = gBattleAnimMove_IceSpinner,
},
[MOVE_GLAIVE_RUSH] =
{
.name = COMPOUND_STRING("Glaive Rush"),
.description = COMPOUND_STRING(
"Foe attacks next turn can't\n"
"miss and do double damage."),
.effect = EFFECT_GLAIVE_RUSH,
.power = 120,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.battleAnimScript = gBattleAnimMove_GlaiveRush,
},
[MOVE_REVIVAL_BLESSING] =
{
.name = COMPOUND_STRING("Revival Blessing"),
.description = COMPOUND_STRING(
"Revives a fainted party {PKMN}\n"
"and restores half of its HP."),
.effect = EFFECT_REVIVAL_BLESSING,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.healingMove = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
.battleAnimScript = gBattleAnimMove_RevivalBlessing,
},
[MOVE_SALT_CURE] =
{
.name = COMPOUND_STRING("Salt Cure"),
.description = COMPOUND_STRING(
"Hurts foe every turn. Double\n"
"damage to Steel and Water."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_ROCK,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SALT_CURE,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_SaltCure,
},
[MOVE_TRIPLE_DIVE] =
{
.name = COMPOUND_STRING("Triple Dive"),
.description = COMPOUND_STRING(
"Hits target with splashes\n"
"of water 3 times in a row."),
.effect = EFFECT_HIT,
.power = 30,
.type = TYPE_WATER,
.accuracy = 95,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.strikeCount = 3,
.battleAnimScript = gBattleAnimMove_TripleDive,
},
[MOVE_MORTAL_SPIN] =
{
.name = COMPOUND_STRING("Mortal Spin"),
.description = COMPOUND_STRING(
"Erases trap moves and Leech\n"
"Seed. Poisons adjacent foes."),
.effect = EFFECT_RAPID_SPIN,
.power = 30,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS(
{
.moveEffect = MOVE_EFFECT_POISON,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_MortalSpin,
},
[MOVE_DOODLE] =
{
.name = COMPOUND_STRING("Doodle"),
.description = COMPOUND_STRING(
"Changes user's and ally's\n"
"Ability into the target's."),
.effect = EFFECT_DOODLE,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_Doodle,
},
[MOVE_FILLET_AWAY] =
{
.name = COMPOUND_STRING("Fillet Away"),
.description = COMPOUND_STRING(
"Sharply boosts offenses and\n"
"Speed by using its own HP."),
.effect = EFFECT_FILLET_AWAY,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RECOVER_HP },
.snatchAffected = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_FilletAway,
},
[MOVE_KOWTOW_CLEAVE] =
{
.name = COMPOUND_STRING("Kowtow Cleave"),
.description = COMPOUND_STRING(
"User slashes the foe after\n"
"kowtowing. It never misses."),
.effect = EFFECT_HIT,
.power = 85,
.type = TYPE_DARK,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.battleAnimScript = gBattleAnimMove_KowtowCleave,
},
[MOVE_FLOWER_TRICK] =
{
.name = COMPOUND_STRING("Flower Trick"),
.description = COMPOUND_STRING(
"Rigged bouquet. Always gets\n"
"a critical hit, never missing."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.alwaysCriticalHit = TRUE,
.battleAnimScript = gBattleAnimMove_FlowerTrick,
},
[MOVE_TORCH_SONG] =
{
.name = COMPOUND_STRING("Torch Song"),
.description = COMPOUND_STRING(
"Flames scorch the target.\n"
"Boosts the user's Sp. Atk."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.soundMove = TRUE,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_PLUS_1,
.self = TRUE,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_TorchSong,
},
[MOVE_AQUA_STEP] =
{
.name = COMPOUND_STRING("Aqua Step"),
.description = COMPOUND_STRING(
"Hits with light, fluid dance\n"
"steps. Ups the user's Speed."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.danceMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_PLUS_1,
.self = TRUE,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_AquaStep,
},
[MOVE_RAGING_BULL] =
{
.name = COMPOUND_STRING("Raging Bull"),
.description = COMPOUND_STRING(
"Tackle that breaks barriers.\n"
"User's form determines type."),
.effect = EFFECT_RAGING_BULL,
.power = 90,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_RagingBull,
},
[MOVE_MAKE_IT_RAIN] =
{
.name = COMPOUND_STRING("Make It Rain"),
.description = COMPOUND_STRING(
"Lowers the user's Sp. Atk.\n"
"Money is recovered after."),
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PAYDAY,
},
{
.moveEffect = MOVE_EFFECT_SP_ATK_MINUS_1,
.self = TRUE,
}),
.battleAnimScript = gBattleAnimMove_MakeItRain,
},
[MOVE_RUINATION] =
{
.name = COMPOUND_STRING("Ruination"),
.description = COMPOUND_STRING(
"Summons a ruinous disaster\n"
"and cuts half the foe's HP."),
.effect = EFFECT_FIXED_PERCENT_DAMAGE,
.power = 1,
.type = TYPE_DARK,
.accuracy = 90,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_Ruination,
},
[MOVE_COLLISION_COURSE] =
{
.name = COMPOUND_STRING("Collision Course"),
.description = COMPOUND_STRING(
"Prehistoric explosion that's\n"
"stronger if super effective."),
.effect = EFFECT_COLLISION_COURSE,
.power = 100,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_CollisionCourse,
},
[MOVE_ELECTRO_DRIFT] =
{
.name = COMPOUND_STRING("Electro Drift"),
.description = COMPOUND_STRING(
"Futuristic electricity. It's\n"
"stronger if super effective."),
.effect = EFFECT_COLLISION_COURSE,
.power = 100,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_ElectroDrift,
},
[MOVE_SHED_TAIL] =
{
.name = COMPOUND_STRING("Shed Tail"),
.description = COMPOUND_STRING(
"Creates a Substitute for\n"
"itself before switching out."),
.effect = EFFECT_SHED_TAIL,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_ShedTail,
},
[MOVE_CHILLY_RECEPTION] =
{
.name = COMPOUND_STRING("Chilly Reception"),
#if B_PREFERRED_ICE_WEATHER == B_ICE_WEATHER_HAIL
.description = COMPOUND_STRING(
"Bad joke summons hailstorm.\n"
"The user also switches out."),
#else
.description = COMPOUND_STRING(
"Bad joke summons snowstorm.\n"
"The user also switches out."),
#endif
.effect = EFFECT_CHILLY_RECEPTION,
.power = 0,
.type = TYPE_ICE,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_ChillyReception,
},
[MOVE_TIDY_UP] =
{
.name = COMPOUND_STRING("Tidy Up"),
.description = COMPOUND_STRING(
"User tidies up hazards and\n"
"raises its Attack and Speed."),
.effect = EFFECT_TIDY_UP,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_TidyUp,
},
[MOVE_SNOWSCAPE] =
{
.name = COMPOUND_STRING("Snowscape"),
#if B_PREFERRED_ICE_WEATHER == B_ICE_WEATHER_HAIL
.description = COMPOUND_STRING(
"Summons a hailstorm that\n"
"strikes every turn."),
.effect = EFFECT_HAIL,
#else
.description = COMPOUND_STRING(
"Summons a snowstorm that\n"
"lasts for five turns."),
.effect = EFFECT_SNOWSCAPE,
#endif
.power = 0,
.type = TYPE_ICE,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_ALL_BATTLERS,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.zMove = { .effect = Z_EFFECT_SPD_UP_1 },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = (B_PREFERRED_ICE_WEATHER == B_ICE_WEATHER_HAIL) ? gBattleAnimMove_Hail : gBattleAnimMove_Snowscape,
},
[MOVE_POUNCE] =
{
.name = COMPOUND_STRING("Pounce"),
.description = COMPOUND_STRING(
"The user pounces on the foe,\n"
"lowering its Speed."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_BUG,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_MINUS_1,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_Pounce,
},
[MOVE_TRAILBLAZE] =
{
.name = COMPOUND_STRING("Trailblaze"),
.description = COMPOUND_STRING(
"The user attacks suddenly,\n"
"raising its Speed."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPD_PLUS_1,
.self = TRUE,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_Trailblaze,
},
[MOVE_CHILLING_WATER] =
{
.name = COMPOUND_STRING("Chilling Water"),
.description = COMPOUND_STRING(
"A shower with ice-cold water\n"
"lowers the target's Attack."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ATK_MINUS_1,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_ChillingWater,
},
[MOVE_HYPER_DRILL] =
{
.name = COMPOUND_STRING("Hyper Drill"),
.description = COMPOUND_STRING(
"A spinning pointed part\n"
"bypasses a foe's Protect."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ignoresProtect = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_HyperDrill,
},
[MOVE_TWIN_BEAM] =
{
.name = COMPOUND_STRING("Twin Beam"),
.description = COMPOUND_STRING(
"Mystical eye-beams that hit\n"
"the target twice in a row."),
.effect = EFFECT_HIT,
.power = 40,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.strikeCount = 2,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_TwinBeam,
},
[MOVE_RAGE_FIST] =
{
.name = COMPOUND_STRING("Rage Fist"),
.description = COMPOUND_STRING(
"The more the user has been\n"
"hit, the stronger the move."),
.effect = EFFECT_RAGE_FIST,
.power = 50,
.type = TYPE_GHOST,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.punchingMove = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_RageFist,
},
[MOVE_ARMOR_CANNON] =
{
.name = COMPOUND_STRING("Armor Cannon"),
.description = COMPOUND_STRING(
"A strong attack but lowers\n"
"the defensive stats."),
.effect = EFFECT_HIT,
.power = 120,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEF_SPDEF_DOWN,
.self = TRUE,
}),
.battleAnimScript = gBattleAnimMove_ArmorCannon,
},
[MOVE_BITTER_BLADE] =
{
.name = COMPOUND_STRING("Bitter Blade"),
.description = COMPOUND_STRING(
"An attack that absorbs\n"
"half the damage inflicted."),
.effect = EFFECT_ABSORB,
.power = 90,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .absorbPercentage = 50 },
.makesContact = TRUE,
.slicingMove = TRUE,
.healingMove = TRUE,
.battleAnimScript = gBattleAnimMove_BitterBlade,
},
[MOVE_DOUBLE_SHOCK] =
{
.name = COMPOUND_STRING("Double Shock"),
.description = COMPOUND_STRING(
"Discharges all electricity,\n"
"losing the Electric type."),
.effect = EFFECT_FAIL_IF_NOT_ARG_TYPE,
.power = 120,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.metronomeBanned = TRUE,
.argument = { .type = TYPE_ELECTRIC },
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_REMOVE_ARG_TYPE,
.self = TRUE,
}),
.battleAnimScript = gBattleAnimMove_DoubleShock,
},
[MOVE_GIGATON_HAMMER] =
{
.name = COMPOUND_STRING("Gigaton Hammer"),
.description = COMPOUND_STRING(
"Swings a huge hammer. Can't\n"
"be used twice in a row."),
.effect = EFFECT_HIT,
.power = 160,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.cantUseTwice = TRUE,
.battleAnimScript = gBattleAnimMove_GigatonHammer,
},
[MOVE_COMEUPPANCE] =
{
.name = COMPOUND_STRING("Comeuppance"),
.description = COMPOUND_STRING(
"Retaliates strongly against\n"
"who last hurt the user."),
.effect = EFFECT_METAL_BURST,
.power = 1,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_DEPENDS,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.meFirstBanned = TRUE,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_Comeuppance,
},
[MOVE_AQUA_CUTTER] =
{
.name = COMPOUND_STRING("Aqua Cutter"),
.description = COMPOUND_STRING(
"Pressurized water cut with a\n"
"high critical-hit ratio."),
.effect = EFFECT_HIT,
.power = 70,
.type = TYPE_WATER,
.accuracy = 100,
.criticalHitStage = 1,
.pp = 20,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.slicingMove = TRUE,
.battleAnimScript = gBattleAnimMove_AquaCutter,
},
[MOVE_BLAZING_TORQUE] =
{
.name = COMPOUND_STRING("Blazing Torque"),
.description = COMPOUND_STRING("---"),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.mirrorMoveBanned = TRUE,
.meFirstBanned = TRUE,
.mimicBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 30,
}),
.battleAnimScript = gBattleAnimMove_BlazingTorque,
},
[MOVE_WICKED_TORQUE] =
{
.name = COMPOUND_STRING("Wicked Torque"),
.description = COMPOUND_STRING("---"),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_DARK,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.mirrorMoveBanned = TRUE,
.meFirstBanned = TRUE,
.mimicBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SLEEP,
.chance = 10,
}),
.battleAnimScript = gBattleAnimMove_WickedTorque,
},
[MOVE_NOXIOUS_TORQUE] =
{
.name = COMPOUND_STRING("Noxious Torque"),
.description = COMPOUND_STRING("---"),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.mirrorMoveBanned = TRUE,
.meFirstBanned = TRUE,
.mimicBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON,
.chance = 30,
}),
.battleAnimScript = gBattleAnimMove_NoxiousTorque,
},
[MOVE_COMBAT_TORQUE] =
{
.name = COMPOUND_STRING("Combat Torque"),
.description = COMPOUND_STRING("---"),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.mirrorMoveBanned = TRUE,
.meFirstBanned = TRUE,
.mimicBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 30,
}),
.battleAnimScript = gBattleAnimMove_CombatTorque,
},
[MOVE_MAGICAL_TORQUE] =
{
.name = COMPOUND_STRING("Magical Torque"),
.description = COMPOUND_STRING("---"),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_FAIRY,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.mirrorMoveBanned = TRUE,
.meFirstBanned = TRUE,
.mimicBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.sleepTalkBanned = TRUE,
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSION,
.chance = 30,
}),
.battleAnimScript = gBattleAnimMove_MagicalTorque,
},
[MOVE_PSYBLADE] =
{
.name = COMPOUND_STRING("Psyblade"),
.description = COMPOUND_STRING(
"This move's power increases\n"
"when on Electric Terrain."),
.effect = EFFECT_PSYBLADE,
.power = 80,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.slicingMove = TRUE,
.battleAnimScript = gBattleAnimMove_Psyblade,
},
[MOVE_HYDRO_STEAM] =
{
.name = COMPOUND_STRING("Hydro Steam"),
.description = COMPOUND_STRING(
"This move's power increases\n"
"under harsh sunlight."),
.effect = EFFECT_HYDRO_STEAM,
.power = 80,
.type = TYPE_WATER,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.thawsUser = TRUE,
.battleAnimScript = gBattleAnimMove_HydroSteam,
},
[MOVE_BLOOD_MOON] =
{
.name = COMPOUND_STRING("Blood Moon"),
.description = COMPOUND_STRING(
"Unleashes the blood moon.\n"
"Can't be used twice in a row."),
.effect = EFFECT_HIT,
.power = 140,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.cantUseTwice = TRUE,
.battleAnimScript = gBattleAnimMove_BloodMoon,
},
[MOVE_MATCHA_GOTCHA] =
{
.name = COMPOUND_STRING("Matcha Gotcha"),
.description = COMPOUND_STRING(
"Absorbs half the damage\n"
"inflicted. May cause a burn."),
.effect = EFFECT_ABSORB,
.power = 80,
.type = TYPE_GRASS,
.accuracy = 90,
.pp = 15,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .absorbPercentage = 50 },
.thawsUser = TRUE,
.metronomeBanned = TRUE,
.healingMove = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_BURN,
.chance = 20,
}),
.battleAnimScript = gBattleAnimMove_MatchaGotcha,
},
[MOVE_SYRUP_BOMB] =
{
.name = COMPOUND_STRING("Syrup Bomb"),
.description = COMPOUND_STRING(
"Lowers the foe's speed\n"
"each turn for 3 turns."),
.effect = EFFECT_HIT,
.power = 60,
.type = TYPE_GRASS,
.accuracy = 85,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ballisticMove = TRUE,
.metronomeBanned = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SYRUP_BOMB,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_SyrupBomb,
},
[MOVE_IVY_CUDGEL] =
{
.name = COMPOUND_STRING("Ivy Cudgel"),
.description = COMPOUND_STRING(
"Type changes with held mask.\n"
"High critical-hit ratio."),
.effect = EFFECT_IVY_CUDGEL,
.power = 100,
.type = TYPE_GRASS,
.accuracy = 100,
.pp = 10,
.criticalHitStage = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.metronomeBanned = TRUE,
.battleAnimScript = gBattleAnimMove_IvyCudgel,
},
[MOVE_ELECTRO_SHOT] =
{
.name = COMPOUND_STRING("Electro Shot"),
.description = COMPOUND_STRING(
"Gathers electricity, then\n"
"fires a high-voltage shot."),
.effect = EFFECT_TWO_TURNS_ATTACK,
.power = 130,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument.twoTurnAttack = { .stringId = STRINGID_ELECTROSHOTCHARGING, .status = B_WEATHER_RAIN },
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SP_ATK_PLUS_1,
.self = TRUE,
.onChargeTurnOnly = TRUE,
.sheerForceBoost = SHEER_FORCE_BOOST,
}),
.battleAnimScript = gBattleAnimMove_ElectroShot,
},
[MOVE_TERA_STARSTORM] =
{
.name = COMPOUND_STRING("Tera Starstorm"),
.description = COMPOUND_STRING(
"In Terapagos's Stellar\n"
"Form, it hits all foes."),
.effect = EFFECT_TERA_STARSTORM,
.power = 120,
.type = TYPE_NORMAL,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.assistBanned = TRUE,
.copycatBanned = TRUE,
.mimicBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
.battleAnimScript = gBattleAnimMove_TeraStarstorm,
},
[MOVE_FICKLE_BEAM] =
{
.name = COMPOUND_STRING("Fickle Beam"),
.description = COMPOUND_STRING(
"Shoots a beam of light.\n"
"Sometimes twice as strong."),
.effect = EFFECT_FICKLE_BEAM,
.power = 80,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.battleAnimScript = gBattleAnimMove_FickleBeam,
},
[MOVE_BURNING_BULWARK] =
{
.name = COMPOUND_STRING("Burning Bulwark"),
.description = COMPOUND_STRING(
"Evades attack, and burns\n"
"the foe if struck."),
.effect = EFFECT_PROTECT,
.power = 0,
.type = TYPE_FIRE,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 4,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .protectMethod = PROTECT_BURNING_BULWARK },
.zMove = { .effect = Z_EFFECT_RESET_STATS },
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
.battleAnimScript = gBattleAnimMove_BurningBulwark,
},
[MOVE_THUNDERCLAP] =
{
.name = COMPOUND_STRING("Thunderclap"),
.description = sSuckerPunchDescription,
.effect = EFFECT_SUCKER_PUNCH,
.power = 70,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.category = DAMAGE_CATEGORY_SPECIAL,
.battleAnimScript = gBattleAnimMove_Thunderclap,
},
[MOVE_MIGHTY_CLEAVE] =
{
.name = COMPOUND_STRING("Mighty Cleave"),
.description = sFeintDescription,
.effect = EFFECT_HIT,
.power = 95,
.type = TYPE_ROCK,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.ignoresProtect = TRUE,
.slicingMove = TRUE,
.battleAnimScript = gBattleAnimMove_MightyCleave,
},
[MOVE_TACHYON_CUTTER] =
{
.name = COMPOUND_STRING("Tachyon Cutter"),
.description = COMPOUND_STRING(
"Launches particle blades at\n"
"the target. Strikes twice."),
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.strikeCount = 2,
.slicingMove = TRUE,
.battleAnimScript = gBattleAnimMove_TachyonCutter,
},
[MOVE_HARD_PRESS] =
{
.name = COMPOUND_STRING("Hard Press"),
.description = sWringOutDescription,
.effect = EFFECT_POWER_BASED_ON_TARGET_HP,
.power = 100,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.battleAnimScript = gBattleAnimMove_HardPress,
},
[MOVE_DRAGON_CHEER] =
{
.name = COMPOUND_STRING("Dragon Cheer"),
.description = COMPOUND_STRING(
"Increases allies' critical hit\n"
"ratio, especially if Dragons."),
.effect = EFFECT_DRAGON_CHEER,
.power = 0,
.type = TYPE_DRAGON,
.accuracy = 0,
.pp = 15,
.target = MOVE_TARGET_ALLY,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.ignoresSubstitute = TRUE,
.battleAnimScript = gBattleAnimMove_DragonCheer,
},
[MOVE_ALLURING_VOICE] =
{
.name = COMPOUND_STRING("Alluring Voice"),
.description = COMPOUND_STRING(
"Confuses foe if its stats\n"
"were boosted this turn."),
.effect = EFFECT_HIT,
.power = 80,
.type = TYPE_FAIRY,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.soundMove = TRUE,
.ignoresSubstitute = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSION,
.onlyIfTargetRaisedStats = TRUE,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_AlluringVoice,
},
[MOVE_TEMPER_FLARE] =
{
.name = COMPOUND_STRING("Temper Flare"),
.description = COMPOUND_STRING(
"A desperation attack. Power\n"
"doubles if last move failed."),
.effect = EFFECT_STOMPING_TANTRUM,
.power = 75,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.battleAnimScript = gBattleAnimMove_TemperFlare,
},
[MOVE_SUPERCELL_SLAM] =
{
.name = COMPOUND_STRING("Supercell Slam"),
.description = COMPOUND_STRING(
"An electrified slam. If it\n"
"misses, the user is hurt."),
.effect = EFFECT_RECOIL_IF_MISS,
.power = 100,
.type = TYPE_ELECTRIC,
.accuracy = 95,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.minimizeDoubleDamage = TRUE,
.battleAnimScript = gBattleAnimMove_SupercellSlam,
},
[MOVE_PSYCHIC_NOISE] =
{
.name = COMPOUND_STRING("Psychic Noise"),
.description = COMPOUND_STRING(
"Sound waves that damage and\n"
"prevent healing for 2 turns."),
.effect = EFFECT_HIT,
.power = 75,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.soundMove = TRUE,
.ignoresSubstitute = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PSYCHIC_NOISE,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_PsychicNoise,
},
[MOVE_UPPER_HAND] =
{
.effect = EFFECT_UPPER_HAND,
.name = COMPOUND_STRING("Upper Hand"),
.description = COMPOUND_STRING(
"Makes the target flinch if\n"
"readying a priority move."),
.power = 65,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 15,
.target = MOVE_TARGET_SELECTED,
.priority = 3,
.category = DAMAGE_CATEGORY_PHYSICAL,
.makesContact = TRUE,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FLINCH,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_UpperHand,
},
[MOVE_MALIGNANT_CHAIN] =
{
.name = COMPOUND_STRING("Malignant Chain"),
.description = COMPOUND_STRING(
"A corrosive chain attack\n"
"that may badly poison."),
.effect = EFFECT_HIT,
.power = 100,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 5,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_TOXIC,
.chance = 50,
.sheerForceBoost = SHEER_FORCE_BOOST,
}),
.battleAnimScript = gBattleAnimMove_MalignantChain,
},
// Z-Moves
[MOVE_BREAKNECK_BLITZ] =
{
.name = COMPOUND_STRING("Breakneck Blitz"),
.description = COMPOUND_STRING(
"Builds momentum and crashes\n"
"into the foe. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL, //determined from move type
.battleAnimScript = gBattleAnimMove_BreakneckBlitz,
},
[MOVE_ALL_OUT_PUMMELING] =
{
.name = COMPOUND_STRING("All-Out Pummeling"),
.description = COMPOUND_STRING(
"Rams an energy orb into\n"
"the target. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_FIGHTING,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_AllOutPummeling,
},
[MOVE_SUPERSONIC_SKYSTRIKE] =
{
.name = COMPOUND_STRING("Supersonic Skystrike"),
.description = COMPOUND_STRING(
"Soars up and plummets toward\n"
"the target. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_FLYING,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_SupersonicSkystrike,
},
[MOVE_ACID_DOWNPOUR] =
{
.name = COMPOUND_STRING("Acid Downpour"),
.description = COMPOUND_STRING(
"Sinks the target in a poison\n"
"swamp. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_POISON,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_AcidDownpour,
},
[MOVE_TECTONIC_RAGE] =
{
.name = COMPOUND_STRING("Tectonic Rage"),
.description = COMPOUND_STRING(
"Burrows deep and slams into\n"
"the target. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_GROUND,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS,
.battleAnimScript = gBattleAnimMove_TectonicRage,
},
[MOVE_CONTINENTAL_CRUSH] =
{
.name = COMPOUND_STRING("Continental Crush"),
.description = COMPOUND_STRING(
"Drops a huge rock mountain\n"
"on the foe. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_ROCK,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_ContinentalCrush,
},
[MOVE_SAVAGE_SPIN_OUT] =
{
.name = COMPOUND_STRING("Savage Spin-Out"),
.description = COMPOUND_STRING(
"Spits threads of silk to\n"
"bind the foe. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_BUG,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_SavageSpinOut,
},
[MOVE_NEVER_ENDING_NIGHTMARE] =
{
.name = COMPOUND_STRING("Never-Ending Nightmare"),
.description = COMPOUND_STRING(
"Deep-seated grudges trap\n"
"the target. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_GHOST,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_NeverEndingNightmare,
},
[MOVE_CORKSCREW_CRASH] =
{
.name = COMPOUND_STRING("Corkscrew Crash"),
.description = COMPOUND_STRING(
"Spins very fast and rams\n"
"the target. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_CorkscrewCrash,
},
[MOVE_INFERNO_OVERDRIVE] =
{
.name = COMPOUND_STRING("Inferno Overdrive"),
.description = COMPOUND_STRING(
"Breathes intense fire at\n"
"the target. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_FIRE,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_InfernoOverdrive,
},
[MOVE_HYDRO_VORTEX] =
{
.name = COMPOUND_STRING("Hydro Vortex"),
.description = COMPOUND_STRING(
"A huge whirlpool swallows\n"
"the target. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_WATER,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_HydroVortex,
},
[MOVE_BLOOM_DOOM] =
{
.name = COMPOUND_STRING("Bloom Doom"),
.description = COMPOUND_STRING(
"Uses plant energy to attack\n"
"the target. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_BloomDoom,
},
[MOVE_GIGAVOLT_HAVOC] =
{
.name = COMPOUND_STRING("Gigavolt Havoc"),
.description = COMPOUND_STRING(
"Hits the foe with powerful\n"
"electricity. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_ELECTRIC,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GigavoltHavoc,
},
[MOVE_SHATTERED_PSYCHE] =
{
.name = COMPOUND_STRING("Shattered Psyche"),
.description = COMPOUND_STRING(
"Controls the target to\n"
"hurt it. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_ShatteredPsyche,
},
[MOVE_SUBZERO_SLAMMER] =
{
.name = COMPOUND_STRING("Subzero Slammer"),
.description = COMPOUND_STRING(
"Drops the temp and freezes\n"
"the target. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_ICE,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_SubzeroSlammer,
},
[MOVE_DEVASTATING_DRAKE] =
{
.name = COMPOUND_STRING("Devastating Drake"),
.description = COMPOUND_STRING(
"Develops aura and attacks\n"
"the target. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_DRAGON,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_DevastatingDrake,
},
[MOVE_BLACK_HOLE_ECLIPSE] =
{
.name = COMPOUND_STRING("Black Hole Eclipse"),
.description = COMPOUND_STRING(
"Sucks the target into dark\n"
"energy. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_DARK,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_BlackHoleEclipse,
},
[MOVE_TWINKLE_TACKLE] =
{
.name = COMPOUND_STRING("Twinkle Tackle"),
.description = COMPOUND_STRING(
"Toys with the target in a\n"
"charming space. Power varies."),
.effect = EFFECT_HIT,
.power = 1,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_TwinkleTackle,
},
[MOVE_CATASTROPIKA] =
{
.name = COMPOUND_STRING("Catastropika"),
.description = COMPOUND_STRING(
"Pikachu uses the max amount\n"
"of electricity and pounces."),
.effect = EFFECT_HIT,
.power = 210,
.type = TYPE_ELECTRIC,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_Catastropika,
},
[MOVE_10000000_VOLT_THUNDERBOLT] =
{
.name = COMPOUND_STRING("10,000,000 Volt Thunderbolt"),
.description = COMPOUND_STRING(
"Cap Pikachu unleashes jolt.\n"
"High critical-hit ratio."),
.effect = EFFECT_HIT,
.power = 195,
.type = TYPE_ELECTRIC,
.accuracy = 0,
.criticalHitStage = 2,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.battleAnimScript = gBattleAnimMove_10000000VoltThunderbolt,
},
[MOVE_STOKED_SPARKSURFER] =
{
.name = COMPOUND_STRING("Stoked Sparksurfer"),
.description = COMPOUND_STRING(
"Alolan Raichu attacks with\n"
"full force. Causes paralysis."),
.effect = EFFECT_HIT,
.power = 175,
.type = TYPE_ELECTRIC,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYSIS,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_StokedSparksurfer,
},
[MOVE_EXTREME_EVOBOOST] =
{
.name = COMPOUND_STRING("Extreme Evoboost"),
.description = COMPOUND_STRING(
"Eevee gets energy from\n"
"its friends. Boosts stats."),
.effect = EFFECT_EXTREME_EVOBOOST,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_USER,
.priority = 0,
.category = DAMAGE_CATEGORY_STATUS,
.battleAnimScript = gBattleAnimMove_ExtremeEvoboost,
},
[MOVE_PULVERIZING_PANCAKE] =
{
.name = COMPOUND_STRING("Pulverizing Pancake"),
.description = COMPOUND_STRING(
"Snorlax energetically moves\n"
"and attacks with full force."),
.effect = EFFECT_HIT,
.power = 210,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_PulverizingPancake,
},
[MOVE_GENESIS_SUPERNOVA] =
{
.name = COMPOUND_STRING("Genesis Supernova"),
.description = COMPOUND_STRING(
"Mew attacks with full force.\n"
"Psychically charges terrain."),
.effect = EFFECT_HIT_SET_REMOVE_TERRAIN,
.power = 185,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .moveProperty = ARG_SET_PSYCHIC_TERRAIN }, // Set Psychic Terrain. If there's a different field terrain active, overwrite it.
.battleAnimScript = gBattleAnimMove_GenesisSupernova,
},
[MOVE_SINISTER_ARROW_RAID] =
{
.name = COMPOUND_STRING("Sinister Arrow Raid"),
.description = COMPOUND_STRING(
"Decidueye shoots countless\n"
"arrows with full force."),
.effect = EFFECT_HIT,
.power = 180,
.type = TYPE_GHOST,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_SinisterArrowRaid,
},
[MOVE_MALICIOUS_MOONSAULT] =
{
.name = COMPOUND_STRING("Malicious Moonsault"),
.description = COMPOUND_STRING(
"Incineroar crashes into\n"
"the target with full force."),
.effect = EFFECT_HIT,
.power = 180,
.type = TYPE_DARK,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaliciousMoonsault,
},
[MOVE_OCEANIC_OPERETTA] =
{
.name = COMPOUND_STRING("Oceanic Operetta"),
.description = COMPOUND_STRING(
"Primarina summons a massive\n"
"amount of water at the foe."),
.effect = EFFECT_HIT,
.power = 195,
.type = TYPE_WATER,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.battleAnimScript = gBattleAnimMove_OceanicOperetta,
},
[MOVE_SPLINTERED_STORMSHARDS] =
{
.name = COMPOUND_STRING("Splintered Stormshards"),
.description = COMPOUND_STRING(
"Lycanroc attacks with full\n"
"force. Removes all terrain."),
.effect = EFFECT_HIT_SET_REMOVE_TERRAIN,
.power = 190,
.type = TYPE_ROCK,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.argument = { .moveProperty = ARG_TRY_REMOVE_TERRAIN_HIT }, // Remove the active field terrain if there is one.
.battleAnimScript = gBattleAnimMove_SplinteredStormshards,
},
[MOVE_LETS_SNUGGLE_FOREVER] =
{
.name = COMPOUND_STRING("Let's Snuggle Forever"),
.description = COMPOUND_STRING(
"Mimikyu punches the target\n"
"with full force."),
.effect = EFFECT_HIT,
.power = 190,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_LetsSnuggleForever,
},
[MOVE_CLANGOROUS_SOULBLAZE] =
{
.name = COMPOUND_STRING("Clangorous Soulblaze"),
.description = COMPOUND_STRING(
"Kommo-o attacks with full\n"
"force. Boosts all stats."),
.effect = EFFECT_HIT,
.power = 185,
.type = TYPE_DRAGON,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_BOTH,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.soundMove = TRUE,
.ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ALL_STATS_UP,
.self = TRUE,
.chance = 100,
}),
.battleAnimScript = gBattleAnimMove_ClangorousSoulblaze,
},
[MOVE_GUARDIAN_OF_ALOLA] =
{
.name = COMPOUND_STRING("Guardian of Alola"),
.description = COMPOUND_STRING(
"The Land Spirit Pokémon\n"
"greatly reduces the foe's HP."),
.effect = EFFECT_FIXED_PERCENT_DAMAGE,
.power = 1,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.argument = { .damagePercentage = 75 },
.battleAnimScript = gBattleAnimMove_GuardianOfAlola,
},
[MOVE_SEARING_SUNRAZE_SMASH] =
{
.name = COMPOUND_STRING("Searing Sunraze Smash"),
.description = COMPOUND_STRING(
"Solgaleo attacks with full\n"
"force. Ignores abilities."),
.effect = EFFECT_HIT,
.power = 200,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ignoresTargetAbility = TRUE,
.battleAnimScript = gBattleAnimMove_SearingSunrazeSmash,
},
[MOVE_MENACING_MOONRAZE_MAELSTROM] =
{
.name = COMPOUND_STRING("Menacing Moonraze Maelstrom"),
.description = COMPOUND_STRING(
"Lunala attacks with full\n"
"force. Ignores abilities."),
.effect = EFFECT_HIT,
.power = 200,
.type = TYPE_GHOST,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresTargetAbility = TRUE,
.battleAnimScript = gBattleAnimMove_MenacingMoonrazeMaelstrom,
},
[MOVE_LIGHT_THAT_BURNS_THE_SKY] =
{
.name = COMPOUND_STRING("Light That Burns the Sky"),
.description = COMPOUND_STRING(
"Uses Necrozma's highest\n"
"attack. Ignores abilities."),
.effect = EFFECT_PHOTON_GEYSER,
.power = 200,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.ignoresTargetAbility = TRUE,
.battleAnimScript = gBattleAnimMove_LightThatBurnsTheSky,
},
[MOVE_SOUL_STEALING_7_STAR_STRIKE] =
{
.name = COMPOUND_STRING("Soul-Stealing 7-Star Strike"),
.description = COMPOUND_STRING(
"Marshadow punches and\n"
"kicks with full force."),
.effect = EFFECT_HIT,
.power = 195,
.type = TYPE_GHOST,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_SoulStealing7StarStrike,
},
[MOVE_MAX_GUARD] =
{
.name = COMPOUND_STRING("Max Guard"),
.description = sProtectDescription,
.effect = EFFECT_PROTECT,
.power = 0,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_USER,
.priority = 4,
.category = DAMAGE_CATEGORY_STATUS,
.argument = { .protectMethod = PROTECT_MAX_GUARD },
.battleAnimScript = gBattleAnimMove_MaxGuard,
},
[MOVE_MAX_FLARE] =
{
.name = COMPOUND_STRING("Max Flare"),
.description = COMPOUND_STRING(
"Fire Dynamax attack.\n"
"Intensifies sun for 5 turns."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_FIRE,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxFlare,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SUN,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_FLUTTERBY] =
{
.name = COMPOUND_STRING("Max Flutterby"),
.description = COMPOUND_STRING(
"Bug Dynamax attack.\n"
"Lowers foe's Sp. Atk stat."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_BUG,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxFlutterby,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_LOWER_SP_ATK_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_LIGHTNING] =
{
.name = COMPOUND_STRING("Max Lightning"),
.description = COMPOUND_STRING(
"Electric Dynamax attack.\n"
"Turns the terrain electric."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_ELECTRIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxLightning,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_ELECTRIC_TERRAIN,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_STRIKE] =
{
.name = COMPOUND_STRING("Max Strike"),
.description = COMPOUND_STRING(
"Normal Dynamax attack.\n"
"Lowers foe's Speed stat."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxStrike,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_LOWER_SPEED_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_KNUCKLE] =
{
.name = COMPOUND_STRING("Max Knuckle"),
.description = COMPOUND_STRING(
"Fighting Dynamax attack.\n"
"Boosts ally Attack stats."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_FIGHTING,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxKnuckle,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RAISE_TEAM_ATTACK,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_PHANTASM] =
{
.name = COMPOUND_STRING("Max Phantasm"),
.description = COMPOUND_STRING(
"Ghost Dynamax attack.\n"
"Lowers foe's Defense stat."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_GHOST,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxPhantasm,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_LOWER_DEFENSE_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_HAILSTORM] =
{
.name = COMPOUND_STRING("Max Hailstorm"),
.description = COMPOUND_STRING(
"Ice Dynamax attack.\n"
"Summons hail for 5 turns."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_ICE,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxHailstorm,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_HAIL,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_OOZE] =
{
.name = COMPOUND_STRING("Max Ooze"),
.description = COMPOUND_STRING(
"Poison Dynamax attack.\n"
"Boosts ally Sp. Atk stats."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_POISON,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxOoze,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RAISE_TEAM_SP_ATK,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_GEYSER] =
{
.name = COMPOUND_STRING("Max Geyser"),
.description = COMPOUND_STRING(
"Water Dynamax attack.\n"
"Summons rain for 5 turns."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_WATER,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxGeyser,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RAIN,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_AIRSTREAM] =
{
.name = COMPOUND_STRING("Max Airstream"),
.description = COMPOUND_STRING(
"Flying Dynamax attack.\n"
"Boosts ally Speed stats."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_FLYING,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxAirstream,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RAISE_TEAM_SPEED,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_STARFALL] =
{
.name = COMPOUND_STRING("Max Starfall"),
.description = COMPOUND_STRING(
"Fairy Dynamax attack.\n"
"Turns the terrain misty."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxStarfall,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_MISTY_TERRAIN,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_WYRMWIND] =
{
.name = COMPOUND_STRING("Max Wyrmwind"),
.description = COMPOUND_STRING(
"Dragon Dynamax attack.\n"
"Lowers foe's Attack stat."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_DRAGON,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxWyrmwind,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_LOWER_ATTACK_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_MINDSTORM] =
{
.name = COMPOUND_STRING("Max Mindstorm"),
.description = COMPOUND_STRING(
"Psychic Dynamax attack.\n"
"Turns the terrain psychic."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxMindstorm,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PSYCHIC_TERRAIN,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_ROCKFALL] =
{
.name = COMPOUND_STRING("Max Rockfall"),
.description = COMPOUND_STRING(
"Rock Dynamax attack.\n"
"Summons a sandstorm."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_ROCK,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxRockfall,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SANDSTORM,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_QUAKE] =
{
.name = COMPOUND_STRING("Max Quake"),
.description = COMPOUND_STRING(
"Ground Dynamax attack.\n"
"Boosts ally Sp. Def stats."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_GROUND,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS,
.battleAnimScript = gBattleAnimMove_MaxQuake,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RAISE_TEAM_SP_DEF,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_DARKNESS] =
{
.name = COMPOUND_STRING("Max Darkness"),
.description = COMPOUND_STRING(
"Dark Dynamax attack.\n"
"Lowers foe's Sp. Def stat."),
.effect = EFFECT_MAX_MOVE,
.power = 1,
.type = TYPE_DARK,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxDarkness,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_LOWER_SP_DEF_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_OVERGROWTH] =
{
.name = COMPOUND_STRING("Max Overgrowth"),
.description = COMPOUND_STRING(
"Grass Dynamax attack.\n"
"Turns the terrain grassy."),
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxOvergrowth,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_GRASSY_TERRAIN,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_MAX_STEELSPIKE] =
{
.name = COMPOUND_STRING("Max Steelspike"),
.description = COMPOUND_STRING(
"Steel Dynamax attack.\n"
"Boosts ally Defense stats."),
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_MaxSteelspike,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RAISE_TEAM_DEFENSE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_VINE_LASH] =
{
.name = COMPOUND_STRING("G-Max Vine Lash"),
.description = COMPOUND_STRING(
"G-max Venusaur attack.\n"
"Damages for 4 turns."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxVineLash,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_VINE_LASH,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_WILDFIRE] =
{
.name = COMPOUND_STRING("G-Max Wildfire"),
.description = COMPOUND_STRING(
"G-max Charizard attack.\n"
"Damages for 4 turns."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_FIRE,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxWildfire,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_WILDFIRE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_CANNONADE] =
{
.name = COMPOUND_STRING("G-Max Cannonade"),
.description = COMPOUND_STRING(
"G-max Blastoise attack.\n"
"Damages for 4 turns."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_WATER,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxCannonade,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CANNONADE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_BEFUDDLE] =
{
.name = COMPOUND_STRING("G-Max Befuddle"),
.description = COMPOUND_STRING(
"G-max Butterfree attack.\n"
"Poison, paralysis, or sleep."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_BUG,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxBefuddle,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_EFFECT_SPORE_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_VOLT_CRASH] =
{
.name = COMPOUND_STRING("G-Max Volt Crash"),
.description = COMPOUND_STRING(
"G-max Pikachu attack.\n"
"Paralyzes opponents."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_ELECTRIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxVoltCrash,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PARALYZE_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_GOLD_RUSH] =
{
.name = COMPOUND_STRING("G-Max Gold Rush"),
.description = COMPOUND_STRING(
"G-max Meowth attack.\n"
"Confuses and earns money."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxGoldRush,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSE_PAY_DAY_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_CHI_STRIKE] =
{
.name = COMPOUND_STRING("G-Max Chi Strike"),
.description = COMPOUND_STRING(
"G-max Machamp attack.\n"
"Boosts critical-hit ratio."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_FIGHTING,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxChiStrike,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CRIT_PLUS_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_TERROR] =
{
.name = COMPOUND_STRING("G-Max Terror"),
.description = COMPOUND_STRING(
"G-max Gengar attack.\n"
"Prevents foes from escaping."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_GHOST,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxTerror,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_PREVENT_ESCAPE_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_FOAM_BURST] =
{
.name = COMPOUND_STRING("G-Max Foam Burst"),
.description = COMPOUND_STRING(
"G-max Kingler attack.\n"
"Harshly lowers foe's Speed."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_WATER,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxFoamBurst,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_LOWER_SPEED_2_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_RESONANCE] =
{
.name = COMPOUND_STRING("G-Max Resonance"),
.description = COMPOUND_STRING(
"G-max Lapras attack.\n"
"Reduces damage for 5 turns."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_ICE,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxResonance,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_AURORA_VEIL,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_CUDDLE] =
{
.name = COMPOUND_STRING("G-Max Cuddle"),
.description = COMPOUND_STRING(
"G-max Eevee attack.\n"
"Infatuates opponents."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxCuddle,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_INFATUATE_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_REPLENISH] =
{
.name = COMPOUND_STRING("G-Max Replenish"),
.description = COMPOUND_STRING(
"G-max Snorlax attack.\n"
"Restores eaten Berries."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_NORMAL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxReplenish,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_RECYCLE_BERRIES,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_MALODOR] =
{
.name = COMPOUND_STRING("G-Max Malodor"),
.description = COMPOUND_STRING(
"G-max Garbodor attack.\n"
"Poisons opponents."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_POISON,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxMalodor,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_MELTDOWN] =
{
.name = COMPOUND_STRING("G-Max Meltdown"),
.description = COMPOUND_STRING(
"G-max Melmetal attack.\n"
"Prevents repeat move use."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxMeltdown,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_TORMENT_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_DRUM_SOLO] =
{
.name = COMPOUND_STRING("G-Max Drum Solo"),
.description = COMPOUND_STRING(
"G-max Rillaboom attack.\n"
"Ignores target's abilities."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ignoresTargetAbility = TRUE,
.battleAnimScript = gBattleAnimMove_GMaxDrumSolo,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FIXED_POWER,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_FIREBALL] =
{
.name = COMPOUND_STRING("G-Max Fireball"),
.description = COMPOUND_STRING(
"G-max Cinderace attack.\n"
"Ignores target's abilities."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_FIRE,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ignoresTargetAbility = TRUE,
.battleAnimScript = gBattleAnimMove_GMaxFireball,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FIXED_POWER,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_HYDROSNIPE] =
{
.name = COMPOUND_STRING("G-Max Hydrosnipe"),
.description = COMPOUND_STRING(
"G-max Inteleon attack.\n"
"Ignores target's abilities."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_WATER,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ignoresTargetAbility = TRUE,
.battleAnimScript = gBattleAnimMove_GMaxHydrosnipe,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FIXED_POWER,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_WIND_RAGE] =
{
.name = COMPOUND_STRING("G-Max Wind Rage"),
.description = COMPOUND_STRING(
"G-max Corviknight attack.\n"
"Removes opponent screens."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_FLYING,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxWindRage,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_DEFOG,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_GRAVITAS] =
{
.name = COMPOUND_STRING("G-Max Gravitas"),
.description = COMPOUND_STRING(
"G-max Orbeetle attack.\n"
"Changes gravity for 5 turns."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_PSYCHIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxGravitas,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_GRAVITY,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_STONESURGE] =
{
.name = COMPOUND_STRING("G-Max Stonesurge"),
.description = COMPOUND_STRING(
"G-max Drednaw attack.\n"
"Scatters sharp rocks."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_WATER,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxStonesurge,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_STEALTH_ROCK,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_VOLCALITH] =
{
.name = COMPOUND_STRING("G-Max Volcalith"),
.description = COMPOUND_STRING(
"G-max Coalossal attack.\n"
"Damages for 4 turns."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_ROCK,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxVolcalith,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_VOLCALITH,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_TARTNESS] =
{
.name = COMPOUND_STRING("G-Max Tartness"),
.description = COMPOUND_STRING(
"G-max Flapple attack.\n"
"Lowers foe's evasiveness."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxTartness,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_LOWER_EVASIVENESS_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_SWEETNESS] =
{
.name = COMPOUND_STRING("G-Max Sweetness"),
.description = COMPOUND_STRING(
"G-max Appletun attack.\n"
"Heals ally status conditions."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_GRASS,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxSweetness,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_AROMATHERAPY,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_SANDBLAST] =
{
.name = COMPOUND_STRING("G-Max Sandblast"),
.description = COMPOUND_STRING(
"G-max Sandaconda attack.\n"
"Traps foes in a sandstorm."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_GROUND,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxSandblast,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SANDBLAST_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_STUN_SHOCK] =
{
.name = COMPOUND_STRING("G-Max Stun Shock"),
.description = COMPOUND_STRING(
"G-max Toxtricity attack.\n"
"Poisons or paralyzes foes."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_ELECTRIC,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxStunShock,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_POISON_PARALYZE_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_CENTIFERNO] =
{
.name = COMPOUND_STRING("G-Max Centiferno"),
.description = COMPOUND_STRING(
"G-max Toxtricity attack.\n"
"Traps foes in flames."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_FIRE,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxCentiferno,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_FIRE_SPIN_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_SMITE] =
{
.name = COMPOUND_STRING("G-Max Smite"),
.description = COMPOUND_STRING(
"G-max Hatterene attack.\n"
"Confuses opponents."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxSmite,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_CONFUSE_SIDE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_SNOOZE] =
{
.name = COMPOUND_STRING("G-Max Snooze"),
.description = COMPOUND_STRING(
"G-max Grimmsnarl attack.\n"
"Lulls foes into sleep."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_DARK,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxSnooze,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_YAWN_FOE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_FINALE] =
{
.name = COMPOUND_STRING("G-Max Finale"),
.description = COMPOUND_STRING(
"G-max Alcremie attack.\n"
"Heals ally HP."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxFinale,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_HEAL_TEAM,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_STEELSURGE] =
{
.name = COMPOUND_STRING("G-Max Steelsurge"),
.description = COMPOUND_STRING(
"G-max Copperajah attack.\n"
"Scatters sharp spikes."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxSteelsurge,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_STEELSURGE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_DEPLETION] =
{
.name = COMPOUND_STRING("G-Max Depletion"),
.description = COMPOUND_STRING(
"G-max Duraludon attack.\n"
"Reduces target's PP."), //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_DRAGON,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.battleAnimScript = gBattleAnimMove_GMaxDepletion,
.additionalEffects = ADDITIONAL_EFFECTS({
.moveEffect = MOVE_EFFECT_SPITE,
.chance = 100,
.sheerForceBoost = SHEER_FORCE_NO_BOOST,
}),
},
[MOVE_G_MAX_ONE_BLOW] =
{
.name = COMPOUND_STRING("G-Max One Blow"),
.description = sGMaxOneBlowDescription, //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_DARK,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ignoresProtect = TRUE,
.battleAnimScript = gBattleAnimMove_GMaxOneBlow,
},
[MOVE_G_MAX_RAPID_FLOW] =
{
.name = COMPOUND_STRING("G-Max Rapid Flow"),
.description = sGMaxOneBlowDescription, //ANIM TODO
.effect = EFFECT_MAX_MOVE,
.power = 10,
.type = TYPE_WATER,
.accuracy = 0,
.pp = 10,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_PHYSICAL,
.ignoresProtect = TRUE,
.battleAnimScript = gBattleAnimMove_GMaxRapidFlow,
},
};