diff --git a/Mage.Sets/src/mage/cards/s/ShiningShoal.java b/Mage.Sets/src/mage/cards/s/ShiningShoal.java index 08ea2ea97a..1c4afc27f8 100644 --- a/Mage.Sets/src/mage/cards/s/ShiningShoal.java +++ b/Mage.Sets/src/mage/cards/s/ShiningShoal.java @@ -140,14 +140,15 @@ class ShiningShoalPreventDamageTargetEffect extends PreventionEffectImpl { if (prevented > 0) { UUID redirectTo = source.getTargets().get(1).getFirstTarget(); Permanent permanent = game.getPermanent(redirectTo); + MageObject sourceObject = game.getObject(source.getFirstTarget()); if (permanent != null) { - game.informPlayers("Dealing " + prevented + " to " + permanent.getName() + " instead"); + game.informPlayers(sourceObject.getIdName() + "deals " + prevented + " to " + permanent.getName() + " instead"); // keep the original source id as it is redirecting permanent.damage(prevented, event.getSourceId(), game, ((DamageEvent) event).isCombatDamage(), ((DamageEvent) event).isPreventable(), event.getAppliedEffects()); } Player player = game.getPlayer(redirectTo); if (player != null) { - game.informPlayers("Dealing " + prevented + " to " + player.getLogName() + " instead"); + game.informPlayers(sourceObject.getIdName() + "deals " + prevented + " to " + player.getLogName() + " instead"); // keep the original source id as it is redirecting player.damage(prevented, event.getSourceId(), game, ((DamageEvent) event).isCombatDamage(), ((DamageEvent) event).isPreventable(), event.getAppliedEffects()); } @@ -160,14 +161,17 @@ class ShiningShoalPreventDamageTargetEffect extends PreventionEffectImpl { public boolean applies(GameEvent event, Ability source, Game game) { if (!this.used && super.applies(event, source, game)) { - // check source - MageObject object = game.getObject(event.getSourceId()); - if (object == null) { + // get source of the damage event + MageObject sourceObject = game.getObject(event.getSourceId()); + // get the chosen damage source + MageObject chosenSourceObject = game.getObject(source.getFirstTarget()); + // does the source of the damage exist? + if (sourceObject == null) { game.informPlayers("Couldn't find source of damage"); return false; } - - if (!object.getId().equals(source.getFirstTarget())) { + // do the 2 objects match? + if (sourceObject.getId() != chosenSourceObject.getId()) { return false; }