From 25abdeacc53d244f698363346a276adaef870861 Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 1 Dec 2020 16:36:44 -0500 Subject: [PATCH] tidy up z move code --- include/battle.h | 32 +- include/battle_ai_script_commands.h | 1 - include/battle_message.h | 2 +- include/constants/items.h | 42 +- ld_script.txt | 4 +- src/battle_ai_script_commands.c | 2 +- src/battle_main.c | 2 +- src/battle_z_move.c | 9 - src/data/battle_moves.h | 2353 ++++++++++++++++++++++++--- src/data/items.h | 545 ------- src/data/trainer_parties.h | 8 +- src/data/trainers.h | 4 +- 12 files changed, 2142 insertions(+), 862 deletions(-) diff --git a/include/battle.h b/include/battle.h index cae439ad7f..f91809be55 100644 --- a/include/battle.h +++ b/include/battle.h @@ -429,21 +429,21 @@ struct Illusion struct ZMoveData { - /*0x00*/ u8 viable:1; // current move can become a z move - u8 viewing:1; // if player is viewing the z move name instead of regular moves - u8 active:1; // is z move being used this turn - u8 zStatusActive:1; - u8 healReplacement:1; - u8 activeSplit:2; // active z move split - u8 zUnused:1; - /*0x01*/ u8 triggerSpriteId; - /*0x02*/ u8 possibleZMoves[MAX_BATTLERS_COUNT]; - /*0x02*/ u16 chosenZMove; // z move of move cursor is on - u8 effect; - u8 used[MAX_BATTLERS_COUNT]; //one per bank for multi-battles - u16 toBeUsed[MAX_BATTLERS_COUNT]; // z moves per battler to be used - u16 baseMoves[MAX_BATTLERS_COUNT]; - u8 splits[MAX_BATTLERS_COUNT]; + u8 viable:1; // current move can become a z move + u8 viewing:1; // if player is viewing the z move name instead of regular moves + u8 active:1; // is z move being used this turn + u8 zStatusActive:1; + u8 healReplacement:1; + u8 activeSplit:2; // active z move split + u8 zUnused:1; + u8 triggerSpriteId; + u8 possibleZMoves[MAX_BATTLERS_COUNT]; + u16 chosenZMove; // z move of move cursor is on + u8 effect; + u8 used[MAX_BATTLERS_COUNT]; //one per bank for multi-battles + u16 toBeUsed[MAX_BATTLERS_COUNT]; // z moves per battler to be used + u16 baseMoves[MAX_BATTLERS_COUNT]; + u8 splits[MAX_BATTLERS_COUNT]; }; struct BattleStruct @@ -745,7 +745,7 @@ extern u16 gBattle_WIN1V; extern u8 gDisplayedStringBattle[400]; extern u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT]; extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT]; -extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT]; +extern u8 gBattleTextBuff3[30]; //to handle stupidly large z move names extern u32 gBattleTypeFlags; extern u8 gBattleTerrain; extern u32 gUnknown_02022FF4; diff --git a/include/battle_ai_script_commands.h b/include/battle_ai_script_commands.h index 6a7300cbab..d2a8613395 100644 --- a/include/battle_ai_script_commands.h +++ b/include/battle_ai_script_commands.h @@ -23,6 +23,5 @@ void RecordAbilityBattle(u8 battlerId, u16 abilityId); void ClearBattlerAbilityHistory(u8 battlerId); void RecordItemEffectBattle(u8 battlerId, u8 itemEffect); void ClearBattlerItemEffectHistory(u8 battlerId); -bool32 HasMoveWithSplit(u32 battler, u32 split); #endif // GUARD_BATTLE_AI_SCRIPT_COMMANDS_H diff --git a/include/battle_message.h b/include/battle_message.h index c2f6bd8c64..bc4ce8f007 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -1,7 +1,7 @@ #ifndef GUARD_BATTLE_MESSAGE_H #define GUARD_BATTLE_MESSAGE_H -#define TEXT_BUFF_ARRAY_COUNT 20 //expanded for z move names +#define TEXT_BUFF_ARRAY_COUNT 16 // for 0xFD #define B_TXT_BUFF1 0x0 diff --git a/include/constants/items.h b/include/constants/items.h index 72a5bc71c7..95c6aacfea 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -464,47 +464,7 @@ #define ITEM_MAGMA_EMBLEM 375 #define ITEM_OLD_SEA_MAP 376 - - -#define ITEM_NORMALIUM_Z 568 -#define ITEM_FIGHTINIUM_Z 569 -#define ITEM_FLYINIUM_Z 570 -#define ITEM_POISONIUM_Z 571 -#define ITEM_GROUNDIUM_Z 572 -#define ITEM_ROCKIUM_Z 573 -#define ITEM_BUGINIUM_Z 574 -#define ITEM_GHOSTIUM_Z 575 -#define ITEM_STEELIUM_Z 576 -#define ITEM_FIRIUM_Z 577 -#define ITEM_WATERIUM_Z 578 -#define ITEM_GRASSIUM_Z 579 -#define ITEM_ELECTRIUM_Z 580 -#define ITEM_PSYCHIUM_Z 581 -#define ITEM_ICIUM_Z 582 -#define ITEM_DRAGONIUM_Z 583 -#define ITEM_DARKINIUM_Z 584 -#define ITEM_FAIRIUM_Z 585 -#define ITEM_ALORAICHIUM_Z 586 -#define ITEM_DECIDIUM_Z 587 -#define ITEM_EEVIUM_Z 588 -#define ITEM_INCINIUM_Z 589 -#define ITEM_KOMMONIUM_Z 590 -#define ITEM_LUNALIUM_Z 591 -#define ITEM_LYCANIUM_Z 592 -#define ITEM_MARSHADIUM_Z 593 -#define ITEM_MEWNIUM_Z 594 -#define ITEM_MIMIKIUM_Z 595 -#define ITEM_PIKANIUM_Z 596 -#define ITEM_PIKASHUNIUM_Z 597 -#define ITEM_PRIMARIUM_Z 598 -#define ITEM_SNORLIUM_Z 599 -#define ITEM_SOLGANIUM_Z 600 -#define ITEM_TAPUNIUM_Z 601 - - - - -#define ITEMS_COUNT 602 +#define ITEMS_COUNT 377 #define ITEM_FIELD_ARROW ITEMS_COUNT #define FIRST_BERRY_INDEX ITEM_CHERI_BERRY diff --git a/ld_script.txt b/ld_script.txt index a7a7075fb4..1f8822667d 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -87,7 +87,7 @@ SECTIONS { src/battle_bg.o(.text); src/battle_main.o(.text); src/battle_util.o(.text); - src/battle_z_move.o(.text); + src/battle_z_move.o(.text); src/battle_script_commands.o(.text); src/battle_util2.o(.text); src/battle_controller_player.o(.text); @@ -475,7 +475,7 @@ SECTIONS { src/battle_bg.o(.rodata); src/battle_main.o(.rodata); src/battle_util.o(.rodata); - src/battle_z_move.o(.rodata); + src/battle_z_move.o(.rodata); src/battle_script_commands.o(.rodata); src/battle_controller_player.o(.rodata); src/battle_anim_smokescreen.o(.rodata); diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 4eb9987e73..553489369b 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -2610,7 +2610,7 @@ static u16 *GetMovesArray(u32 battler) return gBattleResources->battleHistory->usedMoves[battler]; } -bool32 HasMoveWithSplit(u32 battler, u32 split) +static bool32 HasMoveWithSplit(u32 battler, u32 split) { s32 i; u16 *moves = GetMovesArray(battler); diff --git a/src/battle_main.c b/src/battle_main.c index 40141f2085..91fc9efb38 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -134,7 +134,7 @@ EWRAM_DATA u16 gBattle_WIN1V = 0; EWRAM_DATA u8 gDisplayedStringBattle[400] = {0}; EWRAM_DATA u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT] = {0}; EWRAM_DATA u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT] = {0}; -EWRAM_DATA u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT] = {0}; +EWRAM_DATA u8 gBattleTextBuff3[30] = {0}; //expanded for stupidly long z move names EWRAM_DATA u32 gBattleTypeFlags = 0; EWRAM_DATA u8 gBattleTerrain = 0; EWRAM_DATA u32 gUnknown_02022FF4 = 0; diff --git a/src/battle_z_move.c b/src/battle_z_move.c index 81b0b01d1c..7f45b867fc 100644 --- a/src/battle_z_move.c +++ b/src/battle_z_move.c @@ -160,17 +160,8 @@ bool32 IsViableZMove(u8 battlerId, u16 move) if (gBattleStruct->zmove.used[battlerId]) return FALSE; - // Gets mon data species = gBattleMons[battlerId].species; item = gBattleMons[battlerId].item; - /*if (GetBattlerSide(battlerId) == B_SIDE_OPPONENT) - mon = &gEnemyParty[gBattlerPartyIndexes[battlerId]]; - else - mon = &gPlayerParty[gBattlerPartyIndexes[battlerId]]; - - species = GetMonData(mon, MON_DATA_SPECIES); - item = GetMonData(mon, MON_DATA_HELD_ITEM);*/ - if (gBattleTypeFlags & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FRONTIER)) return FALSE; diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 0760c6160e..702c9af387 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -208,6 +208,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_RAZOR_WIND] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_HIGH_CRIT, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif .effect = EFFECT_TWO_TURNS_ATTACK, .power = 80, .type = TYPE_NORMAL, @@ -216,7 +221,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_HIGH_CRIT, .split = SPLIT_SPECIAL, .zMovePower = 160, .zMoveEffect = Z_EFFECT_NONE, @@ -224,11 +228,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SWORDS_DANCE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .pp = 20, + #else + .pp = 30, + #endif .effect = EFFECT_ATTACK_UP_2, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, - .pp = 30, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -288,15 +296,23 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_WHIRLWIND] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .accuracy = 0, + .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #elif B_UPDATED_MOVE_DATA >= GEN_5 + .accuracy = 100, + .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .accuracy = 100, + .flags = FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_ROAR, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -6, - .flags = FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_SPDEF_UP_1, @@ -304,8 +320,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FLY] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .power = 90, + #else + .power = 70, + #endif .effect = EFFECT_SEMI_INVULNERABLE, - .power = 90, .type = TYPE_FLYING, .accuracy = 95, .pp = 15, @@ -320,10 +340,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_BIND] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .accuracy = 85, + #else + .accuracy = 75, + #endif .effect = EFFECT_TRAP, .power = 15, .type = TYPE_NORMAL, - .accuracy = 85, .pp = 20, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -352,11 +376,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_VINE_WHIP] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 45, + .pp = 25, + #elif B_UPDATED_MOVE_DATA >= GEN_4 + .power = 35, + .pp = 15, + #else + .power = 35, + .pp = 10, + #endif .effect = EFFECT_HIT, - .power = 45, .type = TYPE_GRASS, .accuracy = 100, - .pp = 25, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -416,11 +448,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_JUMP_KICK] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 100, + .pp = 10, + #elif B_UPDATED_MOVE_DATA == GEN_4 + .power = 85, + .pp = 25, + #else + .power = 70, + .pp = 25, + #endif .effect = EFFECT_RECOIL_IF_MISS, - .power = 100, .type = TYPE_FIGHTING, .accuracy = 95, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -528,10 +568,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_TACKLE] = { + #if B_UPDATED_MOVE_DATA >= GEN_7 + .power = 40, + .accuracy = 100, + #elif B_UPDATED_MOVE_DATA >= GEN_5 + .power = 50, + .accuracy = 100, + #else + .power = 35, + .accuracy = 95, + #endif .effect = EFFECT_HIT, - .power = 40, .type = TYPE_NORMAL, - .accuracy = 100, .pp = 35, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -560,10 +608,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_WRAP] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .accuracy = 90, + #else + .accuracy = 85, + #endif .effect = EFFECT_TRAP, .power = 15, .type = TYPE_NORMAL, - .accuracy = 85, .pp = 20, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -592,11 +644,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_THRASH] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 120, + .pp = 10, + #else + .power = 90, + .pp = 20, + #endif .effect = EFFECT_RAMPAGE, - .power = 120, .type = TYPE_NORMAL, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 100, .target = MOVE_TARGET_RANDOM, .priority = 0, @@ -672,10 +729,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_PIN_MISSILE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 25, + .accuracy = 95, + #else + .power = 14, + .accuracy = 85, + #endif .effect = EFFECT_MULTI_HIT, - .power = 25, .type = TYPE_BUG, - .accuracy = 95, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -736,15 +798,23 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ROAR] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .accuracy = 0, + .flags = FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND | FLAG_MAGICCOAT_AFFECTED, + #elif B_UPDATED_MOVE_DATA >= GEN_5 + .accuracy = 100, + .flags = FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND | FLAG_MAGICCOAT_AFFECTED, + #else + .accuracy = 100, + .flags = FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND, + #endif .effect = EFFECT_ROAR, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -6, - .flags = FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_DEF_UP_1, @@ -800,15 +870,23 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_DISABLE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .accuracy = 100, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, + #elif B_UPDATED_MOVE_DATA == GEN_4 + .accuracy = 80, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .accuracy = 55, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_DISABLE, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_RESET_STATS, @@ -816,7 +894,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ACID] = { - .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + #if B_UPDATED_MOVE_DATA >= GEN_4 + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + #else + .effect = EFFECT_DEFENSE_DOWN_HIT, + #endif .power = 40, .type = TYPE_POISON, .accuracy = 100, @@ -848,16 +930,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FLAMETHROWER] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 90, + #else + .power = 95, + #endif .effect = EFFECT_BURN_HIT, - .power = 90, .type = TYPE_FIRE, .accuracy = 100, .pp = 15, .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, - .split = SPLIT_SPECIAL, .zMovePower = 175, .zMoveEffect = Z_EFFECT_NONE, }, @@ -896,8 +980,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_HYDRO_PUMP] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 110, + #else + .power = 120, + #endif .effect = EFFECT_HIT, - .power = 110, .type = TYPE_WATER, .accuracy = 80, .pp = 5, @@ -912,13 +1000,21 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SURF] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 90, + .target = MOVE_TARGET_FOES_AND_ALLY, + #elif B_UPDATED_MOVE_DATA >= GEN_4 + .power = 95, + .target = MOVE_TARGET_FOES_AND_ALLY, + #else + .power = 95, + .target = MOVE_TARGET_BOTH, + #endif .effect = EFFECT_HIT, - .power = 90, .type = TYPE_WATER, .accuracy = 100, .pp = 15, .secondaryEffectChance = 0, - .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_DMG_UNDERWATER, .split = SPLIT_SPECIAL, @@ -928,8 +1024,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ICE_BEAM] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 90, + #else + .power = 95, + #endif .effect = EFFECT_FREEZE_HIT, - .power = 90, .type = TYPE_ICE, .accuracy = 100, .pp = 10, @@ -944,8 +1044,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_BLIZZARD] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 110, + #else + .power = 120, + #endif .effect = EFFECT_FREEZE_HIT, - .power = 110, .type = TYPE_ICE, .accuracy = 70, .pp = 5, @@ -1056,11 +1160,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SUBMISSION] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .pp = 20, + #else + .pp = 25, + #endif .effect = EFFECT_RECOIL_25, .power = 80, .type = TYPE_FIGHTING, .accuracy = 80, - .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -1088,6 +1196,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_COUNTER] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_COUNTER, .power = 1, .type = TYPE_FIGHTING, @@ -1096,7 +1209,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = -5, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED, .split = SPLIT_PHYSICAL, .zMovePower = 100, .zMoveEffect = Z_EFFECT_NONE, @@ -1136,11 +1248,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ABSORB] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .pp = 25, + #else + .pp = 20, + #endif .effect = EFFECT_ABSORB, .power = 20, .type = TYPE_GRASS, .accuracy = 100, - .pp = 25, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -1152,11 +1268,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_MEGA_DRAIN] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .pp = 15, + #else + .pp = 10, + #endif .effect = EFFECT_ABSORB, .power = 40, .type = TYPE_GRASS, .accuracy = 100, - .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -1184,11 +1304,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_GROWTH] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .pp = 20, + #else + .pp = 40, + #endif .effect = EFFECT_GROWTH, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, - .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -1280,11 +1404,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_PETAL_DANCE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 120, + .pp = 10, + #elif B_UPDATED_MOVE_DATA == GEN_4 + .power = 90, + .pp = 20, + #else + .power = 70, + .pp = 20, + #endif .effect = EFFECT_RAMPAGE, - .power = 120, .type = TYPE_GRASS, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 100, .target = MOVE_TARGET_RANDOM, .priority = 0, @@ -1328,16 +1460,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FIRE_SPIN] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 35, + .accuracy = 85, + #else + .power = 15, + .accuracy = 70, + #endif .effect = EFFECT_TRAP, - .power = 35, .type = TYPE_FIRE, - .accuracy = 85, .pp = 15, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - .split = SPLIT_SPECIAL, .zMovePower = 100, .zMoveEffect = Z_EFFECT_NONE, }, @@ -1360,8 +1495,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_THUNDERBOLT] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 90, + #else + .power = 95, + #endif .effect = EFFECT_PARALYZE_HIT, - .power = 90, .type = TYPE_ELECTRIC, .accuracy = 100, .pp = 15, @@ -1376,10 +1515,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_THUNDER_WAVE] = { + #if B_UPDATED_MOVE_DATA >= GEN_7 + .accuracy = 90, + #else + .accuracy = 100, + #endif .effect = EFFECT_PARALYZE, .power = 0, .type = TYPE_ELECTRIC, - .accuracy = 90, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -1392,8 +1535,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_THUNDER] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 110, + #else + .power = 120, + #endif .effect = EFFECT_THUNDER, - .power = 110, .type = TYPE_ELECTRIC, .accuracy = 70, .pp = 10, @@ -1456,8 +1603,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_DIG] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .power = 80, + #else + .power = 60, + #endif .effect = EFFECT_SEMI_INVULNERABLE, - .power = 80, .type = TYPE_GROUND, .accuracy = 100, .pp = 10, @@ -1472,10 +1623,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_TOXIC] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .accuracy = 90, + #else + .accuracy = 85, + #endif .effect = EFFECT_TOXIC, .power = 0, .type = TYPE_POISON, - .accuracy = 90, .pp = 10, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -1680,11 +1835,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_RECOVER] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .pp = 10, + #else + .pp = 20, + #endif .effect = EFFECT_RESTORE_HP, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -1712,11 +1871,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_MINIMIZE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .pp = 10, + #else + .pp = 20, + #endif .effect = EFFECT_MINIMIZE, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -1792,11 +1955,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_BARRIER] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .pp = 20, + #else + .pp = 30, + #endif .effect = EFFECT_DEFENSE_UP_2, .power = 0, .type = TYPE_PSYCHIC, .accuracy = 0, - .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -1872,14 +2039,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_BIDE] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .accuracy = 0, + .priority = 1, + #else + .accuracy = 100, + .priority = 0, + #endif .effect = EFFECT_BIDE, .power = 1, .type = TYPE_NORMAL, - .accuracy = 0, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 1, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_PHYSICAL, .zMovePower = 100, @@ -1952,8 +2124,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_LICK] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 30, + #else + .power = 20, + #endif .effect = EFFECT_PARALYZE_HIT, - .power = 30, .type = TYPE_GHOST, .accuracy = 100, .pp = 30, @@ -1968,11 +2144,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SMOG] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 30, + #else + .power = 20, + #endif .effect = EFFECT_POISON_HIT, - .power = 20, .type = TYPE_POISON, .accuracy = 70, - .pp = 30, + .pp = 20, .secondaryEffectChance = 40, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -2016,8 +2196,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FIRE_BLAST] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 120, + #else + .power = 110, + #endif .effect = EFFECT_BURN_HIT, - .power = 110, .type = TYPE_FIRE, .accuracy = 85, .pp = 5, @@ -2032,7 +2216,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_WATERFALL] = { - .effect = EFFECT_FLINCH_HIT, + #if B_UPDATED_MOVE_DATA >= GEN_4 + .effect = EFFECT_FLINCH_HIT, + #else + .effect = EFFECT_HIT, + #endif .power = 80, .type = TYPE_WATER, .accuracy = 100, @@ -2048,11 +2236,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_CLAMP] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .accuracy = 85, + .pp = 15, + #else + .accuracy = 75, + .pp = 10, + #endif .effect = EFFECT_TRAP, .power = 35, .type = TYPE_WATER, - .accuracy = 85, - .pp = 15, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -2080,11 +2273,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SKULL_BASH] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 130, + .pp = 10, + #else + .power = 100, + .pp = 15, + #endif .effect = EFFECT_SKULL_BASH, - .power = 130, .type = TYPE_NORMAL, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -2144,6 +2342,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_KINESIS] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_ACCURACY_DOWN, .power = 0, .type = TYPE_PSYCHIC, @@ -2151,9 +2354,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, - .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_EVSN_UP_1, }, @@ -2176,11 +2376,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_HI_JUMP_KICK] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 130, + .pp = 10, + #elif B_UPDATED_MOVE_DATA == GEN_4 + .power = 100, + .pp = 20, + #else + .power = 85, + .pp = 20, + #endif .effect = EFFECT_RECOIL_IF_MISS, - .power = 130, .type = TYPE_FIGHTING, .accuracy = 90, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -2192,10 +2400,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_GLARE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .accuracy = 100, + #elif B_UPDATED_MOVE_DATA == GEN_5 + .accuracy = 90, + #else + .accuracy = 75, + #endif .effect = EFFECT_PARALYZE, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, .pp = 30, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2224,13 +2438,21 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_POISON_GAS] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .accuracy = 90, + .target = MOVE_TARGET_FOES_AND_ALLY, + #elif B_UPDATED_MOVE_DATA == GEN_5 + .accuracy = 80, + .target = MOVE_TARGET_FOES_AND_ALLY, + #else + .accuracy = 55, + .target = MOVE_TARGET_BOTH, + #endif .effect = EFFECT_POISON, .power = 0, .type = TYPE_POISON, - .accuracy = 90, .pp = 40, .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, @@ -2256,11 +2478,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_LEECH_LIFE] = { + #if B_UPDATED_MOVE_DATA >= GEN_7 + .power = 80, + .pp = 10, + #else + .power = 20, + .pp = 15, + #endif .effect = EFFECT_ABSORB, - .power = 80, .type = TYPE_BUG, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -2321,8 +2548,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_BUBBLE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 40, + #else + .power = 20, + #endif .effect = EFFECT_SPEED_DOWN_HIT, - .power = 40, .type = TYPE_WATER, .accuracy = 100, .pp = 30, @@ -2369,10 +2600,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FLASH] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .accuracy = 100, + #else + .accuracy = 70, + #endif .effect = EFFECT_ACCURACY_DOWN, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2385,10 +2620,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_PSYWAVE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .accuracy = 100, + #else + .accuracy = 80, + #endif .effect = EFFECT_PSYWAVE, .power = 1, .type = TYPE_PSYCHIC, - .accuracy = 100, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2417,11 +2656,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ACID_ARMOR] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .pp = 20, + #else + .pp = 40, + #endif .effect = EFFECT_DEFENSE_UP_2, .power = 0, .type = TYPE_POISON, .accuracy = 0, - .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -2433,10 +2676,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_CRABHAMMER] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 100, + .accuracy = 90, + #elif B_UPDATED_MOVE_DATA == GEN_5 + .power = 90, + .accuracy = 90, + #else + .power = 90, + .accuracy = 85, + #endif .effect = EFFECT_HIT, - .power = 100, .type = TYPE_WATER, - .accuracy = 90, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2561,6 +2812,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_CONVERSION] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_CONVERSION, .power = 0, .type = TYPE_NORMAL, @@ -2569,7 +2825,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_ALL_STATS_UP_1, @@ -2641,15 +2896,20 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_STRUGGLE] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .accuracy = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .accuracy = 100, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif .effect = EFFECT_RECOIL_25, .power = 50, .type = TYPE_NORMAL, - .accuracy = 0, .pp = 1, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_PHYSICAL, .zMovePower = 100, .zMoveEffect = Z_EFFECT_NONE, @@ -2689,11 +2949,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_THIEF] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 60, + .pp = 25, + #else + .power = 40, + .pp = 10, + #endif .effect = EFFECT_THIEF, - .power = 60, .type = TYPE_DARK, .accuracy = 100, - .pp = 25, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -2705,15 +2970,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SPIDER_WEB] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_MEAN_LOOK, .power = 0, .type = TYPE_BUG, - .accuracy = 100, + .accuracy = 0, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_DEF_UP_1, @@ -2721,10 +2990,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_MIND_READER] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .accuracy = 0, + #else + .accuracy = 100, + #endif .effect = EFFECT_LOCK_ON, .power = 0, .type = TYPE_NORMAL, - .accuracy = 0, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2737,10 +3010,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_NIGHTMARE] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .accuracy = 100, + #else + .accuracy = 0, + #endif .effect = EFFECT_NIGHTMARE, .power = 0, .type = TYPE_GHOST, - .accuracy = 100, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2769,8 +3046,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SNORE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 50, + #else + .power = 40, + #endif .effect = EFFECT_SNORE, - .power = 50, .type = TYPE_NORMAL, .accuracy = 100, .pp = 15, @@ -2785,9 +3066,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_CURSE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .type = TYPE_GHOST, + #else + .type = TYPE_MYSTERY, + #endif .effect = EFFECT_CURSE, .power = 0, - .type = TYPE_GHOST, .accuracy = 0, .pp = 10, .secondaryEffectChance = 0, @@ -2817,13 +3102,17 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_CONVERSION_2] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .target = MOVE_TARGET_USER, + #else + .target = MOVE_TARGET_FOES_AND_ALLY, + #endif .effect = EFFECT_CONVERSION_2, .power = 0, .type = TYPE_NORMAL, .accuracy = 100, .pp = 30, .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, .priority = 0, .flags = 0, .split = SPLIT_STATUS, @@ -2849,13 +3138,21 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_COTTON_SPORE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .accuracy = 100, + .target = MOVE_TARGET_BOTH, + #elif B_UPDATED_MOVE_DATA == GEN_5 + .accuracy = 100, + .target = MOVE_TARGET_FOES_AND_ALLY, + #else + .accuracy = 85, + .target = MOVE_TARGET_FOES_AND_ALLY, + #endif .effect = EFFECT_SPEED_DOWN_2, .power = 0, .type = TYPE_GRASS, - .accuracy = 100, .pp = 40, .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_POWDER, .split = SPLIT_STATUS, @@ -2881,6 +3178,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SPITE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_SPITE, .power = 0, .type = TYPE_GHOST, @@ -2889,7 +3191,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_RECOVER_HP, @@ -2945,10 +3246,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SCARY_FACE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .accuracy = 100, + #else + .accuracy = 90, + #endif .effect = EFFECT_SPEED_DOWN_2, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2961,6 +3266,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FAINT_ATTACK] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif .effect = EFFECT_HIT, .power = 60, .type = TYPE_DARK, @@ -2969,7 +3279,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_PHYSICAL, .zMovePower = 120, .zMoveEffect = Z_EFFECT_NONE, @@ -2977,9 +3286,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SWEET_KISS] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .type = TYPE_FAIRY, + #else + .type = TYPE_NORMAL, + #endif .effect = EFFECT_CONFUSE, .power = 0, - .type = TYPE_FAIRY, .accuracy = 75, .pp = 10, .secondaryEffectChance = 0, @@ -3057,6 +3370,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SPIKES] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_MAGICCOAT_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_SPIKES, .power = 0, .type = TYPE_GROUND, @@ -3065,7 +3383,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_OPPONENTS_FIELD, .priority = 0, - .flags = FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_DEF_UP_1, @@ -3073,8 +3390,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ZAP_CANNON] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .power = 120, + #else + .power = 100, + #endif .effect = EFFECT_PARALYZE_HIT, - .power = 120, .type = TYPE_ELECTRIC, .accuracy = 50, .pp = 5, @@ -3089,15 +3410,23 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FORESIGHT] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .accuracy = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, + #elif B_UPDATED_MOVE_DATA >= GEN_4 + .accuracy = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .accuracy = 100, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_FORESIGHT, .power = 0, .type = TYPE_NORMAL, - .accuracy = 0, .pp = 40, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_BOOST_CRITS, @@ -3169,10 +3498,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_BONE_RUSH] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .accuracy = 90, + #else + .accuracy = 80, + #endif .effect = EFFECT_MULTI_HIT, .power = 25, .type = TYPE_GROUND, - .accuracy = 90, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -3185,10 +3518,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_LOCK_ON] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .accuracy = 100, + #else + .accuracy = 0, + #endif .effect = EFFECT_LOCK_ON, .power = 0, .type = TYPE_NORMAL, - .accuracy = 0, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -3201,11 +3538,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_OUTRAGE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 120, + .pp = 10, + #elif B_UPDATED_MOVE_DATA == GEN_4 + .power = 120, + .pp = 15, + #else + .power = 90, + .pp = 15, + #endif .effect = EFFECT_RAMPAGE, - .power = 120, .type = TYPE_DRAGON, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 100, .target = MOVE_TARGET_RANDOM, .priority = 0, @@ -3233,11 +3578,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_GIGA_DRAIN] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 75, + .pp = 10, + #elif B_UPDATED_MOVE_DATA == GEN_4 + .power = 60, + .pp = 10, + #else + .power = 60, + .pp = 5, + #endif .effect = EFFECT_ABSORB, - .power = 75, .type = TYPE_GRASS, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -3265,9 +3618,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_CHARM] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .type = TYPE_FAIRY, + #else + .type = TYPE_NORMAL, + #endif .effect = EFFECT_ATTACK_DOWN_2, .power = 0, - .type = TYPE_FAIRY, .accuracy = 100, .pp = 20, .secondaryEffectChance = 0, @@ -3313,10 +3670,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SWAGGER] = { + #if B_UPDATED_MOVE_DATA >= GEN_7 + .accuracy = 85, + #else + .accuracy = 90, + #endif .effect = EFFECT_SWAGGER, .power = 0, .type = TYPE_NORMAL, - .accuracy = 85, .pp = 15, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -3361,8 +3722,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FURY_CUTTER] = { + #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, - .power = 40, .type = TYPE_BUG, .accuracy = 95, .pp = 20, @@ -3393,15 +3760,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_MEAN_LOOK] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_MEAN_LOOK, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, + .accuracy = 0, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_SPDEF_UP_1, @@ -3633,6 +4004,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ENCORE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_ENCORE, .power = 0, .type = TYPE_NORMAL, @@ -3641,7 +4017,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_SPD_UP_1, @@ -3665,8 +4040,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_RAPID_SPIN] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .power = 50, + #else + .power = 20, + #endif .effect = EFFECT_RAPID_SPIN, - .power = 20, .type = TYPE_NORMAL, .accuracy = 100, .pp = 40, @@ -3777,9 +4156,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_MOONLIGHT] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .type = TYPE_FAIRY, + #else + .type = TYPE_NORMAL, + #endif .effect = EFFECT_MOONLIGHT, .power = 0, - .type = TYPE_FAIRY, .accuracy = 0, .pp = 5, .secondaryEffectChance = 0, @@ -3873,7 +4256,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_CRUNCH] = { - .effect = EFFECT_DEFENSE_DOWN_HIT, + #if B_UPDATED_MOVE_DATA >= GEN_4 + .effect = EFFECT_DEFENSE_DOWN_HIT, + #else + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + #endif .power = 80, .type = TYPE_DARK, .accuracy = 100, @@ -3889,6 +4276,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_MIRROR_COAT] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_PROTECT_AFFECTED, + #else + .flags = FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_MIRROR_COAT, .power = 1, .type = TYPE_PSYCHIC, @@ -3897,7 +4289,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = -5, - .flags = FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_SPECIAL, .zMovePower = 100, .zMoveEffect = Z_EFFECT_NONE, @@ -3905,6 +4296,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_PSYCH_UP] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_PSYCH_UP, .power = 0, .type = TYPE_NORMAL, @@ -3913,7 +4309,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_RECOVER_HP, @@ -3921,6 +4316,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_EXTREME_SPEED] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .priority = 2, + #else + .priority = 1, + #endif .effect = EFFECT_HIT, .power = 80, .type = TYPE_NORMAL, @@ -3928,7 +4328,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, - .priority = 2, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_PHYSICAL, .zMovePower = 160, @@ -3937,6 +4336,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ANCIENT_POWER] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #endif .effect = EFFECT_ALL_STATS_UP_HIT, .power = 60, .type = TYPE_ROCK, @@ -3945,7 +4349,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_SPECIAL, .zMovePower = 120, .zMoveEffect = Z_EFFECT_NONE, @@ -3969,11 +4372,21 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FUTURE_SIGHT] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 120, + .accuracy = 100, + .pp = 10, + #elif B_UPDATED_MOVE_DATA == GEN_5 + .power = 100, + .accuracy = 100, + .pp = 10, + #else + .power = 80, + .accuracy = 90, + .pp = 15, + #endif .effect = EFFECT_FUTURE_SIGHT, - .power = 120, .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -3985,8 +4398,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ROCK_SMASH] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .power = 40, + #else + .power = 20, + #endif .effect = EFFECT_DEFENSE_DOWN_HIT, - .power = 40, .type = TYPE_FIGHTING, .accuracy = 100, .pp = 15, @@ -4001,10 +4418,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_WHIRLPOOL] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 35, + .accuracy = 85, + #else + .power = 15, + .accuracy = 70, + #endif .effect = EFFECT_TRAP, - .power = 35, .type = TYPE_WATER, - .accuracy = 85, .pp = 15, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -4018,7 +4440,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_BEAT_UP] = { .effect = EFFECT_BEAT_UP, - .power = 10, + #if B_BEAT_UP_DMG >= GEN_5 + .power = 1, + #else + .power = 10, + #endif .type = TYPE_DARK, .accuracy = 100, .pp = 10, @@ -4033,6 +4459,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FAKE_OUT] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #endif .effect = EFFECT_FAKE_OUT, .power = 40, .type = TYPE_NORMAL, @@ -4040,8 +4471,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .pp = 10, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, - .priority = 1, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + .priority = 3, .split = SPLIT_PHYSICAL, .zMovePower = 100, .zMoveEffect = Z_EFFECT_NONE, @@ -4049,8 +4479,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_UPROAR] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 90, + #else + .power = 50, + #endif .effect = EFFECT_UPROAR, - .power = 90, .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, @@ -4065,11 +4499,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_STOCKPILE] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .pp = 20, + #else + .pp = 10, + #endif .effect = EFFECT_STOCKPILE, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, - .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -4081,8 +4519,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SPIT_UP] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .power = 1, + #else + .power = 100, + #endif .effect = EFFECT_SPIT_UP, - .power = 100, .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, @@ -4113,8 +4555,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_HEAT_WAVE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 95, + #else + .power = 100, + #endif .effect = EFFECT_BURN_HIT, - .power = 95, .type = TYPE_FIRE, .accuracy = 90, .pp = 10, @@ -4145,6 +4591,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_TORMENT] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_TORMENT, .power = 0, .type = TYPE_DARK, @@ -4153,7 +4604,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_DEF_UP_1, @@ -4177,10 +4627,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_WILL_O_WISP] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .accuracy = 85, + #else + .accuracy = 75, + #endif .effect = EFFECT_WILL_O_WISP, .power = 0, .type = TYPE_FIRE, - .accuracy = 85, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -4241,8 +4695,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SMELLING_SALT] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 70, + #else + .power = 60, + #endif .effect = EFFECT_SMELLINGSALT, - .power = 70, .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, @@ -4306,6 +4764,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_TAUNT] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED, + #endif .effect = EFFECT_TAUNT, .power = 0, .type = TYPE_DARK, @@ -4313,22 +4776,23 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED, - .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_ATK_UP_1, }, [MOVE_HELPING_HAND] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .target = MOVE_TARGET_ALLY, + #else + .target = MOVE_TARGET_USER, + #endif .effect = EFFECT_HELPING_HAND, .power = 0, .type = TYPE_NORMAL, .accuracy = 100, .pp = 20, .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, .priority = 5, .flags = 0, .split = SPLIT_STATUS, @@ -4370,6 +4834,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_WISH] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_WISH, .power = 0, .type = TYPE_NORMAL, @@ -4377,9 +4846,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_SNATCH_AFFECTED, - .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_SPDEF_UP_1, }, @@ -4450,6 +4916,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_RECYCLE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_RECYCLE, .power = 0, .type = TYPE_NORMAL, @@ -4458,7 +4929,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_SPD_UP_2, @@ -4514,8 +4984,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_KNOCK_OFF] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 65, + #else + .power = 20, + #endif .effect = EFFECT_KNOCK_OFF, - .power = 65, .type = TYPE_DARK, .accuracy = 100, .pp = 20, @@ -4578,6 +5052,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_IMPRISON] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_SNATCH_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED, + #endif .effect = EFFECT_IMPRISON, .power = 0, .type = TYPE_PSYCHIC, @@ -4586,7 +5065,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_SPDEF_UP_2, @@ -4658,8 +5136,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_DIVE] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .power = 80, + #else + .power = 60, + #endif .effect = EFFECT_SEMI_INVULNERABLE, - .power = 80, .type = TYPE_WATER, .accuracy = 100, .pp = 10, @@ -4770,6 +5252,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_TEETER_DANCE] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_DANCE, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_DANCE, + #endif .effect = EFFECT_TEETER_DANCE, .power = 0, .type = TYPE_NORMAL, @@ -4778,7 +5265,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_DANCE, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_SPATK_UP_1, @@ -4882,12 +5368,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_POISON_FANG] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .secondaryEffectChance = 50, + #else + .secondaryEffectChance = 30, + #endif .effect = EFFECT_POISON_FANG, .power = 50, .type = TYPE_POISON, .accuracy = 100, .pp = 15, - .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_STRONG_JAW_BOOST, @@ -4946,10 +5436,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_METEOR_MASH] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 90, + .accuracy = 90, + #else + .power = 100, + .accuracy = 85, + #endif .effect = EFFECT_ATTACK_UP_HIT, - .power = 90, .type = TYPE_STEEL, - .accuracy = 90, .pp = 10, .secondaryEffectChance = 20, .target = MOVE_TARGET_SELECTED, @@ -5026,8 +5521,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_AIR_CUTTER] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 60, + #else + .power = 55, + #endif .effect = EFFECT_HIT, - .power = 60, .type = TYPE_FLYING, .accuracy = 95, .pp = 25, @@ -5042,15 +5541,23 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_OVERHEAT] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 130, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #elif B_UPDATED_MOVE_DATA >= GEN_4 + .power = 130, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .power = 140, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif .effect = EFFECT_OVERHEAT, - .power = 130, .type = TYPE_FIRE, .accuracy = 90, .pp = 5, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_SPECIAL, .zMovePower = 195, .zMoveEffect = Z_EFFECT_NONE, @@ -5058,15 +5565,20 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ODOR_SLEUTH] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .accuracy = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, + #else + .accuracy = 100, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_FORESIGHT, .power = 0, .type = TYPE_NORMAL, - .accuracy = 0, .pp = 40, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_ATK_UP_1, @@ -5074,11 +5586,17 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ROCK_TOMB] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 60, + .accuracy = 95, + .pp = 15, + #else + .power = 50, + .accuracy = 80, + .pp = 10, + #endif .effect = EFFECT_SPEED_DOWN_HIT, - .power = 60, .type = TYPE_ROCK, - .accuracy = 95, - .pp = 15, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -5218,11 +5736,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_EXTRASENSORY] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .pp = 20, + #else + .pp = 30, + #endif .effect = EFFECT_FLINCH_MINIMIZE_HIT, .power = 80, .type = TYPE_PSYCHIC, .accuracy = 100, - .pp = 20, .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -5250,10 +5772,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SAND_TOMB] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 35, + .accuracy = 85, + #else + .power = 15, + .accuracy = 70, + #endif .effect = EFFECT_TRAP, - .power = 35, .type = TYPE_GROUND, - .accuracy = 85, .pp = 15, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -5282,8 +5809,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_MUDDY_WATER] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 90, + #else + .power = 95, + #endif .effect = EFFECT_ACCURACY_DOWN_HIT, - .power = 90, .type = TYPE_WATER, .accuracy = 85, .pp = 10, @@ -5298,8 +5829,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_BULLET_SEED] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 25, + #else + .power = 10, + #endif .effect = EFFECT_MULTI_HIT, - .power = 25, .type = TYPE_GRASS, .accuracy = 100, .pp = 30, @@ -5330,8 +5865,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ICICLE_SPEAR] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 25, + #else + .power = 10, + #endif .effect = EFFECT_MULTI_HIT, - .power = 25, .type = TYPE_ICE, .accuracy = 100, .pp = 30, @@ -5362,15 +5901,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_BLOCK] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_MEAN_LOOK, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, + .accuracy = 0, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_DEF_UP_1, @@ -5491,15 +6034,29 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_COVET] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 60, + .pp = 25, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #elif B_UPDATED_MOVE_DATA == GEN_5 + .power = 60, + .pp = 40, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #elif B_UPDATED_MOVE_DATA == GEN_4 + .power = 40, + .pp = 40, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .power = 40, + .pp = 40, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_THIEF, - .power = 60, .type = TYPE_NORMAL, .accuracy = 100, - .pp = 25, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_PHYSICAL, .zMovePower = 120, .zMoveEffect = Z_EFFECT_NONE, @@ -5507,7 +6064,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_VOLT_TACKLE] = { - .effect = EFFECT_RECOIL_33_STATUS, + #if B_UPDATED_MOVE_DATA >= GEN_4 + .effect = EFFECT_RECOIL_33_STATUS, + .argument = STATUS1_PARALYSIS, + #else + .effect = EFFECT_RECOIL_33, + #endif .power = 120, .type = TYPE_ELECTRIC, .accuracy = 100, @@ -5517,7 +6079,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .priority = 0, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_RECKLESS_BOOST | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, - .argument = STATUS1_PARALYSIS, .zMovePower = 190, .zMoveEffect = Z_EFFECT_NONE, }, @@ -5572,8 +6133,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_LEAF_BLADE] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .power = 90, + #else + .power = 70, + #endif .effect = EFFECT_HIT, - .power = 90, .type = TYPE_GRASS, .accuracy = 100, .pp = 15, @@ -5604,10 +6169,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ROCK_BLAST] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .accuracy = 90, + #else + .accuracy = 80, + #endif .effect = EFFECT_MULTI_HIT, .power = 25, .type = TYPE_ROCK, - .accuracy = 90, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -5652,10 +6221,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_DOOM_DESIRE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 140, + .accuracy = 100, + #else + .power = 120, + .accuracy = 85, + #endif .effect = EFFECT_FUTURE_SIGHT, - .power = 140, .type = TYPE_STEEL, - .accuracy = 100, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -5716,6 +6290,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_MIRACLE_EYE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_MIRACLE_EYE, .power = 0, .type = TYPE_PSYCHIC, @@ -5724,7 +6303,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_SPATK_UP_1, @@ -5732,8 +6310,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_WAKE_UP_SLAP] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 70, + #else + .power = 60, + #endif .effect = EFFECT_WAKE_UP_SLAP, - .power = 70, .type = TYPE_FIGHTING, .accuracy = 100, .pp = 10, @@ -5781,6 +6363,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_HEALING_WISH] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_HEALING_WISH, .power = 0, .type = TYPE_PSYCHIC, @@ -5789,7 +6376,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_NONE, @@ -5829,15 +6415,23 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FEINT] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 30, + .flags = FLAG_MIRROR_MOVE_AFFECTED, + #elif B_UPDATED_MOVE_DATA >= GEN_5 + .power = 30, + .flags = 0, + #else + .power = 50, + .flags = 0, + #endif .effect = EFFECT_FEINT, - .power = 30, .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 2, - .flags = FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_PHYSICAL, .zMovePower = 100, .zMoveEffect = Z_EFFECT_NONE, @@ -5861,11 +6455,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_TAILWIND] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .pp = 15, + #else + .pp = 30, + #endif .effect = EFFECT_TAILWIND, .power = 0, .type = TYPE_FLYING, .accuracy = 0, - .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -5877,6 +6475,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ACUPRESSURE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = 0, + #else + .flags = FLAG_SNATCH_AFFECTED, + #endif .effect = EFFECT_ACUPRESSURE, .power = 0, .type = TYPE_NORMAL, @@ -5885,7 +6488,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER | MOVE_TARGET_ALLY, .priority = 0, - .flags = 0, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_BOOST_CRITS, @@ -5893,6 +6495,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_METAL_BURST] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_METAL_BURST, .power = 0, .type = TYPE_STEEL, @@ -5901,8 +6508,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = 0, - .flags = 0, .split = SPLIT_PHYSICAL, + .zMoveEffect = Z_EFFECT_NONE, }, [MOVE_U_TURN] = @@ -5955,8 +6562,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ASSURANCE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 60, + #else + .power = 50, + #endif .effect = EFFECT_ASSURANCE, - .power = 60, .type = TYPE_DARK, .accuracy = 100, .pp = 10, @@ -5971,6 +6582,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_EMBARGO] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_EMBARGO, .power = 0, .type = TYPE_DARK, @@ -5979,7 +6595,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_SPATK_UP_1, @@ -6003,10 +6618,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_PSYCHO_SHIFT] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .accuracy = 100, + #else + .accuracy = 90, + #endif .effect = EFFECT_PSYCHO_SHIFT, .power = 0, .type = TYPE_PSYCHIC, - .accuracy = 100, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -6033,6 +6652,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_HEAL_BLOCK] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_HEAL_BLOCK, .power = 0, .type = TYPE_PSYCHIC, @@ -6041,7 +6665,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_SPATK_UP_2, @@ -6063,6 +6686,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_POWER_TRICK] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_POWER_TRICK, .power = 0, .type = TYPE_PSYCHIC, @@ -6071,7 +6699,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_ATK_UP_1, @@ -6095,6 +6722,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_LUCKY_CHANT] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_LUCKY_CHANT, .power = 0, .type = TYPE_NORMAL, @@ -6103,7 +6735,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_EVSN_UP_1, @@ -6191,8 +6822,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_LAST_RESORT] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 140, + #else + .power = 130, + #endif .effect = EFFECT_LAST_RESORT, - .power = 140, .type = TYPE_NORMAL, .accuracy = 100, .pp = 5, @@ -6223,8 +6858,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SUCKER_PUNCH] = { + #if B_UPDATED_MOVE_DATA >= GEN_7 + .power = 70, + #else + .power = 80, + #endif .effect = EFFECT_SUCKER_PUNCH, - .power = 70, .type = TYPE_DARK, .accuracy = 100, .pp = 5, @@ -6239,6 +6878,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_TOXIC_SPIKES] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_MAGICCOAT_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_TOXIC_SPIKES, .power = 0, .type = TYPE_POISON, @@ -6247,7 +6891,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_OPPONENTS_FIELD, .priority = 0, - .flags = FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_DEF_UP_1, @@ -6271,6 +6914,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_AQUA_RING] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_AQUA_RING, .power = 0, .type = TYPE_WATER, @@ -6279,7 +6927,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_DEF_UP_1, @@ -6287,6 +6934,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_MAGNET_RISE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_MAGNET_RISE, .power = 0, .type = TYPE_ELECTRIC, @@ -6295,7 +6947,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_EVSN_UP_1, @@ -6336,8 +6987,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_AURA_SPHERE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 80, + #else + .power = 90, + #endif .effect = EFFECT_HIT, - .power = 80, .type = TYPE_FIGHTING, .accuracy = 0, .pp = 20, @@ -6448,11 +7103,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_AIR_SLASH] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .pp = 15, + #else + .pp = 20, + #endif .effect = EFFECT_FLINCH_HIT, .power = 75, .type = TYPE_FLYING, .accuracy = 95, - .pp = 15, .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -6496,8 +7155,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_DRAGON_PULSE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 85, + #else + .power = 90, + #endif .effect = EFFECT_HIT, - .power = 85, .type = TYPE_DRAGON, .accuracy = 100, .pp = 10, @@ -6528,8 +7191,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_POWER_GEM] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 80, + #else + .power = 70, + #endif .effect = EFFECT_HIT, - .power = 80, .type = TYPE_ROCK, .accuracy = 100, .pp = 20, @@ -6544,11 +7211,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_DRAIN_PUNCH] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .power = 75, + .pp = 10, + #else + .power = 60, + .pp = 5, + #endif .effect = EFFECT_ABSORB, - .power = 75, .type = TYPE_FIGHTING, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -6592,8 +7264,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ENERGY_BALL] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 90, + #else + .power = 80, + #endif .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, - .power = 90, .type = TYPE_GRASS, .accuracy = 100, .pp = 10, @@ -6915,6 +7591,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_DEFOG] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_DEFOG, .power = 0, .type = TYPE_FLYING, @@ -6923,7 +7604,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_ACC_UP_1, @@ -6947,8 +7627,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_DRACO_METEOR] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 130, + #else + .power = 140, + #endif .effect = EFFECT_OVERHEAT, - .power = 130, .type = TYPE_DRAGON, .accuracy = 90, .pp = 5, @@ -6995,8 +7679,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_LEAF_STORM] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 130, + #else + .power = 140, + #endif .effect = EFFECT_OVERHEAT, - .power = 130, .type = TYPE_GRASS, .accuracy = 90, .pp = 5, @@ -7059,10 +7747,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_GUNK_SHOT] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .accuracy = 80, + #else + .accuracy = 70, + #endif .effect = EFFECT_POISON_HIT, .power = 120, .type = TYPE_POISON, - .accuracy = 80, .pp = 5, .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, @@ -7139,6 +7831,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_STEALTH_ROCK] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_MAGICCOAT_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_STEALTH_ROCK, .power = 0, .type = TYPE_ROCK, @@ -7147,7 +7844,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_OPPONENTS_FIELD, .priority = 0, - .flags = FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_DEF_UP_1, @@ -7171,8 +7867,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_CHATTER] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 65, + #else + .power = 60, + #endif .effect = EFFECT_CONFUSE_HIT, - .power = 65, .type = TYPE_FLYING, .accuracy = 100, .pp = 20, @@ -7379,6 +8079,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_LUNAR_DANCE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_DANCE | FLAG_SNATCH_AFFECTED, + #else + .flags = FLAG_DANCE, + #endif .effect = EFFECT_HEALING_WISH, .power = 0, .type = TYPE_PSYCHIC, @@ -7387,7 +8092,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_DANCE | FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_NONE, @@ -7411,10 +8115,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_MAGMA_STORM] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 100, + .accuracy = 75, + #elif B_UPDATED_MOVE_DATA == GEN_5 + .power = 120, + .accuracy = 75, + #else + .power = 120, + .accuracy = 70, + #endif .effect = EFFECT_TRAP, - .power = 100, .type = TYPE_FIRE, - .accuracy = 75, .pp = 5, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -7427,10 +8139,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_DARK_VOID] = { + #if B_UPDATED_MOVE_DATA >= GEN_7 + .accuracy = 50, + #else + .accuracy = 80, + #endif .effect = EFFECT_SLEEP, .power = 0, .type = TYPE_DARK, - .accuracy = 50, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, @@ -7556,6 +8272,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_WONDER_ROOM] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .priority = 0, + #else + .priority = -7, + #endif .effect = EFFECT_WONDER_ROOM, .power = 0, .type = TYPE_PSYCHIC, @@ -7563,7 +8284,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 0, .flags = 0, .split = SPLIT_STATUS, .zMovePower = 0, @@ -7620,6 +8340,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_RAGE_POWDER] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .priority = 2, + #else + .priority = 3, + #endif .effect = EFFECT_FOLLOW_ME, .power = 0, .type = TYPE_BUG, @@ -7627,7 +8352,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 2, .flags = FLAG_POWDER, .split = SPLIT_STATUS, .zMovePower = 0, @@ -7652,6 +8376,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_MAGIC_ROOM] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .priority = 0, + #else + .priority = -7, + #endif .effect = EFFECT_MAGIC_ROOM, .power = 0, .type = TYPE_PSYCHIC, @@ -7659,7 +8388,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 0, .flags = 0, .split = SPLIT_STATUS, .zMovePower = 0, @@ -7684,8 +8412,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_STORM_THROW] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 60, + #else + .power = 40, + #endif .effect = EFFECT_ALWAYS_CRIT, - .power = 60, .type = TYPE_FIGHTING, .accuracy = 100, .pp = 10, @@ -7764,11 +8496,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SYNCHRONOISE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 120, + .pp = 10, + #else + .power = 70, + .pp = 15, + #endif .effect = EFFECT_SYNCHRONOISE, - .power = 120, .type = TYPE_PSYCHIC, .accuracy = 100, - .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, @@ -7844,8 +8581,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_LOW_SWEEP] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 65, + #else + .power = 60, + #endif .effect = EFFECT_SPEED_DOWN_HIT, - .power = 65, .type = TYPE_FIGHTING, .accuracy = 100, .pp = 20, @@ -8037,6 +8778,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_ALLY_SWITCH] = { + #if B_UPDATED_MOVE_DATA >= GEN_7 + .priority = 2, + #else + .priority = 1, + #endif .effect = EFFECT_ALLY_SWITCH, .power = 0, .type = TYPE_PSYCHIC, @@ -8044,7 +8790,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 1, .flags = 0, .split = SPLIT_STATUS, .zMovePower = 0, @@ -8101,8 +8846,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_HEX] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 65, + #else + .power = 50, + #endif .effect = EFFECT_HEX, - .power = 65, .type = TYPE_GHOST, .accuracy = 100, .pp = 10, @@ -8165,8 +8914,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_INCINERATE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 60, + #else + .power = 30, + #endif .effect = EFFECT_INCINERATE, - .power = 60, .type = TYPE_FIRE, .accuracy = 100, .pp = 15, @@ -8261,6 +9014,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_BESTOW] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .flags = FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_BESTOW, .power = 0, .type = TYPE_NORMAL, @@ -8269,7 +9027,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, .zMovePower = 0, .zMoveEffect = Z_EFFECT_SPD_UP_2, @@ -8293,8 +9050,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_WATER_PLEDGE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 80, + #else + .power = 50, + #endif .effect = EFFECT_PLEDGE, - .power = 80, .type = TYPE_WATER, .accuracy = 100, .pp = 10, @@ -8309,8 +9070,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FIRE_PLEDGE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 80, + #else + .power = 50, + #endif .effect = EFFECT_PLEDGE, - .power = 80, .type = TYPE_FIRE, .accuracy = 100, .pp = 10, @@ -8325,8 +9090,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_GRASS_PLEDGE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 80, + #else + .power = 50, + #endif .effect = EFFECT_PLEDGE, - .power = 80, .type = TYPE_GRASS, .accuracy = 100, .pp = 10, @@ -8357,8 +9126,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_STRUGGLE_BUG] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 50, + #else + .power = 30, + #endif .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, - .power = 50, .type = TYPE_BUG, .accuracy = 100, .pp = 20, @@ -8389,8 +9162,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FROST_BREATH] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 60, + #else + .power = 40, + #endif .effect = EFFECT_ALWAYS_CRIT, - .power = 60, .type = TYPE_ICE, .accuracy = 90, .pp = 10, @@ -8533,11 +9310,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SACRED_SWORD] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .pp = 15, + #else + .pp = 20, + #endif .effect = EFFECT_HIT, .power = 90, .type = TYPE_FIGHTING, .accuracy = 100, - .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -8677,8 +9458,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_HURRICANE] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 110, + #else + .power = 120, + #endif .effect = EFFECT_HURRICANE, - .power = 110, .type = TYPE_FLYING, .accuracy = 70, .pp = 10, @@ -8741,8 +9526,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_TECHNO_BLAST] = { - .effect = EFFECT_HIT, - .power = 120, + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 120, + #else + .power = 85, + #endif + .effect = EFFECT_CHANGE_TYPE_ON_ITEM, .type = TYPE_NORMAL, .accuracy = 100, .pp = 5, @@ -8751,6 +9540,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_SPECIAL, + .argument = HOLD_EFFECT_DRIVE, .zMovePower = 190, .zMoveEffect = Z_EFFECT_NONE, }, @@ -8967,8 +9757,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FLYING_PRESS] = { + #if B_UPDATED_MOVE_DATA >= GEN_7 + .power = 100, + #else + .power = 80, + #endif .effect = EFFECT_TWO_TYPED_MOVE, - .power = 100, .type = TYPE_FIGHTING, .accuracy = 95, .pp = 10, @@ -9049,8 +9843,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_FELL_STINGER] = { + #if B_UPDATED_MOVE_DATA >= GEN_7 + .power = 50, + #else + .power = 30, + #endif .effect = EFFECT_FELL_STINGER, - .power = 50, .type = TYPE_BUG, .accuracy = 100, .pp = 25, @@ -9131,8 +9929,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_PARABOLIC_CHARGE] = { + #if B_UPDATED_MOVE_DATA >= GEN_7 + .power = 65, + #else + .power = 50, + #endif .effect = EFFECT_ABSORB, - .power = 65, .type = TYPE_ELECTRIC, .accuracy = 100, .pp = 20, @@ -9228,10 +10030,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_TOPSY_TURVY] = { + #if B_UPDATED_MOVE_DATA >= GEN_7 + .accuracy = 0, + #else + .accuracy = 100, + #endif .effect = EFFECT_TOPSY_TURVY, .power = 0, .type = TYPE_DARK, - .accuracy = 0, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -9470,7 +10276,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_DIAMOND_STORM] = { - .effect = EFFECT_DEFENSE_UP2_HIT, + #if B_UPDATED_MOVE_DATA >= GEN_4 + .effect = EFFECT_DEFENSE_UP2_HIT, + #else + .effect = EFFECT_DEFENSE_UP_HIT, + #endif .power = 100, .type = TYPE_ROCK, .accuracy = 95, @@ -9518,6 +10328,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_WATER_SHURIKEN] = { + #if B_WATER_SHURIKEN_SPLIT >= GEN_7 + .split = SPLIT_SPECIAL, + #else + .split = SPLIT_PHYSICAL, + #endif .effect = EFFECT_MULTI_HIT, .power = 15, .type = TYPE_WATER, @@ -9527,15 +10342,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .target = MOVE_TARGET_SELECTED, .priority = 1, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - .split = SPLIT_SPECIAL, .zMovePower = 100, .zMoveEffect = Z_EFFECT_NONE, }, [MOVE_MYSTICAL_FIRE] = { + #if B_UPDATED_MOVE_DATA >= GEN_7 + .power = 75, + #else + .power = 65, + #endif .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, - .power = 75, .type = TYPE_FIRE, .accuracy = 100, .pp = 10, @@ -10766,8 +11584,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_MULTI_ATTACK] = { - .effect = EFFECT_PLACEHOLDER, - .power = 90, + #if B_UPDATED_MOVE_DATA >= GEN_8 + .power = 120, + #else + .power = 90, + #endif + .effect = EFFECT_CHANGE_TYPE_ON_ITEM, .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, @@ -10776,6 +11598,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .priority = 0, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_PHYSICAL, + .argument = HOLD_EFFECT_MEMORY, .zMovePower = 175, .zMoveEffect = Z_EFFECT_NONE, }, @@ -10827,6 +11650,262 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .zMovePower = 180, .zMoveEffect = Z_EFFECT_NONE, }, + + [MOVE_ZIPPY_ZAP] = + { + #if B_UPDATED_MOVE_DATA >= GEN_8 + .power = 80, + .pp = 10, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .power = 50, + .pp = 15, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif + .effect = EFFECT_ALWAYS_CRIT, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 2, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_SPLISHY_SPLASH] = + { + #if B_UPDATED_MOVE_DATA >= GEN_8 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif + .effect = EFFECT_PARALYZE_HIT, + .power = 90, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .split = SPLIT_SPECIAL, + }, + + [MOVE_FLOATY_FALL] = + { + #if B_UPDATED_MOVE_DATA >= GEN_8 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED, + #endif + .effect = EFFECT_FLINCH_HIT, + .power = 90, + .type = TYPE_FLYING, + .accuracy = 95, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_PIKA_PAPOW] = + { + #if B_UPDATED_MOVE_DATA >= GEN_8 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif + .effect = EFFECT_RETURN, + .power = 1, + .type = TYPE_ELECTRIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .split = SPLIT_SPECIAL, + }, + + [MOVE_BOUNCY_BUBBLE] = + { + #if B_UPDATED_MOVE_DATA >= GEN_8 + .power = 60, + .pp = 20, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .argument = 100, // restores 100% HP instead of 50% HP + #else + .power = 90, + .pp = 15, + .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif + .effect = EFFECT_ABSORB, + .type = TYPE_WATER, + .accuracy = 100, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .split = SPLIT_SPECIAL, + }, + + [MOVE_BUZZY_BUZZ] = + { + #if B_UPDATED_MOVE_DATA >= GEN_8 + .power = 60, + .pp = 20, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .power = 90, + .pp = 15, + .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif + .effect = EFFECT_PARALYZE_HIT, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .split = SPLIT_SPECIAL, + }, + + [MOVE_SIZZLY_SLIDE] = + { + #if B_UPDATED_MOVE_DATA >= GEN_8 + .power = 60, + .pp = 20, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .power = 90, + .pp = 15, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif + .effect = EFFECT_BURN_HIT, + .type = TYPE_FIRE, + .accuracy = 100, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_GLITZY_GLOW] = + { + #if B_UPDATED_MOVE_DATA >= GEN_8 + .power = 80, + .accuracy = 95, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .power = 90, + .accuracy = 100, + .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif + .effect = EFFECT_PLACEHOLDER, //TODO (Light Screen + Hit) + .type = TYPE_PSYCHIC, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .split = SPLIT_SPECIAL, + }, + + [MOVE_BADDY_BAD] = + { + #if B_UPDATED_MOVE_DATA >= GEN_8 + .power = 80, + .accuracy = 95, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .power = 90, + .accuracy = 100, + .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif + .effect = EFFECT_PLACEHOLDER, //TODO (Reflect + Hit) + .type = TYPE_DARK, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .split = SPLIT_SPECIAL, + }, + + [MOVE_SAPPY_SEED] = + { + #if B_UPDATED_MOVE_DATA >= GEN_8 + .power = 100, + .accuracy = 90, + .pp = 10, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .power = 90, + .accuracy = 100, + .pp = 15, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif + .effect = EFFECT_PLACEHOLDER, //TODO (Leech Seed + Hit) + .type = TYPE_GRASS, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_FREEZY_FROST] = + { + #if B_UPDATED_MOVE_DATA >= GEN_8 + .power = 100, + .accuracy = 90, + .pp = 10, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .power = 90, + .accuracy = 100, + .pp = 15, + .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif + .effect = EFFECT_PLACEHOLDER, //TODO (Haze + Hit) + .type = TYPE_ICE, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .split = SPLIT_SPECIAL, + }, + + [MOVE_SPARKLY_SWIRL] = + { + #if B_UPDATED_MOVE_DATA >= GEN_8 + .power = 120, + .accuracy = 85, + .pp = 5, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .power = 90, + .accuracy = 100, + .pp = 15, + .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif + .effect = EFFECT_PLACEHOLDER, //TODO (Heal Bell + Hit) + .type = TYPE_FAIRY, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .split = SPLIT_SPECIAL, + }, + + [MOVE_VEEVEE_VOLLEY] = + { + #if B_UPDATED_MOVE_DATA >= GEN_8 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif + .effect = EFFECT_RETURN, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .split = SPLIT_PHYSICAL, + }, [MOVE_DOUBLE_IRON_BASH] = { @@ -10844,6 +11923,804 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .zMoveEffect = Z_EFFECT_NONE, }, + [MOVE_DYNAMAX_CANNON] = + { + .effect = EFFECT_HIT, + .power = 100, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_SPECIAL, + }, + + [MOVE_SNIPE_SHOT] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 80, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_SPECIAL, + }, + + [MOVE_JAW_LOCK] = + { + .effect = EFFECT_MEAN_LOOK, + .power = 80, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_STRONG_JAW_BOOST, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_STUFF_CHEEKS] = + { + .effect = EFFECT_DEFENSE_UP_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + .split = SPLIT_STATUS, + }, + + [MOVE_NO_RETREAT] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 0, + .type = TYPE_FIGHTING, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + .split = SPLIT_STATUS, + }, + + [MOVE_TAR_SHOT] = + { + .effect = EFFECT_SPEED_DOWN, + .power = 0, + .type = TYPE_ROCK, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_STATUS, + }, + + [MOVE_MAGIC_POWDER] = + { + .effect = EFFECT_THIRD_TYPE, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_POWDER, + .split = SPLIT_STATUS, + .argument = TYPE_PSYCHIC, + }, + + [MOVE_DRAGON_DARTS] = + { + .effect = EFFECT_MULTI_HIT, //TODO + .power = 50, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_TEATIME] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + .split = SPLIT_STATUS, + }, + + [MOVE_OCTOLOCK] = + { + .effect = EFFECT_MEAN_LOOK, + .power = 0, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_STATUS, + }, + + [MOVE_BOLT_BEAK] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 85, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_FISHIOUS_REND] = + { + .effect = EFFECT_PLACEHOLDER, //TODO. same as bolt beak + .power = 85, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_STRONG_JAW_BOOST, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_COURT_CHANGE] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_STATUS, + }, + + [MOVE_CLANGOROUS_SOUL] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 0, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED | FLAG_SOUND, + .split = SPLIT_STATUS, + }, + + [MOVE_BODY_PRESS] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 80, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_DECORATE] = + { + .effect = EFFECT_PLACEHOLDER, // TODO .. EFFECT_DECORATE + .power = 0, + .type = TYPE_FAIRY, + .accuracy = 0, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + .split = SPLIT_STATUS, + }, + + [MOVE_DRUM_BEATING] = + { + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 80, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_SNAP_TRAP] = + { + .effect = EFFECT_TRAP, //TODO: add case/effect + .power = 35, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_PYRO_BALL] = + { + .effect = EFFECT_BURN_HIT, + .power = 120, + .type = TYPE_FIRE, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_BALLISTIC, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_BEHEMOTH_BLADE] = + { + .effect = EFFECT_HIT, //TODO: 2x damage if dynamaxed? meh... + .power = 100, + .type = TYPE_STEEL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_BEHEMOTH_BASH] = + { + .effect = EFFECT_HIT, //TODO: 2x damage if dynamaxed? meh... + .power = 100, + .type = TYPE_STEEL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_AURA_WHEEL] = + { + .effect = EFFECT_SPEED_UP_HIT, + .power = 110, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_BREAKING_SWIPE] = + { + .effect = EFFECT_ATTACK_DOWN_HIT, + .power = 60, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_BRANCH_POKE] = + { + .effect = EFFECT_HIT, + .power = 40, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_OVERDRIVE] = + { + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_SOUND, + .split = SPLIT_SPECIAL, + }, + + [MOVE_APPLE_ACID] = + { + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .power = 80, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_SPECIAL, + }, + + [MOVE_GRAV_APPLE] = + { + .effect = EFFECT_DEFENSE_DOWN_HIT, + .power = 80, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_SPIRIT_BREAK] = + { + .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, + .power = 75, + .type = TYPE_FAIRY, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_STRANGE_STEAM] = + { + .effect = EFFECT_CONFUSE_HIT, + .power = 90, + .type = TYPE_FAIRY, + .accuracy = 95, + .pp = 10, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_SPECIAL, + }, + + [MOVE_LIFE_DEW] = + { + .effect = EFFECT_RESTORE_HP, + .power = 0, + .type = TYPE_WATER, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + .split = SPLIT_STATUS, + }, + + [MOVE_OBSTRUCT] = + { + .effect = EFFECT_PLACEHOLDER, //TODO. EFFECT_PROTECT? + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 4, + .flags = 0, + .split = SPLIT_STATUS, + }, + + [MOVE_FALSE_SURRENDER] = + { + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_DARK, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_METEOR_ASSAULT] = + { + .effect = EFFECT_RECHARGE, + .power = 150, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_ETERNABEAM] = + { + .effect = EFFECT_RECHARGE, + .power = 160, + .type = TYPE_DRAGON, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_SPECIAL, + }, + + [MOVE_STEEL_BEAM] = + { + .effect = EFFECT_RECOIL_50, + .power = 140, + .type = TYPE_STEEL, + .accuracy = 95, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_SPECIAL, + }, + + [MOVE_EXPANDING_FORCE] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 80, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_SPECIAL, + }, + + [MOVE_STEEL_ROLLER] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 130, + .type = TYPE_STEEL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_SCALE_SHOT] = + { + .effect = EFFECT_PLACEHOLDER, //TODO (EFFECT_MULTI_HIT + ABILITY_WEAK_ARMOR, + .power = 25, + .type = TYPE_DRAGON, + .accuracy = 90, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_METEOR_BEAM] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 120, + .type = TYPE_ROCK, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_SPECIAL, + }, + + [MOVE_SHELL_SIDE_ARM] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 90, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_SPECIAL, + }, + + [MOVE_MISTY_EXPLOSION] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 100, + .type = TYPE_FAIRY, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_FOES_AND_ALLY, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_SPECIAL, + }, + + [MOVE_GRASSY_GLIDE] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 70, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_RISING_VOLTAGE] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 70, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_SPECIAL, + }, + + [MOVE_TERRAIN_PULSE] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 50, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_MEGA_LAUNCHER_BOOST, + .split = SPLIT_SPECIAL, + }, + + [MOVE_SKITTER_SMACK] = + { + .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, + .power = 70, + .type = TYPE_BUG, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_BURNING_JEALOUSY] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 70, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_SPECIAL, + }, + + [MOVE_LASH_OUT] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 75, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_POLTERGEIST] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 110, + .type = TYPE_GHOST, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_CORROSIVE_GAS] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 0, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_FOES_AND_ALLY, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_STATUS, + }, + + [MOVE_COACHING] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 0, + .type = TYPE_FIGHTING, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_ALLY, + .priority = 0, + .flags = 0, + .split = SPLIT_STATUS, + }, + + [MOVE_FLIP_TURN] = + { + .effect = EFFECT_HIT_ESCAPE, + .power = 60, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_TRIPLE_AXEL] = + { + .effect = EFFECT_TRIPLE_KICK, //TODO: Increase damage by 20 instead of 10 + .power = 20, + .type = TYPE_ICE, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_DUAL_WINGBEAT] = + { + .effect = EFFECT_DOUBLE_HIT, + .power = 40, + .type = TYPE_FLYING, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_SCORCHING_SANDS] = + { + .effect = EFFECT_SCALD, + .power = 70, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .split = SPLIT_SPECIAL, + }, + + [MOVE_JUNGLE_HEALING] = + { + .effect = EFFECT_PLACEHOLDER, //TODO + .power = 0, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .split = SPLIT_STATUS, + }, + + [MOVE_WICKED_BLOW] = + { + .effect = EFFECT_ALWAYS_CRIT, + .power = 80, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_IRON_FIST_BOOST, + .split = SPLIT_PHYSICAL, + }, + + [MOVE_SURGING_STRIKES] = + { + .effect = EFFECT_PLACEHOLDER, //TODO (Multi hit + Always Crit) + .power = 25, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_IRON_FIST_BOOST, + .split = SPLIT_PHYSICAL, + }, + // Z MOVES [MOVE_BREAKNECK_BLITZ] = { diff --git a/src/data/items.h b/src/data/items.h index c630d0427d..30beb53528 100644 --- a/src/data/items.h +++ b/src/data/items.h @@ -4884,549 +4884,4 @@ const struct Item gItems[] = .fieldUseFunc = ItemUseOutOfBattle_CannotUse, .secondaryId = 0, }, - - [ITEM_NORMALIUM_Z] = - { - .name = _("Normalium Z"), - .itemId = ITEM_NORMALIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_NORMAL - }, - [ITEM_FIGHTINIUM_Z] = - { - .name = _("Fightinium Z"), - .itemId = ITEM_FIGHTINIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_FIGHTING - }, - [ITEM_FLYINIUM_Z] = - { - .name = _("Flyinium Z"), - .itemId = ITEM_FLYINIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_FLYING - }, - [ITEM_POISONIUM_Z] = - { - .name = _("Poisinium Z"), - .itemId = ITEM_POISONIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_POISON - }, - [ITEM_GROUNDIUM_Z] = - { - .name = _("Groundium Z"), - .itemId = ITEM_GROUNDIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_GROUND - }, - [ITEM_ROCKIUM_Z] = - { - .name = _("Rockium Z"), - .itemId = ITEM_ROCKIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_ROCK - }, - [ITEM_BUGINIUM_Z] = - { - .name = _("Buginium Z"), - .itemId = ITEM_BUGINIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_BUG - }, - [ITEM_GHOSTIUM_Z] = - { - .name = _("Ghostium Z"), - .itemId = ITEM_GHOSTIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_GHOST - }, - [ITEM_STEELIUM_Z] = - { - .name = _("Steelium Z"), - .itemId = ITEM_STEELIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_STEEL - }, - [ITEM_FIRIUM_Z] = - { - .name = _("Firium Z"), - .itemId = ITEM_FIRIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_FIRE - }, - [ITEM_WATERIUM_Z] = - { - .name = _("Waterium Z"), - .itemId = ITEM_WATERIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_WATER - }, - [ITEM_GRASSIUM_Z] = - { - .name = _("Grassium Z"), - .itemId = ITEM_GRASSIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_GRASS - }, - [ITEM_ELECTRIUM_Z] = - { - .name = _("Electrium Z"), - .itemId = ITEM_ELECTRIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_ELECTRIC - }, - [ITEM_PSYCHIUM_Z] = - { - .name = _("Psychium Z"), - .itemId = ITEM_PSYCHIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_PSYCHIC - }, - [ITEM_ICIUM_Z] = - { - .name = _("Icium Z"), - .itemId = ITEM_ICIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_ICE - }, - [ITEM_DRAGONIUM_Z] = - { - .name = _("Dragonium Z"), - .itemId = ITEM_DRAGONIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_DRAGON - }, - [ITEM_DARKINIUM_Z] = - { - .name = _("Darkinium Z"), - .itemId = ITEM_DARKINIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_DARK - }, - [ITEM_FAIRIUM_Z] = - { - .name = _("Fairium Z"), - .itemId = ITEM_FAIRIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = TYPE_FAIRY - }, - [ITEM_ALORAICHIUM_Z] = - { - .name = _("Aloraichium Z"), - .itemId = ITEM_ALORAICHIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_DECIDIUM_Z] = - { - .name = _("Decidium Z"), - .itemId = ITEM_DECIDIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_EEVIUM_Z] = - { - .name = _("Eevium Z"), - .itemId = ITEM_EEVIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_INCINIUM_Z] = - { - .name = _("Incinium Z"), - .itemId = ITEM_INCINIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_KOMMONIUM_Z] = - { - .name = _("Kommonium Z"), - .itemId = ITEM_KOMMONIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_LUNALIUM_Z] = - { - .name = _("Lunalium Z"), - .itemId = ITEM_LUNALIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_LYCANIUM_Z] = - { - .name = _("Lycanium Z"), - .itemId = ITEM_LYCANIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_MARSHADIUM_Z] = - { - .name = _("Marshadium Z"), - .itemId = ITEM_MARSHADIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_MEWNIUM_Z] = - { - .name = _("Mewnium Z"), - .itemId = ITEM_MEWNIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_MIMIKIUM_Z] = - { - .name = _("Mimikium Z"), - .itemId = ITEM_MIMIKIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_PIKANIUM_Z] = - { - .name = _("Pikanium Z"), - .itemId = ITEM_PIKANIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_PIKASHUNIUM_Z] = - { - .name = _("Pikashunium Z"), - .itemId = ITEM_PIKASHUNIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_PRIMARIUM_Z] = - { - .name = _("Primarium Z"), - .itemId = ITEM_PRIMARIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_SNORLIUM_Z] = - { - .name = _("Snorlium Z"), - .itemId = ITEM_SNORLIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_SOLGANIUM_Z] = - { - .name = _("Solganium Z"), - .itemId = ITEM_SOLGANIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 // signature z move - }, - [ITEM_TAPUNIUM_Z] = - { - .name = _("Tapunium Z"), - .itemId = ITEM_TAPUNIUM_Z, - .price = 0, - .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .holdEffectParam = 0, - .description = sDummyDesc, - .importance = 0, - .pocket = POCKET_ITEMS, - .type = 4, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 0, - .battleUseFunc = NULL, - .secondaryId = 255 //signature z move - }, }; diff --git a/src/data/trainer_parties.h b/src/data/trainer_parties.h index 2c57f6ffc8..824a49dc3e 100644 --- a/src/data/trainer_parties.h +++ b/src/data/trainer_parties.h @@ -429,18 +429,16 @@ static const struct TrainerMonNoItemCustomMoves sParty_Felix[] = { } }; -static const struct TrainerMonItemDefaultMoves sParty_Violet[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Violet[] = { { .iv = 0, - .lvl = 45, + .lvl = 26, .species = SPECIES_ROSELIA, - .heldItem = ITEM_GRASSIUM_Z, }, { .iv = 0, - .lvl = 40, + .lvl = 26, .species = SPECIES_GLOOM, - .heldItem = 0, } }; diff --git a/src/data/trainers.h b/src/data/trainers.h index defe0accf1..163a8296db 100644 --- a/src/data/trainers.h +++ b/src/data/trainers.h @@ -547,7 +547,7 @@ const struct Trainer gTrainers[] = { [TRAINER_VIOLET] = { - .partyFlags = F_TRAINER_PARTY_HELD_ITEM, + .partyFlags = 0, .trainerClass = TRAINER_CLASS_AROMA_LADY, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE, .trainerPic = TRAINER_PIC_AROMA_LADY, @@ -556,7 +556,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Violet), - .party = {.ItemDefaultMoves = sParty_Violet}, + .party = {.NoItemDefaultMoves = sParty_Violet}, }, [TRAINER_ROSE_2] =