From c98be493a16456536e431fd1937d43efecd94710 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Santos?= Date: Wed, 17 Apr 2024 12:03:53 +0200 Subject: [PATCH] Add Acrobatics effect --- src/data/move.ts | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/data/move.ts b/src/data/move.ts index bfbf21450f6..87651eafa9c 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -1749,6 +1749,24 @@ export class TurnDamagedDoublePowerAttr extends VariablePowerAttr { } } +export class NoHeldItemDoublePowerAttr extends VariablePowerAttr { + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + const heldItems = this.getUserHeldItems(user); + + if (!heldItems.length) { + (args[0] as Utils.NumberHolder).value *= 2; + return true; + } + + return false; + } + + getUserHeldItems(user: Pokemon) { + return user.scene.findModifiers(m => m instanceof PokemonHeldItemModifier + && (m as PokemonHeldItemModifier).pokemonId === user.id, user.isPlayer()) as PokemonHeldItemModifier[]; + } +} + const magnitudeMessageFunc = (user: Pokemon, target: Pokemon, move: Move) => { let message: string; user.scene.executeWithSeedOffset(() => { @@ -4874,7 +4892,7 @@ export function initMoves() { new StatusMove(Moves.QUASH, Type.DARK, 100, 15, -1, 0, 5) .unimplemented(), new AttackMove(Moves.ACROBATICS, Type.FLYING, MoveCategory.PHYSICAL, 55, 100, 15, -1, 0, 5) - .partial(), + .attr(NoHeldItemDoublePowerAttr), new StatusMove(Moves.REFLECT_TYPE, Type.NORMAL, -1, 15, -1, 0, 5) .attr(CopyTypeAttr), new AttackMove(Moves.RETALIATE, Type.NORMAL, MoveCategory.PHYSICAL, 70, 100, 5, -1, 0, 5)