From 8036f23827fca2426e5179704b5fc5ac046e136f Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Thu, 15 Dec 2011 12:13:35 +0000 Subject: [PATCH] - "Legolas Bow" now correctly allows to heal when Legolas bearing it is exerted to play an event or condition. --- .../lotro/cards/set11/elven/Card11_023.java | 25 +++++++------ .../lotro/at/IndividualCardAtTest.java | 35 +++++++++++++++++++ .../src/main/webapp/includes/changeLog.html | 3 ++ 3 files changed, 50 insertions(+), 13 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/elven/Card11_023.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/elven/Card11_023.java index 3bc1c01e7..372be062d 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/elven/Card11_023.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/elven/Card11_023.java @@ -1,23 +1,22 @@ package com.gempukku.lotro.cards.set11.elven; import com.gempukku.lotro.cards.AbstractAttachableFPPossession; -import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.CheckLimitEffect; import com.gempukku.lotro.common.*; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.KeywordModifier; -import com.gempukku.lotro.logic.actions.OptionalTriggerAction; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.Action; -import com.gempukku.lotro.logic.timing.results.ExertResult; -import com.gempukku.lotro.logic.effects.HealCharactersEffect; import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.actions.OptionalTriggerAction; +import com.gempukku.lotro.logic.effects.HealCharactersEffect; +import com.gempukku.lotro.logic.modifiers.KeywordModifier; +import com.gempukku.lotro.logic.modifiers.Modifier; +import com.gempukku.lotro.logic.timing.Action; +import com.gempukku.lotro.logic.timing.EffectResult; +import com.gempukku.lotro.logic.timing.results.ExertResult; -import java.util.List; import java.util.Collections; +import java.util.List; /** * Set: Shadows @@ -46,13 +45,13 @@ public class Card11_023 extends AbstractAttachableFPPossession { @Override public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.forEachExerted(game, effectResult, self) + if (TriggerConditions.forEachExerted(game, effectResult, self.getAttachedTo()) && self.getAttachedTo().getBlueprint().getName().equals("Legolas")) { ExertResult exertResult = (ExertResult) effectResult; if (exertResult.getAction() != null && exertResult.getAction().getType() == Action.Type.PLAY_CARD) { PhysicalCard playedCard = exertResult.getAction().getActionSource(); if (playedCard != null && Filters.and(Culture.ELVEN, Filters.or(CardType.CONDITION, CardType.EVENT)).accepts(game.getGameState(), game.getModifiersQuerying(), playedCard)) { - OptionalTriggerAction action= new OptionalTriggerAction(self); + OptionalTriggerAction action = new OptionalTriggerAction(self); action.appendEffect( new CheckLimitEffect(action, self, 1, new HealCharactersEffect(self, self.getAttachedTo()))); 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 6b15d5bef..5e5e80bd2 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 @@ -245,4 +245,39 @@ public class IndividualCardAtTest extends AbstractAtTest { assertEquals(0, _game.getGameState().getHand(P1).size()); } + + @Test + public void legolasBowWithToil() throws DecisionResultInvalidException { + Map> extraCards = new HashMap>(); + extraCards.put(P1, Arrays.asList("11_21", "11_23", "11_17")); + initializeSimplestGame(extraCards); + + // Play first character + AwaitingDecision firstCharacterDecision = _userFeedback.getAwaitingDecision(P1); + assertEquals(AwaitingDecisionType.ARBITRARY_CARDS, firstCharacterDecision.getDecisionType()); + validateContents(new String[]{"11_21"}, ((String[]) firstCharacterDecision.getDecisionParameters().get("blueprintId"))); + + playerDecided(P1, getArbitraryCardId(firstCharacterDecision, "11_21")); + + skipMulligans(); + + AwaitingDecision playFirstFellowship = _userFeedback.getAwaitingDecision(P1); + playerDecided(P1, getCardActionId(playFirstFellowship, "Attach Legolas")); + + AwaitingDecision playSecondFellowship = _userFeedback.getAwaitingDecision(P1); + playerDecided(P1, getCardActionId(playSecondFellowship, "Play Elven")); + + AwaitingDecision toilExertion = _userFeedback.getAwaitingDecision(P1); + assertEquals(AwaitingDecisionType.CARD_SELECTION, toilExertion.getDecisionType()); + String legolasCardId = ((String[]) toilExertion.getDecisionParameters().get("cardId"))[0]; + playerDecided(P1, legolasCardId); + + assertEquals(1, _game.getGameState().getWounds(_game.getGameState().findCardById(Integer.parseInt(legolasCardId)))); + + AwaitingDecision bowHeal = _userFeedback.getAwaitingDecision(P1); + assertEquals(AwaitingDecisionType.CARD_ACTION_CHOICE, bowHeal.getDecisionType()); + playerDecided(P1, "0"); + + assertEquals(0, _game.getGameState().getWounds(_game.getGameState().findCardById(Integer.parseInt(legolasCardId)))); + } } 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 1981fb454..57cfc6fd9 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 @@
+15 Dec. 2011
+- "Legolas Bow" now correctly allows to heal when Legolas bearing it is exerted to play an event or condition.
+
 14 Dec. 2011
 - Added "Black Rider" - set 12.
 - "Skinbark" now exerts itself, rather than discards.