diff --git a/src/data/move.ts b/src/data/move.ts index 35db4078ded..b65cd311acd 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -2765,29 +2765,37 @@ export class AddArenaTrapTagAttr extends AddArenaTagAttr { } export class RemoveArenaTrapAttr extends MoveEffectAttr { - private arenaTarget : ArenaTagSide; - constructor(arenaTarget: ArenaTagSide = ArenaTagSide.PLAYER) { + private targetBothSides: boolean; + + constructor(targetBothSides: boolean = false) { super(true, MoveEffectTrigger.PRE_APPLY); - this.arenaTarget = arenaTarget; + this.targetBothSides = targetBothSides; } apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + if (!super.apply(user, target, move, args)) return false; - if((target.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY == this.arenaTarget) || this.arenaTarget == ArenaTagSide.BOTH){ + if(this.targetBothSides){ user.scene.arena.removeTagOnSide(ArenaTagType.SPIKES, ArenaTagSide.PLAYER); user.scene.arena.removeTagOnSide(ArenaTagType.TOXIC_SPIKES, ArenaTagSide.PLAYER); user.scene.arena.removeTagOnSide(ArenaTagType.STEALTH_ROCK, ArenaTagSide.PLAYER); user.scene.arena.removeTagOnSide(ArenaTagType.STICKY_WEB, ArenaTagSide.PLAYER); - } - if(((!target.isPlayer()) ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY == this.arenaTarget) || this.arenaTarget == ArenaTagSide.BOTH){ + user.scene.arena.removeTagOnSide(ArenaTagType.SPIKES, ArenaTagSide.ENEMY); user.scene.arena.removeTagOnSide(ArenaTagType.TOXIC_SPIKES, ArenaTagSide.ENEMY); user.scene.arena.removeTagOnSide(ArenaTagType.STEALTH_ROCK, ArenaTagSide.ENEMY); user.scene.arena.removeTagOnSide(ArenaTagType.STICKY_WEB, ArenaTagSide.ENEMY); } + else { + user.scene.arena.removeTagOnSide(ArenaTagType.SPIKES, target.isPlayer() ? ArenaTagSide.ENEMY : ArenaTagSide.PLAYER); + user.scene.arena.removeTagOnSide(ArenaTagType.TOXIC_SPIKES, target.isPlayer() ? ArenaTagSide.ENEMY : ArenaTagSide.PLAYER); + user.scene.arena.removeTagOnSide(ArenaTagType.STEALTH_ROCK, target.isPlayer() ? ArenaTagSide.ENEMY : ArenaTagSide.PLAYER); + user.scene.arena.removeTagOnSide(ArenaTagType.STICKY_WEB, target.isPlayer() ? ArenaTagSide.ENEMY : ArenaTagSide.PLAYER); + } + return true; } } @@ -4338,8 +4346,7 @@ export function initMoves() { BattlerTagType.SEEDED, BattlerTagType.INFESTATION ], true) - .attr(RemoveArenaTrapAttr) - .partial(), + .attr(RemoveArenaTrapAttr), new StatusMove(Moves.SWEET_SCENT, Type.NORMAL, 100, 20, -1, 0, 2) .attr(StatChangeAttr, BattleStat.EVA, -1) .target(MoveTarget.ALL_NEAR_ENEMIES), @@ -4886,7 +4893,7 @@ export function initMoves() { .attr(ClearWeatherAttr, WeatherType.FOG) .attr(ClearTerrainAttr) .attr(RemoveScreensAttr, false) - .attr(RemoveArenaTrapAttr, ArenaTagSide.BOTH), + .attr(RemoveArenaTrapAttr, true), new StatusMove(Moves.TRICK_ROOM, Type.PSYCHIC, -1, 5, -1, -7, 4) .attr(AddArenaTagAttr, ArenaTagType.TRICK_ROOM, 5) .ignoresProtect() @@ -6216,8 +6223,7 @@ export function initMoves() { .target(MoveTarget.BOTH_SIDES), new SelfStatusMove(Moves.TIDY_UP, Type.NORMAL, -1, 10, 100, 0, 9) .attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.SPD ], 1, true) - .attr(RemoveArenaTrapAttr) - .partial(), + .attr(RemoveArenaTrapAttr), new StatusMove(Moves.SNOWSCAPE, Type.ICE, -1, 10, -1, 0, 9) .attr(WeatherChangeAttr, WeatherType.SNOW) .target(MoveTarget.BOTH_SIDES),