From 287c763002ffb37fa381fd6d6c6b4bab43dedd8d Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Mon, 29 Aug 2011 14:22:06 +0000 Subject: [PATCH] "Lightfootedness| --- .../cards/modifiers/ArcheryTotalModifier.java | 4 +- .../lotro/cards/set1/elven/Card1_038.java | 2 +- .../lotro/cards/set1/elven/Card1_042.java | 2 +- .../lotro/cards/set1/elven/Card1_052.java | 51 +++++++++++++++++++ .../logic/modifiers/CompositeModifier.java | 8 +++ 5 files changed, 63 insertions(+), 4 deletions(-) create mode 100644 gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_052.java diff --git a/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/modifiers/ArcheryTotalModifier.java b/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/modifiers/ArcheryTotalModifier.java index 3cd5805d7..dae49b65f 100644 --- a/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/modifiers/ArcheryTotalModifier.java +++ b/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/modifiers/ArcheryTotalModifier.java @@ -10,8 +10,8 @@ public class ArcheryTotalModifier extends AbstractModifier { private Side _side; private int _modifier; - public ArcheryTotalModifier(PhysicalCard source, String text, Side side, int modifier) { - super(source, text, null); + public ArcheryTotalModifier(PhysicalCard source, Side side, int modifier) { + super(source, ((side == Side.FREE_PEOPLE) ? "Fellowship" : "Minion") + " archery total " + ((modifier < 0) ? modifier : ("+" + modifier)), null); _side = side; _modifier = modifier; } diff --git a/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_038.java b/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_038.java index 7a5a94fe2..3930290ba 100644 --- a/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_038.java +++ b/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_038.java @@ -41,7 +41,7 @@ public class Card1_038 extends AbstractLotroCardBlueprint { PlayEventFromHandAction action = new PlayEventFromHandAction(self); action.addCost(new SpotEffect(Filters.and(Filters.keyword(Keyword.ELF), Filters.keyword(Keyword.ARCHERY), Filters.type(CardType.COMPANION)))); action.addEffect(new AddUntilEndOfPhaseModifierEffect( - new ArcheryTotalModifier(self, "Fellowship archery total +1", Side.FREE_PEOPLE, 1), Phase.ARCHERY)); + new ArcheryTotalModifier(self, Side.FREE_PEOPLE, 1), Phase.ARCHERY)); return Collections.singletonList(action); } diff --git a/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_042.java b/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_042.java index d4c5b1a7b..dfddaa062 100644 --- a/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_042.java +++ b/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_042.java @@ -46,6 +46,6 @@ public class Card1_042 extends AbstractAttachableFPPossession { @Override public Modifier getAlwaysOnEffect(PhysicalCard self) { - return new ArcheryTotalModifier(self, "Minion archery total is -1", Side.SHADOW, -1); + return new ArcheryTotalModifier(self, Side.SHADOW, -1); } } diff --git a/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_052.java b/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_052.java new file mode 100644 index 000000000..7cf9bfceb --- /dev/null +++ b/gemp-lotr/lotro-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_052.java @@ -0,0 +1,51 @@ +package com.gempukku.lotro.cards.set1.elven; + +import com.gempukku.lotro.cards.AbstractLotroCardBlueprint; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect; +import com.gempukku.lotro.cards.effects.SpotEffect; +import com.gempukku.lotro.cards.modifiers.ArcheryTotalModifier; +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.timing.Action; + +import java.util.Collections; +import java.util.List; + +/** + * Set: The Fellowship of the Ring + * Side: Free + * Culture: Elven + * Twilight Cost: 0 + * Type: Event + * Game Text: Archery: Spot an Elf companion to make the minion archery total -1. + */ +public class Card1_052 extends AbstractLotroCardBlueprint { + public Card1_052() { + super(Side.FREE_PEOPLE, CardType.EVENT, Culture.ELVEN, "Lightfootedness", "1_52"); + addKeyword(Keyword.ARCHERY); + } + + @Override + public int getTwilightCost() { + return 0; + } + + @Override + public List getPlayablePhaseActions(String playerId, LotroGame game, PhysicalCard self) { + if (PlayConditions.canPlayFromHandDuringPhase(game.getGameState(), Phase.ARCHERY, self) + && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.ELF), Filters.type(CardType.COMPANION))) { + CostToEffectAction action = new CostToEffectAction(self, "Make the minion archery total -1"); + action.addCost(new SpotEffect(Filters.and(Filters.keyword(Keyword.ELF), Filters.type(CardType.COMPANION)))); + action.addEffect( + new AddUntilEndOfPhaseModifierEffect( + new ArcheryTotalModifier(self, Side.SHADOW, -1), Phase.ARCHERY)); + + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/lotro-logic/src/main/java/com/gempukku/lotro/logic/modifiers/CompositeModifier.java b/gemp-lotr/lotro-logic/src/main/java/com/gempukku/lotro/logic/modifiers/CompositeModifier.java index 41ba0c233..4932d8154 100644 --- a/gemp-lotr/lotro-logic/src/main/java/com/gempukku/lotro/logic/modifiers/CompositeModifier.java +++ b/gemp-lotr/lotro-logic/src/main/java/com/gempukku/lotro/logic/modifiers/CompositeModifier.java @@ -130,4 +130,12 @@ public class CompositeModifier implements Modifier { return result; } + + @Override + public boolean addsToArcheryTotal(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard card, boolean result) { + for (Modifier modifier : _modifiers) + result = modifier.addsToArcheryTotal(gameState, modifiersQuerying, card, result); + + return result; + } }