From a071593d47453966a9a60f072120e48318e8750a Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Fri, 7 Jun 2024 23:20:13 +0400 Subject: [PATCH] refactor: added runtime check for wrong usage of AddContinuousEffectToGame (closes #12427) --- .../effects/common/AddContinuousEffectToGame.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Mage/src/main/java/mage/abilities/effects/common/AddContinuousEffectToGame.java b/Mage/src/main/java/mage/abilities/effects/common/AddContinuousEffectToGame.java index eeea16d1ade..736d3f7eec7 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/AddContinuousEffectToGame.java +++ b/Mage/src/main/java/mage/abilities/effects/common/AddContinuousEffectToGame.java @@ -8,6 +8,7 @@ import mage.abilities.effects.Effects; import mage.abilities.effects.OneShotEffect; import mage.constants.Outcome; import mage.game.Game; +import mage.target.targetpointer.FirstTargetPointer; /** * @author noxx @@ -36,6 +37,14 @@ public class AddContinuousEffectToGame extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { for (Effect effect : this.effects) { + // runtime check + if (!effect.getTargetPointer().getClass().equals(FirstTargetPointer.class) + && !effect.getTargetPointer().getClass().equals(this.getTargetPointer().getClass())) { + throw new IllegalArgumentException("Wrong code usage: found diff target pointers, must set target pointers to AddContinuousEffectToGame, not to inner effects" + + " - " + source.getClass().getSimpleName() + + " - " + source + ); + } effect.setTargetPointer(this.getTargetPointer().copy()); game.addEffect((ContinuousEffect) effect, source); }