Dwarven and Elvencards from set 31
This commit is contained in:
425
gemp-lotr/gemp-lotr-async/src/main/web/cards/set31/set31-fp.json
Normal file
425
gemp-lotr/gemp-lotr-async/src/main/web/cards/set31/set31-fp.json
Normal file
@@ -0,0 +1,425 @@
|
||||
{
|
||||
"31_1": {
|
||||
"title": "Dwarven Axe",
|
||||
"culture": "dwarven",
|
||||
"cost": 1,
|
||||
"type": "possession",
|
||||
"possession": "hand weapon",
|
||||
"strength": 2,
|
||||
"target": "culture(dwarven),character",
|
||||
"effects": {
|
||||
"type": "modifier",
|
||||
"modifier": {
|
||||
"type": "addKeyword",
|
||||
"filter": "bearer",
|
||||
"condition": {
|
||||
"type": "location",
|
||||
"filter": "mountain"
|
||||
},
|
||||
"keyword": "damage+1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"31_2": {
|
||||
"title": "Dwarven Song",
|
||||
"culture": "dwarven",
|
||||
"cost": 3,
|
||||
"type": "event",
|
||||
"keyword": "regroup",
|
||||
"effects": {
|
||||
"type": "event",
|
||||
"cost": {
|
||||
"type": "discard",
|
||||
"filter": "choose(culture(dwarven),follower,attachedTo(any))",
|
||||
"memorize": "discardedFollower"
|
||||
},
|
||||
"effect": {
|
||||
"type": "choice",
|
||||
"texts": [
|
||||
"Play possessions",
|
||||
"Play artifacts"
|
||||
],
|
||||
"effects": [
|
||||
{
|
||||
"type": "duplicate",
|
||||
"effect": {
|
||||
"type": "playCardFromDrawDeck",
|
||||
"filter": "choose(culture(dwarven),possession)"
|
||||
},
|
||||
"amount": {
|
||||
"type": "twilightCostInMemory",
|
||||
"memory": "discardedFollower"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "duplicate",
|
||||
"effect": {
|
||||
"type": "playCardFromDrawDeck",
|
||||
"filter": "choose(culture(dwarven),artifact)"
|
||||
},
|
||||
"amount": {
|
||||
"type": "twilightCostInMemory",
|
||||
"memory": "discardedFollower"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"31_3": {
|
||||
"title": "*Emeralds of Girion",
|
||||
"culture": "dwarven",
|
||||
"cost": 2,
|
||||
"type": "artifact",
|
||||
"keyword": "support area",
|
||||
"effects": [
|
||||
{
|
||||
"type": "activated",
|
||||
"phase": "fellowship",
|
||||
"cost": {
|
||||
"type": "addTwilight",
|
||||
"amount": 1
|
||||
},
|
||||
"effect": {
|
||||
"type": "putStackedCardsIntoHand",
|
||||
"filter": "choose(any)",
|
||||
"on": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "activated",
|
||||
"phase": "regroup",
|
||||
"cost": {
|
||||
"type": "exert",
|
||||
"filter": "choose(ally)"
|
||||
},
|
||||
"effect": {
|
||||
"type": "stackCardsFromHand",
|
||||
"filter": "choose(culture(dwarven),event)",
|
||||
"where": "self"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"31_4": {
|
||||
"title": "*Great Barricade",
|
||||
"culture": "dwarven",
|
||||
"cost": 2,
|
||||
"type": "possession",
|
||||
"keyword": [
|
||||
"support area",
|
||||
"fortification"
|
||||
],
|
||||
"effects": [
|
||||
{
|
||||
"type": "extraCost",
|
||||
"cost": {
|
||||
"type": "exert",
|
||||
"filter": "choose(culture(dwarven),companion)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "trigger",
|
||||
"trigger": {
|
||||
"type": "moves"
|
||||
},
|
||||
"condition": {
|
||||
"type": "phase",
|
||||
"phase": "regroup"
|
||||
},
|
||||
"effect": {
|
||||
"type": "discard",
|
||||
"filter": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "modifier",
|
||||
"modifier": {
|
||||
"type": "modifyStrength",
|
||||
"filter": "minion,inSkirmishAgainst(culture(dwarven),companion)",
|
||||
"condition": {
|
||||
"type": "location",
|
||||
"filter": "siteNumber(7-8)"
|
||||
},
|
||||
"amount": -3
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"31_5": {
|
||||
"title": "*Mithril-coat",
|
||||
"culture": "dwarven",
|
||||
"cost": 2,
|
||||
"type": "artifact",
|
||||
"vitality": 1,
|
||||
"target": "name(Bilbo)",
|
||||
"effects": [
|
||||
{
|
||||
"type": "modifier",
|
||||
"modifier": {
|
||||
"type": "modifyArcheryTotal",
|
||||
"side": "shadow",
|
||||
"amount": -1
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "modifier",
|
||||
"modifier": {
|
||||
"type": "modifyCost",
|
||||
"condition": {
|
||||
"type": "canSpot",
|
||||
"filter": "bearer,inSkirmish"
|
||||
},
|
||||
"filter": "side(shadow),event",
|
||||
"amount": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"31_6": {
|
||||
"title": "*Oakenshield",
|
||||
"culture": "dwarven",
|
||||
"cost": 1,
|
||||
"type": "possession",
|
||||
"possession": "shield",
|
||||
"strength": 1,
|
||||
"target": "name(Thorin)",
|
||||
"effects": [
|
||||
{
|
||||
"type": "modifier",
|
||||
"modifier": {
|
||||
"type": "modifyCost",
|
||||
"filter": "culture(dwarven),event",
|
||||
"amount": -1
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "activatedTrigger",
|
||||
"trigger": {
|
||||
"type": "aboutToTakeWound",
|
||||
"filter": "bearer"
|
||||
},
|
||||
"cost": [
|
||||
{
|
||||
"type": "memorize",
|
||||
"filter": "bearer",
|
||||
"memory": "bearer"
|
||||
},
|
||||
{
|
||||
"type": "discard",
|
||||
"filter": "self"
|
||||
}
|
||||
],
|
||||
"effect": {
|
||||
"type": "preventWound",
|
||||
"filter": "choose(memory(bearer))"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"31_7": {
|
||||
"title": "*The Arkenstone",
|
||||
"culture": "dwarven",
|
||||
"cost": 2,
|
||||
"type": "artifact",
|
||||
"keyword": "support area",
|
||||
"effects": [
|
||||
{
|
||||
"type": "modifier",
|
||||
"modifier": {
|
||||
"type": "modifyCost",
|
||||
"filter": "name(Smaug)",
|
||||
"amount": -4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "activated",
|
||||
"phase": "fellowship",
|
||||
"cost": {
|
||||
"type": "addTwilight",
|
||||
"amount": 1
|
||||
},
|
||||
"effect": {
|
||||
"type": "putStackedCardsIntoHand",
|
||||
"filter": "choose(any)",
|
||||
"on": "self"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "activated",
|
||||
"phase": "maneuver",
|
||||
"effect": {
|
||||
"type": "stackCardsFromHand",
|
||||
"filter": "choose(culture(dwarven))",
|
||||
"where": "self"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"31_8": {
|
||||
"title": "*Elf Army",
|
||||
"culture": "elven",
|
||||
"cost": 3,
|
||||
"type": "ally",
|
||||
"allyHome": "hobbit,5",
|
||||
"race": "elf",
|
||||
"strength": 7,
|
||||
"vitality": 4,
|
||||
"keyword": "archer",
|
||||
"effects": {
|
||||
"type": "activated",
|
||||
"phase": "maneuver",
|
||||
"condition": {
|
||||
"type": "isMore",
|
||||
"firstNumber": {
|
||||
"type": "forEachYouCanSpot",
|
||||
"filter": "minion"
|
||||
},
|
||||
"secondNumber": {
|
||||
"type": "forEachYouCanSpot",
|
||||
"filter": "companion"
|
||||
}
|
||||
},
|
||||
"cost": {
|
||||
"type": "exert",
|
||||
"filter": "self"
|
||||
},
|
||||
"effect": {
|
||||
"type": "canParticipateInArcheryFireAndSkirmishes",
|
||||
"filter": "self",
|
||||
"until": "start(regroup)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"31_9": {
|
||||
"title": "*Legolas",
|
||||
"subtitle": "Prince of Mirkwood",
|
||||
"culture": "elven",
|
||||
"cost": 2,
|
||||
"type": "ally",
|
||||
"allyHome": "hobbit,5",
|
||||
"race": "elf",
|
||||
"strength": 6,
|
||||
"vitality": 3,
|
||||
"keyword": "archer",
|
||||
"effects": {
|
||||
"type": "activated",
|
||||
"phase": "archery",
|
||||
"condition": {
|
||||
"type": "canSpot",
|
||||
"filter": "orc"
|
||||
},
|
||||
"cost": {
|
||||
"type": "exert",
|
||||
"filter": "self"
|
||||
},
|
||||
"effect": {
|
||||
"type": "modifyArcheryTotal",
|
||||
"side": "free people",
|
||||
"amount": {
|
||||
"type": "condition",
|
||||
"condition": {
|
||||
"type": "location",
|
||||
"filter": "or(river,forest)"
|
||||
},
|
||||
"true": 2,
|
||||
"false": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"31_10": {
|
||||
"title": "*Tauriel",
|
||||
"subtitle": "Staunch Defender",
|
||||
"culture": "elven",
|
||||
"cost": 2,
|
||||
"type": "ally",
|
||||
"allyHome": "hobbit,5",
|
||||
"race": "elf",
|
||||
"strength": 6,
|
||||
"vitality": 3,
|
||||
"keyword": "archer",
|
||||
"effects": {
|
||||
"type": "activated",
|
||||
"phase": "maneuver",
|
||||
"cost": {
|
||||
"type": "exert",
|
||||
"filter": "self"
|
||||
},
|
||||
"effect": {
|
||||
"type": "returnToHand",
|
||||
"filter": "choose(orc,strengthLessThan(8))"
|
||||
}
|
||||
}
|
||||
},
|
||||
"31_11": {
|
||||
"title": "The Evil Becomes Stronger",
|
||||
"culture": "elven",
|
||||
"cost": 2,
|
||||
"type": "event",
|
||||
"keyword": "archery",
|
||||
"effects": {
|
||||
"type": "event",
|
||||
"cost": {
|
||||
"type": "spot",
|
||||
"filter": "choose(culture(elven),archer,ally)",
|
||||
"memorize": "chosenAlly"
|
||||
},
|
||||
"effect": [
|
||||
{
|
||||
"type": "exert",
|
||||
"filter": "choose(minion)"
|
||||
},
|
||||
{
|
||||
"type": "modifyStrength",
|
||||
"filter": "memory(chosenAlly)",
|
||||
"amount": 2,
|
||||
"until": "start(regroup)"
|
||||
},
|
||||
{
|
||||
"type": "canParticipateInArcheryFireAndSkirmishes",
|
||||
"filter": "memory(chosenAlly)",
|
||||
"until": "start(regroup)"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"31_12": {
|
||||
"title": "*Thranduil",
|
||||
"subtitle": "Elven King",
|
||||
"culture": "elven",
|
||||
"cost": 4,
|
||||
"type": "ally",
|
||||
"allyHome": "hobbit,5",
|
||||
"race": "elf",
|
||||
"strength": 9,
|
||||
"vitality": 4,
|
||||
"effects": {
|
||||
"type": "activated",
|
||||
"phase": "maneuver",
|
||||
"cost": {
|
||||
"type": "choice",
|
||||
"texts": [
|
||||
"Exert Thorin twice",
|
||||
"Discard a DWARVEN artifact"
|
||||
],
|
||||
"effects": [
|
||||
{
|
||||
"type": "exert",
|
||||
"filter": "self",
|
||||
"times": 2
|
||||
},
|
||||
{
|
||||
"type": "discard",
|
||||
"filter": "choose(culture(dwarven),artifact)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"effect": {
|
||||
"type": "canParticipateInArcheryFireAndSkirmishes",
|
||||
"filter": "self",
|
||||
"until": "start(regroup)"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set31.dwarven;
|
||||
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Filterable;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
import com.gempukku.lotro.common.PossessionClass;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractAttachableFPPossession;
|
||||
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.condition.LocationCondition;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: The Short Rest
|
||||
* Side: Free
|
||||
* Culture: Dwarven
|
||||
* Twilight Cost: 1
|
||||
* Type: Possession • Hand Weapon
|
||||
* Strength: +2
|
||||
* Game Text: Bearer must be a [DWARVEN] character. While bearer is at a mountain site, he is damage +1.
|
||||
*/
|
||||
public class Card31_001 extends AbstractAttachableFPPossession {
|
||||
public Card31_001() {
|
||||
super(1, 2, 0, Culture.DWARVEN, PossessionClass.HAND_WEAPON, "Dwarven Axe");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
|
||||
return Culture.DWARVEN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
|
||||
return Collections.singletonList(
|
||||
new KeywordModifier(self, Filters.hasAttached(self), new LocationCondition(Keyword.MOUNTAIN), Keyword.DAMAGE, 1));
|
||||
}
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set31.dwarven;
|
||||
|
||||
import com.gempukku.lotro.common.CardType;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
import com.gempukku.lotro.common.Side;
|
||||
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.PlayEventAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
|
||||
import com.gempukku.lotro.logic.decisions.MultipleChoiceAwaitingDecision;
|
||||
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
|
||||
import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect;
|
||||
import com.gempukku.lotro.logic.effects.ShuffleDeckEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDeckEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndPutCardFromDeckIntoHandEffect;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
|
||||
/**
|
||||
* Set: The Short Rest
|
||||
* Side: Free
|
||||
* Culture: Dwarven
|
||||
* Twilight Cost: 3
|
||||
* Type: Event
|
||||
* Game Text: Regroup: Discard an attached [DWARVEN] follower with a twilight cost of X to play X [DWARVEN] possessions
|
||||
* or X [DWARVEN] artifacts from your draw deck.
|
||||
*/
|
||||
public class Card31_002 extends AbstractEvent {
|
||||
public Card31_002() {
|
||||
super(Side.FREE_PEOPLE, 3, Culture.DWARVEN, "Dwarven Song", Phase.REGROUP);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
|
||||
return PlayConditions.canDiscardFromPlay(self, game, Filters.and(Culture.DWARVEN, CardType.FOLLOWER), Filters.attachedTo(CardType.COMPANION));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlayEventAction getPlayEventCardAction(final String playerId, LotroGame game, PhysicalCard self) {
|
||||
final PlayEventAction action = new PlayEventAction(self);
|
||||
action.appendCost(
|
||||
new ChooseActiveCardEffect(self, playerId, "Choose an attached Dwarven follower", Filters.and(Culture.DWARVEN, CardType.FOLLOWER), Filters.attachedTo(CardType.COMPANION)) {
|
||||
@Override
|
||||
protected void cardSelected(LotroGame game, final PhysicalCard follower) {
|
||||
action.insertCost(new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, follower));
|
||||
final int twilightCost = follower.getBlueprint().getTwilightCost();
|
||||
action.appendEffect(
|
||||
new PlayoutDecisionEffect(playerId,
|
||||
new MultipleChoiceAwaitingDecision(1, "What would you like to do", new String[]{"Play " + twilightCost + " Dwarven artifacts", "Play " + twilightCost + " Dwarven possessions"}) {
|
||||
@Override
|
||||
protected void validDecisionMade(int index, String result) {
|
||||
new ChooseAndPutCardFromDeckIntoHandEffect(action, playerId, 1, 1, Culture.GONDOR);
|
||||
for (int i = 0; i < twilightCost; i++) {
|
||||
if (index == 0) {
|
||||
action.appendEffect(
|
||||
new ChooseAndPlayCardFromDeckEffect(playerId, Culture.DWARVEN, CardType.ARTIFACT));
|
||||
} else {
|
||||
action.appendEffect(
|
||||
new ChooseAndPlayCardFromDeckEffect(playerId, Culture.DWARVEN, CardType.POSSESSION));
|
||||
}
|
||||
}
|
||||
action.appendEffect(new ShuffleDeckEffect(playerId));
|
||||
}
|
||||
}));
|
||||
}
|
||||
});
|
||||
return action;
|
||||
}
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set31.dwarven;
|
||||
|
||||
import com.gempukku.lotro.common.CardType;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
import com.gempukku.lotro.common.Side;
|
||||
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.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractPermanent;
|
||||
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
|
||||
import com.gempukku.lotro.logic.effects.ChooseArbitraryCardsEffect;
|
||||
import com.gempukku.lotro.logic.effects.PutCardFromStackedIntoHandEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndStackCardsFromHandEffect;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: The Short Rest
|
||||
* Side: Free
|
||||
* Culture: Dwarven
|
||||
* Twilight Cost: 2
|
||||
* Type: Artifact • Support Area
|
||||
* Game Text: Fellowship: Add (1) to take a card stacked here into hand. Regroup: Exert an ally to stack a [DWARVEN]
|
||||
* event from hand on Emeralds of Girion.
|
||||
*/
|
||||
public class Card31_003 extends AbstractPermanent {
|
||||
public Card31_003() {
|
||||
super(Side.FREE_PEOPLE, 2, CardType.ARTIFACT, Culture.DWARVEN, "Emeralds of Girion", null, true);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, final PhysicalCard self) {
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
|
||||
List<PhysicalCard> stackedCards = game.getGameState().getStackedCards(self);
|
||||
if (stackedCards.size() > 0) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new AddTwilightEffect(self, 1));
|
||||
action.appendEffect(
|
||||
new ChooseArbitraryCardsEffect(playerId, "Choose card", stackedCards, 1, 1) {
|
||||
@Override
|
||||
protected void cardsSelected(LotroGame game, Collection<PhysicalCard> selectedCards) {
|
||||
for (PhysicalCard selectedCard : selectedCards) {
|
||||
action.appendEffect(
|
||||
new PutCardFromStackedIntoHandEffect(selectedCard));
|
||||
}
|
||||
}
|
||||
});
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
}
|
||||
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.REGROUP, self)
|
||||
&& PlayConditions.canExert(self, game, CardType.ALLY)) {
|
||||
if (Filters.filter(game.getGameState().getHand(playerId), game,
|
||||
Culture.DWARVEN, CardType.EVENT).size() > 0) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(new ChooseAndExertCharactersEffect(action, playerId, 1, 1, CardType.ALLY));
|
||||
action.appendEffect(
|
||||
new ChooseAndStackCardsFromHandEffect(action, playerId, 1, 1, self, Culture.DWARVEN));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set31.dwarven;
|
||||
|
||||
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.logic.actions.RequiredTriggerAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractPermanent;
|
||||
import com.gempukku.lotro.logic.effects.SelfDiscardEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.AbstractExtraPlayCostModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.Condition;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.cost.ExertExtraPlayCostModifier;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
import com.gempukku.lotro.logic.timing.TriggerConditions;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: The Short Rest
|
||||
* Side: Free
|
||||
* Culture: Dwarven
|
||||
* Twilight Cost: 2
|
||||
* Type: Possession • Support Area
|
||||
* Game Text: Fortification. To play, exert a [DWARVEN] companion. If the fellowship moves during the regroup phase,
|
||||
* discard this possession. At sites 7 and 8, each minion skirmishing a [DWARVEN] companion is strength -3.
|
||||
*/
|
||||
public class Card31_004 extends AbstractPermanent {
|
||||
public Card31_004() {
|
||||
super(Side.FREE_PEOPLE, 2, CardType.POSSESSION, Culture.DWARVEN, "Great Barricade", null, true);
|
||||
addKeyword(Keyword.FORTIFICATION);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends AbstractExtraPlayCostModifier> getExtraCostToPlay(LotroGame game, PhysicalCard self) {
|
||||
return Collections.singletonList(
|
||||
new ExertExtraPlayCostModifier(self, self, null, Culture.DWARVEN, CardType.COMPANION));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
|
||||
return Arrays.asList(
|
||||
new StrengthModifier(self,
|
||||
Filters.and(
|
||||
CardType.MINION,
|
||||
Filters.inSkirmishAgainst(
|
||||
Filters.and(
|
||||
CardType.COMPANION,
|
||||
Culture.DWARVEN
|
||||
)
|
||||
)
|
||||
),
|
||||
new Condition() {
|
||||
@Override
|
||||
public boolean isFullfilled(LotroGame game) {
|
||||
return (game.getGameState().getCurrentSiteNumber() == 7 || game.getGameState().getCurrentSiteNumber() == 8)
|
||||
&& game.getGameState().getCurrentSiteBlock() == SitesBlock.HOBBIT;
|
||||
}
|
||||
}, -3));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.moves(game, effectResult)
|
||||
&& PlayConditions.isPhase(game, Phase.REGROUP)) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
action.appendEffect(
|
||||
new SelfDiscardEffect(self));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set31.dwarven;
|
||||
|
||||
import com.gempukku.lotro.common.CardType;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.PossessionClass;
|
||||
import com.gempukku.lotro.common.Side;
|
||||
import com.gempukku.lotro.filters.Filter;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractAttachableFPPossession;
|
||||
import com.gempukku.lotro.logic.modifiers.ArcheryTotalModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.Condition;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.TwilightCostModifier;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: The Short Rest
|
||||
* Side: Free
|
||||
* Culture: Shire
|
||||
* Twilight Cost: 2
|
||||
* Type: Artifact
|
||||
* Vitality: +1
|
||||
* Game Text: Bearer must be Bilbo. The minion archery total is -1. While Bilbo is skirmishing, the twilight cost
|
||||
* of each Shadow event is +2.
|
||||
*/
|
||||
public class Card31_005 extends AbstractAttachableFPPossession {
|
||||
public Card31_005() {
|
||||
super(2, 0, 1, Culture.DWARVEN, CardType.ARTIFACT, PossessionClass.ARMOR, "Mithril-coat", null, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Filter getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
|
||||
return Filters.name("Bilbo");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Modifier> getInPlayModifiers(LotroGame game, final PhysicalCard self) {
|
||||
List<Modifier> modifiers = new LinkedList<Modifier>();
|
||||
modifiers.add(
|
||||
new ArcheryTotalModifier(self, Side.SHADOW, -1));
|
||||
modifiers.add(
|
||||
new TwilightCostModifier(self, Filters.and(Side.SHADOW, CardType.EVENT),
|
||||
new Condition() {
|
||||
@Override
|
||||
public boolean isFullfilled(LotroGame game) {
|
||||
return game.getGameState().getSkirmish() != null
|
||||
&& game.getGameState().getSkirmish().getFellowshipCharacter() == self.getAttachedTo();
|
||||
}
|
||||
}, 2));
|
||||
return modifiers;
|
||||
}
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set31.dwarven;
|
||||
|
||||
import com.gempukku.lotro.common.CardType;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.PossessionClass;
|
||||
import com.gempukku.lotro.filters.Filter;
|
||||
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.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractAttachableFPPossession;
|
||||
import com.gempukku.lotro.logic.effects.PreventCardEffect;
|
||||
import com.gempukku.lotro.logic.effects.SelfDiscardEffect;
|
||||
import com.gempukku.lotro.logic.effects.WoundCharactersEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.TwilightCostModifier;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import com.gempukku.lotro.logic.timing.TriggerConditions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: The Short Rest
|
||||
* Side: Free
|
||||
* Culture: Dwarven
|
||||
* Twilight Cost: 1
|
||||
* Type: Possession • Shield
|
||||
* Strength: +1
|
||||
* Game Text: Bearer must be Thorin. The twilight cost of each [DWARVEN] event is -1.
|
||||
* Response: If Thorin is about to take a wound, discard this possession to prevent that wound.
|
||||
*/
|
||||
public class Card31_006 extends AbstractAttachableFPPossession {
|
||||
public Card31_006() {
|
||||
super(1, 1, 0, Culture.DWARVEN, PossessionClass.SHIELD, "Oakenshield", null, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Filter getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
|
||||
return Filters.name("Thorin");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
|
||||
return Collections.singletonList(
|
||||
new TwilightCostModifier(self, Filters.and(Culture.DWARVEN, CardType.EVENT), -1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends ActivateCardAction> getOptionalInPlayBeforeActions(String playerId, LotroGame game, Effect effect, PhysicalCard self) {
|
||||
if (TriggerConditions.isGettingWounded(effect, game, Filters.hasAttached(self))) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new SelfDiscardEffect(self));
|
||||
action.appendEffect(
|
||||
new PreventCardEffect((WoundCharactersEffect) effect, self.getAttachedTo()));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set31.dwarven;
|
||||
|
||||
import com.gempukku.lotro.common.CardType;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
import com.gempukku.lotro.common.Side;
|
||||
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.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractPermanent;
|
||||
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
|
||||
import com.gempukku.lotro.logic.effects.ChooseArbitraryCardsEffect;
|
||||
import com.gempukku.lotro.logic.effects.PutCardFromStackedIntoHandEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndStackCardsFromHandEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.TwilightCostModifier;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: The Short Rest
|
||||
* Side: Free
|
||||
* Culture: Dwarven
|
||||
* Twilight Cost: 2
|
||||
* Type: Artifact • Support Area
|
||||
* Game Text: Smaug's twilight cost is -4. Fellowship: Add (1) to take a card stacked here into hand.
|
||||
* Maneuver: Stack a [DWARVEN] card from hand on The Arkenstone.
|
||||
*/
|
||||
public class Card31_007 extends AbstractPermanent {
|
||||
public Card31_007() {
|
||||
super(Side.FREE_PEOPLE, 2, CardType.ARTIFACT, Culture.DWARVEN, "The Arkenstone", null, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
|
||||
return Collections.singletonList(new TwilightCostModifier(self, Filters.name("Smaug"), -4));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, final PhysicalCard self) {
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
|
||||
List<PhysicalCard> stackedCards = game.getGameState().getStackedCards(self);
|
||||
if (stackedCards.size() > 0) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new AddTwilightEffect(self, 1));
|
||||
action.appendEffect(
|
||||
new ChooseArbitraryCardsEffect(playerId, "Choose card", stackedCards, 1, 1) {
|
||||
@Override
|
||||
protected void cardsSelected(LotroGame game, Collection<PhysicalCard> selectedCards) {
|
||||
for (PhysicalCard selectedCard : selectedCards) {
|
||||
action.appendEffect(
|
||||
new PutCardFromStackedIntoHandEffect(selectedCard));
|
||||
}
|
||||
}
|
||||
});
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
}
|
||||
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.MANEUVER, self)) {
|
||||
if (Filters.filter(game.getGameState().getHand(playerId), game, Culture.DWARVEN).size() > 0) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendEffect(
|
||||
new ChooseAndStackCardsFromHandEffect(action, playerId, 1, 1, self, Culture.DWARVEN));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set31.elven;
|
||||
|
||||
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.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractAlly;
|
||||
import com.gempukku.lotro.logic.effects.AddUntilStartOfPhaseModifierEffect;
|
||||
import com.gempukku.lotro.logic.effects.SelfExertEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.AllyParticipatesInArcheryFireAndSkirmishesModifier;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: The Short Rest
|
||||
* Side: Free
|
||||
* Culture: Elven
|
||||
* Twilight Cost: 3
|
||||
* Type: Ally • Home 5 • Elf
|
||||
* Strength: 7
|
||||
* Vitality: 4
|
||||
* Site: 5
|
||||
* Game Text: Archer. Maneuver: If you can spot more minions than companions, exert Elf Army to allow it
|
||||
* to participate in archery fire and skirmishes until the regroup phase.
|
||||
*/
|
||||
public class Card31_008 extends AbstractAlly {
|
||||
public Card31_008() {
|
||||
super(3, SitesBlock.HOBBIT, 5, 7, 4, Race.ELF, Culture.ELVEN, "Elf Army", null, true);
|
||||
addKeyword(Keyword.ARCHER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.MANEUVER, self)
|
||||
&& PlayConditions.canSelfExert(self, game)
|
||||
&& Filters.countActive(game, CardType.MINION) > Filters.countActive(game, CardType.COMPANION)) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(new SelfExertEffect(action, self));
|
||||
action.appendEffect(
|
||||
new AddUntilStartOfPhaseModifierEffect(
|
||||
new AllyParticipatesInArcheryFireAndSkirmishesModifier(self, self), Phase.REGROUP));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set31.elven;
|
||||
|
||||
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.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractAlly;
|
||||
import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect;
|
||||
import com.gempukku.lotro.logic.effects.SelfExertEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.ArcheryTotalModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.condition.LocationCondition;
|
||||
import com.gempukku.lotro.logic.modifiers.evaluator.ConditionEvaluator;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: The Short Rest
|
||||
* Side: Free
|
||||
* Culture: Elven
|
||||
* Twilight Cost: 2
|
||||
* Type: Ally • Home 5 • Elf
|
||||
* Strength: 6
|
||||
* Vitality: 3
|
||||
* Site: 5
|
||||
* Game Text: Archer. Archery: Spot an Orc and exert Legolas to make the fellowship archery total +1
|
||||
* (or +2 if at a river or forest)
|
||||
*/
|
||||
public class Card31_009 extends AbstractAlly {
|
||||
public Card31_009() {
|
||||
super(2, SitesBlock.HOBBIT, 5, 6, 3, Race.ELF, Culture.ELVEN, "Legolas", "Prince of Mirkwood", true);
|
||||
addKeyword(Keyword.ARCHER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.ARCHERY, self)
|
||||
&& PlayConditions.canExert(self, game, self)
|
||||
&& PlayConditions.canSpot(game, Race.ORC)) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new SelfExertEffect(action, self));
|
||||
action.appendEffect(
|
||||
new AddUntilEndOfPhaseModifierEffect(
|
||||
new ArcheryTotalModifier(self, Side.FREE_PEOPLE, null, new ConditionEvaluator(1, 2, new LocationCondition(Filters.or(Keyword.RIVER, Keyword.FOREST))))));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set31.elven;
|
||||
|
||||
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.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractAlly;
|
||||
import com.gempukku.lotro.logic.effects.SelfExertEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndReturnCardsToHandEffect;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: The Short Rest
|
||||
* Side: Free
|
||||
* Culture: Elven
|
||||
* Twilight Cost: 2
|
||||
* Type: Ally • Home 5 • Elf
|
||||
* Strength: 6
|
||||
* Vitality: 3
|
||||
* Site: 5
|
||||
* Game Text: Archer. Maneuver: Exert Tauriel to return an Orc with strength 7 or less to its owner's hand.
|
||||
*/
|
||||
public class Card31_010 extends AbstractAlly {
|
||||
public Card31_010() {
|
||||
super(2, SitesBlock.HOBBIT, 5, 6, 3, Race.ELF, Culture.ELVEN, "Tauriel", "Staunch Defender", true);
|
||||
addKeyword(Keyword.ARCHER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.MANEUVER, self)
|
||||
&& PlayConditions.canExert(self, game, self)
|
||||
&& Filters.canSpot(game, CardType.MINION)) {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new SelfExertEffect(action, self));
|
||||
action.appendEffect(
|
||||
new ChooseAndReturnCardsToHandEffect(action, playerId, 1, 1, Race.ORC, Filters.lessStrengthThan(8)));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set31.elven;
|
||||
|
||||
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.logic.actions.PlayEventAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
|
||||
import com.gempukku.lotro.logic.effects.AddUntilStartOfPhaseModifierEffect;
|
||||
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.AllyParticipatesInArcheryFireAndSkirmishesModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
/**
|
||||
* Set: The Short Rest
|
||||
* Side: Free
|
||||
* Culture: Elven
|
||||
* Twilight Cost: 2
|
||||
* Type: Event
|
||||
* Game Text: Archery: Spot an [ELVEN] archer ally to exert a minion. Until the regroup phase, that ally is
|
||||
* strength +2 and participates in archery fire and skirmishes.
|
||||
*/
|
||||
public class Card31_011 extends AbstractEvent {
|
||||
public Card31_011() {
|
||||
super(Side.FREE_PEOPLE, 2, Culture.ELVEN, "The Evil Becomes Stronger", Phase.ARCHERY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
|
||||
return PlayConditions.canSpot(game, Race.ELF, CardType.ALLY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlayEventAction getPlayEventCardAction(final String playerId, LotroGame game, final PhysicalCard self) {
|
||||
if (Filters.canSpot(game, Culture.ELVEN, Keyword.ARCHER, CardType.ALLY)) {
|
||||
final PlayEventAction action = new PlayEventAction(self);
|
||||
action.appendEffect(
|
||||
new ChooseActiveCardEffect(self, playerId, "Choose an Ally", Culture.ELVEN, Keyword.ARCHER, CardType.ALLY) {
|
||||
@Override
|
||||
protected void cardSelected(LotroGame game, PhysicalCard card) {
|
||||
action.insertEffect(
|
||||
new AddUntilStartOfPhaseModifierEffect(
|
||||
new StrengthModifier(self, Filters.sameCard(card), 2), Phase.REGROUP));
|
||||
action.insertEffect(
|
||||
new AddUntilStartOfPhaseModifierEffect(
|
||||
new AllyParticipatesInArcheryFireAndSkirmishesModifier(self, card), Phase.REGROUP));
|
||||
}
|
||||
});
|
||||
action.appendEffect(
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, CardType.MINION));
|
||||
return action;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
package com.gempukku.lotro.cards.set31.elven;
|
||||
|
||||
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.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.cardtype.AbstractAlly;
|
||||
import com.gempukku.lotro.logic.effects.AddUntilStartOfPhaseModifierEffect;
|
||||
import com.gempukku.lotro.logic.effects.ChoiceEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
|
||||
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
|
||||
import com.gempukku.lotro.logic.modifiers.AllyParticipatesInArcheryFireAndSkirmishesModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.CantTakeArcheryWoundsModifier;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Set: The Short Rest
|
||||
* Side: Free
|
||||
* Culture: Elven
|
||||
* Twilight Cost: 4
|
||||
* Type: Ally • Home 5 • Elf
|
||||
* Strength: 9
|
||||
* Vitality: 4
|
||||
* Site: 5
|
||||
* Game Text: Maneuver: Exert Thorin twice or discard a [DWARVEN] artifact to allow Thranduil
|
||||
* to participate in skirmishes until the regroup phase.
|
||||
*/
|
||||
public class Card31_012 extends AbstractAlly {
|
||||
public Card31_012() {
|
||||
super(4, SitesBlock.HOBBIT, 5, 9, 4, Race.ELF, Culture.ELVEN, "Thranduil", "Elven King", true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
|
||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.MANEUVER, self)
|
||||
&& (PlayConditions.canExert(self, game, 2, Filters.name("Thorin"))
|
||||
|| PlayConditions.canDiscardFromPlay(self, game, Culture.DWARVEN, CardType.ARTIFACT))) {
|
||||
ActivateCardAction action = new ActivateCardAction(self);
|
||||
List<Effect> possibleCosts = new LinkedList<Effect>();
|
||||
possibleCosts.add(
|
||||
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, Filters.name("Thorin")) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Exert Thorin twice";
|
||||
}
|
||||
});
|
||||
possibleCosts.add(
|
||||
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Culture.DWARVEN, CardType.ARTIFACT) {
|
||||
@Override
|
||||
public String getText(LotroGame game) {
|
||||
return "Discard a DWARVEN artifact";
|
||||
}
|
||||
});
|
||||
action.appendCost(
|
||||
new ChoiceEffect(action, playerId, possibleCosts));
|
||||
action.appendEffect(
|
||||
new AddUntilStartOfPhaseModifierEffect(
|
||||
new AllyParticipatesInArcheryFireAndSkirmishesModifier(self, self), Phase.REGROUP));
|
||||
action.appendEffect(
|
||||
new AddUntilStartOfPhaseModifierEffect(
|
||||
new CantTakeArcheryWoundsModifier(self, self), Phase.ASSIGNMENT));
|
||||
return Collections.singletonList(action);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user