added test where shell side arm should not make contact

This commit is contained in:
geeil-han 2024-12-11 02:03:08 +01:00
parent a423f6669d
commit a8da0c6dea
2 changed files with 19 additions and 2 deletions

View File

@ -10398,7 +10398,7 @@ export function initMoves() {
new AttackMove(Moves.SHELL_SIDE_ARM, Type.POISON, MoveCategory.SPECIAL, 90, 100, 10, 20, 0, 8) new AttackMove(Moves.SHELL_SIDE_ARM, Type.POISON, MoveCategory.SPECIAL, 90, 100, 10, 20, 0, 8)
.attr(ShellSideArmCategoryAttr) .attr(ShellSideArmCategoryAttr)
.attr(StatusEffectAttr, StatusEffect.POISON) .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) new AttackMove(Moves.MISTY_EXPLOSION, Type.FAIRY, MoveCategory.SPECIAL, 100, 100, 5, -1, 0, 8)
.attr(SacrificialAttr) .attr(SacrificialAttr)
.target(MoveTarget.ALL_NEAR_OTHERS) .target(MoveTarget.ALL_NEAR_OTHERS)

View File

@ -26,7 +26,7 @@ describe("Moves - Shell Side Arm", () => {
beforeEach(() => { beforeEach(() => {
game = new GameManager(phaserGame); game = new GameManager(phaserGame);
game.override game.override
.moveset([ Moves.SHELL_SIDE_ARM, Moves.SPLASH ]) .moveset([ Moves.SHELL_SIDE_ARM ])
.battleType("single") .battleType("single")
.startingLevel(100) .startingLevel(100)
.enemyLevel(100) .enemyLevel(100)
@ -93,4 +93,21 @@ describe("Moves - Shell Side Arm", () => {
expect(shellSideArmAttr.apply).toHaveLastReturnedWith(false); 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);
});
}); });