diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index afe74590bb..02993884d5 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -221,7 +221,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectMudSport @ EFFECT_MUD_SPORT .4byte BattleScript_EffectHit @ EFFECT_UNUSED_197 .4byte BattleScript_EffectHit @ EFFECT_WEATHER_BALL - .4byte BattleScript_EffectOverheat @ EFFECT_OVERHEAT + .4byte BattleScript_EffectHit @ EFFECT_UNUSED_199 .4byte BattleScript_EffectTickle @ EFFECT_TICKLE .4byte BattleScript_EffectCosmicPower @ EFFECT_COSMIC_POWER .4byte BattleScript_EffectSkyUppercut @ EFFECT_SKY_UPPERCUT @@ -432,7 +432,6 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectHit @ EFFECT_POPULATION_BOMB .4byte BattleScript_EffectHit @ EFFECT_UNUSED_408 .4byte BattleScript_EffectSaltCure @ EFFECT_SALT_CURE - .4byte BattleScript_EffectSyrupBomb @ EFFECT_SYRUP_BOMB .4byte BattleScript_EffectHit @ EFFECT_IVY_CUDGEL .4byte BattleScript_EffectMaxMove @ EFFECT_MAX_MOVE .4byte BattleScript_EffectGlaiveRush @ EFFECT_GLAIVE_RUSH @@ -443,12 +442,6 @@ BattleScript_EffectGlaiveRush:: setglaiverush goto BattleScript_TryFaintMon -BattleScript_EffectSyrupBomb:: - setmoveeffect MOVE_EFFECT_SYRUP_BOMB - call BattleScript_EffectHit_Ret - tryfaintmon BS_TARGET - goto BattleScript_MoveEnd - BattleScript_SyrupBombActivates:: printstring STRINGID_TARGETCOVEREDINSTICKYCANDYSYRUP waitmessage B_WAIT_TIME_LONG @@ -5891,10 +5884,6 @@ BattleScript_EffectWaterSport:: waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_EffectOverheat:: - setmoveeffect MOVE_EFFECT_SP_ATK_TWO_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN - goto BattleScript_EffectHit - BattleScript_EffectHammerArm:: setmoveeffect MOVE_EFFECT_SPD_MINUS_1 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN goto BattleScript_EffectHit diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index 38dda767d1..35dd8e6458 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -200,7 +200,7 @@ #define EFFECT_MUD_SPORT 196 #define EFFECT_UNUSED_197 197 #define EFFECT_WEATHER_BALL 198 -#define EFFECT_OVERHEAT 199 +#define EFFECT_UNUSED_199 199 #define EFFECT_TICKLE 200 #define EFFECT_COSMIC_POWER 201 #define EFFECT_SKY_UPPERCUT 202 @@ -413,11 +413,10 @@ #define EFFECT_POPULATION_BOMB 407 #define EFFECT_UNUSED_408 408 #define EFFECT_SALT_CURE 409 -#define EFFECT_SYRUP_BOMB 410 -#define EFFECT_IVY_CUDGEL 411 -#define EFFECT_MAX_MOVE 412 -#define EFFECT_GLAIVE_RUSH 413 +#define EFFECT_IVY_CUDGEL 410 +#define EFFECT_MAX_MOVE 411 +#define EFFECT_GLAIVE_RUSH 412 -#define NUM_BATTLE_MOVE_EFFECTS 414 +#define NUM_BATTLE_MOVE_EFFECTS 413 #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index 76f454eb66..b622fe423b 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -4340,7 +4340,6 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score ADJUST_SCORE(1); break; case EFFECT_SUPERPOWER: - case EFFECT_OVERHEAT: case EFFECT_MAKE_IT_RAIN: if (aiData->abilities[battlerAtk] == ABILITY_CONTRARY) ADJUST_SCORE(3); @@ -4871,6 +4870,11 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score if (sereneGraceBoost) IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPATK, &score); break; + // case EFFECT_SUPERPOWER: + case MOVE_EFFECT_SP_ATK_TWO_DOWN: + if (aiData->abilities[battlerAtk] == ABILITY_CONTRARY) + ADJUST_SCORE(3); + break; } } else // consider move effects that hinder the target diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 4cd33dad26..476f3a4bb6 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -956,7 +956,6 @@ static bool32 AI_IsMoveEffectInMinus(u32 battlerAtk, u32 battlerDef, u32 move, s { case EFFECT_RECHARGE: case EFFECT_SUPERPOWER: - case EFFECT_OVERHEAT: case EFFECT_MAKE_IT_RAIN: case EFFECT_MIND_BLOWN: case EFFECT_STEEL_BEAM: @@ -978,6 +977,7 @@ static bool32 AI_IsMoveEffectInMinus(u32 battlerAtk, u32 battlerDef, u32 move, s case MOVE_EFFECT_DEF_MINUS_1: case MOVE_EFFECT_SPD_MINUS_1: case MOVE_EFFECT_SP_ATK_MINUS_1: + case MOVE_EFFECT_SP_ATK_TWO_DOWN: case MOVE_EFFECT_SP_DEF_MINUS_1: case MOVE_EFFECT_SP_DEF_MINUS_2: if ((gBattleMoves[move].additionalEffects[i].self && GetBattlerAbility(battlerAtk) != ABILITY_CONTRARY) diff --git a/src/battle_tv.c b/src/battle_tv.c index 4666845355..1bd97fcb4d 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -267,7 +267,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] = // [EFFECT_BLAZE_KICK] = 1, [EFFECT_MUD_SPORT] = 4, [EFFECT_WEATHER_BALL] = 1, - [EFFECT_OVERHEAT] = 3, [EFFECT_TICKLE] = 1, [EFFECT_COSMIC_POWER] = 1, [EFFECT_SKY_UPPERCUT] = 1, diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 1941b6d82d..4d29c8754e 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -1145,7 +1145,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_NONE, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3, ADDITIONAL_EFFECTS( - PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), }, @@ -3884,7 +3884,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( - SECONDARY_EFFECT_SELF(MOVE_EFFECT_DEF_PLUS_1, 10), + SECONDARY_EFFECT_SELF(MOVE_EFFECT_DEF_PLUS_1, 10) ), }, @@ -5607,7 +5607,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, ADDITIONAL_EFFECTS( - PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), }, @@ -5623,7 +5623,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, ADDITIONAL_EFFECTS( - PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), }, @@ -5740,23 +5740,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_OVERHEAT] = { - #if B_UPDATED_MOVE_DATA >= GEN_6 - .power = 130, - #elif B_UPDATED_MOVE_DATA >= GEN_4 - .power = 140, - #else - .power = 140, - .makesContact = TRUE, - #endif - .effect = EFFECT_OVERHEAT, + .effect = EFFECT_HIT, + .power = B_UPDATED_MOVE_DATA >= GEN_6 ? 130 : 140, .type = TYPE_FIRE, .accuracy = 90, .pp = 5, - .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, + .makesContact = B_UPDATED_MOVE_DATA < GEN_4, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_TWO_DOWN) + ), }, [MOVE_ODOR_SLEUTH] = @@ -6161,7 +6157,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, ADDITIONAL_EFFECTS( - PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), }, @@ -6456,16 +6452,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_PSYCHO_BOOST] = { - .effect = EFFECT_OVERHEAT, + .effect = EFFECT_HIT, .power = 140, .type = TYPE_PSYCHIC, .accuracy = 90, .pp = 5, - .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_TWO_DOWN) + ), }, [MOVE_ROOST] = @@ -7537,7 +7535,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, ADDITIONAL_EFFECTS( - PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), }, @@ -7655,9 +7653,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .sheerForceBoost = TRUE, .bitingMove = TRUE, ADDITIONAL_EFFECTS( - SECONDARY_EFFECT(B_USE_FROSTBITE ? MOVE_EFFECT_FROSTBITE : MOVE_EFFECT_FREEZE, 10), + SECONDARY_EFFECT(MOVE_EFFECT_FREEZE_OR_FROSTBITE, 10), SECONDARY_EFFECT(MOVE_EFFECT_FLINCH, 10) - ) + ), }, [MOVE_FIRE_FANG] = @@ -7833,20 +7831,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_DRACO_METEOR] = { - #if B_UPDATED_MOVE_DATA >= GEN_6 - .power = 130, - #else - .power = 140, - #endif - .effect = EFFECT_OVERHEAT, + .effect = EFFECT_HIT, + .power = B_UPDATED_MOVE_DATA >= GEN_6 ? 130 : 140, .type = TYPE_DRAGON, .accuracy = 90, .pp = 5, - .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_TWO_DOWN) + ), }, [MOVE_DISCHARGE] = @@ -7885,20 +7881,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_LEAF_STORM] = { - #if B_UPDATED_MOVE_DATA >= GEN_6 - .power = 130, - #else - .power = 140, - #endif - .effect = EFFECT_OVERHEAT, + .effect = EFFECT_HIT, + .power = B_UPDATED_MOVE_DATA >= GEN_6 ? 130 : 140, .type = TYPE_GRASS, .accuracy = 90, .pp = 5, - .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_TWO_DOWN) + ), }, [MOVE_POWER_WHIP] = @@ -7929,7 +7923,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_NONE, .ballisticMove = TRUE, ADDITIONAL_EFFECTS( - PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), }, @@ -8274,7 +8268,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, ADDITIONAL_EFFECTS( - PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), }, @@ -10566,7 +10560,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .sheerForceBoost = TRUE, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( - SECONDARY_EFFECT_SELF(B_UPDATED_MOVE_DATA >= GEN_7 ? MOVE_EFFECT_DEF_PLUS_2: MOVE_EFFECT_DEF_PLUS_1, 50), + SECONDARY_EFFECT_SELF(B_UPDATED_MOVE_DATA >= GEN_7 ? MOVE_EFFECT_DEF_PLUS_2: MOVE_EFFECT_DEF_PLUS_1, 50) ), }, @@ -11707,17 +11701,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_FLEUR_CANNON] = { - .effect = EFFECT_OVERHEAT, + .effect = EFFECT_HIT, .power = 130, .type = TYPE_FAIRY, .accuracy = 90, .pp = 5, - .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, .metronomeBanned = TRUE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_TWO_DOWN) + ), }, [MOVE_PSYCHIC_FANGS] = @@ -11813,7 +11809,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, ADDITIONAL_EFFECTS( - PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), }, @@ -12335,7 +12331,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .makesContact = TRUE, .bitingMove = TRUE, ADDITIONAL_EFFECTS( - PRIMARY_EFFECT(MOVE_EFFECT_TRAP_BOTH), + PRIMARY_EFFECT(MOVE_EFFECT_TRAP_BOTH) ), }, @@ -12853,7 +12849,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .metronomeBanned = TRUE, .instructBanned = TRUE, ADDITIONAL_EFFECTS( - PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), }, @@ -12870,7 +12866,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_NONE, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( - PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), }, @@ -14766,23 +14762,25 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .healBlockBanned = B_EXTRAPOLATED_MOVE_FLAGS, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_BURN, 20) - ) + ), }, [MOVE_SYRUP_BOMB] = { - .effect = EFFECT_SYRUP_BOMB, + .effect = EFFECT_HIT, .power = 60, .type = TYPE_GRASS, .accuracy = 85, .pp = 10, - .secondaryEffectChance = 100, // syrup bomb volatile status .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, .ballisticMove = TRUE, .metronomeBanned = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_SYRUP_BOMB, 100) + ), }, [MOVE_IVY_CUDGEL] = diff --git a/test/battle/ability/contrary.c b/test/battle/ability/contrary.c index 76c3d68c58..63c5938c45 100644 --- a/test/battle/ability/contrary.c +++ b/test/battle/ability/contrary.c @@ -82,7 +82,7 @@ SINGLE_BATTLE_TEST("Contrary raises stats after using a move which would normall PARAMETRIZE { ability = ABILITY_CONTRARY; } PARAMETRIZE { ability = ABILITY_TANGLED_FEET; } GIVEN { - ASSUME(gBattleMoves[MOVE_OVERHEAT].effect == EFFECT_OVERHEAT); + ASSUME(gBattleMoves[MOVE_OVERHEAT].additionalEffects[0].moveEffect == MOVE_EFFECT_SP_ATK_TWO_DOWN); ASSUME(gBattleMoves[MOVE_OVERHEAT].split == SPLIT_SPECIAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_SPINDA) { Ability(ability); }