diff --git a/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java b/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java index 8431a1c1c2a..92b882c2166 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java @@ -10,9 +10,11 @@ import forge.game.trigger.TriggerType; import org.apache.commons.lang3.StringUtils; -import java.util.ArrayList; -import java.util.HashMap; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; + import java.util.List; +import java.util.Map; public class BecomesBlockedEffect extends SpellAbilityEffect { @@ -38,10 +40,11 @@ public class BecomesBlockedEffect extends SpellAbilityEffect { game.getCombat().setBlocked(c, true); if (!c.getDamageHistory().getCreatureGotBlockedThisCombat()) { isCombatChanged = true; - final HashMap runParams = new HashMap(); + final Map runParams = Maps.newHashMap(); runParams.put("Attacker", c); - runParams.put("Blockers", new ArrayList()); + runParams.put("Blockers", Lists.newArrayList()); runParams.put("NumBlockers", 0); + runParams.put("Defender", game.getCombat().getDefenderByAttacker(c)); runParams.put("DefendingPlayer", game.getCombat().getDefenderPlayerByAttacker(c)); game.getTriggerHandler().runTrigger(TriggerType.AttackerBlocked, runParams, false); } diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java index 4a113d7fa59..adb950d46c5 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -722,6 +722,7 @@ public class PhaseHandler implements java.io.Serializable { runParams.put("Attacker", a); runParams.put("Blockers", blockers); runParams.put("NumBlockers", blockers.size()); + runParams.put("Defender", combat.getDefenderByAttacker(a)); runParams.put("DefendingPlayer", combat.getDefenderPlayerByAttacker(a)); game.getTriggerHandler().runTrigger(TriggerType.AttackerBlocked, runParams, false); diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java index 8ecea398286..89136658f35 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java @@ -52,25 +52,25 @@ public class TriggerAttackerBlocked extends Trigger { /** {@inheritDoc} */ @Override public final boolean performTest(final Map runParams2) { - if (this.mapParams.containsKey("ValidCard")) { - if (!matchesValid(runParams2.get("Attacker"), this.mapParams.get("ValidCard").split(","), - this.getHostCard())) { + if (hasParam("ValidCard")) { + if (!matchesValid(runParams2.get("Attacker"), getParam("ValidCard").split(","), + getHostCard())) { return false; } } - if (this.mapParams.containsKey("MinBlockers")) { - if ((int)runParams2.get("NumBlockers") < Integer.valueOf(this.mapParams.get("MinBlockers"))) { + if (hasParam("MinBlockers")) { + if ((int)runParams2.get("NumBlockers") < Integer.valueOf(getParam("MinBlockers"))) { return false; } } - if (this.mapParams.containsKey("ValidBlocker")) { + if (hasParam("ValidBlocker")) { @SuppressWarnings("unchecked") int count = CardLists.getValidCardCount( (Iterable) runParams2.get("Blockers"), - this.mapParams.get("ValidBlocker"), - this.getHostCard().getController(), this.getHostCard() + getParam("ValidBlocker"), + getHostCard().getController(), getHostCard() ); if ( count == 0 ) { @@ -84,10 +84,11 @@ public class TriggerAttackerBlocked extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Attacker", this.getRunParams().get("Attacker")); - sa.setTriggeringObject("Blockers", this.getRunParams().get("Blockers")); - sa.setTriggeringObject("DefendingPlayer", this.getRunParams().get("DefendingPlayer")); - sa.setTriggeringObject("NumBlockers", this.getRunParams().get("NumBlockers")); + sa.setTriggeringObject("Attacker", getRunParams().get("Attacker")); + sa.setTriggeringObject("Blockers", getRunParams().get("Blockers")); + sa.setTriggeringObject("Defender", getRunParams().get("Defender")); + sa.setTriggeringObject("DefendingPlayer", getRunParams().get("DefendingPlayer")); + sa.setTriggeringObject("NumBlockers", getRunParams().get("NumBlockers")); } @Override