diff --git a/module/actor/base-actor.js b/module/actor/base-actor.js index 37c49a23..73f87f8f 100644 --- a/module/actor/base-actor.js +++ b/module/actor/base-actor.js @@ -279,11 +279,22 @@ export class RdDBaseActor extends Actor { async removeEffects(filter = e => true) { if (game.user.isGM) { - const effectsToRemove = this.getEffects(filter); - const ids = effectsToRemove.map(it => it.id); - await this.deleteEmbeddedDocuments('ActiveEffect', ids); + const effectsToRemove = this.getEffects(filter) + if (this.canRemoveEffect(effectsToRemove)) { + const ids = effectsToRemove.map(it => it.id) + await this.deleteEmbeddedDocuments('ActiveEffect', ids) + } } } + canRemoveEffect(effect) { + if (effect.statuses.has(STATUSES.StatusSurEnc)) { + return !this.isSurenc() + } + if (effect.statuses.has(STATUSES.StatusDemiReve)) { + return !this.tmrApp + } + return true + } /* -------------------------------------------- */ async updateCarac(caracName, to) {