From d462d1fcc80a08d113a7b56ea05782423cdc3a3e Mon Sep 17 00:00:00 2001 From: Susucre <34709007+Susucre@users.noreply.github.com> Date: Sun, 13 Jul 2025 16:10:37 +0200 Subject: [PATCH] add better null checking around Mirror Golem exileId code --- Mage.Sets/src/mage/cards/m/MirrorGolem.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Mage.Sets/src/mage/cards/m/MirrorGolem.java b/Mage.Sets/src/mage/cards/m/MirrorGolem.java index c90a7efde34..b0e3d070bae 100644 --- a/Mage.Sets/src/mage/cards/m/MirrorGolem.java +++ b/Mage.Sets/src/mage/cards/m/MirrorGolem.java @@ -76,11 +76,13 @@ class MirrorGolemImprintEffect extends OneShotEffect { Permanent sourcePermanent = game.getPermanent(source.getSourceId()); Card card = game.getCard(this.getTargetPointer().getFirst(game, source)); if (card != null) { - UUID exileZoneId = CardUtil.getExileZoneId(game, source.getSourceId(), sourcePermanent.getZoneChangeCounter(game)); - String exileZoneName = source.getSourceObject(game).getIdName(); - controller.moveCardsToExile(card, source, game, true, exileZoneId, exileZoneName); if (sourcePermanent != null) { + UUID exileZoneId = CardUtil.getExileZoneId(game, source.getSourceId(), sourcePermanent.getZoneChangeCounter(game)); + String exileZoneName = sourcePermanent.getIdName(); + controller.moveCardsToExile(card, source, game, true, exileZoneId, exileZoneName); sourcePermanent.imprint(this.getTargetPointer().getFirst(game, source), game); + } else { + controller.moveCardsToExile(card, source, game, true, null, ""); } } return true; @@ -104,10 +106,12 @@ class MirrorGolemEffect extends ContinuousEffectImpl { @Override public boolean apply(Game game, Ability source) { Permanent sourceObject = game.getPermanent(source.getSourceId()); + if (sourceObject == null || sourceObject.getImprinted() == null) { + return false; + } UUID exileZoneId = CardUtil.getExileZoneId(game, source.getSourceId(), sourceObject.getZoneChangeCounter(game)); ExileZone exileZone = game.getExile().getExileZone(exileZoneId); - - if (sourceObject == null || sourceObject.getImprinted() == null || exileZone == null) { + if (exileZone == null) { return false; }