pokefirered/src/data/moves_info.h
2025-05-30 15:05:18 +02:00

22853 lines
750 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\nused. Its "
"effect\nis in development.");
static const u8 sNullDescription[] = _("");
static const u8 sMegaDrainDescription[] = _(
"An attack that\nabsorbs "
"half the\ndamage inflicted.");
#if B_SKIP_RECHARGE != GEN_1
static const u8 sHyperBeamDescription[] = _(
"\nPowerful, but\nleaves the "
"user\nimmobile the next\nturn.");
#else
static const u8 sHyperBeamDescription[] = _(
"Leaves the user\nimmobile "
"if target\nis not KO'd.");
#endif
static const u8 sRevengeDescription[] = _(
"An attack that\nmoves last "
"and\ngains power if\nhit.");
static const u8 sPluckDescription[] = _(
"Eats the foe's\nheld Berry "
"gaining\nits effect.");
static const u8 sHealingWishDescription[] = _(
"The user faints to\nheal up "
"the\nrecipient.");
static const u8 sWringOutDescription[] = _(
"The higher the\nfoe's HP "
"the more\ndamage caused.");
static const u8 sUTurnDescription[] = _(
"Does damage then\nswitches "
"out the\nuser.");
static const u8 sStormThrowDescription[] = _(
"This attack always\nresults "
"in a\ncritical hit.");
static const u8 sCircleThrowDescription[] = _(
"Knocks foe away to\nswitch "
"it out or\nend wild battle.");
static const u8 sChipAwayDescription[] = _(
"Strikes through\nthe foe's "
"stat\nchanges.");
static const u8 sHeavySlamDescription[] = _(
"Does more damage\nif the "
"user\noutweighs the foe.");
static const u8 sPsyshockDescription[] = _(
"Attacks with a\npsychic wave "
"that\ndoes physical\ndamage.");
static const u8 sLavaPlumeDescription[] = _(
"Scarlet flames\ntorch "
"everything\naround the user.");
static const u8 sShadowForceDescription[] = _(
"Vanishes on the\nfirst turn "
"then\nstrikes the next\nturn.");
static const u8 sFalseSwipeDescription[] = _(
"An attack that\nleaves the "
"foe\nwith at least 1\nHP.");
static const u8 sDrainingKissDescription[] = _(
"An attack that\nabsorbs over "
"half\nthe damage\ninflicted.");
static const u8 sCloseCombatDescription[] = _(
"A strong attack\nbut lowers "
"the\ndefensive stats.");
static const u8 sHyperspaceHoleDescription[] = _(
"Uses a warp hole\nto attack. "
"Can't\nbe evaded.");
static const u8 sSuckerPunchDescription[] = _(
"Strikes first if\nthe foe "
"is\npreparing an\nattack.");
static const u8 sFeintDescription[] = _(
"An attack that\nhits foes "
"using\nmoves like\nProtect.");
static const u8 sProtectDescription[] = _(
"Evades attack, but\nmay fail "
"if used\nin succession.");
static const u8 sGMaxOneBlowDescription[] = _(
"G-max Urshifu\nattack. "
"Ignores\nMax 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\nwith "
"forelegs or\ntail."),
.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\nwith a "
"high\ncritical-hit\nratio."),
.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\nthe foe "
"2 to 5\ntimes."),
.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\nthe foe "
"2 to 5\ntimes."),
.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\nthrown with "
"\nincredible 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\nthe foe. "
"Money is\nrecovered 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\nmay burn "
"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\nmay "
#if B_USE_FROSTBITE == TRUE
"leave the foe\nwith frostbite."),
#else
"freeze the\nfoe."),
#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\npunch that "
"may\nparalyze 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\nwith "
"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\nlarge and "
"powerful\npincers."),
.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\nattack "
"that KOs if\nit 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\na high "
"\ncritical-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\nthat "
"sharply\nraises 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\nsharp "
"scythes,\nclaws, 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\nwith a gust "
"of\nwind whipped up by\nwings."),
.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\nwith wings "
"spread\nwide."),
.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\nfoe, switches "
"it\nout or ends wild\nbattle."),
.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\nfirst turn, "
"then\nstrikes the next\nturn."),
.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\nthe foe "
"for "BINDING_TURNS"\nturns."),
.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\na long "
"tail, vine,\netc."),
.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\nwith "
"slender,\nwhiplike 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\nwith a big "
"foot.\nMay cause\nflinching."),
.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\nattack "
"that\nstrikes the foe\ntwice."),
.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\npowerful kick "
"with\nintense 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\nkick. May "
"miss and\nhurt 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\ndelivered from "
"a\nrapid spin. May\nflinch."),
.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\naccuracy "
"by\nhurling sand in\nits 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\nthat may "
"cause\nflinching."),
.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\nsharp "
"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\n5 times "
"with sharp\nhorns, 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\nattack that "
"uses a\nhorn 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\nwith a full- "
"body\ntackle."),
#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\nthat may "
"cause\nparalysis."),
.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\nthe foe "
BINDING_TURNS"\ntimes with vines,\netc."),
.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\nattack "
"that also\nhurts 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\n3 turns "
"that\nconfuses 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\ntackle that "
"also\nhurts 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\nlower the "
"foe's\nDefense."),
.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\nwith barbs, "
"etc.,\nthat 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\njab foe "
"twice. May\npoison."),
.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\nfired to "
"strike 2\nto 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\nwith a "
"leer to\nlower 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\nfangs. "
"May cause\nflinching."),
.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\nreduce the "
"foe's\nAttack."),
.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\nout "
"or ends wild\nbattle."),
.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\nlulls the "
"foe into\na 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\nsound waves "
"that\nmay confuse the\nfoe."),
.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\nwaves that "
"always\ninflict 20 HP\ndamage."),
.effect = EFFECT_FIXED_DAMAGE_ARG,
.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,\nprevents foe "
#elif B_DISABLE_TURNS == GEN_4
"For\n4-7 turns,\nprevents foe "
#else
"For 2-5 turns,\nprevents foe "
#endif
"from using last\nused 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\nhide-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\nthat may "
"inflict a\nburn."),
.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\nattack that "
"may\ninflict 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\nthat stops "
"\nreduction 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\nattack "
"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\nhigh power "
"to\nstrike 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\nwave, then "
#if B_UPDATED_MOVE_DATA >= GEN_4
"crashes\nit down on the\nfield."),
#else
"crashes\nit down on the\nfoes."),
#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\nwith an icy "
#if B_USE_FROSTBITE == TRUE
"beam.\nMay cause\nfrostbite."),
#else
"beam\nthat may freeze\nit."),
#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\nan icy "
#if B_USE_FROSTBITE == TRUE
"storm. May\ncause frostbite."),
#else
"storm that\nmay 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\nray that "
"may\nconfuse 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\nbubbles "
"that may\nlower 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\nrainbow-colored "
"\nbeam that may\nlower 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\nwith a "
"jabbing\nbeak, 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\nattack with "
"the\nbeak acting as a\ndrill."),
.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\nslam that "
"also\nhurts 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\ninflicts more "
"\ndamage on heavier\nfoes."),
.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\nphysical hit "
"with\ndouble 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\nidentical "
"to the\nuser'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\npower, "
"then slams\nthe 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\nabsorbs "
"half the\ndamage 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\nthe foe to "
"steal\nHP 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\ngrow, "
"raising\nAttack and Sp.\nAtk."),
#else
"Forces the body to\ngrow "
"and heightens\nSp. 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\nleaves. "
"High\ncritical-hit\nratio."),
.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\none turn, "
"then\nattacks 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\npowder "
"that may\npoison 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\nthat may "
"paralyze\nthe 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\nthat may "
"cause the\nfoe 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\n3 turns "
"that\nconfuses 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\nstring "
"to reduce\nits 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\nwaves that "
"always\ninflict 40 HP\ndamage."),
.effect = EFFECT_FIXED_DAMAGE_ARG,
.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\nring of "
"fire for\n"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\nattack that "
"may\nparalyze 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\nelectrical attack "
"\nthat may paralyze\nthe 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\nelectricity "
"that\nparalyzes 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\nthat may "
"cause\nparalysis."),
.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\nto "
"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\nthat "
"hits all\nother 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\nthat "
"drops the foe\nin 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\nthe first "
"turn and\nstrikes 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\nwith an "
"\nintensifying 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\nthat may "
"cause\nconfusion."),
.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\nattack "
"that may\nlower 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\nthat "
"may induce\nsleep."),
.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\npeaceful "
"fashion\nto 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\nto sharply "
"boost\nSpeed."),
.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\nattack "
"that always\nstrikes 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\nAttack "
"every time\nit 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\nthe user out last.\n"
"Flees when used by\nwild {PKMN}.")
#else
.description = COMPOUND_STRING(
"A psychic move for\nfleeing "
"from\nbattle 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\nidentical "
"to the\nuser'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\nused by the "
"foe\nduring 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\nsharply "
"reduce the\nfoe'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\ncopies to "
"raise\nevasiveness."),
.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\nhalf the "
"user's\nmaximum 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\nbody's "
"muscles to\nraise 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\nuser's size to "
#if B_MINIMIZE_EVASION >= GEN_5
"\nsharply raise\nevasiveness."),
#else
"\nraise 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\naccuracy "
"using\nsmoke, 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\nthat "
"confuses the\nfoe."),
.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\ninto its "
"hard\nshell to raise\nDefense."),
.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\nconceal weak "
"spots\nand 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\nthat "
"sharply\nraises 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\nspecial "
"damage for\n5 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\nhaze that "
"\neliminates all\nstat 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\nphysical "
"damage\nfor 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\nraise the "
"\ncritical-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\n2 "
"turns to\nretaliate 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\nto use any "
"\nPokémon move at\nrandom."),
.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\nattack "
"with the\nsame 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\ndamage but "
"makes\nthe 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\nhurled at "
"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\ntongue to "
"injure.\nMay 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\nattack "
"that may\nalso 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\nto inflict "
"damage.\nMay 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\na bone. "
"May cause\nflinching."),
.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\neverything it "
"\nstrikes. May cause\na 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\nto climb "
"\nwaterfalls. May\nflinch."),
.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\nthe "
"foe for "BINDING_TURNS"\nturns."),
.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\nrays "
"that never\nmiss."),
.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,\nthen "
"attacks on\nthe 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\nspikes that "
"strike\n2 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\ninflict pain. "
"May\nlower 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\nsomething "
"and\nsharply raises Sp.\nDef."),
.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\naccuracy."),
.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\nhalf the "
"user's\nmaximum 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\nkick. If it "
"\nmisses, the user\nis 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\nfrightens "
"the foe\ninto 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\ndamage "
"inflicted\non 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\nin a toxic "
#else
"Envelops the foe\nin a toxic "
#endif
"gas that may\npoison."),
#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\nobjects at the "
"foe\n2 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\nsteals half "
"the\ndamage 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\nwith a scary "
"face\nthat induces\nsleep."),
.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.\nHigh critical "
"hit\nratio, and may\nflinch."),
.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\ncells to "
"become a\ncopy 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\nbubbles. "
"May lower\nthe 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\nthat may "
"confuse\nthe 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\nof spores "
"that\nalways induce\nsleep."),
.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\nblast of "
"light\nthat cuts\naccuracy."),
.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\npsychic "
"wave of\nvarying 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\nsplash... "
"Has no\neffect 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\nuser's body "
"to\nsharply raise\nDefense."),
.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\npincer. Has a "
"high\ncritical-hit\nratio."),
.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\ndamage but "
"makes\nthe 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\nsharp "
"claws, etc.,\n2 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\nboomerang "
"that\nstrikes 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\nfor 2 turns, "
"\nrestoring HP and\nstatus."),
.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\nhurled. "
"May cause\nflinching."),
.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\nfangs. "
"May cause\nflinching."),
.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\npolygon count "
"and\nraises 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\ntype "
#if B_UPDATED_CONVERSION >= GEN_6
"into first\nknown move's type."),
#else
"into a known\nmove'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\nof beams. "
#if B_USE_FROSTBITE == TRUE
"May\nburn/para/frostbite."),
#else
"May\nburn/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\nfangs "
"and cuts\nhalf the foe's HP."),
.effect = EFFECT_SUPER_FANG,
.power = 1,
.type = TYPE_NORMAL,
.accuracy = 90,
.pp = 10,
.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_TOUGH,
.contestComboStarterId = 0,
.contestComboMoves = {COMBO_STARTER_SCARY_FACE},
.battleAnimScript = gBattleAnimMove_SuperFang,
.validApprenticeMove = TRUE,
},
[MOVE_SLASH] =
{
.name = COMPOUND_STRING("Slash"),
.description = COMPOUND_STRING(
"Slashes with\nclaws, etc. Has "
"a\nhigh critical-hit\nratio."),
.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\nusing 1/4 "
"of the\nuser'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\nPP are gone. "
"Also\nhurts the user a\nlittle."),
#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\nlast move "
"\npermanently."),
.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\ntimes in a "
"row\nwith rising\nintensity."),
.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,\nit may "
"steal the\nfoe'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\nto stop it "
"from\nfleeing or\nswitching."),
.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\naction to "
"ensure\nthe next move's\nhit."),
.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\ndamage on a "
"\nsleeping foe every\nturn."),
.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\nattack that "
"may\ninflict 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\ncan only "
"be used\nasleep. May\nflinch."),
.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\nfunctions "
"\ndifferently for\nGHOSTS."),
.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\ndamage when "
"the\nuser'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\nresistant "
"to the\nlast attack's\ntype."),
.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\nvacuumed blast. "
"\nHigh critical-hit\nratio."),
.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\nthe foes, "
#else
"Spores cling to\nthe foe, "
#endif
"sharply reducing\nSpeed."),
.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\ndamage when "
"the\nuser'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\nthe PP "
#if B_PP_REDUCED_BY_SPITE >= GEN_4
"of the\nfoe's last move by\n4."),
#else
"of foe's\nlast 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\nwith a snowy "
#if B_USE_FROSTBITE == TRUE
"gust.\nMay cause\nfrostbite."),
#else
"gust.\nMay cause\nfreezing."),
#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\nat wicked "
"speed to\nstrike 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\nscary face "
"to\nsharply reduce\nSpeed."),
.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\nclose, then "
"\nstrikes without\nfail."),
.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\nwith a cute "
"look.\nMay cause\nconfusion."),
.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\nwhile "
"sacrificing\nhalf 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\nto inflict "
"damage.\nMay 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\nfoe's face "
"to\nreduce its\naccuracy."),
.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\nink to "
"damage and\ncut 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\nhurt a "
"foe\nswitching 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\nto cause "
"\nparalysis, but\ninaccurate."),
.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\nefforts "
"to\nheighten\nevasiveness."),
.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\nfaints, the foe "
"is\nalso made to\nfaint."),
.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\nhearing this "
"song\nfaints 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\nthat "
"lowers the\nfoe'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\nwith a bone "
"in\nhand 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\nfoe to "
"ensure the\nnext 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\n3 turns "
"that\nconfuses 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\nthat "
"rages for\nseveral 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\nsteals half "
"the\ndamage 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\nfor "
"1 turn,\nleaving at least\n1HP."),
.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\nsharply "
"reduces\nits 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\n5 turns "
"with\nrising 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,\nbut also "
"sharply\nraises 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\nhalf the "
"user's\nmaximum 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\ntackle that "
"may\nparalyze 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\nintensifies "
"on\neach successive\nhit."),
#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\nwith hard "
"wings\nspread 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\na mean "
"look that\nprevents 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\ngender "
"less likely\nto 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\nmove "
"randomly\nwhile 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\nto heal "
"all status\nabnormalities."),
.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\nincreases "
"in power\nwith 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\nof a "
"bomb. May\nrestore 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\nstronger "
"if the\nTrainer is\ndisliked."),
.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\nfrom status "
"\nproblems for 5\nturns."),
.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\nfoe's HP, "
"then\nshares them\nequally."),
.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\nattack that "
"may\ninflict 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\nattack "
"of random\nintensity."),
.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\nto cause "
"\nconfusion, but\ninaccurate."),
.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\nattack "
"using\nout-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\nwith a blast "
"of\nbreath. May\nparalyze."),
.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\nuser while "
"keeping\neffects 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\nrepeat its "
"last\nmove 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\ndamage if used "
"on\na foe switching\nout."),
.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\nremoves "
#if B_SPEED_BUFFING_RAPID_SPIN >= GEN_8
"some\neffects and ups\nspeed."),
#else
"certain\neffects."),
#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\nto harshly "
"reduce\nevasiveness."),
#else
"Allures the foes\nto reduce "
"\nevasiveness."),
#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\nrock-hard "
"tail.\nMay 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\nmay "
"raise the\nuser'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\nmove last, "
"but it\nnever 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\namount "
"varies with\nthe 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\namount "
"varies with\nthe 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\namount "
"varies with\nthe 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 "
"\nwith the user."),
#else
"The type and\neffectiveness "
"vary\nwith 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\nattack. "
"High\ncritical-hit\nratio."),
.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\ntwister "
"to tear at\nfoes. 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\nof Water- "
"type\nmoves 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\nof Fire- "
"type\nmoves 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\nsharp fangs. "
#if B_UPDATED_MOVE_DATA >= GEN_4
"May\nlower Defense."),
#else
"May\nlower 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\nspecial "
"attack at\ndouble 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\nchanges "
"and gives\nto 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\nand "
"powerful\nattack."),
.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\nraise "
"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\nthat may "
"lower the\nfoe'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\npower to "
"strike 2\nturns 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\nattack "
"that may\nlower 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\nthe foe in "
"a\nwhirlpool for\n"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\nPokémon to "
"join\nin 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\nflinches. Only "
"\nworks on user's\n1st 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\nfor 2 to 5 "
#else
"Causes an uproar\nfor 3 "
#endif
"turns and prevents\nsleep."),
.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\nfor up to "
"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\nstockpiled power "
"\n(the more the\nbetter)."),
.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\npower "
"and restores\nHP."),
.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\nbreath on the "
"\nfoes. May inflict\na 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\nsnowstorm that "
"\nlasts for five\nturns."),
.effect = EFFECT_SNOWSCAPE,
#else
.description = COMPOUND_STRING(
"Summons a\nhailstorm that "
"\nstrikes 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\nand stops "
"\nsuccessive use of\na 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,\nbut "
"raises its Sp.\nAtk."),
.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\nthe foe "
"with\nintense 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\nand harshly "
"lowers\nfoes Atk and\nSp.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\nburned, "
"paralyzed,\nor 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,\nmoves last. "
"The\nuser flinches if\nhit."),
.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\nparalyzed "
"foes,\nbut also heals\nthem."),
.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\nmake "
"foes attack\nonly 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\nvaries "
"depending\non 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\nboost the "
"Electric\nmove 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\ninto only "
"using\nattack 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\nof ally "
"\nrecipient'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\ninto trading "
"held\nitems."),
.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\nand "
"copies its\nAbility."),
.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\nrestores HP. "
"It\ntakes time to\nwork."),
.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\nwith one "
"of the\npartner'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\nrestore HP. "
"The\nuser can't switch\nout."),
.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\nsharply, "
"but\nlowers 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\neffects "
"back to\nthe 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\nitem for "
"one more\nuse."),
.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\nsuch as "
"REFLECT\nand 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\nyawning, "
"then\nsleeping next\nturn."),
.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\nfoe's held "
"item to\nprevent 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\nequal "
"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\nuser's HP, "
"the\nmore damage\ncaused."),
.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\nspecial "
"abilities\nwith 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\nusing "
"moves known\nby 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,\nparalysis, "
"or a\nburn."),
.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\nfaints, deletes "
"\nall PP of foe's\nlast 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\nof the "
"move the\ntarget 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\neffects "
"that vary\nby 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\nthe first "
"turn and\nstrikes 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\npunches that "
"\nstrike the foe 2\nto 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\nPokémon's type "
"\ndepending on the\nlocation."),
.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\ndrastically "
#else
"Flashes a light\nthat sharply "
#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\nburst of "
"light.\nMay 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\nflurry of "
"down.\nMay 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\nwith down "
"to\nsharply reduce\nAttack."),
.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\nPokémon on "
"the\nscene."),
.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\ncritical- "
"hit\nratio. May cause a\nburn."),
.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\nmud to "
"weaken all\nElectric 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\nthat gains "
"power\non successive\nhits."),
.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\nthorny arms. "
"May\ncause 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\nrestores "
"half the\nmaximum 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\nuses "
"sound waves\nto 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\nattack. "
"May badly\npoison 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\nwith sharp "
"claws.\nMay 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\nleaves the "
"user\nimmobile the next\nturn."),
.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\nleaves the "
"user\nimmobile the next\nturn."),
.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\nmeteor-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\nshock "
"the foe into\nflinching."),
.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\nand power "
"change\nwith 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\nproblems "
"with a\nsoothing 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\nsharply "
"lower the\nfoe'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\nrazorlike wind. "
"\nHigh critical-hit\nratio."),
.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\nfull-power attack,\n"
"but sharply lowers\nSp. 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\nand "
"Ghost type's\nimmunities."),
.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\nmoving "
"with rocks\nand 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\nthat may "
"raise\nabilities."),
.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\nscreech "
"that\nsharply lowers Sp.\nDef."),
.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\nsleep "
"with a\npleasant 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\nlaugh to "
"lower\nAttack and\nDefense."),
.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\nSp. Def "
"with a\nmystic 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\ndamage if the "
"\nuser'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\nattack that "
"may\nconfuse 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\npunch that "
"is\nthrown from\nshadows."),
.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\npeculiar "
"power.\nMay cause\nflinching."),
.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\nas if "
"leaping into\nthe 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\nthe foe in "
"\nquicksand for\n"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\nthat "
"causes\nfainting if it\nhits."),
.effect = EFFECT_OHKO,
.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\nwater. "
"May lower\naccuracy."),
.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\nseeds in a row "
"to\nstrike 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\nspeedy and "
"\nunavoidable 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\nfiring "
"2 to 5\nicicles 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\nsurface "
"to sharply\nraise 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\nway and "
"prevents\nescape."),
.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\nspirit "
"and boosts\nAttack."),
.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\nwith sharp "
"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\nleaves the "
"user\nimmobile the next\nturn."),
.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\nto boost "
"both\nAttack and\nDefense."),
.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\ndown the "
"next\nturn. May\nparalyze."),
.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\nfoe and "
"reduces\nSpeed."),
.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\ncritical-hit "
"\nratio. May also\npoison."),
.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\nobtain an "
"item\nheld 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\nlife-risking\ntackle that "
"hurts\nthe user. May\nparalyze."),
#else
.description = COMPOUND_STRING(
"A life-risking\ntackle that "
"\nslightly hurts the\nuser."),
#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\nstrange leaf "
"that\ncannot 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\nsoaked to "
"weaken\nall 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\nSp. Def "
"by\nfocusing 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\nsharp leaf. "
"High\ncritical-hit\nratio."),
.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\nthat ups "
"Attack\nand 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\nthe foe "
"2 to 5\ntimes 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\nunavoidable "
"\nelectric 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\nultrasonic "
"waves.\nMay confuse the\nfoe."),
.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\nlight to "
"attack 2\nturns 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\nfull-power attack,\n"
"but sharply lowers\nSp. 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\nuser's HP by "
"half\nof 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\nintensified "
"\nnegating\nlevitation."),
.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\nand "
"Dark type's\nimmunities."),
.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\nsleeping "
"foes, but\nalso 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\nattack "
"that also\nlowers 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\nthat does "
"more\ndamage to faster\nfoes."),
.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\nto foes "
"with half\nHP 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\nvaries "
"with the\nheld 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,\ndoubling "
#if B_TAILWIND_TURNS >= GEN_5
"ally\nSpeed for 4 turns."),
#else
"ally\nSpeed 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\nraises "
"one of its\nstats."),
.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\nwith "
"greater\npower."),
.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\ngains power "
"if the\nuser 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\ngains power "
"if the\nfoe 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\nfrom "
"using any\nitems."),
.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\nvaries "
"with the\nheld 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\nproblems "
"to the\nfoe."),
.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\nmove has "
"the more\ndamage 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\nfrom "
"recovering HP\nfor 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\nAttack "
"and Defense\nstats."),
.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\nsuppresses "
"the\nfoe'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\nfrom "
"landing\ncritical 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\nattack "
"with\ngreater 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\nthe last "
"move used\nby 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\nAttack "
"and Sp. Atk\nwith 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\nDefense "
"and Sp.\nDef 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\nthe more "
"the foe\nhas 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\nif every "
"other\nmove has been\nused."),
.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\nthe foe "
"giving it\nInsomnia."),
.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\npoison a "
"foe\nswitching 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\nchanges "
"with the\nfoe."),
.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\nwater "
"that\nrestores 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\nwith "
"\nelectromagnetism."),
.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\nburn the "
"foe. Also\nhurts 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\nattack that "
"may\nparalyze 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\naura blast "
"that\ncannot 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\nto "
"sharply raise\nSpeed."),
.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\nthat "
"may poison\nthe 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\nhorrible "
"aura. May\ncause 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\npossible. "
"High\ncritical-hit\nratio."),
.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\nits tail "
"like a\nwave 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\nseeds "
"is fired at\nthe 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\nblade of "
"air. May\ncause 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\nwith crossed "
"\nscythes, claws,\netc."),
.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\nwave that "
"may\nlower 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\nwave to "
"damage the\nfoe."),
.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\nwith menace. "
"May\ncause 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\nof light "
"that\nsparkle like\ndiamonds."),
.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\nto send "
"a wave\nthat strikes\nfirst."),
.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\npower. "
"May lower\nSp. 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\nnature to "
"attack.\nMay 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\ncharge that "
"also\nhurts 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\nerupt with "
"power.\nMay 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\nthe foe "
"faster\nthan the eye can\nsee."),
.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\nthoughts to "
"\nsharply boost Sp.\nAtk."),
.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\na bul- "
"let. It\nalways 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\nice that "
"always\nstrikes 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\nshadow claw. "
"High\ncritical-hit\nratio."),
.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\nflinching or "
"leave\nthe 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\nflinching or "
#if B_USE_FROSTBITE == TRUE
"leave\nthe foe with\nfrostbite."),
#else
"leave\nthe 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\nflinching or "
"leave\nthe foe with a\nburn."),
.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\nshadow "
"to strike\nfirst."),
.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\nmud to "
"damage and\ncut 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\nblades. "
"High\ncritical-hit\nratio."),
.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\nhead- "
"butt. May\ncause 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\nenergy to "
"damage\nand 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\nof light "
"that may\nlower 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\nthat may "
"confuse\nthe 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\nand "
"lowers\nevasion."),
.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\nget to move "
"first\nfor 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\nthe foe. "
"Harshly\nlowers the Sp.\nAtk."),
.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\n{PKMN} with "
"\nelectricity. May\nparalyze."),
.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\nof leaves. "
"Harshly\nlowers the Sp.\nAtk."),
.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\nthe foe "
"with vines\nor 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\npoison a "
"foe and\ndo critical\ndamage."),
.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\ngarbage at "
"the\nfoe. May also\npoison."),
.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\na hard "
"head. May\ncause 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\nthat "
"strikes\nwithout 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\nstones. "
"High\ncritical-hit\nratio."),
.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\ngender "
"sharply\nreduce its Sp.\nAtk."),
.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\nstones that "
"hurt a\nfoe 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\nthat does "
"more\ndamage to heavier\nfoes."),
.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\nsound wave "
"that\ncauses 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\nwith the "
"kind of\nPlate 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\nelectricity. "
"May\nraise 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\ninto a foe. "
"The\nuser gets hurt\ntoo."),
.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\ndashing "
"at the foe\nat 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\nthe foe. "
"High\ncritical-hit\nratio."),
.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\nSp. Def "
"with a\nliving 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\nunderlings show "
"up\nto heal half its\nmax 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\nheadbutt that "
"\nseriously hurts\nthe 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\na tail "
"etc.\nStrikes 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\nleaves the "
"user\nimmobile the next\nturn."),
.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\nspace. "
"High\ncritical-hit\nratio."),
.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\nvortex "
"of fire for\n"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\ninto total "
"\ndarkness, inducing\nSleep."),
.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\nwave that "
"sharply\nreduces 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\nthat may "
"raise all\nstats."),
.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\nto raise "
"Attack\nand 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\nwide-ranging\nattacks "
"for one\nturn."),
.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\nto Defense "
"and Sp.\nDef 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\nto Attack "
"and Sp.\nAtk 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.\nDef stats "
"are\nswapped for 5\nturns."),
.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\nif the "
"foe is\npoisoned."),
.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\nweight to "
"sharply\nboost 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\nmake "
"foes attack\nonly 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\nfloat. It is "
"\neasier to hit for\n3 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\ntheir "
"effects for\n5 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\nknock the "
"foe down\nto 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\nthat does "
"damage\nto 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\nwith a wave "
"of\nsludge. May also\npoison."),
.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\nSp. Atk "
"Sp. Def\nand 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\nthat only "
"damages\nsame-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\ndoes more "
"damage\nto 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\nthe foe, "
"changing\nit 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\nof "
"flames. Raises\nSpeed."),
.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\nAttack, "
"Defense\nand 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\nlegs "
"lowering its\nSpeed."),
.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\nhide-melting acid.\n"
"Sharply reduces\nSp. 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\nfoe's Attack "
"the\nmore damage\ncaused."),
.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\nchanges the "
"foe's\nAbility 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\nmimic the "
"user,\ngaining its\nAbility."),
.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\ntarget, letting "
"it\nmove 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\ninflicts damage. "
"\nOthers can join in\ntoo."),
.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\nevery turn "
"it is\nused."),
.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\nhaze that "
"\neliminates all\nstat 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\nuser's stats "
"the\nmore damage\ncaused."),
.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\nattacks "
"for one\nturn."),
.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\nplaces "
"with its\npartner."),
.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\nwater at the "
"foe.\nMay inflict a\nburn."),
.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\nAtk/Sp.Atk/ "
"Speed,\nbut drops\nDef/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\nhalf the "
"target's\nmaximum 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\nif the "
"foe has a\nstatus 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\nthe sky "
"then drops\nit 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\nto raise "
"Attack\nand 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\nand Gems "
"\npreventing their\nuse."),
.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\nfoe, making "
"it\nmove 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\nif the "
"user has no\nitem."),
.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\nthe foe's "
"type,\ncopying 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\ndoes more "
"damage\nif an ally\nfainted."),
.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\ndamage "
"the foe\nequal 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\nheld "
"item to the\nfoe."),
.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\nto inflict "
"a burn,\nbut 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\ncolumn of "
"water.\nMay make a\nrainbow."),
.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\ncolumn of "
"fire.\nMay burn the\ngrass."),
.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\ncolumn of "
"grass.\nMay create a\nswamp."),
.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\nuser attacks "
"the\nfoes. Lowers Sp.\nAtk."),
.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\nground. "
"Hits all\nand 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\nroused. "
"Ups Attack\nand 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\nwith an "
"electric\nnet. 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\ntackle that "
"also\nhurts 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\nlike a drill. "
"High\ncritical-hit\nratio."),
.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\nbrutal hits "
"that\nstrike 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\nafter a cute "
"act.\nMay cause\nflinching."),
.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\nwith sharp "
"shells.\nMay 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\nwith leaves "
"to\ndamage and cut\naccuracy."),
.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\nwith its "
"body. May\ncause 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\ncotton. "
"\nDrastically raises\nDefense."),
.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\npitch-black shock "
"\nwave. May lower\naccuracy."),
.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\nwith its "
"tail 2 to\n5 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\nfierce "
"wind. May\ncause 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\nguard hair. "
"It\nhurts the user a\nlittle."),
.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\ngears "
"that strike\ntwice."),
.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\nwith the "
"kind of\nDrive 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\nancient "
"song. May\ninduce 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\nhorn that "
"does\nphysical 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\nair at the "
"foes.\nIt lowers their\nSpeed."),
.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\ngreat amount "
"of\nlightning. May\nparalyze."),
.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\na blue "
"flame. May\ninflict 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\nflames. "
"May raise\nSp. 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\nmove that "
"may\nparalyze 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\nmove that "
"may\ninflict 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\nthe foe "
"lowering\nits 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\nicicles on the "
"\nfoe. May cause\nflinching."),
.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\nlowers "
"Defense,\nSp. 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\nfireball. Works "
"\nwell with a\nthunderbolt."),
.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\nthunderbolt. "
"Works\nwell with a\nfireball."),
.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\nFighting "
"and\nFlying-type\ndamage."),
.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\nmoves. "
"Only works\non 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\nbelch. "
"Must eat a\nBerry 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\nSp. Atk "
"of\nGrass-type\nPoké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\nnet that "
"slows\nfoes 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\nfoe "
"the Attack\nstat 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\ntrick-or-treating,\n"
"adding Ghost type\nto 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\nfoe, to cut "
"Attack\nand 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\nNormal-type "
"moves\nwith charged\natoms."),
.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\nPokémon "
"and heals\nup 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\nthe foe, "
"adding\nthe 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\nstorm "
"of petals to\nattack 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\nWater- "
#if B_USE_FROSTBITE == TRUE
"types. May\ncause frostbite."),
#else
"types. May\ncause 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\ncharming cry "
"that\ncannot 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\nAttack and "
"Sp.\nAtk, then switches\nout."),
.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\nchanges that "
"\naffect 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\nmoves for "
"one\nturn."),
.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\nof "
"Grass-type\nPoké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\nto grass "
"for 5\nturns. Restores\nHP."),
.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\nwith mist "
"for 5\nturns. Blocks\nstatus."),
.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\nfoe, making "
"its\nnext move\nElectric-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\nthe foe. "
"May lower\nAttack."),
.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\nwind to "
"strike the\nfoe."),
.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\npower of "
"the moon.\nMay 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\nwith a "
"destructive\nsound 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\nbattlefield "
"\npreventing escape\nnext 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\nsharply "
"reduces\nAttack 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,\nlowering "
"its\nAttack without\nfail."),
.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\nwith the "
"foe,\nlowering 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\nof "
"diamonds. May\nup 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\nin heated "
"steam.\nMay inflict a\nburn."),
.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\nstars that "
"are\nsure to strike\nfirst."),
.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\nspecial, hot "
"fire.\nLowers 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\ndamages "
"the foe if\nstruck."),
.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\nof a "
"partner\nPoké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\na pulse "
"that\nsharply cuts Sp.\nAtk."),
.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,\nSp. Atk "
"and Speed\nof 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\nit uses "
"a\nFire-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,\nSp. Def and "
"Speed\non 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\ndefenses of "
"those\nwith Plus or\nMinus."),
.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\nof "
"Prize Money\nreceived."),
.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\nground for "
"5\nturns. Prevents\nsleep."),
.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\nemitting "
"a bright\nflash."),
.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\non your "
"special\nday."),
.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\nhold hands "
"making\nthem 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\nAttack "
"before it\ncan 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\nagainst "
"the foe,\nparalyzing 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\ninfested and "
"\nattacked for\n"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\nraises "
"the user's\nAttack."),
.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\nfoes, then "
"knocks\nthem to the\nground."),
.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\nwave can "
"no longer\nescape."),
.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\nof the "
"land to\nattack 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\nof light "
"that also\nhurts 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\nblue light "
"blast\nboth 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\nstone "
"attack both\nfoes."),
.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\nuser's HP. "
"More HP\nin 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\nfirst. "
"Only works\nfirst 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\npoisons "
"foes on\ncontact."),
.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,\nfoes can "
"no longer\nescape."),
.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\nstrike "
"It ignores\nstat 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\nbubbles. Cures "
"\nburns 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\nstrike. "
"Lowers the\nuser'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\nHP. "
"Heals more on\ngrass."),
.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\nthe foe with "
"its\nentire 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\nAttack to "
"heal HP,\nthen 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\nturn, then "
"chops\nwith a blade of\nlight."),
.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\nflurry of "
"small\nleaves."),
.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\nattack the "
"\nspotlighted\nPoké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\nthread that "
"\npoisons and drops\nSpeed."),
.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\nnext move "
"will be\na 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\nof "
"those with Plus\nor 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\nto disable "
"sound\nmoves 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,\nbut "
"restores\nally'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\nwith a "
"chain. The\nfoe 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\nweird for "
"5 turns.\nBlocks 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\nto lower "
"its\nAttack 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\nfire "
"lowering its\nDefense."),
.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\nmore "
"stat boosts\nthe 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\nfully "
"removing the\nFire 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\nwith "
"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\naccurate "
"horn that\nnever 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\nstatus "
"to restore\nHP."),
.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\nmystical power. "
"\nMatches user's\nfirst 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\nthat "
"nullifies the\nfoe'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\nfrom the "
"tropics.\nLowers 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\nto use "
"its last\nmove 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\nattack last. "
"Burns\nfoe 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\nwith "
"its scales.\nDrops 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\nbody "
"like a hammer\nto 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\naround "
"to hurt\neveryone 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(
"\nWeakens all\nattacks, but "
"only\nusable with snow."),
#elif B_PREFERRED_ICE_WEATHER == B_ICE_WEATHER_BOTH
.description = COMPOUND_STRING(
"\nWeakens all\nattacks if "
"used in\nhail or snow."),
#else
.description = COMPOUND_STRING(
"Weakens all\nattacks, but "
"only\nusable 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\nthat "
"damages on\ncontact."),
.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\nharshly "
"lowers Sp.\nAttack."),
.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\npsychic fangs. "
"\nDestroys any\nbarriers."),
.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\nangrily. "
"Stronger\nafter 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\nhaunted "
"bone.\nMight drop\nDefense."),
.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\nhigh-speed "
"rock\nthat always goes\nfirst."),
.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\nwater. "
"Can lower\nDefense."),
.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\nthat "
"forces\nrecharge next\nturn."),
.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\ntarget's stat "
"\nboosts, then\nattacks."),
.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\nstrike that "
"\nignores 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\nbeam that "
"ignores\nabilities."),
.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,\ndropping "
"Attack\nand 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\nimpact that "
"can\ncause 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\nHP with "
"the power\nof nature."),
.effect = EFFECT_SUPER_FANG,
.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\nchanges "
"with\nMemories."),
.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\nuser's head "
"to\ndamage everything\naround."),
.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\nelectrical fists. "
"\nNormal moves turn\nElectric."),
.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\nattack stat "
"\ndetermines its\ncategory."),
.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\nalways go "
"first\nand land a\ncritical 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\nwave that "
"may\nparalyze 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\ndives at "
"angle.\nMay cause\nflinching."),
.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\nincreases its "
"\npower. It never\nmisses."),
.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\nabsorbs "
#if B_UPDATED_MOVE_DATA >= GEN_8
"all the\ndamage inflicted."),
#else
"half the\ndamage 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\nelectricity "
"that\nalways 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\nfire charges. "
"\nLeaves the foe\nwith 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\nthat sets "
"wall,\nlowering Sp. Atk\ndamage."),
.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,\nattacks. Sets "
"\nwall, lowering\nAttack 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\nscatters seeds "
"\nthat drain HP\nevery 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\nhaze hits. "
"\nEliminates all\nstat 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\nwhirlwind of "
"\nscent. Heals\nparty'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\nincreases its "
"\npower. It never\nmisses."),
.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\nhits with "
"its\narms. May cause\nflinch."),
.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\nenergy. "
"2x against\nDynamaxed 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\neffects "
"that draw\nin 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\nand "
"the target\nfrom 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\nuser's Berry, "
"then\nsharply raises\nDef."),
.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\nuser's "
"stats but\nprevents 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\nSpeed and "
"makes it\nweak 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\nchanges the "
"target\ninto a Psychic\ntype."),
.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\ntwice. Two "
"targets\nare 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\nteatime "
"and eat\ntheir 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\nlower Def "
"and Sp.\nDef 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\nthe user "
"moves\nbefore 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\nthe user "
"moves\nbefore 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\neffects on "
"either\nside 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\nof its "
"HP to raise\nall 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\nthe "
"higher the\nuser'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\nraises "
"the\ntarget's Atk and\nSp.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\nattack. "
"The foe's\nSpeed 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\nin a snap "
"trap for\nfour to five\nturns."),
.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\nball at the "
"\ntarget. It may\ncause 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\nsword. Deals 2x "
"\ndamage to\nDynamaxed 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\nshield. Deals 2x "
"\ndamage to\nDynamaxed 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\nattack. The "
"Type\nis based on its\nform."),
.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\nattack. "
"Lowers the\nAtk 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\ntarget "
"with a\npointed 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\nits guitar, "
"\ncausing strong\nvibrations."),
.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\napple acid "
"to\nlower the foe's\nSp. 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\nfrom above. "
"Lowers\nthe 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\nspirit-breaking "
"\nforce. Lowers Sp.\nAtk."),
.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\nsteam to "
"\npotentially\nconfuse 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\nrestore "
"the HP of\nitself 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,\nharshly "
"lowering\nDef 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\nfoe "
"with hair. It\nnever 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\nthick leek. "
"The\nuser must then\nrest."),
.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'\nstrongest move. "
"\nThe user rests\nnext 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\nsteel from "
"its\nbody. It hurts the\nuser."),
.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\ndamages "
"all foes\non Psychic\nTerrain."),
.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.\nFails if "
"ground\nisn'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\n5 times. "
"Ups\nSpeed, lowers\ndefense."),
.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\nraises "
"Sp. Attack\nbefore 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\nphysical and "
"\nspecial damage.\nMay 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\nfaint. "
"Powers up\non Misty Terrain."),
.effect = EFFECT_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,\nhits. Goes "
"first\non 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\ndoubles "
"when on\nElectric 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\nchanges "
"depending\non 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\nbehind foe to "
"\nattack. Lowers\nfoe'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\nstats upped "
"during\nthe turn get\nburned."),
.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\nduring this "
"turn,\npower 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\nto attack. "
"Fails\nif foe has no\nitem."),
.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\nmelts items "
"held\nby surrounding\nPoké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\nallies to "
"up their\nAttack and\nDefense."),
.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\nback to "
"switch\nwith a party\nPoké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\nthat gets "
"more\npowerful with each\nhit."),
.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\ntarget with "
"wings\nand hits twice in\na 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\nsand at "
"the\ntarget. May leave\na 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\nstatus of "
"itself\nand allies in\nbattle."),
.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\nstyle, "
"strikes\nwith a critical\nhit."),
.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\nWater style, "
"\nstrikes with 3\ncritical 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\ncage of "
"\nelectricity for\n"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\nuser's HP "
"the more\ndamage 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\npower from "
#if B_USE_FROSTBITE == TRUE
"the\neyes. May\nfrostbite."),
#else
"the\neyes. May freeze\nthe 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\nby your "
"wrath. May\ncause 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\nlightning-like\nkick "
"to hit.\nLowers foe's\nDefense."),
.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\nblizzard-cloaked "
"\nicicle lance at\nfoes."),
.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\namount "
"of small\nghosts 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\npsychic power. "
"\nFoe's last move\nhas 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\nchance. May "
"\nparalyze, poison\nor 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\npsychic "
"energy.\nMay 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\nAttack "
"and Defense\nstats."),
.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\nratio. Sets "
"\nSplinters that\nhurt 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\nfierce winds. "
"\nVaries with the\nuser'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\nstrikes, "
"raising\nthe user's Sp.\nAtk."),
.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\n3 turns "
"that\nconfuses 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\nwater. "
"It also\nhurts 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\nblast of "
"amassed\nchlorophyll."),
.effect = EFFECT_MAX_HP_50_RECOIL,
.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\nice damage "
"the\nfoe. It may\nflinch."),
.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\nAttack, "
"Defense\nand 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\nfull-body tackle. "
"\nLowers the users's\ndefenses."),
.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\nimpact. Powers "
"up\nagainst poisoned\nfoes."),
.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\nratio. "
"Ups the\nuser'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\nresentment. "
"Lowers\nthe 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\ntheir skin, "
"\nsharply raising\nits 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\nratio. "
"May lower\nDefense 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\nif it has "
"an\nailment. May leave\na 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\nratio. Sets "
"\nSplinters that\nhurt 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,\ncold winds. "
"May\nlower the foe's\nSpeed."),
.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\ntempest. "
"May\ninflict 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\nhot sand. "
"May\ninflict 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\ncures "
"itself and\nits 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\nspirits to "
"heal\nand strengthen\nitself."),
.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\nTerastallized, "
"it\nhits with its Tera\ntype."),
.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,\nlowering "
"Speed on\ncontact."),
.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\nthe kicker. "
"May\ncause 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\nmore damage "
"for\neach defeated\nally."),
.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\nlight "
"harshly\nlowers 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\nstats "
"depending on\nTatsugiri."),
.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\nat blinding "
"speed\nto 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\ntarget's Attack, "
"\nharshly lowers its\nDefense."),
.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\nits legs. "
"Harshly\nlowers user's\nSpeed."),
.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\nhit one "
"to ten\ntimes 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\nhit a foe "
"and\ndestroy the\nterrain."),
.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\nturn can't "
"miss\nand do double\ndamage."),
.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\nparty {PKMN} "
"and\nrestores half of\nits 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\nturn. Double "
"\ndamage to Steel\nand 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\nsplashes "
"of water\n3 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\nand Leech "
"Seed.\nPoisons adjacent\nfoes."),
.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\nally's "
"Ability\ninto 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\noffenses and "
"Speed\nby using its own\nHP."),
.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\nfoe after "
"\nkowtowing. It\nnever 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.\nAlways gets "
"a\ncritical hit,\nnever 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\ntarget. "
"Boosts the\nuser'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,\nfluid dance "
"steps.\nUps the user's\nSpeed."),
.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\nbarriers. "
"User's\nform determines\ntype."),
.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\nSp. Atk. "
"Money is\nrecovered 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\ndisaster "
"and cuts\nhalf the foe's HP."),
.effect = EFFECT_SUPER_FANG,
.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\nexplosion that's "
"\nstronger if super\neffective."),
.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\nelectricity. It's "
"\nstronger if super\neffective."),
.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\nSubstitute for "
"\nitself before\nswitching 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\njoke summons\nhailstorm. "
"The\nuser also switches\nout."),
#else
.description = COMPOUND_STRING(
"Bad joke summons\nsnowstorm. "
"The\nuser also switches\nout."),
#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\nhazards and "
"raises\nits Attack and\nSpeed."),
.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\nhailstorm that "
"\nstrikes every turn."),
.effect = EFFECT_HAIL,
#else
.description = COMPOUND_STRING(
"Summons a\nsnowstorm that "
"\nlasts for five\nturns."),
.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\non the foe, "
"\nlowering 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\nsuddenly, "
"raising\nits 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\nice-cold water "
"\nlowers the\ntarget'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\npart "
"bypasses a\nfoe'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\nthat hit "
"the\ntarget twice in a\nrow."),
.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\nhas been "
"hit, the\nstronger 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\nbut lowers "
"the\ndefensive 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\nabsorbs "
"half the\ndamage 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\nelectricity, "
"\nlosing the\nElectric 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\nhammer. Can't "
"be\nused twice in a\nrow."),
.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\nstrongly against "
"\nwho last hurt the\nuser."),
.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\ncut with a "
"high\ncritical-hit\nratio."),
.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\nincreases "
"when on\nElectric 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\nincreases "
"under\nharsh 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\nblood moon. "
"Can't\nbe used twice in a\nrow."),
.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\ndamage "
"inflicted.\nMay 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\nspeed "
"each turn\nfor 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\nheld mask. "
"High\ncritical-hit\nratio."),
.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\nelectricity, then "
"\nfires a\nhigh-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\nStellar "
"Form, it\nhits 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\nlight. "
"Sometimes\ntwice 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\nburns "
"the foe if\nstruck."),
.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\nblades at "
"the\ntarget. Strikes\ntwice."),
.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'\ncritical hit "
"\nratio, especially\nif 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\nits stats "
"were\nboosted 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\nattack. Power "
"\ndoubles if last\nmove 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\nslam. If it "
"\nmisses, the user\nis 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\ndamage and "
"prevent\nhealing for 2\nturns."),
.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\nflinch if "
"readying\na 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\nattack "
"that may\nbadly 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\nand crashes "
"into\nthe foe. Power\nvaries."),
.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\ninto "
"the target.\nPower 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\nplummets toward "
"\nthe target. Power\nvaries."),
.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\nin a poison "
"swamp.\nPower 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\nslams into "
"the\ntarget. Power\nvaries."),
.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\nmountain "
"on the\nfoe. 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\nsilk to "
"bind the\nfoe. 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\ngrudges trap "
"the\ntarget. Power\nvaries."),
.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\nand rams "
"the\ntarget. Power\nvaries."),
.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\nfire at "
"the\ntarget. Power\nvaries."),
.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\nswallows "
"the\ntarget. Power\nvaries."),
.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\nto attack "
"the\ntarget. Power\nvaries."),
.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\npowerful "
"\nelectricity. Power\nvaries."),
.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\ntarget to "
"hurt it.\nPower 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\nfreezes "
"the\ntarget. Power\nvaries."),
.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\nattacks "
"the\ntarget. Power\nvaries."),
.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\ninto dark "
"energy.\nPower 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\ntarget in a "
"\ncharming space.\nPower 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\nmax amount "
"of\nelectricity and\npounces."),
.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\nunleashes jolt. "
"\nHigh critical-hit\nratio."),
.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\nattacks with "
"full\nforce. Causes\nparalysis."),
.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\nfrom "
"its friends.\nBoosts 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\nenergetically\nmoves "
"and attacks\nwith 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\nfull force. "
"\nPsychically\ncharges 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\ncountless "
"arrows\nwith 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\ninto "
"the target\nwith 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\na massive "
"amount\nof water at the\nfoe."),
.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\nwith full "
"force.\nRemoves all\nterrain."),
.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\nthe target "
"with\nfull 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\nwith full "
"force.\nBoosts 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\nPokémon "
"greatly\nreduces the foe's\nHP."),
.effect = EFFECT_GUARDIAN_OF_ALOLA,
.power = 1,
.type = TYPE_FAIRY,
.accuracy = 0,
.pp = 1,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.category = DAMAGE_CATEGORY_SPECIAL,
.battleAnimScript = gBattleAnimMove_GuardianOfAlola,
},
[MOVE_SEARING_SUNRAZE_SMASH] =
{
.name = COMPOUND_STRING("Searing Sunraze Smash"),
.description = COMPOUND_STRING(
"Solgaleo attacks\nwith full "
"force.\nIgnores 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\nwith full "
"force.\nIgnores 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\nhighest "
"attack.\nIgnores 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\nand "
"kicks with\nfull 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\nattack. "
"\nIntensifies sun\nfor 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\nattack. "
"Lowers\nfoe's Sp. Atk\nstat."),
.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\nattack. "
"Turns the\nterrain 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\nattack. "
"Lowers\nfoe'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\nattack. "
"Boosts\nally 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\nattack. "
"Lowers\nfoe's Defense\nstat."),
.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\nattack. "
"Summons\nhail 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\nattack. "
"Boosts\nally Sp. Atk\nstats."),
.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\nattack. "
"Summons\nrain 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\nattack. "
"Boosts\nally 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\nattack. "
"Turns the\nterrain 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\nattack. "
"Lowers\nfoe'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\nattack. "
"Turns the\nterrain 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\nattack. "
"Summons a\nsandstorm."),
.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\nattack. "
"Boosts\nally Sp. Def\nstats."),
.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\nattack. "
"Lowers\nfoe's Sp. Def\nstat."),
.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\nattack. "
"Turns the\nterrain 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\nattack. "
"Boosts\nally Defense\nstats."),
.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\nattack. "
"Damages\nfor 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\nattack. "
"Damages\nfor 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\nattack. "
"Damages\nfor 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\nattack. "
"Poison,\nparalysis, or\nsleep."), //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\nattack. "
"Paralyzes\nopponents."), //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\nattack. "
"Confuses\nand 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\nattack. "
"Boosts\ncritical-hit\nratio."), //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\nattack. "
"Prevents\nfoes from\nescaping."), //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\nattack. "
"Harshly\nlowers foe's\nSpeed."), //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\nattack. "
"Reduces\ndamage for 5\nturns."), //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\nattack. "
"Infatuates\nopponents."), //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\nattack. "
"Restores\neaten 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\nattack. "
"Poisons\nopponents."), //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\nattack. "
"Prevents\nrepeat 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\nattack. "
"Ignores\ntarget's\nabilities."), //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\nattack. "
"Ignores\ntarget's\nabilities."), //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\nattack. "
"Ignores\ntarget's\nabilities."), //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\nattack. "
"Removes\nopponent 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\nattack. "
"Changes\ngravity for 5\nturns."), //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\nattack. "
"Scatters\nsharp 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\nattack. "
"Damages\nfor 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\nattack. "
"Lowers\nfoe'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\nattack. "
"Heals ally\nstatus 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\nattack. "
"Traps foes\nin 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\nattack. "
"Poisons or\nparalyzes 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\nattack. "
"Traps foes\nin 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\nattack. "
"Confuses\nopponents."), //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\nattack. "
"Lulls foes\ninto 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\nattack. "
"Heals ally\nHP."), //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\nattack. "
"Scatters\nsharp 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\nattack. "
"Reduces\ntarget'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,
},
};