From 6220457a80eb6a656f26627251a020df2fb8e014 Mon Sep 17 00:00:00 2001 From: frutescens Date: Tue, 24 Sep 2024 20:58:14 -0700 Subject: [PATCH] Marked Torment as partial --- src/data/battler-tags.ts | 8 +++++--- src/data/move.ts | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index c63f532a35c..a0aee796a0d 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -2481,10 +2481,12 @@ export class TormentTag extends MoveRestrictionBattlerTag { if ( !lastMove ) { return false; } - // This checks for moves like Rollout and Iceball, which are immune to the move restrictions of Torment - const isLockedIntoMove = allMoves[lastMove.move].hasAttr(ConsecutiveUseDoublePowerAttr); + // This checks for locking / momentum moves like Rollout and Hydro Cannon + if the user is under the influence of BattlerTagType.FRENZY + // Because Uproar's unique behavior is not implemented, it does not check for Uproar. Torment has been marked as partial in moves.ts + const moveObj = allMoves[lastMove.move]; + const isUnaffected = moveObj.hasAttr(ConsecutiveUseDoublePowerAttr) || this.target.hasTag(BattlerTagType.FRENZY) || moveObj.hasAttr(ChargeAttr); const validLastMoveResult = (lastMove.result === MoveResult.SUCCESS) || (lastMove.result === MoveResult.MISS); - if (lastMove.move === move && validLastMoveResult && lastMove.move !== Moves.STRUGGLE && !isLockedIntoMove) { + if (lastMove.move === move && validLastMoveResult && lastMove.move !== Moves.STRUGGLE && !isUnaffected) { return true; } return false; diff --git a/src/data/move.ts b/src/data/move.ts index 48a134c45b6..27c27696650 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -7507,6 +7507,7 @@ export function initMoves() { .target(MoveTarget.BOTH_SIDES), new StatusMove(Moves.TORMENT, Type.DARK, 100, 15, -1, 0, 3) .ignoresSubstitute() + .partial() // Incomplete implementation because of Uproar's partial implementation .attr(AddBattlerTagAttr, BattlerTagType.TORMENT, false, true, 1), new StatusMove(Moves.FLATTER, Type.DARK, 100, 15, -1, 0, 3) .attr(StatStageChangeAttr, [ Stat.SPATK ], 1)