diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 852150a637..73e772148d 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -349,6 +349,7 @@ gBattleScriptsForMoveEffects:: @ 82D86A8 .4byte BattleScript_EffectStompingTantrum .4byte BattleScript_EffectCoreEnforcer .4byte BattleScript_EffectThroatChop + .4byte BattleScript_EffectLaserFocus BattleScript_EffectCoreEnforcer: setmoveeffect MOVE_EFFECT_CORE_ENFORCER | MOVE_EFFECT_CERTAIN @@ -361,6 +362,17 @@ BattleScript_MoveEffectCoreEnforcer:: BattleScript_CoreEnforcerRet: return +BattleScript_EffectLaserFocus: + attackcanceler + attackstring + ppreduce + setuserstatus3 STATUS3_LASER_FOCUS BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_LASERFOCUS + waitmessage 0x40 + goto BattleScript_MoveEnd + BattleScript_EffectVCreate: setmoveeffect MOVE_EFFECT_V_CREATE | MOVE_EFFECT_AFFECTS_USER goto BattleScript_EffectHit diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index 7da5079f3a..39f11694cb 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -336,8 +336,7 @@ #define EFFECT_MAT_BLOCK 330 #define EFFECT_STOMPING_TANTRUM 331 #define EFFECT_CORE_ENFORCER 332 - - #define EFFECT_THROAT_CHOP 334 +#define EFFECT_LASER_FOCUS 335 #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index b4a408ca2d..3326800c91 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -528,9 +528,9 @@ #define STRINGID_SWEETVEILPROTECTED 524 #define STRINGID_AROMAVEILPROTECTED 525 #define STRINGID_CELEBRATEMESSAGE 526 - #define STRINGID_THROATCHOPENDS 528 #define STRINGID_PKMNCANTUSEMOVETHROATCHOP 529 +#define STRINGID_LASERFOCUS 530 #define BATTLESTRINGS_COUNT 530 diff --git a/src/battle_message.c b/src/battle_message.c index 055f1ff668..d96488ca96 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -655,12 +655,13 @@ static const u8 sText_FlowerVeilProtected[] = _("{B_DEF_NAME_WITH_PREFIX} surrou static const u8 sText_SweetVeilProtected[] = _("{B_DEF_NAME_WITH_PREFIX} surrounded itself\nwith a veil of sweetness!"); static const u8 sText_AromaVeilProtected[] = _("{B_DEF_NAME_WITH_PREFIX} is protected\nby an aromatic veil!"); static const u8 sText_CelebrateMessage[] = _("Congratulations, {B_PLAYER_NAME}!"); +static const u8 sText_LaserFocusMessage[] = _("{B_ATK_NAME_WITH_PREFIX}\nconcentrated intensely!"); const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = { + [STRINGID_LASERFOCUS - 12] = sText_LaserFocusMessage, [STRINGID_THROATCHOPENDS - 12] = sText_ThroatChopEnds, [STRINGID_PKMNCANTUSEMOVETHROATCHOP - 12] = sText_PkmnCantUseMoveThroatChop, - [STRINGID_CELEBRATEMESSAGE - 12] = sText_CelebrateMessage, [STRINGID_AROMAVEILPROTECTED - 12] = sText_AromaVeilProtected, [STRINGID_SWEETVEILPROTECTED - 12] = sText_SweetVeilProtected, diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index b066c19d5a..ea3e899206 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -10416,8 +10416,10 @@ static void atkDD_setuserstatus3(void) else { gStatuses3[gBattlerAttacker] |= flags; - if (flags == STATUS3_MAGNET_RISE) + if (flags & STATUS3_MAGNET_RISE) gDisableStructs[gBattlerAttacker].magnetRiseTimer = 5; + if (flags & STATUS3_LASER_FOCUS) + gDisableStructs[gBattlerAttacker].laserFocusTimer = 2; gBattlescriptCurrInstr += 9; } } diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index e692255e63..6277a102ea 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -8928,7 +8928,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LASER_FOCUS] = { - .effect = EFFECT_PLACEHOLDER, + .effect = EFFECT_LASER_FOCUS, .power = 0, .type = TYPE_NORMAL, .accuracy = 0,