diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/ArcheryTotalModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/ArcheryTotalModifier.java index 914491421..05a038745 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/ArcheryTotalModifier.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/ArcheryTotalModifier.java @@ -4,22 +4,29 @@ import com.gempukku.lotro.common.Side; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.GameState; import com.gempukku.lotro.logic.modifiers.AbstractModifier; +import com.gempukku.lotro.logic.modifiers.Condition; import com.gempukku.lotro.logic.modifiers.ModifierEffect; import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; public class ArcheryTotalModifier extends AbstractModifier { private Side _side; + private Condition _condition; private int _modifier; public ArcheryTotalModifier(PhysicalCard source, Side side, int modifier) { + this(source, side, null, modifier); + } + + public ArcheryTotalModifier(PhysicalCard source, Side side, Condition condition, int modifier) { super(source, ((side == Side.FREE_PEOPLE) ? "Fellowship" : "Minion") + " archery total " + ((modifier < 0) ? modifier : ("+" + modifier)), null, new ModifierEffect[]{ModifierEffect.ARCHERY_MODIFIER}); _side = side; + _condition = condition; _modifier = modifier; } @Override public int getArcheryTotal(GameState gameState, ModifiersQuerying modifiersQuerying, Side side, int result) { - if (side == _side) + if (side == _side && (_condition == null) || (_condition.isFullfilled(gameState, modifiersQuerying))) return result + _modifier; else return result; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gondor/Card2_035.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gondor/Card2_035.java new file mode 100644 index 000000000..0c0b51ec7 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gondor/Card2_035.java @@ -0,0 +1,44 @@ +package com.gempukku.lotro.cards.set2.gondor; + +import com.gempukku.lotro.cards.AbstractPermanent; +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.GameState; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.modifiers.Condition; +import com.gempukku.lotro.logic.modifiers.Modifier; +import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; + +/** + * Set: Mines of Moria + * Side: Free + * Culture: Gondor + * Twilight Cost: 1 + * Type: Condition + * Game Text: To play, spot a ranger. Plays to your support area. While the fellowship is at a forest, the minion + * archery total is -2. + */ +public class Card2_035 extends AbstractPermanent { + public Card2_035() { + super(Side.FREE_PEOPLE, 1, CardType.CONDITION, Culture.GONDOR, Zone.FREE_SUPPORT, "Natural Cover"); + } + + @Override + public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { + return super.checkPlayRequirements(playerId, game, self, twilightModifier) + && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.RANGER)); + } + + @Override + public Modifier getAlwaysOnModifier(PhysicalCard self) { + return new ArcheryTotalModifier(self, Side.SHADOW, + new Condition() { + @Override + public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { + return modifiersQuerying.hasKeyword(gameState, gameState.getCurrentSite(), Keyword.FOREST); + } + }, -2); + } +}