diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html b/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html
index defcd13d0..37e1ed027 100644
--- a/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html
+++ b/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html
@@ -17,7 +17,8 @@
- Corrected the deck validation rules, including added restricted cards by name (Bilbo, Gandalf).
- "Thorin" now has a correct resistance.
- Added "The Eagles Are Coming".
-
+- Added "His Wrath Was Redoubled"
+
17 Dec. 2015
- "Armor of Khazad" no longer allows to return itself from discard and can now be transferred.
diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gandalf/Card31_016.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gandalf/Card31_016.java
new file mode 100644
index 000000000..6866bf3bd
--- /dev/null
+++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gandalf/Card31_016.java
@@ -0,0 +1,69 @@
+package com.gempukku.lotro.cards.set31.gandalf;
+
+import com.gempukku.lotro.cards.AbstractEvent;
+import com.gempukku.lotro.cards.PlayConditions;
+import com.gempukku.lotro.cards.actions.PlayEventAction;
+import com.gempukku.lotro.cards.effects.ChoiceEffect;
+import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
+import com.gempukku.lotro.cards.effects.choose.ChooseOpponentEffect;
+import com.gempukku.lotro.common.*;
+import com.gempukku.lotro.filters.Filters;
+import com.gempukku.lotro.game.PhysicalCard;
+import com.gempukku.lotro.game.state.LotroGame;
+import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect;
+import com.gempukku.lotro.logic.timing.Effect;
+
+import java.util.LinkedList;
+import java.util.List;
+
+public class Card31_016 extends AbstractEvent {
+ public Card31_016() {
+ super(Side.FREE_PEOPLE, 3, Culture.GANDALF, "His Wrath Was Redoubled", Phase.ASSIGNMENT);
+ addKeyword(Keyword.SPELL);
+ }
+
+ @Override
+ public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int withTwilightRemoved, int twilightModifier, boolean ignoreRoamingPenalty, boolean ignoreCheckingDeadPile) {
+ return super.checkPlayRequirements(playerId, game, self, withTwilightRemoved, twilightModifier, ignoreRoamingPenalty, ignoreCheckingDeadPile)
+ && (PlayConditions.canDiscardFromPlay(self, game, Filters.name("Beorn"))
+ || PlayConditions.canDiscardFromPlay(self, game, 2, Culture.DWARVEN, CardType.FOLLOWER));
+ }
+
+ @Override
+ public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) {
+ final PlayEventAction action = new PlayEventAction(self);
+ List possibleCosts = new LinkedList();
+ possibleCosts.add(
+ new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.name("Beorn")) {
+ @Override
+ public String getText(LotroGame game) {
+ return "Discard Beorn";
+ }
+ });
+ possibleCosts.add(
+ new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 2, 2, Culture.DWARVEN, CardType.FOLLOWER) {
+ @Override
+ public String getText(LotroGame game) {
+ return "Discard 2 [DWARVEN] followers";
+ }
+ });
+
+ action.appendCost(
+ new ChoiceEffect(action, playerId, possibleCosts));
+
+ action.appendEffect(
+ new ChooseOpponentEffect(self.getOwner()) {
+ @Override
+ protected void opponentChosen(String opponentId) {
+ action.appendEffect(
+ new ChooseAndWoundCharactersEffect(action, opponentId, 1, 1, CardType.MINION, Filters.not(Filters.name("Smaug"))));
+ action.appendEffect(
+ new ChooseAndWoundCharactersEffect(action, opponentId, 1, 1, CardType.MINION, Filters.not(Filters.name("Smaug"))));
+ action.appendEffect(
+ new ChooseAndWoundCharactersEffect(action, opponentId, 1, 1, CardType.MINION, Filters.not(Filters.name("Smaug"))));
+ }
+ });
+
+ return action;
+ }
+}