From e622745c1b555411556138a0a9bf1c7d9d093b13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Santos?= Date: Wed, 17 Apr 2024 13:25:28 +0200 Subject: [PATCH] Add list of items to consider for Acrobatics --- src/data/move.ts | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/data/move.ts b/src/data/move.ts index 87651eafa9c..f3b34de8a5d 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -16,6 +16,7 @@ import { UnswappableAbilityAbAttr, UncopiableAbilityAbAttr, UnsuppressableAbilit import { Abilities } from "./enums/abilities"; import { allAbilities } from './ability'; import { PokemonHeldItemModifier } from "../modifier/modifier"; +import { modifierTypes } from '../modifier/modifier-type'; import { BattlerIndex } from "../battle"; import { Stat } from "./pokemon-stat"; import { TerrainType } from "./terrain"; @@ -1750,6 +1751,20 @@ export class TurnDamagedDoublePowerAttr extends VariablePowerAttr { } export class NoHeldItemDoublePowerAttr extends VariablePowerAttr { + heldItemModifierTypes: (keyof typeof modifierTypes)[] = [ + 'REVIVER_SEED', + 'BERRY', + 'SOOTHE_BELL', + 'GRIP_CLAW', + 'FOCUS_BAND', + 'KINGS_ROCK', + 'LEFTOVERS', + 'SHELL_BELL', + 'BATON', + 'LUCKY_EGG', + 'GOLDEN_EGG', + ]; + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { const heldItems = this.getUserHeldItems(user); @@ -1761,9 +1776,13 @@ export class NoHeldItemDoublePowerAttr extends VariablePowerAttr { return false; } + countsAsHeldItem(item: PokemonHeldItemModifier) { + return this.heldItemModifierTypes.includes(item.type.id as keyof typeof modifierTypes); + } + getUserHeldItems(user: Pokemon) { return user.scene.findModifiers(m => m instanceof PokemonHeldItemModifier - && (m as PokemonHeldItemModifier).pokemonId === user.id, user.isPlayer()) as PokemonHeldItemModifier[]; + && (m as PokemonHeldItemModifier).pokemonId === user.id && this.countsAsHeldItem(m), user.isPlayer()) as PokemonHeldItemModifier[]; } }