From 2040c85c810ea833b3dbe492132f56a86871a2d1 Mon Sep 17 00:00:00 2001 From: frutescens Date: Wed, 9 Oct 2024 23:15:47 -0700 Subject: [PATCH] added removeOnOverlap param --- src/data/move.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index 08c00829b48..22f5064f681 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -5140,14 +5140,16 @@ export class AddArenaTagAttr extends MoveEffectAttr { public tagType: ArenaTagType; public turnCount: integer; private failOnOverlap: boolean; + private removeOnOverlap: boolean; public selfSideTarget: boolean; - constructor(tagType: ArenaTagType, turnCount?: integer | null, failOnOverlap: boolean = false, selfSideTarget: boolean = false) { + constructor(tagType: ArenaTagType, turnCount?: integer | null, failOnOverlap: boolean = false, removeOnOverlap: boolean = false, selfSideTarget: boolean = false) { super(true, MoveEffectTrigger.POST_APPLY); this.tagType = tagType; this.turnCount = turnCount!; // TODO: is the bang correct? this.failOnOverlap = failOnOverlap; + this.removeOnOverlap = removeOnOverlap; this.selfSideTarget = selfSideTarget; } @@ -5156,6 +5158,10 @@ export class AddArenaTagAttr extends MoveEffectAttr { return false; } + if (this.removeOnOverlap && user.scene.arena.getTag(this.tagType)) { + user.scene.arena.removeTag(this.tagType); + } + if ((move.chance < 0 || move.chance === 100 || user.randSeedInt(100) < move.chance) && user.getLastXMoves(1)[0].result === MoveResult.SUCCESS) { user.scene.arena.addTag(this.tagType, this.turnCount, move.id, user.id, (this.selfSideTarget ? user : target).isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY); return true; @@ -8273,7 +8279,7 @@ export function initMoves() { .attr(RemoveScreensAttr, false) .attr(RemoveArenaTrapAttr, true), new StatusMove(Moves.TRICK_ROOM, Type.PSYCHIC, -1, 5, -1, -7, 4) - .attr(AddArenaTagAttr, ArenaTagType.TRICK_ROOM, 5) + .attr(AddArenaTagAttr, ArenaTagType.TRICK_ROOM, 5, false, true) .ignoresProtect() .target(MoveTarget.BOTH_SIDES), new AttackMove(Moves.DRACO_METEOR, Type.DRAGON, MoveCategory.SPECIAL, 130, 90, 5, -1, 0, 4)