From a335b3e39f07045173e947663a0470ad595c648d Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Tue, 30 Aug 2011 14:00:36 +0000 Subject: [PATCH] "Greed" --- .../gempukku/lotro/cards/PlayConditions.java | 9 ++- .../lotro/cards/set1/dwarven/Card1_014.java | 4 +- .../lotro/cards/set1/dwarven/Card1_019.java | 10 +-- .../lotro/cards/set1/elven/Card1_033.java | 4 +- .../lotro/cards/set1/elven/Card1_050.java | 4 +- .../lotro/cards/set1/elven/Card1_056.java | 4 +- .../lotro/cards/set1/elven/Card1_057.java | 4 +- .../lotro/cards/set1/isengard/Card1_120.java | 3 +- .../lotro/cards/set1/isengard/Card1_125.java | 63 +++++++++++++++++++ .../lotro/logic/actions/WoundAction.java | 4 +- ...dEffect.java => WoundCharacterEffect.java} | 4 +- 11 files changed, 90 insertions(+), 23 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_125.java rename gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/{WoundEffect.java => WoundCharacterEffect.java} (87%) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/PlayConditions.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/PlayConditions.java index 3b09a9b4d..95946569e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/PlayConditions.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/PlayConditions.java @@ -22,8 +22,13 @@ public class PlayConditions { } public static boolean canPlayShadowCardDuringPhase(GameState gameState, ModifiersQuerying modifiersQuerying, Phase phase, PhysicalCard self) { - return gameState.getCurrentPhase() == phase && (self.getZone() == Zone.HAND || self.getZone() == Zone.DECK) - && (phase == null || modifiersQuerying.getTwilightCost(gameState, self) <= gameState.getTwilightPool()); + return (phase == null || gameState.getCurrentPhase() == phase) && (self.getZone() == Zone.HAND || self.getZone() == Zone.DECK) + && modifiersQuerying.getTwilightCost(gameState, self) <= gameState.getTwilightPool(); + } + + public static boolean canUseShadowCardDuringPhase(GameState gameState, Phase phase, PhysicalCard self, int twilightCost) { + return (phase == null || gameState.getCurrentPhase() == phase) && (self.getZone() == Zone.SHADOW_SUPPORT || self.getZone() == Zone.SHADOW_CHARACTERS) + && twilightCost <= gameState.getTwilightPool(); } public static boolean canPlayCompanionDuringSetup(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_014.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_014.java index f4c0faffd..9301f4752 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_014.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_014.java @@ -11,7 +11,7 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.CostToEffectAction; import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.WoundEffect; +import com.gempukku.lotro.logic.effects.WoundCharacterEffect; import com.gempukku.lotro.logic.modifiers.CompositeModifier; import com.gempukku.lotro.logic.modifiers.KeywordModifier; import com.gempukku.lotro.logic.modifiers.Modifier; @@ -67,7 +67,7 @@ public class Card1_014 extends AbstractAttachableFPPossession { new ChooseActiveCardEffect(playerId, "Choose an Orc to wound", Filters.keyword(Keyword.ORC)) { @Override protected void cardSelected(LotroGame game, PhysicalCard orc) { - action.addEffect(new WoundEffect(orc)); + action.addEffect(new WoundCharacterEffect(orc)); } } ); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_019.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_019.java index ba77665b8..062022974 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_019.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_019.java @@ -9,7 +9,7 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; import com.gempukku.lotro.logic.effects.ChooseActiveCardsEffect; -import com.gempukku.lotro.logic.effects.WoundEffect; +import com.gempukku.lotro.logic.effects.WoundCharacterEffect; import com.gempukku.lotro.logic.timing.Action; import java.util.Collections; @@ -52,11 +52,11 @@ public class Card1_019 extends AbstractLotroCardBlueprint { @Override protected void cardsSelected(List cards) { if (cards.size() == 2) { - action.addEffect(new WoundEffect(cards.get(0))); - action.addEffect(new WoundEffect(cards.get(1))); + action.addEffect(new WoundCharacterEffect(cards.get(0))); + action.addEffect(new WoundCharacterEffect(cards.get(1))); } else { - action.addEffect(new WoundEffect(cards.get(0))); - action.addEffect(new WoundEffect(cards.get(0))); + action.addEffect(new WoundCharacterEffect(cards.get(0))); + action.addEffect(new WoundCharacterEffect(cards.get(0))); } } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_033.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_033.java index e19cdb406..19e5e113d 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_033.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_033.java @@ -12,7 +12,7 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.CostToEffectAction; import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.WoundEffect; +import com.gempukku.lotro.logic.effects.WoundCharacterEffect; import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.EffectResult; @@ -61,7 +61,7 @@ public class Card1_033 extends AbstractAttachableFPPossession { new ChooseActiveCardEffect(playerId, "Choose a minion", Filters.type(CardType.MINION)) { @Override protected void cardSelected(LotroGame game, PhysicalCard minion) { - action.addEffect(new WoundEffect(minion)); + action.addEffect(new WoundCharacterEffect(minion)); } } ); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_050.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_050.java index 770daaf5f..0170a5b82 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_050.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_050.java @@ -11,7 +11,7 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.CostToEffectAction; import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.WoundEffect; +import com.gempukku.lotro.logic.effects.WoundCharacterEffect; import com.gempukku.lotro.logic.timing.Action; import java.util.LinkedList; @@ -56,7 +56,7 @@ public class Card1_050 extends AbstractCompanion { new ChooseActiveCardEffect(playerId, "Choose a minion", Filters.type(CardType.MINION)) { @Override protected void cardSelected(LotroGame game, PhysicalCard minion) { - action.addEffect(new WoundEffect(minion)); + action.addEffect(new WoundCharacterEffect(minion)); } }); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_056.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_056.java index 57b343016..ca71213af 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_056.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_056.java @@ -12,7 +12,7 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.CostToEffectAction; import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.WoundEffect; +import com.gempukku.lotro.logic.effects.WoundCharacterEffect; import com.gempukku.lotro.logic.timing.Action; import java.util.LinkedList; @@ -52,7 +52,7 @@ public class Card1_056 extends AbstractAlly { new ChooseActiveCardEffect(playerId, "Choose an Uruk-hai", Filters.keyword(Keyword.URUK_HAI)) { @Override protected void cardSelected(LotroGame game, PhysicalCard urukHai) { - action.addEffect(new WoundEffect(urukHai)); + action.addEffect(new WoundCharacterEffect(urukHai)); } }); } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_057.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_057.java index 38ee60325..1fd572b7f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_057.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_057.java @@ -12,7 +12,7 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.CostToEffectAction; import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.WoundEffect; +import com.gempukku.lotro.logic.effects.WoundCharacterEffect; import com.gempukku.lotro.logic.timing.Action; import java.util.LinkedList; @@ -52,7 +52,7 @@ public class Card1_057 extends AbstractAlly { new ChooseActiveCardEffect(playerId, "Choose an Orc", Filters.keyword(Keyword.ORC)) { @Override protected void cardSelected(LotroGame game, PhysicalCard urukHai) { - action.addEffect(new WoundEffect(urukHai)); + action.addEffect(new WoundCharacterEffect(urukHai)); } }); } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_120.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_120.java index fc469c8d1..4c0a949bb 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_120.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_120.java @@ -58,8 +58,7 @@ public class Card1_120 extends AbstractLotroCardBlueprint { return Collections.singletonList(action); } - if (gameState.getCurrentPhase() == Phase.SHADOW - && gameState.getTwilightPool() >= 3) { + if (PlayConditions.canUseShadowCardDuringPhase(gameState, Phase.SHADOW, self, 3)) { final CostToEffectAction action = new CostToEffectAction(self, "Remove (3) and spot X burdens to make the Free Peoples player reveal X cards at random from hand. You may discard 1 revealed card."); action.addCost(new RemoveTwilightEffect(3)); final String fpPlayer = gameState.getCurrentPlayerId(); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_125.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_125.java new file mode 100644 index 000000000..217fa5a1f --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_125.java @@ -0,0 +1,63 @@ +package com.gempukku.lotro.cards.set1.isengard; + +import com.gempukku.lotro.cards.AbstractLotroCardBlueprint; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.actions.PlayPermanentAction; +import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; +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.CostToEffectAction; +import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; +import com.gempukku.lotro.logic.effects.WoundCharacterEffect; +import com.gempukku.lotro.logic.timing.Action; + +import java.util.Collections; +import java.util.List; + +/** + * Set: The Fellowship of the Ring + * Side: Shadow + * Culture: Isengard + * Twilight Cost: 1 + * Type: Condition + * Game Text: To play, spot an Uruk-hai. Plays to your support area. Maneuver: Spot 6 companions and remove (2) to + * wound a companion (except the Ring-bearer). + */ +public class Card1_125 extends AbstractLotroCardBlueprint { + public Card1_125() { + super(Side.SHADOW, CardType.CONDITION, Culture.ISENGARD, "Greed", "1_125"); + } + + @Override + public int getTwilightCost() { + return 1; + } + + @Override + public List getPlayablePhaseActions(String playerId, LotroGame game, PhysicalCard self) { + if (PlayConditions.canPlayShadowCardDuringPhase(game.getGameState(), game.getModifiersQuerying(), Phase.SHADOW, self) + && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI))) { + PlayPermanentAction action = new PlayPermanentAction(self, Zone.SHADOW_SUPPORT); + return Collections.singletonList(action); + } + + if (PlayConditions.canUseShadowCardDuringPhase(game.getGameState(), Phase.MANEUVER, self, 2) + && Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Filters.type(CardType.COMPANION)) >= 6) { + final CostToEffectAction action = new CostToEffectAction(self, "Spot 6 companions and remove (2) to wound a companion (except the Ring-bearer)."); + action.addCost(new RemoveTwilightEffect(2)); + action.addEffect( + new ChooseActiveCardEffect(playerId, "Choose non Ring-bearer companion", Filters.type(CardType.COMPANION), Filters.not(Filters.keyword(Keyword.RING_BEARER))) { + @Override + protected void cardSelected(LotroGame game, PhysicalCard companion) { + action.addEffect(new WoundCharacterEffect(companion)); + } + } + ); + + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/actions/WoundAction.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/actions/WoundAction.java index acf80303a..4c16e9def 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/actions/WoundAction.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/actions/WoundAction.java @@ -1,12 +1,12 @@ package com.gempukku.lotro.logic.actions; import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.logic.effects.WoundEffect; +import com.gempukku.lotro.logic.effects.WoundCharacterEffect; public class WoundAction extends CostToEffectAction { public WoundAction(PhysicalCard card, int wounds) { super(null, "Wound character"); for (int i = 0; i < wounds; i++) - addEffect(new WoundEffect(card)); + addEffect(new WoundCharacterEffect(card)); } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharacterEffect.java similarity index 87% rename from gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundEffect.java rename to gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharacterEffect.java index 3a8fb6079..cd4fdffb5 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharacterEffect.java @@ -7,10 +7,10 @@ import com.gempukku.lotro.logic.timing.AbstractEffect; import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.results.WoundResult; -public class WoundEffect extends AbstractEffect { +public class WoundCharacterEffect extends AbstractEffect { private PhysicalCard _woundTarget; - public WoundEffect(PhysicalCard woundTarget) { + public WoundCharacterEffect(PhysicalCard woundTarget) { _woundTarget = woundTarget; }