diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/OratorOfOjutai.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/OratorOfOjutai.java index 21fa8899daf..a63b1828a88 100644 --- a/Mage.Sets/src/mage/sets/dragonsoftarkir/OratorOfOjutai.java +++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/OratorOfOjutai.java @@ -47,6 +47,7 @@ import mage.constants.Zone; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; +import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.watchers.common.DragonOnTheBattlefieldWhileSpellWasCastWatcher; @@ -124,9 +125,12 @@ class OratorOfOjutaiEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - DragonOnTheBattlefieldWhileSpellWasCastWatcher watcher = (DragonOnTheBattlefieldWhileSpellWasCastWatcher) game.getState().getWatchers().get("DragonOnTheBattlefieldWhileSpellWasCastWatcher"); - if (watcher != null && watcher.castWithConditionTrue(source.getId())) { - controller.drawCards(1, game); + Permanent sourcePermanent = game.getPermanent(source.getSourceId()); + if (sourcePermanent != null) { + DragonOnTheBattlefieldWhileSpellWasCastWatcher watcher = (DragonOnTheBattlefieldWhileSpellWasCastWatcher) game.getState().getWatchers().get("DragonOnTheBattlefieldWhileSpellWasCastWatcher"); + if (watcher != null && watcher.castWithConditionTrue(sourcePermanent.getSpellAbility().getId())) { + controller.drawCards(1, game); + } } return true; } diff --git a/Mage.Sets/src/mage/sets/gameday/ScaleguardSentinels.java b/Mage.Sets/src/mage/sets/gameday/ScaleguardSentinels.java index 19b5961d7cb..fff3fc327ce 100644 --- a/Mage.Sets/src/mage/sets/gameday/ScaleguardSentinels.java +++ b/Mage.Sets/src/mage/sets/gameday/ScaleguardSentinels.java @@ -43,6 +43,7 @@ import mage.counters.CounterType; import mage.filter.common.FilterCreatureCard; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; +import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.watchers.common.DragonOnTheBattlefieldWhileSpellWasCastWatcher; @@ -110,7 +111,11 @@ class ScaleguardSentinelsCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - DragonOnTheBattlefieldWhileSpellWasCastWatcher watcher = (DragonOnTheBattlefieldWhileSpellWasCastWatcher) game.getState().getWatchers().get("DragonOnTheBattlefieldWhileSpellWasCastWatcher"); - return (watcher != null && watcher.castWithConditionTrue(source.getId())); + Permanent sourcePermanent = game.getPermanent(source.getSourceId()); + if (sourcePermanent != null) { + DragonOnTheBattlefieldWhileSpellWasCastWatcher watcher = (DragonOnTheBattlefieldWhileSpellWasCastWatcher) game.getState().getWatchers().get("DragonOnTheBattlefieldWhileSpellWasCastWatcher"); + return (watcher != null && watcher.castWithConditionTrue(sourcePermanent.getSpellAbility().getId())); + } + return false; } }