From 320a77d680cb6dfb307ded88ea44c7ab25bae253 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Fri, 10 Feb 2012 10:40:51 +0000 Subject: [PATCH] - "O Elbereth! Gilthoniel!" will not allow to cancel a skirmish now in formats that do not allow that. --- .../lotro/cards/set2/shire/Card2_108.java | 7 +-- .../lotro/at/IndividualCardAtTest.java | 55 +++++++++++++++++++ .../src/main/webapp/includes/changeLog.html | 3 + 3 files changed, 61 insertions(+), 4 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/shire/Card2_108.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/shire/Card2_108.java index 19f870f35..61374341f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/shire/Card2_108.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/shire/Card2_108.java @@ -10,7 +10,6 @@ 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.game.state.Skirmish; import com.gempukku.lotro.logic.actions.ActivateCardAction; import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.modifiers.StrengthModifier; @@ -83,9 +82,9 @@ public class Card2_108 extends AbstractAttachable { @Override public boolean isPlayableInFull(LotroGame game) { - Skirmish skirmish = game.getGameState().getSkirmish(); - return (skirmish != null && skirmish.getFellowshipCharacter() == _attachedTo - && Filters.filter(skirmish.getShadowCharacters(), game.getGameState(), game.getModifiersQuerying(), Race.NAZGUL).size() > 0); + return super.isPlayableInFull(game) + && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Race.NAZGUL, Filters.inSkirmish) + && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.ringBearer, Filters.inSkirmish); } } } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/IndividualCardAtTest.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/IndividualCardAtTest.java index 095d94f3d..aad175541 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/IndividualCardAtTest.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/IndividualCardAtTest.java @@ -374,4 +374,59 @@ public class IndividualCardAtTest extends AbstractAtTest { assertEquals(2, _game.getGameState().getBurdens()); assertEquals(1, _game.getGameState().getHand(P1).size()); } + + @Test + public void oElberethGilthoniel() throws DecisionResultInvalidException { + Map decks = new HashMap(); + final LotroDeck p1Deck = createSimplestDeck(); + p1Deck.setRingBearer("9_49"); + decks.put(P1, p1Deck); + + decks.put(P2, createSimplestDeck()); + + initializeGameWithDecks(decks); + + skipMulligans(); + + PhysicalCardImpl oElberethGilthoniel = new PhysicalCardImpl(100, "2_108", P1, _library.getLotroCardBlueprint("2_108")); + PhysicalCardImpl ulaireToldea = new PhysicalCardImpl(101, "1_236", P2, _library.getLotroCardBlueprint("1_236")); + + _game.getGameState().attachCard(_game, oElberethGilthoniel, _game.getGameState().getRingBearer(P1)); + + _game.getGameState().addTwilight(3); + + // End fellowship phase + playerDecided(P1, ""); + + _game.getGameState().addCardToZone(_game, ulaireToldea, Zone.SHADOW_CHARACTERS); + + // End shadow phase + playerDecided(P2, ""); + + // End maneuvers phase + playerDecided(P1, ""); + playerDecided(P2, ""); + + // End archery phase + playerDecided(P1, ""); + playerDecided(P2, ""); + + // End assignment phase + playerDecided(P1, ""); + playerDecided(P2, ""); + + // Assign + playerDecided(P1, _game.getGameState().getRingBearer(P1).getCardId() + " " + ulaireToldea.getCardId()); + + // Start skirmish + playerDecided(P1, String.valueOf(_game.getGameState().getRingBearer(P1).getCardId())); + + AwaitingDecision playSkirmishEvent = _userFeedback.getAwaitingDecision(P1); + assertEquals(AwaitingDecisionType.CARD_ACTION_CHOICE, playSkirmishEvent.getDecisionType()); + validateContents(new String[]{"" + oElberethGilthoniel.getCardId()}, ((String[]) playSkirmishEvent.getDecisionParameters().get("cardId"))); + playerDecided(P1, "0"); + + // Should not cancel skirmish (since it's a ring-bearer) + assertEquals(Phase.SKIRMISH, _game.getGameState().getCurrentPhase()); + } } 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 44caaff39..8c283d74d 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 Feb. 2012
+- "O Elbereth! Gilthoniel!" will not allow to cancel a skirmish now in formats that do not allow that.
+
 8 Feb. 2012
 - "Pillage of Rohan" should now correctly prevent FP player from playing Skirmish events and special abilities.
 - "Fall Back" should not discard attached cards.