From 26c66799dfa34aa8a4411f578426434f3ebf431e Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Fri, 20 Mar 2015 18:08:19 +0100 Subject: [PATCH] * Scaleguard Sentinels - Fixed that the +1/+1 counter was not added if a dragon from hand was revealed. --- .../src/mage/sets/dragonsoftarkir/OratorOfOjutai.java | 10 +++++++--- .../src/mage/sets/gameday/ScaleguardSentinels.java | 9 +++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) 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; } }