From e6532a58c6855f086132aaaf35f42008a0ba0841 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Mon, 10 Sep 2012 13:36:23 +0000 Subject: [PATCH] - "Balin Avenged" now correctly allows to play the ORC Orcs by removing the card from discard, as an additional cost. --- .../lotro/cards/set17/dwarven/Card17_002.java | 5 ++- .../com/gempukku/lotro/at/TimingAtTest.java | 43 +++++++++++++++++-- .../src/main/webapp/includes/changeLog.html | 3 ++ 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/dwarven/Card17_002.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/dwarven/Card17_002.java index bf8f2982f..e9cc11f7b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/dwarven/Card17_002.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/dwarven/Card17_002.java @@ -51,7 +51,8 @@ public class Card17_002 extends AbstractPermanent { @Override public Modifier getAlwaysOnModifier(final PhysicalCard self) { - return new AbstractExtraPlayCostModifier(self, "To play, remove an ORC card from your discard pile from the game.", Filters.and(Culture.ORC, Race.ORC), + return new AbstractExtraPlayCostModifier(self, "To play, remove an ORC card from your discard pile from the game.", + Filters.and(Culture.ORC, Race.ORC), new AndCondition( new CanSpotCultureTokensCondition(4, Token.DWARVEN), new SpotCondition(2, Race.DWARF))) { @@ -63,7 +64,7 @@ public class Card17_002 extends AbstractPermanent { @Override public List getExtraCostsToPlay(GameState gameState, ModifiersQuerying modifiersQueirying, Action action, PhysicalCard card) { return Collections.singletonList( - new ChooseAndRemoveFromTheGameCardsInDiscardEffect(action, self, self.getOwner(), 1, 1, Culture.ORC)); + new ChooseAndRemoveFromTheGameCardsInDiscardEffect(action, card, card.getOwner(), 1, 1, Culture.ORC)); } }; } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/TimingAtTest.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/TimingAtTest.java index 3eb255447..897e62675 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/TimingAtTest.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/TimingAtTest.java @@ -4,6 +4,7 @@ import com.gempukku.lotro.cards.AbstractSite; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.common.Block; import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Token; import com.gempukku.lotro.common.Zone; import com.gempukku.lotro.game.LotroCardBlueprint; import com.gempukku.lotro.game.PhysicalCard; @@ -17,15 +18,16 @@ import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.modifiers.ModifierFlag; import com.gempukku.lotro.logic.modifiers.SpecialFlagModifier; import com.gempukku.lotro.logic.timing.EffectResult; -import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertTrue; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.fail; import org.junit.Test; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; +import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertTrue; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.fail; + public class TimingAtTest extends AbstractAtTest { @Test public void playStartingFellowshipWithDiscount() throws DecisionResultInvalidException { @@ -311,4 +313,37 @@ public class TimingAtTest extends AbstractAtTest { assertFalse(_game.getModifiersQuerying().hasFlagActive(_game.getGameState(), ModifierFlag.RING_TEXT_INACTIVE)); assertTrue(_game.getModifiersQuerying().hasFlagActive(_game.getGameState(), ModifierFlag.CANT_PREVENT_WOUNDS)); } + + @Test + public void extraCostToPlay() throws DecisionResultInvalidException { + initializeSimplestGame(); + + skipMulligans(); + + PhysicalCardImpl balinAvenged = new PhysicalCardImpl(100, "17_2", P1, _library.getLotroCardBlueprint("17_2")); + PhysicalCardImpl prowlingOrc = new PhysicalCardImpl(101, "11_136", P2, _library.getLotroCardBlueprint("11_136")); + PhysicalCardImpl dwarvenGuard1 = new PhysicalCardImpl(102, "1_7", P1, _library.getLotroCardBlueprint("1_7")); + PhysicalCardImpl dwarvenGuard2 = new PhysicalCardImpl(103, "1_7", P1, _library.getLotroCardBlueprint("1_7")); + PhysicalCardImpl prowlingOrcInDiscard = new PhysicalCardImpl(104, "11_136", P2, _library.getLotroCardBlueprint("11_136")); + + _game.getGameState().addCardToZone(_game, balinAvenged, Zone.SUPPORT); + _game.getGameState().addTokens(balinAvenged, Token.DWARVEN, 4); + _game.getGameState().addCardToZone(_game, dwarvenGuard1, Zone.FREE_CHARACTERS); + _game.getGameState().addCardToZone(_game, dwarvenGuard2, Zone.FREE_CHARACTERS); + _game.getGameState().addCardToZone(_game, prowlingOrc, Zone.HAND); + _game.getGameState().addCardToZone(_game, prowlingOrcInDiscard, Zone.DISCARD); + _game.getGameState().addTwilight(10); + + // End fellowship phase + playerDecided(P1, ""); + + AwaitingDecision shadowDecision = _userFeedback.getAwaitingDecision(P2); + assertEquals(AwaitingDecisionType.CARD_ACTION_CHOICE, shadowDecision.getDecisionType()); + validateContents(new String[]{"" + prowlingOrc.getCardId()}, (String[]) shadowDecision.getDecisionParameters().get("cardId")); + + playerDecided(P2, "0"); + + assertEquals(Zone.REMOVED, prowlingOrcInDiscard.getZone()); + assertEquals(Zone.SHADOW_CHARACTERS, prowlingOrc.getZone()); + } } diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html b/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html index 94f058ecd..05d8baea0 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html @@ -1,4 +1,7 @@
+10 Sep. 2012
+- "Balin Avenged" now correctly allows to play the ORC Orcs by removing the card from discard, as an additional cost.
+
 2 Sep. 2012
 - "Slow-kindled Courage" and other FP conditions that give Assignment actions to minions, now actually do that.