- "Legolas Bow" now correctly allows to heal when Legolas bearing it is exerted to play an event or condition.
This commit is contained in:
@@ -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())));
|
||||
|
||||
@@ -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))));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user