diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 77eddc8ab6..43f961f35f 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -367,6 +367,7 @@ gBattleScriptsForMoveEffects:: @ 82D86A8 .4byte BattleScript_EffectFairyLock .4byte BattleScript_EffectAllySwitch .4byte BattleScript_EffectSleepHit + .4byte BattleScript_EffectBodyPress BattleScript_EffectSleepHit: setmoveeffect MOVE_EFFECT_SLEEP @@ -2051,6 +2052,7 @@ BattleScript_EffectChangeTypeOnItem: BattleScript_EffectFusionCombo: BattleScript_EffectRevelationDance: BattleScript_EffectBelch: +BattleScript_EffectBodyPress: BattleScript_HitFromAtkCanceler:: attackcanceler diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index 74418d2c73..4c5ada890b 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -351,7 +351,8 @@ #define EFFECT_FAIRY_LOCK 345 #define EFFECT_ALLY_SWITCH 346 #define EFFECT_SLEEP_HIT 347 // Relic Song +#define EFFECT_BODY_PRESS 348 -#define NUM_BATTLE_MOVE_EFFECTS 348 +#define NUM_BATTLE_MOVE_EFFECTS 349 #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/src/battle_util.c b/src/battle_util.c index 4c3f795ded..16f9b5bc50 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -7524,6 +7524,11 @@ static u32 CalcAttackStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, b atkStage = gBattleMons[battlerDef].statStages[STAT_SPATK]; } } + if (gBattleMoves[move].effect == EFFECT_BODY_PRESS) + { + atkStat = gBattleMons[battlerAtk].defense; + atkStage = gBattleMons[battlerAtk].statStages[STAT_DEF]; + } else { if (IS_MOVE_PHYSICAL(move)) diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 872c2b228f..95e6ec4846 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -10926,7 +10926,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BODY_PRESS] = { - .effect = EFFECT_PLACEHOLDER, //TODO + .effect = EFFECT_BODY_PRESS, .power = 80, .type = TYPE_FIGHTING, .accuracy = 100,