From a1a62f431db0ae45b7e674e45403f07151fe544f Mon Sep 17 00:00:00 2001 From: Nephrite Date: Tue, 28 Nov 2023 00:03:42 +0900 Subject: [PATCH] More moves Poison Fang, Knock Off, Thunder, Hurricane, Snore; also Thief, hit_and_escape moves, recharge moves, (but didn't remove effect) --- data/battle_scripts_1.s | 49 ++-------- include/constants/battle_move_effects.h | 2 +- src/battle_ai_main.c | 2 - src/battle_ai_util.c | 4 - src/battle_tv.c | 1 - .../battle_pyramid_wild_requirements.h | 2 +- src/data/battle_moves.h | 90 +++++++++++++------ 7 files changed, 72 insertions(+), 78 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index d1dfa5a157..074e423386 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -100,7 +100,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectHit @ EFFECT_UNUSED_75 .4byte BattleScript_EffectHit @ EFFECT_VITAL_THROW .4byte BattleScript_EffectSubstitute @ EFFECT_SUBSTITUTE - .4byte BattleScript_EffectRecharge @ EFFECT_RECHARGE + .4byte BattleScript_EffectHit @ EFFECT_RECHARGE .4byte BattleScript_EffectRage @ EFFECT_RAGE .4byte BattleScript_EffectMimic @ EFFECT_MIMIC .4byte BattleScript_EffectMetronome @ EFFECT_METRONOME @@ -125,7 +125,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectHealBell @ EFFECT_HEAL_BELL .4byte BattleScript_EffectHit @ EFFECT_ALWAYS_CRIT .4byte BattleScript_EffectTripleKick @ EFFECT_TRIPLE_KICK - .4byte BattleScript_EffectThief @ EFFECT_THIEF + .4byte BattleScript_EffectHit @ EFFECT_THIEF .4byte BattleScript_EffectMeanLook @ EFFECT_MEAN_LOOK .4byte BattleScript_EffectNightmare @ EFFECT_NIGHTMARE .4byte BattleScript_EffectMinimize @ EFFECT_MINIMIZE @@ -169,7 +169,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectFutureSight @ EFFECT_FUTURE_SIGHT .4byte BattleScript_EffectGust @ EFFECT_GUST .4byte BattleScript_EffectSolarBeam @ EFFECT_SOLAR_BEAM - .4byte BattleScript_EffectThunder @ EFFECT_THUNDER + .4byte BattleScript_EffectHit @ EFFECT_THUNDER .4byte BattleScript_EffectTeleport @ EFFECT_TELEPORT .4byte BattleScript_EffectBeatUp @ EFFECT_BEAT_UP .4byte BattleScript_EffectSemiInvulnerable @ EFFECT_SEMI_INVULNERABLE @@ -205,7 +205,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectHit @ EFFECT_REVENGE .4byte BattleScript_EffectBrickBreak @ EFFECT_BRICK_BREAK .4byte BattleScript_EffectYawn @ EFFECT_YAWN - .4byte BattleScript_EffectKnockOff @ EFFECT_KNOCK_OFF + .4byte BattleScript_EffectHit @ EFFECT_KNOCK_OFF .4byte BattleScript_EffectEndeavor @ EFFECT_ENDEAVOR .4byte BattleScript_EffectHit @ EFFECT_ERUPTION .4byte BattleScript_EffectSkillSwap @ EFFECT_SKILL_SWAP @@ -219,7 +219,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectTeeterDance @ EFFECT_TEETER_DANCE .4byte BattleScript_EffectHitEscape @ EFFECT_HIT_ESCAPE .4byte BattleScript_EffectMudSport @ EFFECT_MUD_SPORT - .4byte BattleScript_EffectPoisonFang @ EFFECT_POISON_FANG + .4byte BattleScript_EffectHit @ EFFECT_UNUSED_197 .4byte BattleScript_EffectHit @ EFFECT_WEATHER_BALL .4byte BattleScript_EffectOverheat @ EFFECT_OVERHEAT .4byte BattleScript_EffectTickle @ EFFECT_TICKLE @@ -291,7 +291,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectPsychicTerrain @ EFFECT_PSYCHIC_TERRAIN .4byte BattleScript_EffectAttackAccUp @ EFFECT_ATTACK_ACCURACY_UP .4byte BattleScript_EffectAttackSpAttackUp @ EFFECT_ATTACK_SPATK_UP - .4byte BattleScript_EffectHurricane @ EFFECT_HURRICANE + .4byte BattleScript_EffectHit @ EFFECT_HURRICANE .4byte BattleScript_EffectHit @ EFFECT_TWO_TYPED_MOVE .4byte BattleScript_EffectMeFirst @ EFFECT_ME_FIRST .4byte BattleScript_EffectSpeedUpHit @ EFFECT_SPEED_UP_HIT @@ -329,7 +329,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectBestow @ EFFECT_BESTOW .4byte BattleScript_EffectRototiller @ EFFECT_ROTOTILLER .4byte BattleScript_EffectFlowerShield @ EFFECT_FLOWER_SHIELD - .4byte BattleScript_EffectHitPreventEscape @ EFFECT_HIT_PREVENT_ESCAPE + .4byte BattleScript_EffectHit @ EFFECT_HIT_PREVENT_ESCAPE .4byte BattleScript_EffectSpeedSwap @ EFFECT_SPEED_SWAP .4byte BattleScript_EffectDefenseUp2Hit @ EFFECT_DEFENSE_UP2_HIT .4byte BattleScript_EffectHit @ EFFECT_REVELATION_DANCE @@ -4233,10 +4233,6 @@ BattleScript_GeomancyTrySpeed:: BattleScript_GeomancyEnd:: goto BattleScript_MoveEnd -BattleScript_EffectConfuseHit:: - setmoveeffect MOVE_EFFECT_CONFUSION - goto BattleScript_EffectHit - BattleScript_EffectSubstitute:: attackcanceler ppreduce @@ -4263,12 +4259,6 @@ BattleScript_AlreadyHasSubstitute:: waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_EffectRecharge:: - attackcanceler - accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE - setmoveeffect MOVE_EFFECT_RECHARGE | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN - goto BattleScript_HitFromAtkString - BattleScript_MoveUsedMustRecharge:: printstring STRINGID_PKMNMUSTRECHARGE waitmessage B_WAIT_TIME_LONG @@ -4445,7 +4435,6 @@ BattleScript_DoSnore:: attackstring ppreduce accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - setmoveeffect MOVE_EFFECT_FLINCH goto BattleScript_HitFromCritCalc BattleScript_EffectConversion2:: @@ -4591,14 +4580,6 @@ BS_TripleAxel: addbyte sTRIPLE_KICK_POWER, 20 @ triple axel gets +20 power goto BattleScript_HitFromAtkString -BattleScript_EffectThief:: - setmoveeffect MOVE_EFFECT_STEAL_ITEM - goto BattleScript_EffectHit - -BattleScript_EffectHitPreventEscape: - setmoveeffect MOVE_EFFECT_PREVENT_ESCAPE - goto BattleScript_EffectHit - BattleScript_EffectMeanLook:: attackcanceler attackstring @@ -5156,14 +5137,6 @@ BattleScript_SolarBeamOnFirstTurn:: ppreduce goto BattleScript_TwoTurnMovesSecondTurn -BattleScript_EffectThunder: - setmoveeffect MOVE_EFFECT_PARALYSIS - goto BattleScript_EffectHit - -BattleScript_EffectHurricane: - setmoveeffect MOVE_EFFECT_CONFUSION - goto BattleScript_EffectHit - BattleScript_EffectTeleport: .if B_TELEPORT_BEHAVIOR >= GEN_7 jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_EffectBatonPass @@ -5813,10 +5786,6 @@ BattleScript_PrintAbilityMadeIneffective:: waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_EffectKnockOff:: - setmoveeffect MOVE_EFFECT_KNOCK_OFF - goto BattleScript_EffectHit - BattleScript_EffectEndeavor:: attackcanceler attackstring @@ -5978,10 +5947,6 @@ BattleScript_EffectWaterSport:: waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_EffectPoisonFang:: - setmoveeffect MOVE_EFFECT_TOXIC - goto BattleScript_EffectHit - BattleScript_EffectOverheat:: setmoveeffect MOVE_EFFECT_SP_ATK_TWO_DOWN | 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 a6ce8f776c..da142c1017 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -198,7 +198,7 @@ #define EFFECT_TEETER_DANCE 194 #define EFFECT_HIT_ESCAPE 195 #define EFFECT_MUD_SPORT 196 -#define EFFECT_POISON_FANG 197 +#define EFFECT_UNUSED_197 197 #define EFFECT_WEATHER_BALL 198 #define EFFECT_OVERHEAT 199 #define EFFECT_TICKLE 200 diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index f018d08854..d2281c560d 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -1952,8 +1952,6 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) if (!AnyPartyMemberStatused(battlerAtk, gBattleMoves[move].soundMove) || PartnerHasSameMoveEffectWithoutTarget(BATTLE_PARTNER(battlerAtk), move, aiData->partnerMove)) ADJUST_SCORE(-10); break; - case EFFECT_HIT_PREVENT_ESCAPE: - break; case EFFECT_ENDURE: if (gBattleMons[battlerAtk].hp == 1 || GetBattlerSecondaryDamage(battlerAtk)) //Don't use Endure if you'll die after using it ADJUST_SCORE(-10); diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index ca000ef8bf..6700245451 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -846,10 +846,6 @@ static bool32 AI_IsMoveEffectInPlus(u32 battlerAtk, u32 battlerDef, u32 move, s3 switch (gBattleMoves[move].effect) { - case EFFECT_POISON_FANG: - if (AI_CanPoison(battlerAtk, battlerDef, abilityDef, 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; diff --git a/src/battle_tv.c b/src/battle_tv.c index 875661fc41..ace13c7a1d 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -276,7 +276,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] = [EFFECT_TEETER_DANCE] = 6, // [EFFECT_BLAZE_KICK] = 1, [EFFECT_MUD_SPORT] = 4, - [EFFECT_POISON_FANG] = 1, [EFFECT_WEATHER_BALL] = 1, [EFFECT_OVERHEAT] = 3, [EFFECT_TICKLE] = 1, diff --git a/src/data/battle_frontier/battle_pyramid_wild_requirements.h b/src/data/battle_frontier/battle_pyramid_wild_requirements.h index 229b1b9be1..6023571567 100644 --- a/src/data/battle_frontier/battle_pyramid_wild_requirements.h +++ b/src/data/battle_frontier/battle_pyramid_wild_requirements.h @@ -35,7 +35,7 @@ static const u16 sParalyzingMoves[] = { MOVE_COMBAT_TORQUE, }; -// MOVE_EFFECT_POISON (30% or more), EFFECT_POISON, EFFECT_POISON_FANG, EFFECT_TOXIC, EFFECT_TOXIC_THREAD +// MOVE_EFFECT_POISON (30% or more), EFFECT_POISON, MOVE_EFFECT_TOXIC, EFFECT_TOXIC, EFFECT_TOXIC_THREAD static const u16 sPoisoningMoves[] = { MOVE_POISON_STING, //MOVE_TWINEEDLE, diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index cb4c3ecbe5..041bdddd81 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -1131,12 +1131,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_NORMAL, .accuracy = 90, .pp = 5, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + ), }, [MOVE_PECK] = @@ -1561,13 +1563,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_ELECTRIC, .accuracy = 70, .pp = 10, - .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, .sheerForceBoost = TRUE, .damagesAirborne = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_PARALYSIS, 30) + ), }, [MOVE_ROCK_THROW] = @@ -3041,7 +3045,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .effect = EFFECT_THIEF, .type = TYPE_DARK, .accuracy = 100, - .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_PHYSICAL, @@ -3052,6 +3055,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .metronomeBanned = TRUE, .copycatBanned = TRUE, .assistBanned = TRUE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT(MOVE_EFFECT_STEAL_ITEM) + ), }, [MOVE_SPIDER_WEB] = @@ -3137,7 +3143,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_NORMAL, .accuracy = 100, .pp = 15, - .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, @@ -3146,6 +3151,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .sheerForceBoost = TRUE, .soundMove = TRUE, .metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_5, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_FLINCH, 30) + ), }, [MOVE_CURSE] = @@ -5121,12 +5129,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_DARK, .accuracy = 100, .pp = 20, - .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT(MOVE_EFFECT_KNOCK_OFF) + ), }, [MOVE_ENDEAVOR] = @@ -5512,12 +5522,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_POISON_FANG] = { - #if B_UPDATED_MOVE_DATA >= GEN_6 - .secondaryEffectChance = 50, - #else - .secondaryEffectChance = 30, - #endif - .effect = EFFECT_POISON_FANG, + .effect = EFFECT_HIT, .power = 50, .type = TYPE_POISON, .accuracy = 100, @@ -5529,6 +5534,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .makesContact = TRUE, .sheerForceBoost = TRUE, .bitingMove = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_TOXIC, B_UPDATED_MOVE_DATA >= GEN_6 ? 50 : 30) + ), }, [MOVE_CRUSH_CLAW] = @@ -5554,11 +5562,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_FIRE, .accuracy = 90, .pp = 5, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + ), }, [MOVE_HYDRO_CANNON] = @@ -5568,11 +5578,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_WATER, .accuracy = 90, .pp = 5, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + ), }, [MOVE_METEOR_MASH] = @@ -6096,11 +6108,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_GRASS, .accuracy = 90, .pp = 5, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + ), }, [MOVE_BULK_UP] = @@ -6198,7 +6212,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .effect = EFFECT_THIEF, .type = TYPE_NORMAL, .accuracy = 100, - .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_PHYSICAL, @@ -6207,6 +6220,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .metronomeBanned = TRUE, .copycatBanned = TRUE, .assistBanned = TRUE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT(MOVE_EFFECT_STEAL_ITEM) + ), }, [MOVE_VOLT_TACKLE] = @@ -7457,12 +7473,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_NORMAL, .accuracy = 90, .pp = 5, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + ), }, [MOVE_NASTY_PLOT] = @@ -7561,7 +7579,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_PARALYSIS, 10), SECONDARY_EFFECT(MOVE_EFFECT_FLINCH, 10) - ) + ), }, [MOVE_ICE_FANG] = @@ -7841,12 +7859,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_ROCK, .accuracy = 90, .pp = 5, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .ballisticMove = TRUE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + ), }, [MOVE_CROSS_POISON] = @@ -8187,11 +8207,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_DRAGON, .accuracy = 90, .pp = 5, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + ), }, [MOVE_SPACIAL_REND] = @@ -9595,7 +9617,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_FLYING, .accuracy = 70, .pp = 10, - .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, @@ -9603,6 +9624,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .sheerForceBoost = TRUE, .windMove = TRUE, .damagesAirborne = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 30) + ), }, [MOVE_HEAD_CHARGE] = @@ -10859,12 +10883,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_GROUND, .accuracy = 100, .pp = 10, - .secondaryEffectChance = 100, .target = MOVE_TARGET_BOTH, .priority = 0, .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .metronomeBanned = TRUE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT(MOVE_EFFECT_PREVENT_ESCAPE) + ), }, [MOVE_LANDS_WRATH] = @@ -11023,12 +11049,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_GHOST, .accuracy = 100, .pp = 10, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .sheerForceBoost = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_PREVENT_ESCAPE, 100) + ), }, [MOVE_DARKEST_LARIAT] = @@ -11269,13 +11297,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_STEEL, .accuracy = 100, .pp = 20, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, .sheerForceBoost = TRUE, + ADDITIONAL_EFFECTS( + SECONDARY_EFFECT(MOVE_EFFECT_PREVENT_ESCAPE, 100) + ), }, [MOVE_PSYCHIC_TERRAIN] = @@ -11673,11 +11703,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_PSYCHIC, .accuracy = 100, .pp = 10, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + ), }, [MOVE_SPECTRAL_THIEF] = @@ -11762,7 +11794,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .makesContact = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_FLINCH, 30) - ) + ), }, [MOVE_NATURES_MADNESS] = @@ -12701,13 +12733,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_FIGHTING, .accuracy = 100, .pp = 5, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .metronomeBanned = TRUE, .instructBanned = TRUE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + ), }, [MOVE_ETERNABEAM] = @@ -12717,12 +12751,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_DRAGON, .accuracy = 90, .pp = 5, - .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, .metronomeBanned = TRUE, + ADDITIONAL_EFFECTS( + PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE), + ), }, [MOVE_STEEL_BEAM] =