From a8da0c6dea90209c5b2916aca2921c924d51b39b Mon Sep 17 00:00:00 2001 From: geeil-han Date: Wed, 11 Dec 2024 02:03:08 +0100 Subject: [PATCH] added test where shell side arm should not make contact --- src/data/move.ts | 2 +- src/test/moves/shell_side_arm.test.ts | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index b76d08218c9..ba7c4d0a5d5 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -10398,7 +10398,7 @@ export function initMoves() { new AttackMove(Moves.SHELL_SIDE_ARM, Type.POISON, MoveCategory.SPECIAL, 90, 100, 10, 20, 0, 8) .attr(ShellSideArmCategoryAttr) .attr(StatusEffectAttr, StatusEffect.POISON) - .partial(), // Physical version of the move does not make contact + .makesContact(false), new AttackMove(Moves.MISTY_EXPLOSION, Type.FAIRY, MoveCategory.SPECIAL, 100, 100, 5, -1, 0, 8) .attr(SacrificialAttr) .target(MoveTarget.ALL_NEAR_OTHERS) diff --git a/src/test/moves/shell_side_arm.test.ts b/src/test/moves/shell_side_arm.test.ts index e6be0f9f2ad..566b5c1d42b 100644 --- a/src/test/moves/shell_side_arm.test.ts +++ b/src/test/moves/shell_side_arm.test.ts @@ -26,7 +26,7 @@ describe("Moves - Shell Side Arm", () => { beforeEach(() => { game = new GameManager(phaserGame); game.override - .moveset([ Moves.SHELL_SIDE_ARM, Moves.SPLASH ]) + .moveset([ Moves.SHELL_SIDE_ARM ]) .battleType("single") .startingLevel(100) .enemyLevel(100) @@ -93,4 +93,21 @@ describe("Moves - Shell Side Arm", () => { expect(shellSideArmAttr.apply).toHaveLastReturnedWith(false); }); + + /** The move should stay special (which it does) and make no contact but the MAKES_CONTACT flag is set */ + it.skip("should not make contact if the move stays special", async () => { + game.override.enemySpecies(Species.SLOWBRO).enemyAbility(Abilities.ROUGH_SKIN); + + await game.classicMode.startBattle([ Species.XURKITREE ]); + + const player = game.scene.getPlayerPokemon()!; + + vi.spyOn(shellSideArmAttr, "apply"); + + game.move.select(Moves.SHELL_SIDE_ARM); + await game.toNextTurn(); + + expect(shellSideArmAttr.apply).toHaveLastReturnedWith(false); + expect(player.getMaxHp()).toBe(player.hp); + }); });