From fb43f6c2c931a71ee99c6b6a50240f9e708f74fc Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 5 Oct 2011 14:54:52 +0000 Subject: [PATCH] "Anger" --- .../lotro/cards/set4/dunland/Card4_003.java | 53 +++++++++++++++++++ .../com/gempukku/lotro/filters/Filters.java | 9 ++++ .../lotro/game/LotroCardBlueprintLibrary.java | 2 +- .../com/gempukku/lotro/game/PhysicalCard.java | 2 + .../gempukku/lotro/game/PhysicalCardImpl.java | 10 ++++ 5 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_003.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_003.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_003.java new file mode 100644 index 000000000..d7fc35ab6 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_003.java @@ -0,0 +1,53 @@ +package com.gempukku.lotro.cards.set4.dunland; + +import com.gempukku.lotro.cards.AbstractEvent; +import com.gempukku.lotro.cards.actions.PlayEventAction; +import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect; +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.effects.ChooseActiveCardEffect; +import com.gempukku.lotro.logic.modifiers.KeywordModifier; + +/** + * Set: The Two Towers + * Side: Shadow + * Culture: Dunland + * Twilight Cost: 0 + * Type: Event + * Game Text: Skirmish: Spot 3 [DUNLAND] minions or a site you control to make a [DUNLAND] Man fierce until the regroup phase. + */ +public class Card4_003 extends AbstractEvent { + public Card4_003() { + super(Side.SHADOW, Culture.DUNLAND, "Anger", Phase.SKIRMISH); + } + + @Override + public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { + return super.checkPlayRequirements(playerId, game, self, twilightModifier) + && ( + Filters.countSpottable(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.DUNLAND), Filters.type(CardType.MINION)) >= 3 + || Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.siteControlled(playerId))); + } + + @Override + public int getTwilightCost() { + return 0; + } + + @Override + public PlayEventAction getPlayCardAction(String playerId, LotroGame game, final PhysicalCard self, int twilightModifier) { + final PlayEventAction action = new PlayEventAction(self); + action.appendEffect( + new ChooseActiveCardEffect(self, playerId, "Choose DUNLAND Man", Filters.culture(Culture.DUNLAND), Filters.race(Race.MAN)) { + @Override + protected void cardSelected(PhysicalCard card) { + action.appendEffect( + new AddUntilStartOfPhaseModifierEffect( + new KeywordModifier(self, Filters.sameCard(card), Keyword.FIERCE), Phase.REGROUP)); + } + }); + return action; + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java index 4098e256e..5d6d281b8 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java @@ -359,6 +359,15 @@ public class Filters { }; } + public static Filter siteControlled(final String playerId) { + return new Filter() { + @Override + public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { + return physicalCard.getBlueprint().getCardType() == CardType.SITE && playerId.equals(physicalCard.getController()); + } + }; + } + public static Filter culture(final Culture culture) { return new Filter() { @Override diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprintLibrary.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprintLibrary.java index 75d35545b..c69598ee5 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprintLibrary.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprintLibrary.java @@ -9,7 +9,7 @@ import java.util.Map; public class LotroCardBlueprintLibrary { private String[] _packageNames = new String[]{ - "", ".dwarven", ".elven", ".gandalf", ".gondor", ".isengard", ".moria", ".wraith", ".sauron", ".shire", ".site" + "", ".dwarven", ".dunland", ".elven", ".gandalf", ".gondor", ".isengard", ".moria", ".wraith", ".sauron", ".shire", ".site" }; private Map _blueprintMap = new HashMap(); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCard.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCard.java index 409fbc9aa..3fed59d60 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCard.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCard.java @@ -9,6 +9,8 @@ public interface PhysicalCard { public String getOwner(); + public String getController(); + public int getCardId(); public LotroCardBlueprint getBlueprint(); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCardImpl.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCardImpl.java index 2604ca901..114b0e687 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCardImpl.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCardImpl.java @@ -12,6 +12,7 @@ public class PhysicalCardImpl implements PhysicalCard { private int _cardId; private String _blueprintId; private String _owner; + private String _controller; private Zone _zone; private LotroCardBlueprint _blueprint; @@ -49,6 +50,15 @@ public class PhysicalCardImpl implements PhysicalCard { return _owner; } + public void setController(String controller) { + _controller = controller; + } + + @Override + public String getController() { + return _controller; + } + public void startAffectingGame(ModifiersEnvironment modifiersEnvironment) { List modifiers = _blueprint.getAlwaysOnModifiers(this); if (modifiers != null) {