From 534ebceabb7aa393422266016f080ab4fc43be58 Mon Sep 17 00:00:00 2001 From: Zach Day Date: Fri, 9 Aug 2024 12:38:49 -0400 Subject: [PATCH] Prevent disabling STRUGGLE --- src/data/battler-tags.ts | 2 +- src/data/move.ts | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index ff7cfacbab4..b7dff7667c0 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -163,7 +163,7 @@ export class DisabledTag extends DisablingBattlerTag { } const move = history.find(m => m.move !== Moves.NONE); - if (move === undefined) { + if (move === undefined || move.move === Moves.STRUGGLE) { return; } diff --git a/src/data/move.ts b/src/data/move.ts index bf051c3bdbf..44b194d03b6 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -6006,6 +6006,7 @@ const unknownTypeCondition: MoveConditionFunc = (user, target, move) => !user.ge /** Ensures that the target has at least one non-virtual, non-NONE move in its history. */ const targetHasMoveHistoryCondition: MoveConditionFunc = (user, target, move) => target.getLastXMoves().filter(m => m.move !== Moves.NONE && !m.virtual).length >= 1; +const targetLastMoveIsNotStruggleCondition: MoveConditionFunc = (user: Pokemon, target: Pokemon, move: Move) => target.getLastXMoves(1).at(0)?.move !== Moves.STRUGGLE; export type MoveTargetSet = { targets: BattlerIndex[]; @@ -6212,6 +6213,7 @@ export function initMoves() { new StatusMove(Moves.DISABLE, Type.NORMAL, 100, 20, -1, 0, 1) .attr(AddBattlerTagAttr, BattlerTagType.DISABLED, false, true) .condition(targetHasMoveHistoryCondition) + .condition(targetLastMoveIsNotStruggleCondition) .condition(failOnMaxCondition), new AttackMove(Moves.ACID, Type.POISON, MoveCategory.SPECIAL, 40, 100, 30, 10, 0, 1) .attr(StatChangeAttr, BattleStat.SPDEF, -1)