diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index f470a789f6..af6f9867b8 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -97,7 +97,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectAccuracyDownHit @ EFFECT_ACCURACY_DOWN_HIT .4byte BattleScript_EffectHit @ EFFECT_EVASION_DOWN_HIT .4byte BattleScript_EffectTwoTurnsAttack @ EFFECT_TWO_TURNS_ATTACK - .4byte BattleScript_EffectConfuseHit @ EFFECT_CONFUSE_HIT + .4byte BattleScript_EffectHit @ EFFECT_UNUSED_75 .4byte BattleScript_EffectHit @ EFFECT_VITAL_THROW .4byte BattleScript_EffectSubstitute @ EFFECT_SUBSTITUTE .4byte BattleScript_EffectRecharge @ EFFECT_RECHARGE @@ -434,7 +434,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectMakeItRain @ EFFECT_MAKE_IT_RAIN .4byte BattleScript_EffectCorrosiveGas @ EFFECT_CORROSIVE_GAS .4byte BattleScript_EffectHit @ EFFECT_POPULATION_BOMB - .4byte BattleScript_EffectMortalSpin @ EFFECT_MORTAL_SPIN + .4byte BattleScript_EffectHit @ EFFECT_UNUSED_408 .4byte BattleScript_EffectSaltCure @ EFFECT_SALT_CURE .4byte BattleScript_EffectSyrupBomb @ EFFECT_SYRUP_BOMB .4byte BattleScript_EffectHit @ EFFECT_IVY_CUDGEL @@ -493,15 +493,6 @@ BattleScript_HurtTarget_NoString: tryfaintmon BS_TARGET return -BattleScript_EffectMortalSpin: - call BattleScript_EffectHit_Ret - rapidspinfree - setmoveeffect MOVE_EFFECT_POISON - seteffectwithchance - tryfaintmon BS_TARGET - moveendall - end - BattleScript_EffectCorrosiveGas: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index 09f9ddced9..69bfb3d22b 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -76,7 +76,7 @@ #define EFFECT_ACCURACY_DOWN_HIT 72 #define EFFECT_EVASION_DOWN_HIT 73 #define EFFECT_TWO_TURNS_ATTACK 74 -#define EFFECT_CONFUSE_HIT 75 +#define EFFECT_UNUSED_75 75 #define EFFECT_VITAL_THROW 76 #define EFFECT_SUBSTITUTE 77 #define EFFECT_RECHARGE 78 @@ -411,7 +411,7 @@ #define EFFECT_MAKE_IT_RAIN 405 #define EFFECT_CORROSIVE_GAS 406 #define EFFECT_POPULATION_BOMB 407 -#define EFFECT_MORTAL_SPIN 408 +#define EFFECT_UNUSED_408 408 #define EFFECT_SALT_CURE 409 #define EFFECT_SYRUP_BOMB 410 #define EFFECT_IVY_CUDGEL 411 diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index f456db6dbd..8d56988e35 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -854,10 +854,6 @@ static bool32 AI_IsMoveEffectInPlus(u32 battlerAtk, u32 battlerDef, u32 move, s3 if (AI_CanGetFrostbite(battlerDef, abilityDef)) return TRUE; break; - case EFFECT_CONFUSE_HIT: - if (AI_CanConfuse(battlerAtk, battlerDef, abilityDef, BATTLE_PARTNER(battlerAtk), move, MOVE_NONE)) - return TRUE; - break; case EFFECT_HIT_ESCAPE: if (CountUsablePartyMons(battlerAtk) != 0 && ShouldPivot(battlerAtk, battlerDef, abilityDef, move, AI_THINKING_STRUCT->movesetIndex)) return TRUE; @@ -945,6 +941,10 @@ static bool32 AI_IsMoveEffectInPlus(u32 battlerAtk, u32 battlerDef, u32 move, s3 if (AI_CanParalyze(battlerAtk, battlerDef, abilityDef, move, MOVE_NONE)) return TRUE; break; + case MOVE_EFFECT_CONFUSION: + if (AI_CanConfuse(battlerAtk, battlerDef, abilityDef, BATTLE_PARTNER(battlerAtk), move, MOVE_NONE)) + return TRUE; + break; case MOVE_EFFECT_FLINCH: if (ShouldTryToFlinch(battlerAtk, battlerDef, abilityAtk, abilityDef, move)) return TRUE; diff --git a/src/battle_tv.c b/src/battle_tv.c index 67c1e9f5fa..3a28374fcd 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -158,7 +158,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] = [EFFECT_ACCURACY_DOWN_HIT] = 1, [EFFECT_EVASION_DOWN_HIT] = 1, // [EFFECT_SKY_ATTACK] = 4, - [EFFECT_CONFUSE_HIT] = 1, // [EFFECT_TWINEEDLE] = 1, [EFFECT_VITAL_THROW] = 1, [EFFECT_SUBSTITUTE] = 4, diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 58235edd1e..7bd2b06cf8 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -1083,17 +1083,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_PSYBEAM] = { - .effect = EFFECT_CONFUSE_HIT, + .effect = EFFECT_HIT, .power = 65, .type = TYPE_PSYCHIC, .accuracy = 100, .pp = 20, - .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, .sheerForceBoost = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 10) + ) }, [MOVE_BUBBLE_BEAM] = @@ -1661,17 +1663,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_CONFUSION] = { - .effect = EFFECT_CONFUSE_HIT, + .effect = EFFECT_HIT, .power = 50, .type = TYPE_PSYCHIC, .accuracy = 100, .pp = 25, - .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, .sheerForceBoost = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 10) + ) }, [MOVE_PSYCHIC] = @@ -2623,12 +2627,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_DIZZY_PUNCH] = { - .effect = EFFECT_CONFUSE_HIT, + .effect = EFFECT_HIT, .power = 70, .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, - .secondaryEffectChance = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_PHYSICAL, @@ -2636,6 +2639,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .makesContact = TRUE, .punchingMove = TRUE, .sheerForceBoost = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 20) + ) }, [MOVE_SPORE] = @@ -4040,12 +4046,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_DYNAMIC_PUNCH] = { - .effect = EFFECT_CONFUSE_HIT, + .effect = EFFECT_HIT, .power = 100, .type = TYPE_FIGHTING, .accuracy = 50, .pp = 5, - .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_PHYSICAL, @@ -4053,6 +4058,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .makesContact = TRUE, .punchingMove = TRUE, .sheerForceBoost = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 100) + ) }, [MOVE_MEGAHORN] = @@ -5837,17 +5845,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_SIGNAL_BEAM] = { - .effect = EFFECT_CONFUSE_HIT, + .effect = EFFECT_HIT, .power = 75, .type = TYPE_BUG, .accuracy = 100, .pp = 15, - .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, .sheerForceBoost = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 10) + ) }, [MOVE_SHADOW_PUNCH] = @@ -6341,18 +6351,20 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_WATER_PULSE] = { - .effect = EFFECT_CONFUSE_HIT, + .effect = EFFECT_HIT, .power = 60, .type = TYPE_WATER, .accuracy = 100, .pp = 20, - .secondaryEffectChance = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, .sheerForceBoost = TRUE, .pulseMove = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 20) + ) }, [MOVE_DOOM_DESIRE] = @@ -7690,18 +7702,20 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_ROCK_CLIMB] = { - .effect = EFFECT_CONFUSE_HIT, + .effect = EFFECT_HIT, .power = 90, .type = TYPE_NORMAL, .accuracy = 85, .pp = 20, - .secondaryEffectChance = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, .sheerForceBoost = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 20) + ) }, [MOVE_DEFOG] = @@ -7976,15 +7990,21 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = { #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 65, - .secondaryEffectChance = 100, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 100) + ), #elif B_UPDATED_MOVE_DATA == GEN_5 .power = 60, - .secondaryEffectChance = 10, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 10) + ), #else .power = 60, - .secondaryEffectChance = 31, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 31) + ), #endif - .effect = EFFECT_CONFUSE_HIT, + .effect = EFFECT_HIT, .type = TYPE_FLYING, .accuracy = 100, .pp = 20, @@ -12585,18 +12605,20 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_STRANGE_STEAM] = { - .effect = EFFECT_CONFUSE_HIT, + .effect = EFFECT_HIT, .power = 90, .type = TYPE_FAIRY, .accuracy = 95, .pp = 10, - .secondaryEffectChance = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, .sheerForceBoost = TRUE, .metronomeBanned = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 20) + ) }, [MOVE_LIFE_DEW] = @@ -14454,12 +14476,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_MAGICAL_TORQUE] = { - .effect = EFFECT_CONFUSE_HIT, + .effect = EFFECT_HIT, .power = 100, .type = TYPE_FAIRY, .accuracy = 100, .pp = 10, - .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_PHYSICAL, @@ -14474,6 +14495,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .instructBanned = TRUE, .encoreBanned = TRUE, .assistBanned = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 30) + ) }, [MOVE_PSYBLADE] =