added removeOnOverlap param

This commit is contained in:
frutescens 2024-10-09 23:15:47 -07:00
parent c9cc32b9f3
commit 2040c85c81
1 changed files with 8 additions and 2 deletions

View File

@ -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)