From 1386d9c124d62f444597ea0836b2e4c79971fd69 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Thu, 6 Oct 2011 19:28:39 +0000 Subject: [PATCH] "Erethon" --- .../DoesNotAddToArcheryTotalModifier.java | 7 +- .../lotro/cards/set4/elven/Card4_065.java | 73 +++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_065.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/DoesNotAddToArcheryTotalModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/DoesNotAddToArcheryTotalModifier.java index a62144321..34cb039bb 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/DoesNotAddToArcheryTotalModifier.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/DoesNotAddToArcheryTotalModifier.java @@ -4,12 +4,17 @@ import com.gempukku.lotro.filters.Filter; 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 DoesNotAddToArcheryTotalModifier extends AbstractModifier { public DoesNotAddToArcheryTotalModifier(PhysicalCard source, Filter affectFilter) { - super(source, "Does not add to archery total", affectFilter, new ModifierEffect[]{ModifierEffect.ARCHERY_MODIFIER}); + this(source, affectFilter, null); + } + + public DoesNotAddToArcheryTotalModifier(PhysicalCard source, Filter affectFilter, Condition condition) { + super(source, "Does not add to archery total", affectFilter, condition, new ModifierEffect[]{ModifierEffect.ARCHERY_MODIFIER}); } @Override diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_065.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_065.java new file mode 100644 index 000000000..f2040a82b --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_065.java @@ -0,0 +1,73 @@ +package com.gempukku.lotro.cards.set4.elven; + +import com.gempukku.lotro.cards.AbstractCompanion; +import com.gempukku.lotro.cards.modifiers.DoesNotAddToArcheryTotalModifier; +import com.gempukku.lotro.cards.modifiers.StrengthModifier; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Race; +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.KeywordModifier; +import com.gempukku.lotro.logic.modifiers.Modifier; +import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; + +import java.util.LinkedList; +import java.util.List; + +/** + * Set: The Two Towers + * Side: Free + * Culture: Elven + * Twilight Cost: 2 + * Type: Companion • Elf + * Strength: 6 + * Vitality: 3 + * Resistance: 6 + * Game Text: To play, spot an Elf. While Erethon bears a ranged weapon, he is strength +1 and damage +1, and he does + * not add to the fellowship archery total. + */ +public class Card4_065 extends AbstractCompanion { + public Card4_065() { + super(2, 6, 3, Culture.ELVEN, Race.ELF, null, "Erethon", true); + } + + @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.race(Race.ELF)); + } + + @Override + public List getAlwaysOnModifiers(final PhysicalCard self) { + List modifiers = new LinkedList(); + modifiers.add( + new StrengthModifier(self, Filters.sameCard(self), + new Condition() { + @Override + public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { + return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(Filters.keyword(Keyword.RANGED_WEAPON))) > 0; + } + }, 1)); + modifiers.add( + new KeywordModifier(self, Filters.sameCard(self), + new Condition() { + @Override + public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { + return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(Filters.keyword(Keyword.RANGED_WEAPON))) > 0; + } + }, Keyword.DAMAGE, 1)); + modifiers.add( + new DoesNotAddToArcheryTotalModifier(self, Filters.sameCard(self), + new Condition() { + @Override + public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { + return Filters.countActive(gameState, modifiersQuerying, Filters.sameCard(self), Filters.hasAttached(Filters.keyword(Keyword.RANGED_WEAPON))) > 0; + } + })); + return modifiers; + } +}