From ba9d49d0f11f8eaf006aa831775ff2f6c40dbaa6 Mon Sep 17 00:00:00 2001 From: swordshine Date: Sun, 22 Sep 2013 08:05:24 +0000 Subject: [PATCH] - Fixed Heroic - Fixed FightEffect --- .../card/ability/effects/FightEffect.java | 2 +- .../card/trigger/TriggerPlaneswalkedFrom.java | 2 +- .../card/trigger/TriggerPlaneswalkedTo.java | 2 +- .../card/trigger/TriggerSpellAbilityCast.java | 55 ++++++------------- 4 files changed, 20 insertions(+), 41 deletions(-) diff --git a/src/main/java/forge/card/ability/effects/FightEffect.java b/src/main/java/forge/card/ability/effects/FightEffect.java index 28a77babffd..fc7b005f041 100644 --- a/src/main/java/forge/card/ability/effects/FightEffect.java +++ b/src/main/java/forge/card/ability/effects/FightEffect.java @@ -22,7 +22,7 @@ public class FightEffect extends SpellAbilityEffect { if (fighters.size() > 1) { sb.append(fighters.get(0) + " fights " + fighters.get(1)); } - else { + else if (fighters.size() == 1) { sb.append(fighters.get(0) + " fights unknown"); } return sb.toString(); diff --git a/src/main/java/forge/card/trigger/TriggerPlaneswalkedFrom.java b/src/main/java/forge/card/trigger/TriggerPlaneswalkedFrom.java index b7ce0bb26ba..9836f6c344c 100644 --- a/src/main/java/forge/card/trigger/TriggerPlaneswalkedFrom.java +++ b/src/main/java/forge/card/trigger/TriggerPlaneswalkedFrom.java @@ -53,7 +53,7 @@ public class TriggerPlaneswalkedFrom extends Trigger { */ @Override public void setTriggeringObjects(SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject("Cards", this.getRunParams().get("Card")); // The 'Card' triggered object above is actually an array list of the current planes being left, // so the actual source has to be determined differently than usual sa.setTriggeringObject("Source", this.hostCard); diff --git a/src/main/java/forge/card/trigger/TriggerPlaneswalkedTo.java b/src/main/java/forge/card/trigger/TriggerPlaneswalkedTo.java index acb937ee533..8e637061cdd 100644 --- a/src/main/java/forge/card/trigger/TriggerPlaneswalkedTo.java +++ b/src/main/java/forge/card/trigger/TriggerPlaneswalkedTo.java @@ -52,7 +52,7 @@ public class TriggerPlaneswalkedTo extends Trigger { */ @Override public void setTriggeringObjects(SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject("Cards", this.getRunParams().get("Card")); } } diff --git a/src/main/java/forge/card/trigger/TriggerSpellAbilityCast.java b/src/main/java/forge/card/trigger/TriggerSpellAbilityCast.java index 7d7abc0c1b8..06332f8933a 100644 --- a/src/main/java/forge/card/trigger/TriggerSpellAbilityCast.java +++ b/src/main/java/forge/card/trigger/TriggerSpellAbilityCast.java @@ -106,49 +106,27 @@ public class TriggerSpellAbilityCast extends Trigger { if (si != null) { sa = si.getSpellAbility(); } - if (sa.getTargetRestrictions() == null) { - if (sa.getTargetCard() == null) { - Player targetPl = sa.getTargets().getFirstTargetedPlayer(); - if (targetPl == null) - return false; - - if (!matchesValid(targetPl, this.mapParams.get("TargetsValid").split(","), this.getHostCard())) { - return false; - } - - } else { - if (!matchesValid(sa.getTargetCard(), this.mapParams.get("TargetsValid").split(","), - this.getHostCard())) { - return false; + + boolean validTgtFound = false; + while (sa != null && !validTgtFound) { + for (final Card tgt : sa.getTargets().getTargetCards()) { + if (tgt.isValid(this.mapParams.get("TargetsValid").split(","), this.getHostCard() + .getController(), this.getHostCard())) { + validTgtFound = true; + break; } } - } else { - if (sa.getTargetRestrictions().doesTarget()) { - boolean validTgtFound = false; - while (sa != null && !validTgtFound) { - for (final Card tgt : sa.getTargets().getTargetCards()) { - if (tgt.isValid(this.mapParams.get("TargetsValid").split(","), this.getHostCard() - .getController(), this.getHostCard())) { - validTgtFound = true; - break; - } - } - for (final Player p : sa.getTargets().getTargetPlayers()) { - if (matchesValid(p, this.mapParams.get("TargetsValid").split(","), this.getHostCard())) { - validTgtFound = true; - break; - } - } - sa = sa.getSubAbility(); + for (final Player p : sa.getTargets().getTargetPlayers()) { + if (matchesValid(p, this.mapParams.get("TargetsValid").split(","), this.getHostCard())) { + validTgtFound = true; + break; } - - if (!validTgtFound) { - return false; - } - } else { - return false; } + sa = sa.getSubAbility(); + } + if (!validTgtFound) { + return false; } } @@ -203,6 +181,7 @@ public class TriggerSpellAbilityCast extends Trigger { return true; } + /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) {