From d5a56a8cd064de6e1e09cef26bfcc31643644b14 Mon Sep 17 00:00:00 2001 From: "marcin.sciesinski" Date: Mon, 2 Sep 2019 12:21:13 -0700 Subject: [PATCH] Discard card from hand effect --- .../main/web/cards/set40/set40-gondor.json | 3 +- .../field/effect/EffectAppenderFactory.java | 2 +- .../com/gempukku/lotro/at/NewCardsAtTest.java | 30 ++++++++++++++++++- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-gondor.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-gondor.json index 105c153f8..c66cd1327 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-gondor.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-gondor.json @@ -20,7 +20,8 @@ "optional": true, "cost": { "type": "discardFromHand", - "filter": "side(free people)" + "filter": "choose(side(free people))", + "forced": false }, "effect": { "type": "discard", diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/EffectAppenderFactory.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/EffectAppenderFactory.java index 4d7b313c6..ff10568ad 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/EffectAppenderFactory.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/EffectAppenderFactory.java @@ -59,7 +59,7 @@ public class EffectAppenderFactory { effectAppenderProducers.put("cantbeoverwhelmedmultiplier", new CantBeOverwhelmedMultiplier()); effectAppenderProducers.put("play", new PlayCardFromHand()); effectAppenderProducers.put("cancelskirmish", new CancelSkirmish()); - effectAppenderProducers.put("discardfromhand", new CancelSkirmish()); + effectAppenderProducers.put("discardfromhand", new DiscardCardsFromHand()); effectAppenderProducers.put("chooseandremovetwilight", new ChooseAndRemoveTwilight()); effectAppenderProducers.put("removetwilight", new RemoveTwilight()); effectAppenderProducers.put("stackcards", new StackCardsFromPlay()); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/NewCardsAtTest.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/NewCardsAtTest.java index 609b62f6f..27dcedc05 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/NewCardsAtTest.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/NewCardsAtTest.java @@ -268,7 +268,7 @@ public class NewCardsAtTest extends AbstractAtTest { } @Test - public void battleFeverCantBePlayedOnSkirmishingGimli() throws DecisionResultInvalidException, CardNotFoundException { + public void checkingEventCostsAsRequirements() throws DecisionResultInvalidException, CardNotFoundException { initializeSimplestGame(); final PhysicalCardImpl battleFever = createCard(P1, "40_5"); @@ -305,4 +305,32 @@ public class NewCardsAtTest extends AbstractAtTest { assertNull(getCardActionId(P1, "Play Battle Fever")); } + + @Test + public void discardCardEffect() throws DecisionResultInvalidException, CardNotFoundException { + initializeSimplestGame(); + + final PhysicalCardImpl blackBreath = createCard(P2, "40_183"); + final PhysicalCardImpl athelas = createCard(P1, "40_313"); + final PhysicalCardImpl athelasInHand = createCard(P1, "40_313"); + PhysicalCardImpl aragorn = createCard(P1, "40_94"); + + _game.getGameState().addCardToZone(_game, aragorn, Zone.FREE_CHARACTERS); + _game.getGameState().attachCard(_game, blackBreath, aragorn); + _game.getGameState().addCardToZone(_game, athelas, Zone.HAND); + _game.getGameState().addCardToZone(_game, athelasInHand, Zone.HAND); + + skipMulligans(); + + // Play athelas + playerDecided(P1, "0"); + // Attach to Aragorn + playerDecided(P1, "" + aragorn.getCardId()); + + playerDecided(P1, "0"); + + playerDecided(P1, "0"); + + assertEquals(Zone.DISCARD, blackBreath.getZone()); + } }