From 0ef0644215819e66e38acac0899b52ec95dcdb65 Mon Sep 17 00:00:00 2001 From: "marcin.sciesinski" Date: Mon, 2 Sep 2019 10:51:29 -0700 Subject: [PATCH] Fixed event requirements check --- .../cards/build/BuiltLotroCardBlueprint.java | 16 ++++---- .../com/gempukku/lotro/at/NewCardsAtTest.java | 39 +++++++++++++++++++ 2 files changed, 46 insertions(+), 9 deletions(-) diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/BuiltLotroCardBlueprint.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/BuiltLotroCardBlueprint.java index 67206aace..0229ad513 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/BuiltLotroCardBlueprint.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/BuiltLotroCardBlueprint.java @@ -390,18 +390,16 @@ public class BuiltLotroCardBlueprint implements LotroCardBlueprint { @Override public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - if (requirements == null) - return true; - DefaultActionContext dummy = new DefaultActionContext(self.getOwner(), game, self, null, null); - for (Requirement requirement : requirements) { - if (!requirement.accepts(dummy)) - return false; - } + if (requirements != null) + for (Requirement requirement : requirements) { + if (!requirement.accepts(dummy)) + return false; + } - if (playEventAction != null) - playEventAction.isValid(dummy); + if (playEventAction != null && !playEventAction.isValid(dummy)) + return false; return true; } 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 aaceed04b..609b62f6f 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 @@ -266,4 +266,43 @@ public class NewCardsAtTest extends AbstractAtTest { assertEquals(Zone.DECK, celebornInDeck.getZone()); assertEquals(0, _game.getGameState().getWounds(nazgul)); } + + @Test + public void battleFeverCantBePlayedOnSkirmishingGimli() throws DecisionResultInvalidException, CardNotFoundException { + initializeSimplestGame(); + + final PhysicalCardImpl battleFever = createCard(P1, "40_5"); + final PhysicalCardImpl gimli = createCard(P1, "40_18"); + PhysicalCardImpl nazgul = createCard(P2, "40_211"); + + + _game.getGameState().addCardToZone(_game, gimli, Zone.FREE_CHARACTERS); + _game.getGameState().addCardToZone(_game, battleFever, Zone.HAND); + _game.getGameState().addCardToZone(_game, nazgul, Zone.SHADOW_CHARACTERS); + + skipMulligans(); + + // Pass in fellowship + playerDecided(P1, ""); + + // Pass in shadow + playerDecided(P2, ""); + +//Pass in maneuver + playerDecided(P1, ""); + playerDecided(P2, ""); + +//Pass in archery + playerDecided(P1, ""); + playerDecided(P2, ""); + +//Pass in assignment + playerDecided(P1, ""); + playerDecided(P2, ""); + + playerDecided(P1, gimli.getCardId() + " " + nazgul.getCardId()); + playerDecided(P1, "" + gimli.getCardId()); + + assertNull(getCardActionId(P1, "Play Battle Fever")); + } }