From 11e89ab5e34a3ca5d78b769ee3b431b60eef8b90 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Sat, 8 Oct 2011 21:03:25 +0000 Subject: [PATCH] "Ranger of Ithilien" --- .../lotro/cards/AbstractCompanion.java | 5 ++ .../cards/AbstractLotroCardBlueprint.java | 5 ++ .../lotro/cards/set4/gondor/Card4_130.java | 51 +++++++++++++++++++ .../src/main/resources/blueprintMapping.txt | 3 +- .../lotro/game/LotroCardBlueprint.java | 2 + ...yerPlaysStartingFellowshipGameProcess.java | 2 +- 6 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_130.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractCompanion.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractCompanion.java index fa868d642..e9830f222 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractCompanion.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractCompanion.java @@ -77,4 +77,9 @@ public abstract class AbstractCompanion extends AbstractPermanent { public int getResistance() { return 6; } + + @Override + public int getCompanionStartingFellowshipModifier() { + return 0; + } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractLotroCardBlueprint.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractLotroCardBlueprint.java index 5ae8ed4f7..9bebd3d52 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractLotroCardBlueprint.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractLotroCardBlueprint.java @@ -120,6 +120,11 @@ public abstract class AbstractLotroCardBlueprint implements LotroCardBlueprint { throw new UnsupportedOperationException("This method should not be called on this card"); } + @Override + public int getCompanionStartingFellowshipModifier() { + throw new UnsupportedOperationException("This method should not be called on this card"); + } + @Override public Block getSiteBlock() { throw new UnsupportedOperationException("This method should not be called on this card"); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_130.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_130.java new file mode 100644 index 000000000..d37d69509 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_130.java @@ -0,0 +1,51 @@ +package com.gempukku.lotro.cards.set4.gondor; + +import com.gempukku.lotro.cards.AbstractCompanion; +import com.gempukku.lotro.cards.modifiers.StrengthModifier; +import com.gempukku.lotro.common.CardType; +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.logic.modifiers.Modifier; + +import java.util.Collections; +import java.util.List; + +/** + * Set: The Two Towers + * Side: Free + * Culture: Gondor + * Twilight Cost: 3 + * Type: Companion • Man + * Strength: 6 + * Vitality: 3 + * Resistance: 6 + * Game Text: Ring-bound. Ranger. When this companion is in your starting fellowship, his twilight cost is -1. + * While skirmishing a roaming minion, this companion is strength +2. + */ +public class Card4_130 extends AbstractCompanion { + public Card4_130() { + super(3, 6, 3, Culture.GONDOR, Race.MAN, null, "Ranger of Ithilien"); + addKeyword(Keyword.RING_BOUND); + addKeyword(Keyword.RANGER); + } + + @Override + public int getCompanionStartingFellowshipModifier() { + return -1; + } + + @Override + public List getAlwaysOnModifiers(PhysicalCard self) { + return Collections.singletonList( + new StrengthModifier(self, + Filters.and( + Filters.sameCard(self), + Filters.inSkirmishAgainst( + Filters.and( + Filters.type(CardType.MINION), + Filters.keyword(Keyword.ROAMING)))), 2)); + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt b/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt index cf7a3e640..db570cebf 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt @@ -1,2 +1,3 @@ 4_2,1_2 -4_62,1_41 \ No newline at end of file +4_62,1_41 +4_129,1_110 \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprint.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprint.java index 3b68f84d4..0ec6cc77e 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprint.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprint.java @@ -32,6 +32,8 @@ public interface LotroCardBlueprint { public int getTwilightCost(); + public int getCompanionStartingFellowshipModifier(); + public int getStrength(); public int getVitality(); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayerPlaysStartingFellowshipGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayerPlaysStartingFellowshipGameProcess.java index c282d6b96..20694c46d 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayerPlaysStartingFellowshipGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayerPlaysStartingFellowshipGameProcess.java @@ -45,7 +45,7 @@ public class PlayerPlaysStartingFellowshipGameProcess implements GameProcess { new Filter() { @Override public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { - int twilightCost = modifiersQuerying.getTwilightCost(gameState, physicalCard); + int twilightCost = modifiersQuerying.getTwilightCost(gameState, physicalCard) + physicalCard.getBlueprint().getCompanionStartingFellowshipModifier(); return gameState.getTwilightPool() + twilightCost <= 4 && physicalCard.getBlueprint().checkPlayRequirements(playerId, _game, physicalCard, 0); }