From d5b2a9dd4b77f9540cc680d70a501a1268c45231 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Sun, 11 Sep 2011 06:45:46 +0000 Subject: [PATCH] Introduce AbstractPermanent into Blueprint hierarchy. --- .../gempukku/lotro/cards/AbstractAlly.java | 50 +++-------------- .../lotro/cards/AbstractCompanion.java | 53 ++++-------------- .../gempukku/lotro/cards/AbstractEvent.java | 2 +- .../gempukku/lotro/cards/AbstractMinion.java | 50 +---------------- .../lotro/cards/AbstractPermanent.java | 56 +++++++++++++++++++ .../cards/modifiers/ProxyingModifier.java | 8 +++ .../lotro/cards/set1/dwarven/Card1_012.java | 2 +- .../lotro/cards/set1/dwarven/Card1_013.java | 2 +- .../lotro/cards/set1/dwarven/Card1_017.java | 2 +- .../lotro/cards/set1/dwarven/Card1_027.java | 2 +- .../lotro/cards/set1/elven/Card1_034.java | 2 +- .../lotro/cards/set1/elven/Card1_040.java | 5 +- .../lotro/cards/set1/elven/Card1_045.java | 2 +- .../lotro/cards/set1/elven/Card1_050.java | 2 +- .../lotro/cards/set1/elven/Card1_056.java | 2 +- .../lotro/cards/set1/elven/Card1_057.java | 2 +- .../lotro/cards/set1/elven/Card1_060.java | 2 +- .../lotro/cards/set1/elven/Card1_067.java | 2 +- .../lotro/cards/set1/gandalf/Card1_069.java | 2 +- .../lotro/cards/set1/gandalf/Card1_070.java | 2 +- .../lotro/cards/set1/gandalf/Card1_080.java | 2 +- .../lotro/cards/set1/gandalf/Card1_364.java | 2 +- .../lotro/cards/set1/gondor/Card1_089.java | 2 +- .../lotro/cards/set1/gondor/Card1_097.java | 2 +- .../lotro/cards/set1/moria/Card1_165.java | 4 +- .../lotro/cards/set1/shire/Card1_284.java | 2 +- .../lotro/cards/set1/shire/Card1_286.java | 2 +- .../lotro/cards/set1/shire/Card1_288.java | 2 +- .../lotro/cards/set1/shire/Card1_290.java | 2 +- .../lotro/cards/set1/shire/Card1_291.java | 2 +- .../lotro/cards/set1/shire/Card1_295.java | 2 +- .../lotro/cards/set1/shire/Card1_297.java | 2 +- .../lotro/cards/set1/shire/Card1_301.java | 7 ++- .../lotro/cards/set1/shire/Card1_302.java | 2 +- .../lotro/cards/set1/shire/Card1_309.java | 2 +- .../lotro/cards/set1/shire/Card1_310.java | 2 +- .../lotro/cards/set1/shire/Card1_311.java | 2 +- .../logic/modifiers/CompositeModifier.java | 8 +++ gemp-lotr/todo.txt | 9 +++ 39 files changed, 140 insertions(+), 168 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractPermanent.java create mode 100644 gemp-lotr/todo.txt diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAlly.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAlly.java index 1e0b1a099..adc5652c9 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAlly.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAlly.java @@ -1,6 +1,5 @@ package com.gempukku.lotro.cards; -import com.gempukku.lotro.cards.actions.PlayPermanentAction; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; @@ -10,11 +9,10 @@ import com.gempukku.lotro.logic.effects.DiscardCardFromHandEffect; import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.Action; -import java.util.LinkedList; +import java.util.Collections; import java.util.List; -public class AbstractAlly extends AbstractLotroCardBlueprint { - private int _twilight; +public class AbstractAlly extends AbstractPermanent { private int _siteNumber; private int _strength; private int _vitality; @@ -25,8 +23,7 @@ public class AbstractAlly extends AbstractLotroCardBlueprint { } public AbstractAlly(int twilight, int siteNumber, int strength, int vitality, Keyword race, Culture culture, String name, boolean unique) { - super(Side.FREE_PEOPLE, CardType.ALLY, culture, name, unique); - _twilight = twilight; + super(Side.FREE_PEOPLE, twilight, CardType.ALLY, culture, Zone.FREE_SUPPORT, name, unique); _siteNumber = siteNumber; _strength = strength; _vitality = vitality; @@ -38,28 +35,7 @@ public class AbstractAlly extends AbstractLotroCardBlueprint { return _race; } - @Override - public final List getPhaseActions(String playerId, LotroGame game, PhysicalCard self) { - List actions = new LinkedList(); - - if (checkPlayRequirements(playerId, game, self, 0)) - appendPlayAllyActions(actions, playerId, game, self); - - appendHealAllyActions(actions, game, self); - - List extraActions = getExtraPhaseActions(playerId, game, self); - if (extraActions != null) - actions.addAll(extraActions); - - return actions; - } - - private void appendPlayAllyActions(List actions, String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)) - actions.add(getPlayCardAction(playerId, game, self, 0)); - } - - private void appendHealAllyActions(List actions, LotroGame game, PhysicalCard self) { + protected final List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canHealByDiscarding(game.getGameState(), game.getModifiersQuerying(), self)) { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, null, "Discard card to heal"); action.addCost(new DiscardCardFromHandEffect(self)); @@ -68,27 +44,15 @@ public class AbstractAlly extends AbstractLotroCardBlueprint { if (active != null) action.addEffect(new HealCharacterEffect(active)); - actions.add(action); + return Collections.singletonList(action); } + return getExtraInPlayPhaseActions(playerId, game, self); } - public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { - return PlayConditions.checkUniqueness(game.getGameState(), game.getModifiersQuerying(), self); - } - - public Action getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { - return new PlayPermanentAction(self, Zone.FREE_SUPPORT); - } - - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { return null; } - @Override - public int getTwilightCost() { - return _twilight; - } - @Override public int getSiteNumber() { return _siteNumber; 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 6b1736cd3..2c14f183f 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 @@ -1,6 +1,5 @@ package com.gempukku.lotro.cards; -import com.gempukku.lotro.cards.actions.PlayPermanentAction; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; @@ -10,11 +9,10 @@ import com.gempukku.lotro.logic.effects.DiscardCardFromHandEffect; import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.Action; -import java.util.LinkedList; +import java.util.Collections; import java.util.List; -public abstract class AbstractCompanion extends AbstractLotroCardBlueprint { - private int _twilightCost; +public abstract class AbstractCompanion extends AbstractPermanent { private int _strength; private int _vitality; private Keyword _race; @@ -25,8 +23,7 @@ public abstract class AbstractCompanion extends AbstractLotroCardBlueprint { } public AbstractCompanion(int twilightCost, int strength, int vitality, Culture culture, Keyword race, Signet signet, String name, boolean unique) { - super(Side.FREE_PEOPLE, CardType.COMPANION, culture, name, unique); - _twilightCost = twilightCost; + super(Side.FREE_PEOPLE, twilightCost, CardType.COMPANION, culture, Zone.FREE_CHARACTERS, name, unique); _strength = strength; _vitality = vitality; _race = race; @@ -44,12 +41,12 @@ public abstract class AbstractCompanion extends AbstractLotroCardBlueprint { return _signet; } - private void appendPlayCompanionActions(List actions, String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)) - actions.add(getPlayCardAction(playerId, game, self, 0)); + public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { + return super.checkPlayRequirements(playerId, game, self, twilightModifier) + && PlayConditions.checkRuleOfNine(game.getGameState(), game.getModifiersQuerying(), self); } - private void appendHealCompanionActions(List actions, LotroGame game, PhysicalCard self) { + protected final List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canHealByDiscarding(game.getGameState(), game.getModifiersQuerying(), self)) { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, null, "Discard card to heal"); action.addCost(new DiscardCardFromHandEffect(self)); @@ -58,44 +55,16 @@ public abstract class AbstractCompanion extends AbstractLotroCardBlueprint { if (active != null) action.addEffect(new HealCharacterEffect(active)); - actions.add(action); + return Collections.singletonList(action); } + + return getExtraInPlayPhaseActions(playerId, game, self); } - @Override - public final List getPhaseActions(String playerId, LotroGame game, PhysicalCard self) { - List actions = new LinkedList(); - - if (checkPlayRequirements(playerId, game, self, 0)) - appendPlayCompanionActions(actions, playerId, game, self); - - appendHealCompanionActions(actions, game, self); - - List extraActions = getExtraPhaseActions(playerId, game, self); - if (extraActions != null) - actions.addAll(extraActions); - - return actions; - } - - public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { - return PlayConditions.checkUniqueness(game.getGameState(), game.getModifiersQuerying(), self) - && PlayConditions.checkRuleOfNine(game.getGameState(), game.getModifiersQuerying(), self); - } - - public Action getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { - return new PlayPermanentAction(self, Zone.FREE_CHARACTERS); - } - - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { return null; } - @Override - public final int getTwilightCost() { - return _twilightCost; - } - @Override public final int getStrength() { return _strength; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractEvent.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractEvent.java index 4ef860b11..e19704208 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractEvent.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractEvent.java @@ -41,7 +41,7 @@ public abstract class AbstractEvent extends AbstractLotroCardBlueprint { @Override public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { return (getSide() != Side.SHADOW - || game.getModifiersQuerying().getTwilightCost(game.getGameState(), self) + twilightModifier <= game.getGameState().getTwilightPool()); + || PlayConditions.canPayForShadowCard(game, self, twilightModifier)); } @Override diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractMinion.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractMinion.java index 82180eab5..673145d23 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractMinion.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractMinion.java @@ -1,16 +1,8 @@ package com.gempukku.lotro.cards; -import com.gempukku.lotro.cards.actions.PlayPermanentAction; import com.gempukku.lotro.common.*; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.timing.Action; -import java.util.LinkedList; -import java.util.List; - -public class AbstractMinion extends AbstractLotroCardBlueprint { - private int _twilightCost; +public class AbstractMinion extends AbstractPermanent { private int _strength; private int _vitality; private int _site; @@ -21,8 +13,7 @@ public class AbstractMinion extends AbstractLotroCardBlueprint { } public AbstractMinion(int twilightCost, int strength, int vitality, int site, Keyword race, Culture culture, String name, boolean unique) { - super(Side.SHADOW, CardType.MINION, culture, name, unique); - _twilightCost = twilightCost; + super(Side.SHADOW, twilightCost, CardType.MINION, culture, Zone.SHADOW_CHARACTERS, name, unique); _strength = strength; _vitality = vitality; _site = site; @@ -30,43 +21,6 @@ public class AbstractMinion extends AbstractLotroCardBlueprint { addKeyword(_race); } - private void appendPlayMinionActions(List actions, String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)) - actions.add(getPlayCardAction(playerId, game, self, 0)); - } - - @Override - public final List getPhaseActions(String playerId, LotroGame game, PhysicalCard self) { - List actions = new LinkedList(); - - if (checkPlayRequirements(playerId, game, self, 0)) - appendPlayMinionActions(actions, playerId, game, self); - - List extraActions = getExtraPhaseActions(playerId, game, self); - if (extraActions != null) - actions.addAll(extraActions); - - return actions; - } - - public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { - return PlayConditions.checkUniqueness(game.getGameState(), game.getModifiersQuerying(), self) - && PlayConditions.canPayForShadowCard(game, self, twilightModifier); - } - - public Action getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { - return new PlayPermanentAction(self, Zone.SHADOW_CHARACTERS); - } - - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { - return null; - } - - @Override - public int getTwilightCost() { - return _twilightCost; - } - @Override public int getStrength() { return _strength; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractPermanent.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractPermanent.java new file mode 100644 index 000000000..4afce3a4a --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractPermanent.java @@ -0,0 +1,56 @@ +package com.gempukku.lotro.cards; + +import com.gempukku.lotro.cards.actions.PlayPermanentAction; +import com.gempukku.lotro.common.*; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.timing.Action; + +import java.util.Collections; +import java.util.List; + +public class AbstractPermanent extends AbstractLotroCardBlueprint { + private int _twilightCost; + private Zone _playedToZone; + + public AbstractPermanent(Side side, int twilightCost, CardType cardType, Culture culture, Zone playedToZone, String name) { + super(side, cardType, culture, name); + _playedToZone = playedToZone; + _twilightCost = twilightCost; + } + + public AbstractPermanent(Side side, int twilightCost, CardType cardType, Culture culture, Zone playedToZone, String name, boolean unique) { + super(side, cardType, culture, name, unique); + _playedToZone = playedToZone; + _twilightCost = twilightCost; + } + + @Override + public PlayPermanentAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { + return new PlayPermanentAction(self, _playedToZone, twilightModifier); + } + + @Override + public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { + return PlayConditions.checkUniqueness(game.getGameState(), game.getModifiersQuerying(), self) + && (getSide() != Side.SHADOW || PlayConditions.canPayForShadowCard(game, self, twilightModifier)); + } + + @Override + public final int getTwilightCost() { + return _twilightCost; + } + + protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + return null; + } + + @Override + public final List getPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + if (PlayConditions.canPlayCardDuringPhase(game, (getSide() == Side.FREE_PEOPLE) ? Phase.FELLOWSHIP : Phase.SHADOW, self) + && checkPlayRequirements(playerId, game, self, 0)) + return Collections.singletonList(getPlayCardAction(playerId, game, self, 0)); + + return getExtraPhaseActions(playerId, game, self); + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/ProxyingModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/ProxyingModifier.java index eb8d3c5d9..648f48974 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/ProxyingModifier.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/ProxyingModifier.java @@ -104,6 +104,14 @@ public class ProxyingModifier implements Modifier { return result; } + @Override + public int getRoamingPenalty(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard, int result) { + Modifier modifier = getProxiedModifier(gameState, modifiersQuerying); + if (modifier != null) + return modifier.getRoamingPenalty(gameState, modifiersQuerying, physicalCard, result); + return result; + } + @Override public int getPlayOnTwilightCost(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard, PhysicalCard target, int result) { Modifier modifier = getProxiedModifier(gameState, modifiersQuerying); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_012.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_012.java index fb09707f8..d0c590d12 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_012.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_012.java @@ -35,7 +35,7 @@ public class Card1_012 extends AbstractCompanion { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && game.getGameState().getTwilightPool() < 2) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Add (2) to place a card from hand beneath your draw deck"); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_013.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_013.java index 3cfecbcd3..17a6ee683 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_013.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_013.java @@ -37,7 +37,7 @@ public class Card1_013 extends AbstractCompanion { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.SKIRMISH, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.SKIRMISH, "Exert Gimli to make him strength +2"); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_017.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_017.java index 88eb0ce60..7556543e5 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_017.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_017.java @@ -36,7 +36,7 @@ public class Card1_017 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Grimir to shuffle a DWARVEN event from your discard pile into draw deck"); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_027.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_027.java index e5bac28a5..62162d7b1 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_027.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_027.java @@ -35,7 +35,7 @@ public class Card1_027 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.MANEUVER, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.MANEUVER, "Exert Thrarin to allow him to participate in archery fire and skirmished until the regroup phase"); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_034.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_034.java index 108fb9ac4..7bdfb06cb 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_034.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_034.java @@ -35,7 +35,7 @@ public class Card1_034 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Celeborn to Heal an ELVEN ally"); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_040.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_040.java index 70b97ed0b..499033c38 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_040.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_040.java @@ -38,11 +38,12 @@ public class Card1_040 extends AbstractAlly { @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.or(Filters.keyword(Keyword.ELF), Filters.name("Gandalf"))); + return super.checkPlayRequirements(playerId, game, self, twilightModifier) + && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.or(Filters.keyword(Keyword.ELF), Filters.name("Gandalf"))); } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Elrond to draw a card"); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_045.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_045.java index 703746e68..6bce696dd 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_045.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_045.java @@ -37,7 +37,7 @@ public class Card1_045 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(final String playerId, final LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(final String playerId, final LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Galadriel to play an Elf for free"); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_050.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_050.java index 4cf8d2ed7..860a11f01 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_050.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_050.java @@ -36,7 +36,7 @@ public class Card1_050 extends AbstractCompanion { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.ARCHERY, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.ARCHERY, "Exert Legolas to wound a minion"); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_056.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_056.java index 44ddaef9e..988002b42 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_056.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_056.java @@ -35,7 +35,7 @@ public class Card1_056 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.ARCHERY, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.ARCHERY, "Exert to wound an Uruk-hai"); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_057.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_057.java index 894859f59..25f0060d3 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_057.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_057.java @@ -35,7 +35,7 @@ public class Card1_057 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.ARCHERY, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.ARCHERY, "Exert to wound an Orc"); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_060.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_060.java index 2e172281f..60d57fbc5 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_060.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_060.java @@ -82,7 +82,7 @@ public class Card1_060 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { LotroCardBlueprint copied = getCopied(game, self); if (copied != null) return copied.getPhaseActions(playerId, game, self); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_067.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_067.java index baa0301e9..3458b9c15 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_067.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_067.java @@ -82,7 +82,7 @@ public class Card1_067 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { LotroCardBlueprint copied = getCopied(game, self); if (copied != null) return copied.getPhaseActions(playerId, game, self); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_069.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_069.java index d19f157a8..264b513fb 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_069.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_069.java @@ -41,7 +41,7 @@ public class Card1_069 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, final PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, final PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.MANEUVER, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.MANEUVER, "Exert Albert Dreary to discard a ISENGARD or MORIA condition."); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_070.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_070.java index d1e46aff7..776d57153 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_070.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_070.java @@ -35,7 +35,7 @@ public class Card1_070 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Barliman Butterbur to take a GANDALF event into hand from your discard pile."); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_080.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_080.java index 47c3a1007..0ef027f33 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_080.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_080.java @@ -42,7 +42,7 @@ public class Card1_080 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Ottar to discard up to 3 cards from hand and draw an equal number of cards."); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_364.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_364.java index e1bf9fa0e..b0530e089 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_364.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_364.java @@ -33,7 +33,7 @@ public class Card1_364 extends AbstractCompanion { } @Override - protected List getExtraPhaseActions(final String playerId, final LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(final String playerId, final LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Gandalf to play a companion who has the Gandalf signet. The twilight cost of that companion is -2."); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_089.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_089.java index a52b68a40..789e1df16 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_089.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_089.java @@ -37,7 +37,7 @@ public class Card1_089 extends AbstractCompanion { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.MANEUVER, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.MANEUVER, "Exert Aragorn to make him defender +1 until the regroup phase."); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_097.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_097.java index a0c75dffd..4399da5e8 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_097.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_097.java @@ -37,7 +37,7 @@ public class Card1_097 extends AbstractCompanion { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, final PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, final PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.SKIRMISH, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.SKIRMISH, "Exert Boromir to make a Hobbit strength +3."); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_165.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_165.java index defc4a556..1945939f2 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_165.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_165.java @@ -1,12 +1,12 @@ package com.gempukku.lotro.cards.set1.moria; import com.gempukku.lotro.cards.AbstractMinion; +import com.gempukku.lotro.cards.actions.PlayPermanentAction; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.timing.Action; /** * Set: The Fellowship of the Ring @@ -37,7 +37,7 @@ public class Card1_165 extends AbstractMinion { } @Override - public Action getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { + public PlayPermanentAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { PhysicalCard currentSite = game.getGameState().getCurrentSite(); if (game.getModifiersQuerying().hasKeyword(game.getGameState(), currentSite, Keyword.UNDERGROUND)) twilightModifier -= 3; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_284.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_284.java index 750db5528..6fa5053c6 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_284.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_284.java @@ -35,7 +35,7 @@ public class Card1_284 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Bilbo to shuffle a SHIRE card from your discard pile into your draw deck."); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_286.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_286.java index ebc6015fc..aaa9774a5 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_286.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_286.java @@ -36,7 +36,7 @@ public class Card1_286 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, final PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, final PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.SKIRMISH, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.SKIRMISH, "Exert this ally to prevent a Hobbit from being overwhelmed unless that Hobbit's strength is tripled."); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_288.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_288.java index 406870275..0ccb2af2a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_288.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_288.java @@ -36,7 +36,7 @@ public class Card1_288 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Farmer Maggot to heal Merry or Pippin."); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_290.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_290.java index bcaa7ae8e..d866c82e6 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_290.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_290.java @@ -33,7 +33,7 @@ public class Card1_290 extends AbstractCompanion { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.type(CardType.COMPANION), Filters.signet(Signet.FRODO), Filters.not(Filters.sameCard(self)), Filters.canExert())) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert another companion who has the Frodo signet to heal Frodo."); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_291.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_291.java index 18face999..864b23b90 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_291.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_291.java @@ -36,7 +36,7 @@ public class Card1_291 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert The Gaffer to heal Frodo or Sam."); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_295.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_295.java index 6ef925e37..5a783c7d5 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_295.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_295.java @@ -89,7 +89,7 @@ public class Card1_295 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { List actions = new LinkedList(); if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && !game.getGameState().getSite(1).getOwner().equals(playerId) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_297.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_297.java index 6831febaa..cbaab0418 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_297.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_297.java @@ -37,7 +37,7 @@ public class Card1_297 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert this ally to heal another Hobbit ally whose home is site 1."); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_301.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_301.java index e5faca41a..c465da687 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_301.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_301.java @@ -1,11 +1,13 @@ package com.gempukku.lotro.cards.set1.shire; import com.gempukku.lotro.cards.AbstractAlly; +import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.effects.AddTwilightEffect; import com.gempukku.lotro.cards.effects.DiscardCardFromDeckEffect; import com.gempukku.lotro.cards.effects.PutCardFromDeckIntoHandOrDiscardEffect; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; @@ -34,8 +36,9 @@ public class Card1_301 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { - if (game.getGameState().getTwilightPool() < 3) { + protected List getExtraInPlayPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { + if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) + && game.getGameState().getTwilightPool() < 3) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Add (2) to reveal the top 3 cards of your draw deck. Take all SHIRE cards revealed into hand and discard the rest."); action.addCost(new AddTwilightEffect(2)); action.addEffect( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_302.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_302.java index 4f40dea14..3fb65654b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_302.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_302.java @@ -36,7 +36,7 @@ public class Card1_302 extends AbstractCompanion { } @Override - protected List getExtraPhaseActions(String playerId, final LotroGame game, final PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, final LotroGame game, final PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.SKIRMISH, self) && game.getModifiersQuerying().getVitality(game.getGameState(), self) > 2 + game.getGameState().getWounds(self) && !isAssigned(game, self)) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_309.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_309.java index eac5479c0..76ddac347 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_309.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_309.java @@ -40,7 +40,7 @@ public class Card1_309 extends AbstractAlly { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Rosie Cotton to heal Sam"); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_310.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_310.java index f93c55ee3..58d28c5bc 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_310.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_310.java @@ -44,7 +44,7 @@ public class Card1_310 extends AbstractCompanion { } @Override - protected List getExtraPhaseActions(final String playerId, final LotroGame game, final PhysicalCard self) { + protected List getExtraInPlayPhaseActions(final String playerId, final LotroGame game, final PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self)) { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Play Bill the Pony from your draw deck."); action.addEffect( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_311.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_311.java index 075fe7390..f525a0fb3 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_311.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_311.java @@ -38,7 +38,7 @@ public class Card1_311 extends AbstractCompanion { } @Override - protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Sam to remove a burden."); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/CompositeModifier.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/CompositeModifier.java index c0e5f77bc..1588c1af0 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/CompositeModifier.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/CompositeModifier.java @@ -108,6 +108,14 @@ public class CompositeModifier implements Modifier { return result; } + @Override + public int getRoamingPenalty(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard, int result) { + for (Modifier modifier : _modifiers) + result = modifier.getRoamingPenalty(gameState, modifiersQuerying, physicalCard, result); + + return result; + } + @Override public int getPlayOnTwilightCost(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard, PhysicalCard target, int result) { for (Modifier modifier : _modifiers) diff --git a/gemp-lotr/todo.txt b/gemp-lotr/todo.txt new file mode 100644 index 000000000..0d0e63284 --- /dev/null +++ b/gemp-lotr/todo.txt @@ -0,0 +1,9 @@ +1. Introduce AbstractPermanent into Blueprint hierarchy. +2. Migrate Race (Orc, Elf, etc) into separate enum from Keyword. +3. Refactor Effect to return EffectResult upon playEffect, which will contain information about what actually +happened. Modify the Blueprints to have the "before" methods to take Effect parameter only and the "after" to +take the EffectResult parameter only. Effects which modify cards should take filters as parameters, use +overloaded constructor for single cards for backward compatibility, this constructor will call another constructor +with Filters.sameCard(...) filter. +4. Modify the Blueprint hierarchy to return possible return objects (PlayEventAction), TriggeredAction, etc. Use +final methods were possible to avoid implementation errors on new cards added. \ No newline at end of file