diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index ff407c0c4..84d0fd6e5 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -805,6 +805,55 @@ gBattleAnims_Moves:: .4byte Move_SANDSEAR_STORM .4byte Move_LUNAR_BLESSING .4byte Move_TAKE_HEART +@@@@@@@@@@@@ GEN 9 @@@@@@@@@@@@ + .4byte Move_TERA_BLAST + .4byte Move_SILK_TRAP + .4byte Move_AXE_KICK + .4byte Move_LAST_RESPECTS + .4byte Move_LUMINA_CRASH + .4byte Move_ORDER_UP + .4byte Move_JET_PUNCH + .4byte Move_SPICY_EXTRACT + .4byte Move_SPIN_OUT + .4byte Move_POPULATION_BOMB + .4byte Move_ICE_SPINNER + .4byte Move_GLAIVE_RUSH + .4byte Move_REVIVAL_BLESSING + .4byte Move_SALT_CURE + .4byte Move_TRIPLE_DIVE + .4byte Move_MORTAL_SPIN + .4byte Move_DOODLE + .4byte Move_FILLET_AWAY + .4byte Move_KOWTOW_CLEAVE + .4byte Move_FLOWER_TRICK + .4byte Move_TORCH_SONG + .4byte Move_AQUA_STEP + .4byte Move_RAGING_BULL + .4byte Move_MAKE_IT_RAIN + .4byte Move_RUINATION + .4byte Move_COLLISION_COURSE + .4byte Move_ELECTRO_DRIFT + .4byte Move_SHED_TAIL + .4byte Move_CHILLY_RECEPTION + .4byte Move_TIDY_UP + .4byte Move_SNOWSCAPE + .4byte Move_POUNCE + .4byte Move_TRAILBLAZE + .4byte Move_CHILLING_WATER + .4byte Move_HYPER_DRILL + .4byte Move_TWIN_BEAM + .4byte Move_RAGE_FIST + .4byte Move_ARMOR_CANNON + .4byte Move_BITTER_BLADE + .4byte Move_DOUBLE_SHOCK + .4byte Move_GIGATON_HAMMER + .4byte Move_COMEUPPANCE + .4byte Move_AQUA_CUTTER + .4byte Move_BLAZING_TORQUE + .4byte Move_WICKED_TORQUE + .4byte Move_NOXIOUS_TORQUE + .4byte Move_COMBAT_TORQUE + .4byte Move_MAGICAL_TORQUE @@@@ Z MOVES .4byte Move_BREAKNECK_BLITZ .4byte Move_ALL_OUT_PUMMELING @@ -14345,6 +14394,54 @@ Move_WILDBOLT_STORM:: Move_SANDSEAR_STORM:: Move_LUNAR_BLESSING:: Move_TAKE_HEART:: +Move_TERA_BLAST:: +Move_SILK_TRAP:: +Move_AXE_KICK:: +Move_LAST_RESPECTS:: +Move_LUMINA_CRASH:: +Move_ORDER_UP:: +Move_JET_PUNCH:: +Move_SPICY_EXTRACT:: +Move_SPIN_OUT:: +Move_POPULATION_BOMB:: +Move_ICE_SPINNER:: +Move_GLAIVE_RUSH:: +Move_REVIVAL_BLESSING:: +Move_SALT_CURE:: +Move_TRIPLE_DIVE:: +Move_MORTAL_SPIN:: +Move_DOODLE:: +Move_FILLET_AWAY:: +Move_KOWTOW_CLEAVE:: +Move_FLOWER_TRICK:: +Move_TORCH_SONG:: +Move_AQUA_STEP:: +Move_RAGING_BULL:: +Move_MAKE_IT_RAIN:: +Move_RUINATION:: +Move_COLLISION_COURSE:: +Move_ELECTRO_DRIFT:: +Move_SHED_TAIL:: +Move_CHILLY_RECEPTION:: +Move_TIDY_UP:: +Move_SNOWSCAPE:: +Move_POUNCE:: +Move_TRAILBLAZE:: +Move_CHILLING_WATER:: +Move_HYPER_DRILL:: +Move_TWIN_BEAM:: +Move_RAGE_FIST:: +Move_ARMOR_CANNON:: +Move_BITTER_BLADE:: +Move_DOUBLE_SHOCK:: +Move_GIGATON_HAMMER:: +Move_COMEUPPANCE:: +Move_AQUA_CUTTER:: +Move_BLAZING_TORQUE:: +Move_WICKED_TORQUE:: +Move_NOXIOUS_TORQUE:: +Move_COMBAT_TORQUE:: +Move_MAGICAL_TORQUE:: end @to do @@@@@@@@@@@@@@@@@@@@@@@ GEN 1-3 @@@@@@@@@@@@@@@@@@@@@@@ diff --git a/include/config.h b/include/config.h index ad8b3268f..590972bae 100644 --- a/include/config.h +++ b/include/config.h @@ -70,6 +70,7 @@ #define GEN_6 3 #define GEN_7 4 #define GEN_8 5 -#define GEN_LATEST GEN_8 +#define GEN_9 6 +#define GEN_LATEST GEN_9 #endif // GUARD_CONFIG_H diff --git a/include/constants/moves.h b/include/constants/moves.h index 75691de76..20cb32c54 100644 --- a/include/constants/moves.h +++ b/include/constants/moves.h @@ -809,7 +809,59 @@ #define MOVES_COUNT_GEN8 779 -#define MOVES_COUNT MOVES_COUNT_GEN8 +// Gen 9 moves. +#define MOVE_TERA_BLAST 779 +#define MOVE_SILK_TRAP 780 +#define MOVE_AXE_KICK 781 +#define MOVE_LAST_RESPECTS 782 +#define MOVE_LUMINA_CRASH 783 +#define MOVE_ORDER_UP 784 +#define MOVE_JET_PUNCH 785 +#define MOVE_SPICY_EXTRACT 786 +#define MOVE_SPIN_OUT 787 +#define MOVE_POPULATION_BOMB 788 +#define MOVE_ICE_SPINNER 789 +#define MOVE_GLAIVE_RUSH 790 +#define MOVE_REVIVAL_BLESSING 791 +#define MOVE_SALT_CURE 792 +#define MOVE_TRIPLE_DIVE 793 +#define MOVE_MORTAL_SPIN 794 +#define MOVE_DOODLE 795 +#define MOVE_FILLET_AWAY 796 +#define MOVE_KOWTOW_CLEAVE 797 +#define MOVE_FLOWER_TRICK 798 +#define MOVE_TORCH_SONG 799 +#define MOVE_AQUA_STEP 800 +#define MOVE_RAGING_BULL 801 +#define MOVE_MAKE_IT_RAIN 802 +#define MOVE_RUINATION 803 +#define MOVE_COLLISION_COURSE 804 +#define MOVE_ELECTRO_DRIFT 805 +#define MOVE_SHED_TAIL 806 +#define MOVE_CHILLY_RECEPTION 807 +#define MOVE_TIDY_UP 808 +#define MOVE_SNOWSCAPE 809 +#define MOVE_POUNCE 810 +#define MOVE_TRAILBLAZE 811 +#define MOVE_CHILLING_WATER 812 +#define MOVE_HYPER_DRILL 813 +#define MOVE_TWIN_BEAM 814 +#define MOVE_RAGE_FIST 815 +#define MOVE_ARMOR_CANNON 816 +#define MOVE_BITTER_BLADE 817 +#define MOVE_DOUBLE_SHOCK 818 +#define MOVE_GIGATON_HAMMER 819 +#define MOVE_COMEUPPANCE 820 +#define MOVE_AQUA_CUTTER 821 +#define MOVE_BLAZING_TORQUE 822 +#define MOVE_WICKED_TORQUE 823 +#define MOVE_NOXIOUS_TORQUE 824 +#define MOVE_COMBAT_TORQUE 825 +#define MOVE_MAGICAL_TORQUE 826 + +#define MOVES_COUNT_GEN9 827 + +#define MOVES_COUNT MOVES_COUNT_GEN9 // Z Moves #define MOVE_BREAKNECK_BLITZ (MOVES_COUNT + 0) diff --git a/src/battle_debug.c b/src/battle_debug.c index 568b9a96e..0868ac030 100644 --- a/src/battle_debug.c +++ b/src/battle_debug.c @@ -1767,7 +1767,7 @@ static void SetUpModifyArrows(struct BattleDebugMenu *data) break; case LIST_ITEM_MOVES: data->modifyArrows.minValue = 0; - data->modifyArrows.maxValue = MOVES_COUNT_GEN8 - 1; + data->modifyArrows.maxValue = MOVES_COUNT_GEN9 - 1; data->modifyArrows.maxDigits = 3; if (data->currentSecondaryListItemId == 4) { diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 346309c55..41d772598 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -13618,6 +13618,796 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .zMoveEffect = Z_EFFECT_NONE, }, + [MOVE_TERA_BLAST] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_TERA_BLAST, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_SPECIAL, + .zMovePower = 160, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_SILK_TRAP] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_PROTECT with extra checks + .power = 0, + .type = TYPE_BUG, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 4, + .flags = FLAG_PROTECTION_MOVE, + .split = SPLIT_STATUS, + .zMovePower = 0, + .zMoveEffect = Z_EFFECT_NONE + }, + + [MOVE_AXE_KICK] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_RECOIL_IF_MISS + 30% chance to confuse + .power = 120, + .type = TYPE_FIGHTING, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 190, + .zMoveEffect = Z_EFFECT_NONE + }, + + [MOVE_LAST_RESPECTS] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_LAST_RESPECTS + .power = 50, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 100, + .zMoveEffect = Z_EFFECT_NONE + }, + + [MOVE_LUMINA_CRASH] = + { + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT_2, + .power = 80, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_SPECIAL, + .zMovePower = 160, + .zMoveEffect = Z_EFFECT_NONE + }, + + [MOVE_ORDER_UP] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_ORDER_UP + .power = 80, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, // No King's Rock I believe? I may be mistaken + .split = SPLIT_PHYSICAL, + .zMovePower = 160, + .zMoveEffect = Z_EFFECT_NONE + }, + + [MOVE_JET_PUNCH] = + { + .effect = EFFECT_HIT, + .power = 60, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 1, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_IRON_FIST_BOOST, // I assume Iron Fist is relevant here, but untested + .split = SPLIT_PHYSICAL, + .zMovePower = 120, + .zMoveEffect = Z_EFFECT_NONE, + // The datamine master sheet mentions uncopiable by Metronome but that sounds odd? not yet implemented + }, + + [MOVE_SPICY_EXTRACT] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_SPICY_EXTRACT + .power = 0, + .type = TYPE_GRASS, + .accuracy = 0, // Supposedly never misses? needs a double check? + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_STATUS, + .zMovePower = 0, + .zMoveEffect = Z_EFFECT_NONE, + // The datamine master sheet mentions uncopiable by Metronome but that sounds odd? not yet implemented + }, + + [MOVE_SPIN_OUT] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_SPIN_OUT + .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, + .split = SPLIT_PHYSICAL, + .zMovePower = 180, + .zMoveEffect = Z_EFFECT_NONE + }, + + [MOVE_POPULATION_BOMB] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_MULTI_HIT maybe? + .power = 20, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 40, + .zMoveEffect = Z_EFFECT_NONE, + //Supposedly uncallable by Metronome? (if so, needs implementation) + //The master sheet mentions a "slicing" flag but I'm not sure what it refers to + }, + + [MOVE_ICE_SPINNER] = + { + .effect = EFFECT_DAMAGE_SET_TERRAIN, + .power = 80, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 160, + .zMoveEffect = Z_EFFECT_NONE, + .argument = 1, //remove terrain + }, + + [MOVE_GLAIVE_RUSH] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_GLAIVE_RUSH + .power = 120, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 190, + .zMoveEffect = Z_EFFECT_NONE + }, + + [MOVE_REVIVAL_BLESSING] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_REVIVAL_BLESSING + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 1, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + .split = SPLIT_STATUS, + .zMovePower = 0, + .zMoveEffect = Z_EFFECT_NONE, + // Uncallable by Metronome (to be implemented) + }, + + [MOVE_SALT_CURE] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_SALT_CURE + .power = 40, + .type = TYPE_ROCK, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 80, + .zMoveEffect = Z_EFFECT_NONE, + // Supposedly uncallable by Metronome, but dubious + }, + + [MOVE_TRIPLE_DIVE] = + { + .effect = EFFECT_TRIPLE_KICK, + .power = 30, + .type = TYPE_WATER, + .accuracy = 95, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 100, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_MORTAL_SPIN] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_MORTAL_SPIN + .power = 30, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 60, + .zMoveEffect = Z_EFFECT_NONE + }, + + [MOVE_DOODLE] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_DOODLE + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, // Supposedly unconfirmed? + .priority = 0, + .flags = 0, + .split = SPLIT_STATUS, + .zMovePower = 0, + .zMoveEffect = Z_EFFECT_NONE, + // Supposedly uncallable by Metronome (unimplemented) + }, + + [MOVE_FILLET_AWAY] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_FILLET_AWAY + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + .split = SPLIT_STATUS, + .zMovePower = 0, + .zMoveEffect = Z_EFFECT_RECOVER_HP, + // Supposedly uncallable by Metronome (unimplemented) + }, + + [MOVE_KOWTOW_CLEAVE] = + { + .effect = EFFECT_HIT, + .power = 85, + .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_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 160, + .zMoveEffect = Z_EFFECT_NONE, + // Needs a "slicing" flag (not sure what it refers to) + }, + + [MOVE_FLOWER_TRICK] = + { + .effect = EFFECT_ALWAYS_CRIT, + .power = 70, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 140, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_TORCH_SONG] = + { + .effect = EFFECT_SP_ATTACK_UP_HIT, + .power = 80, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_SOUND, + .split = SPLIT_SPECIAL, + .zMovePower = 160, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_AQUA_STEP] = + { + .effect = EFFECT_SPEED_UP_HIT, + .power = 80, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_DANCE, + .split = SPLIT_PHYSICAL, + .zMovePower = 160, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_RAGING_BULL] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_RAGING_BULL + .power = 90, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 175, + .zMoveEffect = Z_EFFECT_NONE, + // Uncallable by Metronome (to be implemented) + }, + + [MOVE_MAKE_IT_RAIN] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_MAKE_IT_RAIN + .power = 120, + .type = TYPE_STEEL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_SPECIAL, + .zMovePower = 190, + .zMoveEffect = Z_EFFECT_NONE, + // Uncallable by Metronome (to be implemented) + }, + + [MOVE_RUINATION] = + { + .effect = EFFECT_SUPER_FANG, + .power = 1, + .type = TYPE_DARK, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_SPECIAL, + .zMovePower = 100, + .zMoveEffect = Z_EFFECT_NONE, + // Uncallable by Metronome (to be implemented) + }, + + [MOVE_COLLISION_COURSE] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_COLLISION_COURSE + .power = 100, + .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, + .split = SPLIT_PHYSICAL, + .zMovePower = 180, + .zMoveEffect = Z_EFFECT_NONE, + // Uncallable by Metronome (to be implemented) + }, + + [MOVE_ELECTRO_DRIFT] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_COLLISION_COURSE + .power = 100, + .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, + .split = SPLIT_SPECIAL, + .zMovePower = 180, + .zMoveEffect = Z_EFFECT_NONE, + // Uncallable by Metronome (to be implemented) + }, + + [MOVE_SHED_TAIL] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_SHED_TAIL + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + .split = SPLIT_STATUS, + .zMovePower = 0, + .zMoveEffect = Z_EFFECT_RESET_STATS, + // Uncallable by Metronome (to be implemented) + // Supposedly unsnatchable? + }, + + [MOVE_CHILLY_RECEPTION] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_CHILLY_RECEPTION + .power = 0, + .type = TYPE_ICE, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_ALL_BATTLERS, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + .split = SPLIT_STATUS, + .zMovePower = 0, + .zMoveEffect = Z_EFFECT_SPD_UP_1, + // Supposedly uncallable by Metronome? (to be implemented) + }, + + [MOVE_TIDY_UP] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_TIDY_UP + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + .split = SPLIT_STATUS, + .zMovePower = 0, + .zMoveEffect = Z_EFFECT_NONE, + // Supposedly uncallable by Metronome? (to be implemented) + // Supposedly unsnatchable? + }, + + [MOVE_SNOWSCAPE] = + { + .effect = EFFECT_HAIL, + .power = 0, + .type = TYPE_ICE, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_ALL_BATTLERS, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + .split = SPLIT_STATUS, + .zMovePower = 0, + .zMoveEffect = Z_EFFECT_SPD_UP_1, + // Currently an exact copy of Hail until we figure out what to do with it + }, + + [MOVE_POUNCE] = + { + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 50, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + .split = SPLIT_PHYSICAL, + .zMovePower = 100, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_TRAILBLAZE] = + { + .effect = EFFECT_SPEED_UP_HIT, + .power = 50, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, + .split = SPLIT_PHYSICAL, + .zMovePower = 100, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_CHILLING_WATER] = + { + .effect = EFFECT_ATTACK_DOWN_HIT, + .power = 50, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + .split = SPLIT_SPECIAL, + .zMovePower = 100, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_HYPER_DRILL] = + { + .effect = EFFECT_HIT, + .power = 100, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 180, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_TWIN_BEAM] = + { + .effect = EFFECT_HIT, + .power = 40, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_TWO_STRIKES, + .split = SPLIT_SPECIAL, + .zMovePower = 100, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_RAGE_FIST] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_RAGE_FIST + .power = 50, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_IRON_FIST_BOOST | FLAG_SHEER_FORCE_BOOST, + .split = SPLIT_PHYSICAL, + .zMovePower = 100, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_ARMOR_CANNON] = + { + .effect = EFFECT_CLOSE_COMBAT, + .power = 120, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_SPECIAL, + .zMovePower = 190, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_BITTER_BLADE] = + { + .effect = EFFECT_ABSORB, + .power = 90, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 160, + .zMoveEffect = Z_EFFECT_NONE, + // Needs the "slicing" flag + }, + + [MOVE_DOUBLE_SHOCK] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_DOUBLE_SHOCK + .power = 120, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 190, + .zMoveEffect = Z_EFFECT_NONE + }, + + [MOVE_GIGATON_HAMMER] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_GIGATON_HAMMER + .power = 160, + .type = TYPE_STEEL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 200, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_COMEUPPANCE] = + { + .effect = EFFECT_METAL_BURST, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_AQUA_CUTTER] = + { + .effect = EFFECT_HIT, + .power = 70, + .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_KINGS_ROCK_AFFECTED | FLAG_HIGH_CRIT, + .split = SPLIT_PHYSICAL, + .zMovePower = 140, + .zMoveEffect = Z_EFFECT_NONE, + // Needs the "slicing" flag + }, + + [MOVE_BLAZING_TORQUE] = + { + .effect = EFFECT_BURN_HIT, + .power = 80, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 160, + .zMoveEffect = Z_EFFECT_NONE + }, + + [MOVE_WICKED_TORQUE] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_SLEEP_HIT + .power = 80, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 160, + .zMoveEffect = Z_EFFECT_NONE + }, + + [MOVE_NOXIOUS_TORQUE] = + { + .effect = EFFECT_POISON_HIT, + .power = 100, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 160, + .zMoveEffect = Z_EFFECT_NONE + }, + + [MOVE_COMBAT_TORQUE] = + { + .effect = EFFECT_PARALYZE_HIT, + .power = 100, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 160, + .zMoveEffect = Z_EFFECT_NONE + }, + + [MOVE_MAGICAL_TORQUE] = + { + .effect = EFFECT_CONFUSE_HIT, + .power = 100, + .type = TYPE_FAIRY, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 160, + .zMoveEffect = Z_EFFECT_NONE + }, + // Z-Moves [MOVE_BREAKNECK_BLITZ] = { diff --git a/src/data/contest_moves.h b/src/data/contest_moves.h index 244f0ddb2..2de44b348 100644 --- a/src/data/contest_moves.h +++ b/src/data/contest_moves.h @@ -5966,6 +5966,102 @@ const struct ContestMove gContestMoves[MOVES_COUNT] = [MOVE_LUNAR_BLESSING] = {0}, // TODO [MOVE_TAKE_HEART] = {0}, // TODO + + [MOVE_TERA_BLAST] = {0}, // TODO + + [MOVE_SILK_TRAP] = {0}, // TODO + + [MOVE_AXE_KICK] = {0}, // TODO + + [MOVE_LAST_RESPECTS] = {0}, // TODO + + [MOVE_LUMINA_CRASH] = {0}, // TODO + + [MOVE_ORDER_UP] = {0}, // TODO + + [MOVE_JET_PUNCH] = {0}, // TODO + + [MOVE_SPICY_EXTRACT] = {0}, // TODO + + [MOVE_SPIN_OUT] = {0}, // TODO + + [MOVE_POPULATION_BOMB] = {0}, // TODO + + [MOVE_ICE_SPINNER] = {0}, // TODO + + [MOVE_GLAIVE_RUSH] = {0}, // TODO + + [MOVE_REVIVAL_BLESSING] = {0}, // TODO + + [MOVE_SALT_CURE] = {0}, // TODO + + [MOVE_TRIPLE_DIVE] = {0}, // TODO + + [MOVE_MORTAL_SPIN] = {0}, // TODO + + [MOVE_DOODLE] = {0}, // TODO + + [MOVE_FILLET_AWAY] = {0}, // TODO + + [MOVE_KOWTOW_CLEAVE] = {0}, // TODO + + [MOVE_FLOWER_TRICK] = {0}, // TODO + + [MOVE_TORCH_SONG] = {0}, // TODO + + [MOVE_AQUA_STEP] = {0}, // TODO + + [MOVE_RAGING_BULL] = {0}, // TODO + + [MOVE_MAKE_IT_RAIN] = {0}, // TODO + + [MOVE_RUINATION] = {0}, // TODO + + [MOVE_COLLISION_COURSE] = {0}, // TODO + + [MOVE_ELECTRO_DRIFT] = {0}, // TODO + + [MOVE_SHED_TAIL] = {0}, // TODO + + [MOVE_CHILLY_RECEPTION] = {0}, // TODO + + [MOVE_TIDY_UP] = {0}, // TODO + + [MOVE_SNOWSCAPE] = {0}, // TODO + + [MOVE_POUNCE] = {0}, // TODO + + [MOVE_TRAILBLAZE] = {0}, // TODO + + [MOVE_CHILLING_WATER] = {0}, // TODO + + [MOVE_HYPER_DRILL] = {0}, // TODO + + [MOVE_TWIN_BEAM] = {0}, // TODO + + [MOVE_RAGE_FIST] = {0}, // TODO + + [MOVE_ARMOR_CANNON] = {0}, // TODO + + [MOVE_BITTER_BLADE] = {0}, // TODO + + [MOVE_DOUBLE_SHOCK] = {0}, // TODO + + [MOVE_GIGATON_HAMMER] = {0}, // TODO + + [MOVE_COMEUPPANCE] = {0}, // TODO + + [MOVE_AQUA_CUTTER] = {0}, // TODO + + [MOVE_BLAZING_TORQUE] = {0}, // TODO + + [MOVE_WICKED_TORQUE] = {0}, // TODO + + [MOVE_NOXIOUS_TORQUE] = {0}, // TODO + + [MOVE_COMBAT_TORQUE] = {0}, // TODO + + [MOVE_MAGICAL_TORQUE] = {0}, // TODO }; const struct ContestEffect gContestEffects[] = diff --git a/src/data/text/move_descriptions.h b/src/data/text/move_descriptions.h index a4a1941ad..f77989d05 100644 --- a/src/data/text/move_descriptions.h +++ b/src/data/text/move_descriptions.h @@ -2964,6 +2964,7 @@ static const u8 sPsyshieldBashDescription[] = _( static const u8 sPowerShiftDescription[] = _( "The user swaps its offensive\n" "and defensive stats."); +/* The user swaps its Attack and Defense stats. */ static const u8 sStoneAxeDescription[] = _( "High critical hit ratio. Sets\n" @@ -2976,50 +2977,81 @@ static const u8 sSpringtideStormDescription[] = _( static const u8 sMysticalPowerDescription[] = _( "Increases the user's better\n" "of Atk. and Def. stats."); +/* The user attacks by emitting a mysterious power. +This also boosts the user’s Sp. Atk stat. */ static const u8 sRagingFuryDescription[] = _( "Viciously spews flames at\n" "a foe, becoming fixated."); +// "A rampage of 2 to 3 turns\n" +// "that confuses the user."); + +/* The user rampages around spewing flames for two to +three turns. The user then becomes confused. */ static const u8 sWaveCrashDescription[] = _( "A water slam. Hurts the user\n" "and raises its Action Speed."); +/* The user shrouds itself in water and slams into the target +with its whole body to inflict damage. This also damages +the user quite a lot. */ static const u8 sChloroblastDescription[] = _( "An blast that hurts the user\n" "and lowers its Action Speed."); +/* The user launches its amassed chlorophyll to inflict +damage on the target. This also damages the user. */ static const u8 sMountainGaleDescription[] = _( "The user hurls giant chunks\n" "of ice to damage the foe."); +/* The user hurls giant chunks of ice at the target to inflict +damage. This may also make the target flinch. */ static const u8 sVictoryDanceDescription[] = _( "Dances to raise damage 50%,\n" "plus offenses and defenses."); +/* The user performs an intense dance to usher in victory, +boosting its Attack, Defense, and Speed stats. */ static const u8 sHeadlongRushDescription[] = _( "Hits with a full-body tackle,\n" "lowering the foe's Defense."); +/* The user smashes into the target in a full-body tackle. +This also lowers the user’s Defense and Sp. Def stats. */ static const u8 sBarbBarrageDescription[] = _( "Can poison on impact. Powers\n" "up if the foe has an ailment."); +/* The user launches countless toxic barbs to inflict +damage. This may also poison the target. This move’s +power is doubled if the target is already poisoned. */ static const u8 sEsperWingDescription[] = _( "High critical hit ratio.\n" "Ups the user's Action Speed."); +/* The user slashes the target with aura-enriched wings. +This also boosts the user’s Speed stat. This move has +a heightened chance of landing a critical hit. */ static const u8 sBitterMaliceDescription[] = _( "Hurts a foe harder if it has\n" "an ailment. Can give FrstBte."); +/* The user attacks the target with spine-chilling resentment. +This also lowers the target’s Attack stat. */ static const u8 sShelterDescription[] = _( "The user hardens their skin\n" "and obscures itself."); +/* The user makes its skin as hard as an iron shield, sharply +boosting its Defense stat. */ static const u8 sTripleArrowsDescription[] = _( "Ups critical-hit ratio for 3\n" "turns. Lowers foe Defenses."); +/* The user kicks, then fires three arrows. This move has a +heightened chance of landing a critical hit and may also +lower the target’s Defense stat or make it flinch. */ static const u8 sInfernalParadeDescription[] = _( "Hurts a foe harder if it has\n" @@ -3032,6 +3064,9 @@ static const u8 sCeaselessEdgeDescription[] = _( static const u8 sBleakwindStormDescription[] = _( "Hits with brutal, cold winds.\n" "May inflict frostbite."); +/* The user attacks with savagely cold winds that cause +both body and spirit to tremble. This may also lower the +Speed stats of opposing Pokémon. */ static const u8 sWildboltStormDescription[] = _( "Hits with a brutal tempest.\n" @@ -3044,11 +3079,201 @@ static const u8 sSandsearStormDescription[] = _( static const u8 sLunarBlessingDescription[] = _( "The user heals themself and\n" "conceals their presence."); +/* The user receives a blessing from the crescent moon, +restoring HP and curing status conditions for itself and +its ally Pokémon currently in the battle. */ static const u8 sTakeHeartDescription[] = _( "The user lifts its spirits to\n" "heal and strengthen itself."); +static const u8 sTeraBlastDescription[] = _( + "Unleashes the user's Tera-type\n" + "energy if Terrastallized."); + +static const u8 sSilkTrapDescription[] =_( + "Protects itself, lowering\n" + "Speed on contact."); + +static const u8 sAxeKickDescription[] = _( + "May miss and hurt the kicker.\n" + "May cause confusion."); + +static const u8 sLastRespectsDescription[] = _( + "This move deals more damage\n" + "for each defeated ally."); + +static const u8 sLuminaCrashDescription[] = _( + "A mind-affecting light\n" + "harshly lowers Sp. Def."); + +static const u8 sOrderUpDescription[] = _( + "Boosts a user's stats\n" + "depending on Tatsugiri."); + +static const u8 sJetPunchDescription[] = _( + "A punch is thrown at blinding\n" + "speed to strike first."); + +static const u8 sSpicyExtractDescription[] = _( + "Sharply boosts target's Attack,\n" + "harshly lowers its Defense."); + +static const u8 sSpinOutDescription[] = _( + "Furiously strains its legs.\n" + "Harshly lowers user's Speed."); + +static const u8 sPopulationBombDescription[] = _( + "The user's fellows hit one\n" + "to ten times in a row."); + +static const u8 sIceSpinnerDescription[] = _( + "Ice-covered feet hit a foe\n" + "and destroy the terrain."); + +static const u8 sGlaiveRushDescription[] = _( + "Enemy attacks next turn always\n" + "hit with double damage."); + +static const u8 sRevivalBlessingDescription[] = _( + "Revives a fainted party {PKMN}\n" + "and restores half of its HP."); + +static const u8 sSaltCureDescription[] = _( + "Perpetually damages foe. Super-\n" + "effective against Steel and Water."); + +static const u8 sTripleDiveDescription[] = _( + "Hits the target with splashes\n" + "of water three times in a row."); + +static const u8 sMortalSpinDescription[] = _( + "Poisons all foes and eliminates\n" + "trapping moves and Leech Seed."); + +static const u8 sDoodleDescription[] = _( + "Changes user's and ally's\n" + "Ability into the target's."); + +static const u8 sFilletAwayDescription[] = _( + "Sharply boosts offenses and\n" + "Speed by using its own HP."); + +static const u8 sKowtowCleaveDescription[] = _( + "Slashes the foe after kowtowing.\n" + "This attack never misses."); + +static const u8 sFlowerTrickDescription[] = _( + "A bouquet of flowers never misses\n" + "and always lands a critical hit."); + +static const u8 sTorchSongDescription[] = _( + "Scorches the target. Boosts the\n" + "user's Sp. Atk."); + +static const u8 sAquaStepDescription[] = _( + "Light and fluid dance steps hit.\n" + "Boosts the user's Speed."); + +static const u8 sRagingBullDescription[] = _( + "A bull-like tackle breaks barriers.\n" + "The type depends on the user's form."); + +static const u8 sMakeItRainDescription[] = _( + "The user's Sp. Atk stat is lowered.\n" + "Money is earned after battle."); + +static const u8 sRuinationDescription[] = _( + "A summoned ruinous disaster cuts\n" + "the target's HP in half."); + +static const u8 sCollisionCourseDescription[] = _( + "A massive prehistoric explosion\n" + "that is stronger when supereffective."); + +static const u8 sElectroDriftDescription[] = _( + "Futuristic electricity piercing\n" + "that is stronger when supereffective."); + +static const u8 sShedTailDescription[] = _( + "Creates a Substitute for itself\n" + "before switching out."); + +static const u8 sChillyReceptionDescription[] =_( + "A bad joke summons a snowstorm.\n" + "The user also switches out."); + +static const u8 sTidyUpDescription[] = _( + "The user tidies up hazards.\n" + "Its Attack and Speed are raised."); + +static const u8 sSnowscapeDescription[] = _( + "Summons a snowstorm that\n" + "strikes every turn."); + +static const u8 sPounceDescription[] = _( + "The user pounces on the foe,\n" + "lowering its Speed."); + +static const u8 sTrailblazeDescription[] = _( + "The user attacks suddenly,\n" + "raising its Speed."); + +static const u8 sChillingWaterDescription[] = _( + "A shower with ice-cold water\n" + "lowers the target's Attack."); + +static const u8 sHyperDrillDescription[] = _( + "A spinning pointed part pierces\n" + "through a foe's Protect."); + +static const u8 sTwinBeamDescription[] = _( + "Mystical beams from the user's\n" + "eyes hit twice in a row."); + +static const u8 sRageFistDescription[] = _( + "The more the user has been hit,\n" + "the stronger the move."); + +static const u8 sArmorCannonDescription[] = _( + "A strong attack but lowers\n" + "the defensive stats."); + +static const u8 sBitterBladeDescription[] = _( + "An attack that absorbs\n" + "half the damage inflicted."); + +static const u8 sDoubleShockDescription[] = _( + "Discharges all electricity,\n" + "losing the Electric type."); + +static const u8 sGigatonHammerDescription[] = _( + "Swings a huge hammer. Can't\n" + "be used twice in a row."); + +static const u8 sComeuppanceDescription[] = _( + "Retaliates strongly against\n" + "who last hurt the user."); + +static const u8 sAquaCutterDescription[] = _( + "Pressurized water cut with a\n" + "high critical-hit ratio."); + +static const u8 sBlazingTorqueDescription[] = _( + "---"); + +static const u8 sWickedTorqueDescription[] = _( + "---"); + +static const u8 sNoxiousTorqueDescription[] = _( + "---"); + +static const u8 sCombatTorqueDescription[] = _( + "---"); + +static const u8 sMagicalTorqueDescription[] = _( + "---"); + const u8 gNotDoneYetDescription[] = _( "This move can't be used. Its\n" "effect is in development."); @@ -3838,4 +4063,52 @@ const u8 *const gMoveDescriptionPointers[MOVES_COUNT - 1] = [MOVE_SANDSEAR_STORM - 1] = sSandsearStormDescription, [MOVE_LUNAR_BLESSING - 1] = sLunarBlessingDescription, [MOVE_TAKE_HEART - 1] = sTakeHeartDescription, + [MOVE_TERA_BLAST - 1] = sTeraBlastDescription, + [MOVE_SILK_TRAP - 1] = sSilkTrapDescription, + [MOVE_AXE_KICK - 1] = sAxeKickDescription, + [MOVE_LAST_RESPECTS - 1] = sLastRespectsDescription, + [MOVE_LUMINA_CRASH - 1] = sLuminaCrashDescription, + [MOVE_ORDER_UP - 1] = sOrderUpDescription, + [MOVE_JET_PUNCH - 1] = sJetPunchDescription, + [MOVE_SPICY_EXTRACT - 1] = sSpicyExtractDescription, + [MOVE_SPIN_OUT - 1] = sSpinOutDescription, + [MOVE_POPULATION_BOMB - 1] = sPopulationBombDescription, + [MOVE_ICE_SPINNER - 1] = sIceSpinnerDescription, + [MOVE_GLAIVE_RUSH - 1] = sGlaiveRushDescription, + [MOVE_REVIVAL_BLESSING - 1] = sRevivalBlessingDescription, + [MOVE_SALT_CURE - 1] = sSaltCureDescription, + [MOVE_TRIPLE_DIVE - 1] = sTripleDiveDescription, + [MOVE_MORTAL_SPIN - 1] = sMortalSpinDescription, + [MOVE_DOODLE - 1] = sDoodleDescription, + [MOVE_FILLET_AWAY - 1] = sFilletAwayDescription, + [MOVE_KOWTOW_CLEAVE - 1] = sKowtowCleaveDescription, + [MOVE_FLOWER_TRICK - 1] = sFlowerTrickDescription, + [MOVE_TORCH_SONG - 1] = sTorchSongDescription, + [MOVE_AQUA_STEP - 1] = sAquaStepDescription, + [MOVE_RAGING_BULL - 1] = sRagingBullDescription, + [MOVE_MAKE_IT_RAIN - 1] = sMakeItRainDescription, + [MOVE_RUINATION - 1] = sRuinationDescription, + [MOVE_COLLISION_COURSE - 1] = sCollisionCourseDescription, + [MOVE_ELECTRO_DRIFT - 1] = sElectroDriftDescription, + [MOVE_SHED_TAIL - 1] = sShedTailDescription, + [MOVE_CHILLY_RECEPTION - 1] = sChillyReceptionDescription, + [MOVE_TIDY_UP - 1] = sTidyUpDescription, + [MOVE_SNOWSCAPE - 1] = sSnowscapeDescription, + [MOVE_POUNCE - 1] = sPounceDescription, + [MOVE_TRAILBLAZE - 1] = sTrailblazeDescription, + [MOVE_CHILLING_WATER - 1] = sChillingWaterDescription, + [MOVE_HYPER_DRILL - 1] = sHyperDrillDescription, + [MOVE_TWIN_BEAM - 1] = sTwinBeamDescription, + [MOVE_RAGE_FIST - 1] = sRageFistDescription, + [MOVE_ARMOR_CANNON - 1] = sArmorCannonDescription, + [MOVE_BITTER_BLADE - 1] = sBitterBladeDescription, + [MOVE_DOUBLE_SHOCK - 1] = sDoubleShockDescription, + [MOVE_GIGATON_HAMMER - 1] = sGigatonHammerDescription, + [MOVE_COMEUPPANCE - 1] = sComeuppanceDescription, + [MOVE_AQUA_CUTTER - 1] = sAquaCutterDescription, + [MOVE_BLAZING_TORQUE - 1] = sBlazingTorqueDescription, + [MOVE_WICKED_TORQUE - 1] = sWickedTorqueDescription, + [MOVE_NOXIOUS_TORQUE - 1] = sNoxiousTorqueDescription, + [MOVE_COMBAT_TORQUE - 1] = sCombatTorqueDescription, + [MOVE_MAGICAL_TORQUE - 1] = sMagicalTorqueDescription, }; diff --git a/src/data/text/move_names.h b/src/data/text/move_names.h index 5f0a741cb..221d3db73 100644 --- a/src/data/text/move_names.h +++ b/src/data/text/move_names.h @@ -781,6 +781,54 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = [MOVE_SANDSEAR_STORM] = _("Sandsear Storm"), [MOVE_LUNAR_BLESSING] = _("Lunar Blessing"), [MOVE_TAKE_HEART] = _("Take Heart"), + [MOVE_TERA_BLAST] = _("Tera Blast"), + [MOVE_SILK_TRAP] = _("Silk Trap"), + [MOVE_AXE_KICK] = _("Axe Kick"), + [MOVE_LAST_RESPECTS] = _("Last Respects"), + [MOVE_LUMINA_CRASH] = _("Lumina Crash"), + [MOVE_ORDER_UP] = _("Order Up"), + [MOVE_JET_PUNCH] = _("Jet Punch"), + [MOVE_SPICY_EXTRACT] = _("Spicy Extract"), + [MOVE_SPIN_OUT] = _("Spin Out"), + [MOVE_POPULATION_BOMB] = _("Population Bomb"), + [MOVE_ICE_SPINNER] = _("Ice Spinner"), + [MOVE_GLAIVE_RUSH] = _("Glaive Rush"), + [MOVE_REVIVAL_BLESSING] = _("Revival Blessing"), + [MOVE_SALT_CURE] = _("Salt Cure"), + [MOVE_TRIPLE_DIVE] = _("Triple Dive"), + [MOVE_MORTAL_SPIN] = _("Mortal Spin"), + [MOVE_DOODLE] = _("Doodle"), + [MOVE_FILLET_AWAY] = _("Fillet Away"), + [MOVE_KOWTOW_CLEAVE] = _("Kowtow Cleave"), + [MOVE_FLOWER_TRICK] = _("Flower Trick"), + [MOVE_TORCH_SONG] = _("Torch Song"), + [MOVE_AQUA_STEP] = _("Aqua Step"), + [MOVE_RAGING_BULL] = _("Raging Bull"), + [MOVE_MAKE_IT_RAIN] = _("Make It Rain"), + [MOVE_RUINATION] = _("Ruination"), + [MOVE_COLLISION_COURSE] = _("Collision Course"), + [MOVE_ELECTRO_DRIFT] = _("Electro Drift"), + [MOVE_SHED_TAIL] = _("Shed Tail"), + [MOVE_CHILLY_RECEPTION] = _("Chilly Reception"), + [MOVE_TIDY_UP] = _("Tidy Up"), + [MOVE_SNOWSCAPE] = _("Snowscape"), + [MOVE_POUNCE] = _("Pounce"), + [MOVE_TRAILBLAZE] = _("Trailblaze"), + [MOVE_CHILLING_WATER] = _("Chilling Water"), + [MOVE_HYPER_DRILL] = _("Hyper Drill"), + [MOVE_TWIN_BEAM] = _("Twin Beam"), + [MOVE_RAGE_FIST] = _("Rage Fist"), + [MOVE_ARMOR_CANNON] = _("Armor Cannon"), + [MOVE_BITTER_BLADE] = _("Bitter Blade"), + [MOVE_DOUBLE_SHOCK] = _("Double Shock"), + [MOVE_GIGATON_HAMMER] = _("Gigaton Hammer"), + [MOVE_COMEUPPANCE] = _("Comeuppance"), + [MOVE_AQUA_CUTTER] = _("Aqua Cutter"), + [MOVE_BLAZING_TORQUE] = _("Blazing Torque"), + [MOVE_WICKED_TORQUE] = _("Wicked Torque"), + [MOVE_NOXIOUS_TORQUE] = _("Noxious Torque"), + [MOVE_COMBAT_TORQUE] = _("Combat Torque"), + [MOVE_MAGICAL_TORQUE] = _("Magical Torque"), }; #else // 12 letters @@ -1565,6 +1613,54 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = [MOVE_SANDSEAR_STORM] = _("SndsearStorm"), [MOVE_LUNAR_BLESSING] = _("LunarBlessng"), [MOVE_TAKE_HEART] = _("Take Heart"), + [MOVE_TERA_BLAST] = _("Tera Blast"), + [MOVE_SILK_TRAP] = _("Silk Trap"), + [MOVE_AXE_KICK] = _("Axe Kick"), + [MOVE_LAST_RESPECTS] = _("LastRespects"), + [MOVE_LUMINA_CRASH] = _("Lumina Crash"), + [MOVE_ORDER_UP] = _("Order Up"), + [MOVE_JET_PUNCH] = _("Jet Punch"), + [MOVE_SPICY_EXTRACT] = _("SpicyExtract"), + [MOVE_SPIN_OUT] = _("Spin Out"), + [MOVE_POPULATION_BOMB] = _("PoplatinBomb"), + [MOVE_ICE_SPINNER] = _("Ice Spinner"), + [MOVE_GLAIVE_RUSH] = _("Glaive Rush"), + [MOVE_REVIVAL_BLESSING] = _("RevivlBlesng"), + [MOVE_SALT_CURE] = _("Salt Cure"), + [MOVE_TRIPLE_DIVE] = _("Triple Dive"), + [MOVE_MORTAL_SPIN] = _("Mortal Spin"), + [MOVE_DOODLE] = _("Doodle"), + [MOVE_FILLET_AWAY] = _("Fillet Away"), + [MOVE_KOWTOW_CLEAVE] = _("KowtowCleave"), + [MOVE_FLOWER_TRICK] = _("Flower Trick"), + [MOVE_TORCH_SONG] = _("Torch Song"), + [MOVE_AQUA_STEP] = _("Aqua Step"), + [MOVE_RAGING_BULL] = _("Raging Bull"), + [MOVE_MAKE_IT_RAIN] = _("Make It Rain"), + [MOVE_RUINATION] = _("Ruination"), + [MOVE_COLLISION_COURSE] = _("ColisinCours"), + [MOVE_ELECTRO_DRIFT] = _("ElectroDrift"), + [MOVE_SHED_TAIL] = _("Shed Tail"), + [MOVE_CHILLY_RECEPTION] = _("ChilReceptin"), + [MOVE_TIDY_UP] = _("Tidy Up"), + [MOVE_SNOWSCAPE] = _("Snowscape"), + [MOVE_POUNCE] = _("Pounce"), + [MOVE_TRAILBLAZE] = _("Trailblaze"), + [MOVE_CHILLING_WATER] = _("ChillingWatr"), + [MOVE_HYPER_DRILL] = _("Hyper Drill"), + [MOVE_TWIN_BEAM] = _("Twin Beam"), + [MOVE_RAGE_FIST] = _("Rage Fist"), + [MOVE_ARMOR_CANNON] = _("Armor Cannon"), + [MOVE_BITTER_BLADE] = _("Bitter Blade"), + [MOVE_DOUBLE_SHOCK] = _("Double Shock"), + [MOVE_GIGATON_HAMMER] = _("GigatonHammr"), + [MOVE_COMEUPPANCE] = _("Comeuppance"), + [MOVE_AQUA_CUTTER] = _("Aqua Cutter"), + [MOVE_BLAZING_TORQUE] = _("BlazngTorque"), + [MOVE_WICKED_TORQUE] = _("WickedTorque"), + [MOVE_NOXIOUS_TORQUE] = _("NoxiusTorque"), + [MOVE_COMBAT_TORQUE] = _("CombatTorque"), + [MOVE_MAGICAL_TORQUE] = _("MagiclTorque"), }; #endif