From 8ef29d13dd0c54b3a7bbf33e6e95a83694756cb0 Mon Sep 17 00:00:00 2001 From: Frank Date: Mon, 29 Apr 2024 19:35:30 +0200 Subject: [PATCH] Handle Sticky Hold ability + decrease stack before removing modifier --- src/data/move.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index a500a7d2d87..09630a3e3da 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -1093,6 +1093,10 @@ export class RemoveHeldBerryAttr extends MoveEffectAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean | Promise { return new Promise(resolve => { + if (target.hasAbility(Abilities.STICKY_HOLD)) { + return resolve(false); + } + const heldBerries = this.getTargetHeldBerries(target).filter(b => b.getTransferrable(false)) if (!heldBerries.length) { @@ -1100,10 +1104,13 @@ export class RemoveHeldBerryAttr extends MoveEffectAttr { } const removedBerry = heldBerries[user.randSeedInt(heldBerries.length)]; - const couldRemoveBerry = target.scene.removeModifier(removedBerry, true); - if (!couldRemoveBerry) { - return resolve(false); + if (!(--removedBerry.stackCount)) { + const couldRemoveBerry = target.scene.removeModifier(removedBerry, true); + + if (!couldRemoveBerry) { + return resolve(false); + } } target.scene.updateModifiers(target.isPlayer(), false)