diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_041.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_041.java index e62f123a8..a78977f8a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_041.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_041.java @@ -27,14 +27,14 @@ public class Card20_041 extends AbstractEvent { public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int withTwilightRemoved, int twilightModifier, boolean ignoreRoamingPenalty, boolean ignoreCheckingDeadPile) { return super.checkPlayRequirements(playerId, game, self, withTwilightRemoved, twilightModifier, ignoreRoamingPenalty, ignoreCheckingDeadPile) && game.getGameState().getDeck(playerId).size()>=3 - && PlayConditions.canSpot(game, Culture.DWARVEN, Zone.SUPPORT, CardType.CONDITION); + && PlayConditions.canSpot(game, Culture.DWARVEN, Keyword.SUPPORT_AREA, CardType.CONDITION); } @Override public PlayEventAction getPlayCardAction(final String playerId, LotroGame game, final PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { final PlayEventAction action = new PlayEventAction(self); action.appendCost( - new ChooseActiveCardEffect(self, playerId, "Choose condition to stack cards on", Culture.DWARVEN, Zone.SUPPORT, CardType.CONDITION) { + new ChooseActiveCardEffect(self, playerId, "Choose condition to stack cards on", Culture.DWARVEN, Keyword.SUPPORT_AREA, CardType.CONDITION) { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.appendCost( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_050.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_050.java index 39c1ef5d8..85194db2c 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_050.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_050.java @@ -34,12 +34,12 @@ public class Card20_050 extends AbstractCompanion { if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self) && PlayConditions.canSelfExert(self, game) && PlayConditions.hasCardInHand(game, playerId, 1, Culture.DWARVEN, CardType.EVENT) - && PlayConditions.canSpot(game, Culture.DWARVEN, Zone.SUPPORT, CardType.CONDITION)) { + && PlayConditions.canSpot(game, Culture.DWARVEN, Keyword.SUPPORT_AREA, CardType.CONDITION)) { final ActivateCardAction action = new ActivateCardAction(self); action.appendCost( new SelfExertEffect(action, self)); action.appendCost( - new ChooseActiveCardEffect(self, playerId, "Choose DWARVEN condition in your support area", Culture.DWARVEN, Zone.SUPPORT, CardType.CONDITION) { + new ChooseActiveCardEffect(self, playerId, "Choose DWARVEN condition in your support area", Culture.DWARVEN, Keyword.SUPPORT_AREA, CardType.CONDITION) { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.appendCost( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_052.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_052.java index 6d3c7bcb9..0dc673b03 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_052.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_052.java @@ -35,7 +35,7 @@ public class Card20_052 extends AbstractCompanion { action.appendCost( new SelfExertEffect(action, self)); action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose a DWARVEN condition in your support area", Culture.DWARVEN, CardType.CONDITION, Zone.SUPPORT) { + new ChooseActiveCardEffect(self, playerId, "Choose a DWARVEN condition in your support area", Culture.DWARVEN, CardType.CONDITION, Keyword.SUPPORT_AREA) { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.appendEffect( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_053.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_053.java index 4a2dc8b4e..686052b27 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_053.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_053.java @@ -43,10 +43,10 @@ public class Card20_053 extends AbstractCompanion { protected List getExtraInPlayPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self) && PlayConditions.hasCardInHand(game, playerId, 1, Filters.any) - && PlayConditions.canSpot(game, Culture.DWARVEN, Zone.SUPPORT, CardType.CONDITION)) { + && PlayConditions.canSpot(game, Culture.DWARVEN, Keyword.SUPPORT_AREA, CardType.CONDITION)) { final ActivateCardAction action = new ActivateCardAction(self); action.appendCost( - new ChooseActiveCardEffect(self, playerId, "Choose a DWARVEN condition in your support area", Culture.DWARVEN, Zone.SUPPORT, CardType.CONDITION) { + new ChooseActiveCardEffect(self, playerId, "Choose a DWARVEN condition in your support area", Culture.DWARVEN, Keyword.SUPPORT_AREA, CardType.CONDITION) { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.appendCost( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_055.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_055.java index aa90416cb..d85ef1f04 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_055.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_055.java @@ -47,7 +47,7 @@ public class Card20_055 extends AbstractAttachableFPPossession { if (TriggerConditions.winsSkirmish(game, effectResult, Filters.hasAttached(self))) { final OptionalTriggerAction action = new OptionalTriggerAction(self); action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose a DWARVEN condition in your support area", Culture.DWARVEN, Zone.SUPPORT, CardType.CONDITION) { + new ChooseActiveCardEffect(self, playerId, "Choose a DWARVEN condition in your support area", Culture.DWARVEN, Keyword.SUPPORT_AREA, CardType.CONDITION) { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.appendEffect( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_056.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_056.java index 14ba1d448..dfcdcfe1e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_056.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_056.java @@ -46,7 +46,7 @@ public class Card20_056 extends AbstractAttachableFPPossession{ @Override protected void spottedCards(int spotCount) { action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose a DWARVEN condition in your support area", Culture.DWARVEN, CardType.CONDITION, Zone.SUPPORT) { + new ChooseActiveCardEffect(self, playerId, "Choose a DWARVEN condition in your support area", Culture.DWARVEN, CardType.CONDITION, Keyword.SUPPORT_AREA) { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.appendEffect( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_062.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_062.java index 8dcf25c79..3705bfa18 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_062.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_062.java @@ -26,14 +26,14 @@ public class Card20_062 extends AbstractEvent { public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int withTwilightRemoved, int twilightModifier, boolean ignoreRoamingPenalty, boolean ignoreCheckingDeadPile) { return super.checkPlayRequirements(playerId, game, self, withTwilightRemoved, twilightModifier, ignoreRoamingPenalty, ignoreCheckingDeadPile) && PlayConditions.hasCardInHand(game, playerId, 1, Filters.not(self), Side.FREE_PEOPLE) - && PlayConditions.canSpot(game, Culture.DWARVEN, CardType.CONDITION, Zone.SUPPORT); + && PlayConditions.canSpot(game, Culture.DWARVEN, CardType.CONDITION, Keyword.SUPPORT_AREA); } @Override public PlayEventAction getPlayCardAction(final String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { final PlayEventAction action = new PlayEventAction(self); action.appendCost( - new ChooseActiveCardEffect(self, playerId, "Choose a DWARVEN condition in your support area", Culture.DWARVEN, CardType.CONDITION, Zone.SUPPORT) { + new ChooseActiveCardEffect(self, playerId, "Choose a DWARVEN condition in your support area", Culture.DWARVEN, CardType.CONDITION, Keyword.SUPPORT_AREA) { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.appendCost( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_063.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_063.java index 5fad87ae5..48a9945d3 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_063.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/dwarven/Card20_063.java @@ -43,7 +43,7 @@ public class Card20_063 extends AbstractEvent { final RequiredTriggerAction action = new RequiredTriggerAction(self); action.setVirtualCardAction(true); action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose DWARVEN condition in your support area", Culture.DWARVEN, CardType.CONDITION, Zone.SUPPORT) { + new ChooseActiveCardEffect(self, playerId, "Choose DWARVEN condition in your support area", Culture.DWARVEN, CardType.CONDITION, Keyword.SUPPORT_AREA) { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.appendEffect( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/elven/Card20_077.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/elven/Card20_077.java new file mode 100644 index 000000000..57bf41002 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/elven/Card20_077.java @@ -0,0 +1,53 @@ +package com.gempukku.lotro.cards.set20.elven; + +import com.gempukku.lotro.cards.AbstractAlly; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.RevealTopCardsOfDrawDeckEffect; +import com.gempukku.lotro.cards.effects.SelfExertEffect; +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.effects.ChooseAndWoundCharactersEffect; +import com.gempukku.lotro.logic.timing.Action; + +import java.util.Collections; +import java.util.List; + +/** + * 2 + * •Celeborn, Lord of the Galadhrim + * Elven * Ally • Elf • Lothlorien + * 6 3 + * Manuever: Exert Celeborn to reveal the top card of your draw deck. If it is an [Elven] card, you may wound a minion. + */ +public class Card20_077 extends AbstractAlly { + public Card20_077() { + super(2, null, 0, 6, 3, Race.ELF, Culture.ELVEN, "Celeborn", "Lord of the Galadhrim", true); + addKeyword(Keyword.LOTHLORIEN); + } + + @Override + protected List getExtraInPlayPhaseActions(final String playerId, final LotroGame game, PhysicalCard self) { + if (PlayConditions.canUseFPCardDuringPhase(game, Phase.MANEUVER, self) + && PlayConditions.canSelfExert(self, game)) { + final ActivateCardAction action = new ActivateCardAction(self); + action.appendCost( + new SelfExertEffect(action, self)); + action.appendEffect( + new RevealTopCardsOfDrawDeckEffect(self, playerId, 1) { + @Override + protected void cardsRevealed(List cards) { + for (PhysicalCard revealedCard : cards) { + if (Filters.and(Culture.ELVEN).accepts(game.getGameState(), game.getModifiersQuerying(), revealedCard)) + action.appendEffect( + new ChooseAndWoundCharactersEffect(action, playerId, 0, 1, CardType.MINION)); + } + } + }); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java index 61a8df206..51f13bfb9 100644 --- a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java +++ b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java @@ -1,7 +1,7 @@ package com.gempukku.lotro.common; public enum Keyword implements Filterable { - SUPPORT_AREA("Support Area"), + SUPPORT_AREA("Support Area", true), SKIRMISH("Skirmish"), FELLOWSHIP("Fellowship"), RESPONSE("Response"), MANEUVER("Maneuver"), ARCHERY("Archery"), SHADOW("Shadow"), ASSIGNMENT("Assignment"), REGROUP("Regroup"), @@ -17,7 +17,9 @@ public enum Keyword implements Filterable { SANCTUARY("Sanctuary", true, false, true), FOREST("Forest", true, false, true), MARSH("Marsh", true, false, true), MOUNTAIN("Mountain", true, false, true), BATTLEGROUND("Battleground", true, false, true), DWELLING("Dwelling", true, false, true), - PIPEWEED("Pipeweed"), + PIPEWEED("Pipeweed", true), + + LOTHLORIEN("Lothlorien", true, false, false), DAMAGE("Damage", true, true), DEFENDER("Defender", true, true), AMBUSH("Ambush", true, true), FIERCE("Fierce", true), ARCHER("Archer", true), UNHASTY("Unhasty", true), MUSTER("Muster", true), TOIL("Toil", true, true), LURKER("Lurker", true), CUNNING("Cunning", true),