From 4a4e76613568b2286486f91faf9f085cb01a25fd Mon Sep 17 00:00:00 2001 From: "Amani H." <109637146+xsn34kzx@users.noreply.github.com> Date: Tue, 1 Apr 2025 17:18:49 -0400 Subject: [PATCH] [Bug] Prevent `Mystical Rock` after Max Stack (#5606) * [Bug] Prevent `Mystical Rock` after Max Stack * Update modifier-type.ts * fixed ordering, testing locally --------- Co-authored-by: damocleas --- src/modifier/modifier-type.ts | 67 ++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 28 deletions(-) diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index 51ba39234fe..8feb60c7778 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -2823,37 +2823,48 @@ const modifierPool: ModifierPool = { modifierTypes.MYSTICAL_ROCK, (party: Pokemon[]) => { return party.some(p => { - const moveset = p.getMoveset(true).map(m => m.moveId); + let isHoldingMax = false; + for (const i of p.getHeldItems()) { + if (i.type.id === "MYSTICAL_ROCK") { + isHoldingMax = i.getStackCount() === i.getMaxStackCount(); + break; + } + } - const hasAbility = [ - Abilities.DRIZZLE, - Abilities.ORICHALCUM_PULSE, - Abilities.DROUGHT, - Abilities.SAND_STREAM, - Abilities.SAND_SPIT, - Abilities.SNOW_WARNING, - Abilities.ELECTRIC_SURGE, - Abilities.HADRON_ENGINE, - Abilities.PSYCHIC_SURGE, - Abilities.GRASSY_SURGE, - Abilities.SEED_SOWER, - Abilities.MISTY_SURGE, - ].some(a => p.hasAbility(a, false, true)); + if (!isHoldingMax) { + const moveset = p.getMoveset(true).map(m => m.moveId); - const hasMoves = [ - Moves.SUNNY_DAY, - Moves.RAIN_DANCE, - Moves.SANDSTORM, - Moves.SNOWSCAPE, - Moves.HAIL, - Moves.CHILLY_RECEPTION, - Moves.ELECTRIC_TERRAIN, - Moves.PSYCHIC_TERRAIN, - Moves.GRASSY_TERRAIN, - Moves.MISTY_TERRAIN, - ].some(m => moveset.includes(m)); + const hasAbility = [ + Abilities.DROUGHT, + Abilities.ORICHALCUM_PULSE, + Abilities.DRIZZLE, + Abilities.SAND_STREAM, + Abilities.SAND_SPIT, + Abilities.SNOW_WARNING, + Abilities.ELECTRIC_SURGE, + Abilities.HADRON_ENGINE, + Abilities.PSYCHIC_SURGE, + Abilities.GRASSY_SURGE, + Abilities.SEED_SOWER, + Abilities.MISTY_SURGE, + ].some(a => p.hasAbility(a, false, true)); - return hasAbility || hasMoves; + const hasMoves = [ + Moves.SUNNY_DAY, + Moves.RAIN_DANCE, + Moves.SANDSTORM, + Moves.SNOWSCAPE, + Moves.HAIL, + Moves.CHILLY_RECEPTION, + Moves.ELECTRIC_TERRAIN, + Moves.PSYCHIC_TERRAIN, + Moves.GRASSY_TERRAIN, + Moves.MISTY_TERRAIN, + ].some(m => moveset.includes(m)); + + return hasAbility || hasMoves; + } + return false; }) ? 10 : 0;