From a23e9a8a3755fcc5292c130c11e59db055e9827e Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 18 Oct 2020 12:07:11 -0300 Subject: [PATCH] Adapting move changes (part 2) + Hyperspace Fury type. --- include/constants/battle_config.h | 11 +++-- src/data/battle_moves.h | 76 +++++++++++++++++++++++++------ 2 files changed, 69 insertions(+), 18 deletions(-) diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index 2dc0c786a..552272808 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -79,19 +79,22 @@ #define B_RECOIL_IF_MISS_DMG GEN_6 // In Gen5+, Jump Kick and Hi Jump Kick will always do half of the user's max HP when missing. #define B_PSYWAVE_DMG GEN_6 // Psywave's damage formula. See Cmd_psywavedamageeffect. -// Move settings -#define B_UPDATED_MOVE_DATA GEN_7 // Move data varies between generations. +// Move data settings +#define B_UPDATED_MOVE_DATA GEN_7 // Updates move data in gBattleMoves, including Power, Accuracy, PP, stat changes, targets, chances of secondary effects, etc. #define B_FELL_STINGER_STAT_RAISE GEN_6 // In Gen7+, it raises Atk by 3 stages instead of 2 if it causes the target to faint. +#define B_KINGS_SHIELD_LOWER_ATK GEN_6 // In Gen7+, it lowers Atk by 1 stage instead of 2 of oponents that hit it. +#define B_SPEED_BUFFING_RAPID_SPIN GEN_8 // In Gen8, Rapid Spin raises the user's Speed by 1 stage. +#define B_WATER_SHURIKEN_SPLIT GEN_8 // In Gen7, Water Shuriken was changed from Physical to Special. + +// Other move settings #define B_SOUND_SUBSTITUTE GEN_6 // In Gen6+, sound moves bypass Substitute. #define B_TOXIC_NEVER_MISS GEN_6 // In Gen6+, if Toxic is used by a Poison type, it will never miss. #define B_PAYBACK_SWITCH_BOOST GEN_6 // In Gen5+, if the opponent switches out, Payback's damage will no longer be doubled. -#define B_KINGS_SHIELD_LOWER_ATK GEN_6 // In Gen7+, it lowers Atk by 1 stage instead of 2 of oponents that hit it. #define B_BINDING_TURNS GEN_6 // In Gen5+, binding moves last for 4-5 turns instead of 2-5 turns. (With Grip Claw, 7 and 5 turns respectively.) #define B_UPROAR_TURNS GEN_6 // In Gen5+, Uproar lasts for 3 turns instead of 2-5 turns. #define B_DISABLE_TURNS GEN_6 // Disable's turns. See Cmd_disablelastusedattack. #define B_INCINERATE_GEMS GEN_6 // In Gen6+, Incinerate can destroy Gems. #define B_MINIMIZE_DMG_ACC GEN_6 // In Gen6+, moves that causes double damage to minimized Pokémon will also skip accuracy checks. -#define B_SPEED_BUFFING_RAPID_SPIN GEN_8 // In Gen8, Rapid Spin raises the user's Speed by 1 stage. // Ability settings #define B_ABILITY_WEATHER GEN_6 // In Gen5+, weather caused by abilities lasts the same amount of turns as induced from a move. Before, they lasted till the battle's end or weather change by a move. diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index dfff64e5b..d16956962 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -184,6 +184,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [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, @@ -192,7 +197,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .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, }, @@ -780,7 +784,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [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, @@ -1942,7 +1950,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [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, @@ -2681,9 +2693,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [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, @@ -2857,9 +2873,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [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, @@ -3141,9 +3161,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [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, @@ -3603,9 +3627,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [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, @@ -3687,7 +3715,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [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, @@ -4625,12 +4657,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [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 = 50, .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, @@ -5224,7 +5260,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [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, @@ -5234,7 +5275,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .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, }, [MOVE_MAGICAL_LEAF] = @@ -8862,7 +8902,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [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, @@ -8904,6 +8948,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [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, @@ -8913,7 +8962,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .target = MOVE_TARGET_SELECTED, .priority = 1, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - .split = SPLIT_SPECIAL, }, [MOVE_MYSTICAL_FIRE] = @@ -9289,7 +9337,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { .effect = EFFECT_PLACEHOLDER, .power = 0, - .type = TYPE_MYSTERY, + .type = TYPE_DARK, .accuracy = 0, .pp = 0, .secondaryEffectChance = 0,