- "Legolas Bow" now correctly allows to heal when Legolas bearing it is exerted to play an event or condition.

This commit is contained in:
marcins78@gmail.com
2011-12-15 12:13:35 +00:00
parent b6c828074e
commit 8036f23827
3 changed files with 50 additions and 13 deletions

View File

@@ -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<OptionalTriggerAction> 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())));

View File

@@ -245,4 +245,39 @@ public class IndividualCardAtTest extends AbstractAtTest {
assertEquals(0, _game.getGameState().getHand(P1).size());
}
@Test
public void legolasBowWithToil() throws DecisionResultInvalidException {
Map<String, Collection<String>> extraCards = new HashMap<String, Collection<String>>();
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))));
}
}

View File

@@ -1,4 +1,7 @@
<pre style="font-size:80%">
<b>15 Dec. 2011</b>
- "Legolas Bow" now correctly allows to heal when Legolas bearing it is exerted to play an event or condition.
<b>14 Dec. 2011</b>
- Added "Black Rider" - set 12.
- "Skinbark" now exerts itself, rather than discards.