diff --git a/Mage.Sets/src/mage/cards/f/FractalHarness.java b/Mage.Sets/src/mage/cards/f/FractalHarness.java index 8978cdfdce8..94186a3ee6a 100644 --- a/Mage.Sets/src/mage/cards/f/FractalHarness.java +++ b/Mage.Sets/src/mage/cards/f/FractalHarness.java @@ -108,14 +108,11 @@ class FractalHarnessDoubleEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Permanent permanent = (Permanent) getValue("attachedPermanent"); + Permanent permanent = game.getPermanent((UUID) getValue("sourceId")); if (permanent == null) { return false; } - // BUG : changed this to a integer due to the trigger firing twice - final int addedCounters = permanent.getCounters(game).getCount(CounterType.P1P1); - // BUG : this oneShotEffect is being run twice for some reason, so the number of counters is four times as many - return permanent.addCounters(CounterType.P1P1.createInstance(addedCounters), + return permanent.addCounters(CounterType.P1P1.createInstance(permanent.getCounters(game).getCount(CounterType.P1P1)), source.getControllerId(), source, game); } } diff --git a/Mage/src/main/java/mage/abilities/common/AttacksAttachedTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/AttacksAttachedTriggeredAbility.java index bdf2123bcae..089bec735da 100644 --- a/Mage/src/main/java/mage/abilities/common/AttacksAttachedTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/AttacksAttachedTriggeredAbility.java @@ -54,6 +54,8 @@ public class AttacksAttachedTriggeredAbility extends TriggeredAbilityImpl { if (equipment != null && equipment.getAttachedTo() != null && event.getSourceId().equals(equipment.getAttachedTo())) { getEffects().setValue("sourceId", event.getSourceId()); + // TODO: Passing a permanent object like this can cause bugs. May need refactoring to use UUID instead. + // See https://github.com/magefree/mage/issues/8377 getEffects().setValue("attachedPermanent", game.getPermanent(event.getSourceId())); return true; }