diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExhaustCharacterEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExhaustCharacterEffect.java index 4acf9187a..90b610546 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExhaustCharacterEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExhaustCharacterEffect.java @@ -1,31 +1,31 @@ package com.gempukku.lotro.cards.effects; -import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.GameUtils; -import com.gempukku.lotro.logic.actions.CostToEffectAction; +import com.gempukku.lotro.logic.actions.SubAction; import com.gempukku.lotro.logic.timing.AbstractEffect; +import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.results.ExertResult; +import com.gempukku.lotro.logic.timing.EffectResult; -import java.util.Collections; +import java.util.Collection; public class ExhaustCharacterEffect extends AbstractEffect { - private String _playerId; - private CostToEffectAction _action; - private PhysicalCard _physicalCard; - private boolean _sendMessage; + private PhysicalCard _source; + private Action _action; + private Filterable[] _filters; - public ExhaustCharacterEffect(String playerId, CostToEffectAction action, PhysicalCard physicalCard) { - this(playerId, action, physicalCard, true); + public ExhaustCharacterEffect(PhysicalCard source, Action action, PhysicalCard physicalCard) { + this(source, action, Filters.sameCard(physicalCard)); } - private ExhaustCharacterEffect(String playerId, CostToEffectAction action, PhysicalCard physicalCard, boolean sendMessage) { - _playerId = playerId; + public ExhaustCharacterEffect(PhysicalCard source, Action action, Filterable... filters) { + _source = source; _action = action; - _physicalCard = physicalCard; - _sendMessage = sendMessage; + _filters = filters; } @Override @@ -35,24 +35,40 @@ public class ExhaustCharacterEffect extends AbstractEffect { @Override public String getText(LotroGame game) { - return "Exhaust " + _physicalCard.getBlueprint().getName(); + return "Exhaust " + getAppendedNames(Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), _filters)); } @Override public boolean isPlayableInFull(LotroGame game) { - return PlayConditions.canExert(_action.getActionSource(), game.getGameState(), game.getModifiersQuerying(), _physicalCard); + return Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), _filters).size() > 0; } @Override protected FullEffectResult playEffectReturningResult(LotroGame game) { - boolean canExert = PlayConditions.canExert(_action.getActionSource(), game.getGameState(), game.getModifiersQuerying(), _physicalCard); - if (canExert) { - if (_sendMessage) - game.getGameState().sendMessage(_playerId + " exhausts " + GameUtils.getCardLink(_physicalCard)); - game.getGameState().addWound(_physicalCard); - _action.appendEffect(new ExhaustCharacterEffect(_playerId, _action, _physicalCard, false)); - return new FullEffectResult(Collections.singleton(new ExertResult(Collections.singleton(_physicalCard))), true, true); - } + SubAction subAction = new SubAction(_action); + subAction.appendEffect(new InfiniteExertionEffect(_source, subAction, _filters)); + game.getActionsEnvironment().addActionToStack(subAction); + final Collection cards = Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), _filters); + if (cards.size() > 0) + game.getGameState().sendMessage(GameUtils.getCardLink(_source) + " exhausts " + getAppendedNames(cards)); + return new FullEffectResult(null, false, false); } + + private class InfiniteExertionEffect extends ExertCharactersEffect { + private SubAction _subAction; + + private InfiniteExertionEffect(PhysicalCard source, SubAction subAction, Filterable[] filters) { + super(source, filters); + _subAction = subAction; + } + + @Override + protected Collection playoutEffectOn(LotroGame game, Collection cards) { + final Collection effectResults = super.playoutEffectOn(game, cards); + if (getAffectedCards(game).size() > 0) + _subAction.appendEffect(new InfiniteExertionEffect(_source, _subAction, _filters)); + return effectResults; + } + } } \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndExhaustCharactersEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndExhaustCharactersEffect.java new file mode 100644 index 000000000..b2da4b1e4 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndExhaustCharactersEffect.java @@ -0,0 +1,42 @@ +package com.gempukku.lotro.cards.effects.choose; + +import com.gempukku.lotro.cards.effects.ExhaustCharacterEffect; +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.filters.Filter; +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.actions.SubAction; +import com.gempukku.lotro.logic.effects.ChooseActiveCardsEffect; +import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; +import com.gempukku.lotro.logic.timing.Action; + +import java.util.Collection; + +public class ChooseAndExhaustCharactersEffect extends ChooseActiveCardsEffect { + private Action _action; + + public ChooseAndExhaustCharactersEffect(Action action, String playerId, int minimum, int maximum, Filterable... filters) { + super(action.getActionSource(), playerId, "Choose characters to exert", minimum, maximum, filters); + _action = action; + } + + @Override + protected Filter getExtraFilter() { + return new Filter() { + @Override + public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { + return modifiersQuerying.canBeExerted(gameState, _action.getActionSource(), physicalCard) + && modifiersQuerying.getVitality(gameState, physicalCard) > 1; + } + }; + } + + @Override + protected final void cardsSelected(LotroGame game, Collection characters) { + SubAction subAction = new SubAction(_action); + subAction.appendEffect(new ExhaustCharacterEffect(_action.getActionSource(), subAction, Filters.in(characters))); + game.getActionsEnvironment().addActionToStack(subAction); + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_113.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_113.java index 392af1c3c..e39b6b97a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_113.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_113.java @@ -33,7 +33,7 @@ public class Card1_113 extends AbstractOldEvent { new ChooseActiveCardEffect(self, playerId, "Choose a minion", Filters.type(CardType.MINION)) { @Override protected void cardSelected(LotroGame game, PhysicalCard minion) { - action.appendEffect(new ExhaustCharacterEffect(playerId, action, minion)); + action.appendEffect(new ExhaustCharacterEffect(self, action, minion)); } }); return action; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_175.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_175.java index f6ee9af74..2e9f52d13 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_175.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_175.java @@ -42,7 +42,7 @@ public class Card1_175 extends AbstractPermanent { PlayCardResult playCardResult = (PlayCardResult) effectResult; RequiredTriggerAction action = new RequiredTriggerAction(self); action.appendEffect( - new ExhaustCharacterEffect(playCardResult.getPlayedCard().getOwner(), action, playCardResult.getPlayedCard())); + new ExhaustCharacterEffect(self, action, playCardResult.getPlayedCard())); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/elven/Card2_017.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/elven/Card2_017.java index fb22761db..e7115b389 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/elven/Card2_017.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/elven/Card2_017.java @@ -5,13 +5,12 @@ import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.actions.PlayEventAction; import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect; import com.gempukku.lotro.cards.effects.choose.ChooseOpponentEffect; 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.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.DiscardCardsFromPlayEffect; import com.gempukku.lotro.logic.timing.EffectResult; import java.util.Collections; @@ -48,11 +47,10 @@ public class Card2_017 extends AbstractResponseOldEvent { protected void opponentChosen(String opponentId) { action.appendEffect( new PreventableEffect(action, - new ChooseActiveCardEffect(self, opponentId, "Choose minion to discard", Filters.type(CardType.MINION)) { + new ChooseAndDiscardCardsFromPlayEffect(action, opponentId, 1, 1, CardType.MINION) { @Override - protected void cardSelected(LotroGame game, PhysicalCard card) { - action.appendEffect( - new DiscardCardsFromPlayEffect(self, card)); + public String getText(LotroGame game) { + return "Choose minion to discard"; } }, Collections.singletonList(opponentId), diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_028.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_028.java index 01cbaada1..f1888de10 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_028.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_028.java @@ -48,6 +48,11 @@ public class Card2_028 extends AbstractOldEvent { new AddUntilStartOfPhaseModifierEffect( new KeywordModifier(self, Filters.sameCard(card), Keyword.DEFENDER), Phase.REGROUP)); } + + @Override + public String getText(LotroGame game) { + return "Make a companion Defender +1"; + } }, Arrays.asList(GameUtils.getOpponents(game, playerId)), new RemoveTwilightEffect(3))); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gondor/Card2_031.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gondor/Card2_031.java index de7494fc7..a9c430bd6 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gondor/Card2_031.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gondor/Card2_031.java @@ -50,7 +50,7 @@ public class Card2_031 extends AbstractPermanent { if (PlayConditions.played(game.getGameState(), game.getModifiersQuerying(), effectResult, Filters.and(Filters.culture(Culture.SAURON), Filters.type(CardType.MINION)))) { RequiredTriggerAction action = new RequiredTriggerAction(self); action.appendEffect( - new ExhaustCharacterEffect(self.getOwner(), action, ((PlayCardResult) effectResult).getPlayedCard())); + new ExhaustCharacterEffect(self, action, ((PlayCardResult) effectResult).getPlayedCard())); return Collections.singletonList(action); } if (effectResult.getType() == EffectResult.Type.START_OF_PHASE diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gondor/Card2_033.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gondor/Card2_033.java index 07728ce03..fa64e27fc 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gondor/Card2_033.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gondor/Card2_033.java @@ -44,7 +44,7 @@ public class Card2_033 extends AbstractResponseOldEvent { action.appendEffect( new ChooseActiveCardEffect(self, playerId, "Choose a minion", Filters.exhausted, Filters.race(Race.ORC)) { @Override - protected void cardSelected(LotroGame game, PhysicalCard orc) { + protected void cardSelected(LotroGame game, final PhysicalCard orc) { action.insertEffect( new PreventableEffect(action, new DiscardCardsFromPlayEffect(self, orc), diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_050.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_050.java index 40ba3070f..3898dfed3 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_050.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_050.java @@ -50,7 +50,7 @@ public class Card3_050 extends AbstractOldEvent { protected void cardSelected(LotroGame game, PhysicalCard aragorn) { action.appendEffect( new PreventableEffect(action, - new ExhaustCharacterEffect(playerId, action, aragorn), + new ExhaustCharacterEffect(self, action, aragorn), Collections.singletonList(game.getGameState().getCurrentPlayerId()), new AddBurdenEffect(self, 2))); } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_065.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_065.java index ce69bb21f..b398842ce 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_065.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_065.java @@ -32,7 +32,7 @@ public class Card3_065 extends AbstractMinion { } @Override - protected List getExtraPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraPhaseActions(final String playerId, LotroGame game, final PhysicalCard self) { if (PlayConditions.canUseShadowCardDuringPhase(game.getGameState(), Phase.REGROUP, self, 0) && PlayConditions.canExert(self, game.getGameState(), game.getModifiersQuerying(), 2, Filters.sameCard(self))) { final ActivateCardAction action = new ActivateCardAction(self); @@ -45,7 +45,7 @@ public class Card3_065 extends AbstractMinion { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.insertEffect( - new ExhaustCharacterEffect(playerId, action, card)); + new ExhaustCharacterEffect(self, action, card)); } }); return Collections.singletonList(action); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_066.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_066.java index 28deee6cf..1f221a149 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_066.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_066.java @@ -34,7 +34,7 @@ public class Card3_066 extends AbstractMinion { } @Override - protected List getExtraPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraPhaseActions(final String playerId, LotroGame game, final PhysicalCard self) { if (PlayConditions.canUseShadowCardDuringPhase(game.getGameState(), Phase.MANEUVER, self, 0) && PlayConditions.canExert(self, game.getGameState(), game.getModifiersQuerying(), 2, Filters.sameCard(self)) && game.getGameState().getBurdens() >= 5) { @@ -48,7 +48,7 @@ public class Card3_066 extends AbstractMinion { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.insertEffect( - new ExhaustCharacterEffect(playerId, action, card)); + new ExhaustCharacterEffect(self, action, card)); } }); return Collections.singletonList(action); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_114.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_114.java index 1fce09e33..55bd15d16 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_114.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_114.java @@ -38,7 +38,7 @@ public class Card4_114 extends AbstractCompanion { } @Override - protected List getExtraInPlayPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(final String playerId, LotroGame game, final PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.SKIRMISH, self) && PlayConditions.canExert(self, game.getGameState(), game.getModifiersQuerying(), self)) { final ActivateCardAction action = new ActivateCardAction(self); @@ -49,7 +49,7 @@ public class Card4_114 extends AbstractCompanion { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.insertEffect( - new ExhaustCharacterEffect(playerId, action, card)); + new ExhaustCharacterEffect(self, action, card)); } }); return Collections.singletonList(action); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_127.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_127.java index 1e09faeef..b0042e1e4 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_127.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_127.java @@ -41,7 +41,7 @@ public class Card4_127 extends AbstractCompanion { } @Override - protected List getExtraInPlayPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraInPlayPhaseActions(final String playerId, LotroGame game, final PhysicalCard self) { if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.SKIRMISH, self) && PlayConditions.canExert(self, game.getGameState(), game.getModifiersQuerying(), self)) { final ActivateCardAction action = new ActivateCardAction(self); @@ -52,7 +52,7 @@ public class Card4_127 extends AbstractCompanion { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.insertEffect( - new ExhaustCharacterEffect(playerId, action, card)); + new ExhaustCharacterEffect(self, action, card)); } }); return Collections.singletonList(action); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_188.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_188.java index b57511852..e511085ea 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_188.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_188.java @@ -47,7 +47,7 @@ public class Card4_188 extends AbstractMinion { } @Override - public List getOptionalInPlayAfterActions(final String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { + public List getOptionalInPlayAfterActions(final String playerId, LotroGame game, EffectResult effectResult, final PhysicalCard self) { if (effectResult.getType() == EffectResult.Type.KILL && PlayConditions.canExert(self, game, 2, Filters.sameCard(self))) { @@ -63,7 +63,7 @@ public class Card4_188 extends AbstractMinion { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.insertEffect( - new ExhaustCharacterEffect(playerId, action, card)); + new ExhaustCharacterEffect(self, action, card)); } }); return Collections.singletonList(action); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_209.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_209.java index 8a99be379..756b6d499 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_209.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_209.java @@ -33,7 +33,7 @@ public class Card4_209 extends AbstractOldEvent { } @Override - public PlayEventAction getPlayCardAction(final String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { + public PlayEventAction getPlayCardAction(final String playerId, LotroGame game, final PhysicalCard self, int twilightModifier) { final PlayEventAction action = new PlayEventAction(self); action.appendCost( new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 2, 2, Filters.culture(Culture.ISENGARD), Filters.keyword(Keyword.ARCHER))); @@ -42,7 +42,7 @@ public class Card4_209 extends AbstractOldEvent { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.insertEffect( - new ExhaustCharacterEffect(playerId, action, card)); + new ExhaustCharacterEffect(self, action, card)); } }); return action; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/isengard/Card6_070.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/isengard/Card6_070.java index 25a8ad5d9..ea2599ae7 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/isengard/Card6_070.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/isengard/Card6_070.java @@ -36,7 +36,7 @@ public class Card6_070 extends AbstractMinion { } @Override - public List getPhaseActionsFromStacked(final String playerId, LotroGame game, PhysicalCard self) { + public List getPhaseActionsFromStacked(final String playerId, LotroGame game, final PhysicalCard self) { if (PlayConditions.canUseStackedShadowCardDuringPhase(game.getGameState(), Phase.REGROUP, self, 2) && self.getStackedOn().getBlueprint().getCulture() == Culture.ISENGARD) { final ActivateCardAction action = new ActivateCardAction(self); @@ -49,7 +49,7 @@ public class Card6_070 extends AbstractMinion { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { action.insertEffect( - new ExhaustCharacterEffect(playerId, action, card)); + new ExhaustCharacterEffect(self, action, card)); } }); return Collections.singletonList(action); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_105.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_105.java index 9faa32b79..b183e68d7 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_105.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_105.java @@ -30,7 +30,7 @@ public class Card6_105 extends AbstractPermanent { } @Override - protected List getExtraPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraPhaseActions(final String playerId, LotroGame game, final PhysicalCard self) { if (PlayConditions.canUseShadowCardDuringPhase(game.getGameState(), Phase.REGROUP, self, 0) && PlayConditions.canExert(self, game, Culture.SAURON, Race.ORC) && PlayConditions.canPlayFromHand(playerId, game, -4, CardType.MINION, Filters.or(Race.NAZGUL, Culture.SAURON))) { @@ -42,7 +42,7 @@ public class Card6_105 extends AbstractPermanent { @Override protected void cardChosenCallback(PhysicalCard cardChosenToPlay) { action.appendEffect( - new ExhaustCharacterEffect(playerId, action, cardChosenToPlay)); + new ExhaustCharacterEffect(self, action, cardChosenToPlay)); } }); return Collections.singletonList(action); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/wraith/Card6_084.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/wraith/Card6_084.java index 2f33e5c5c..d889495b7 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/wraith/Card6_084.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/wraith/Card6_084.java @@ -30,7 +30,7 @@ public class Card6_084 extends AbstractPermanent { } @Override - protected List getExtraPhaseActions(final String playerId, LotroGame game, PhysicalCard self) { + protected List getExtraPhaseActions(final String playerId, LotroGame game, final PhysicalCard self) { if (PlayConditions.canUseShadowCardDuringPhase(game.getGameState(), Phase.REGROUP, self, 0) && PlayConditions.canExert(self, game, 2, Race.NAZGUL) && PlayConditions.canPlayFromHand(playerId, game, -8, CardType.MINION, Filters.or(Culture.WRAITH, Culture.SAURON))) { @@ -42,7 +42,7 @@ public class Card6_084 extends AbstractPermanent { @Override protected void cardChosenCallback(PhysicalCard cardChosenToPlay) { action.appendEffect( - new ExhaustCharacterEffect(playerId, action, cardChosenToPlay)); + new ExhaustCharacterEffect(self, action, cardChosenToPlay)); } }); return Collections.singletonList(action); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java index a6b88159c..37f4f8eda 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java @@ -50,7 +50,7 @@ public class DiscardCardsFromPlayEffect extends AbstractPreventableCardEffect { @Override public String getText(LotroGame game) { Collection cards = getAffectedCardsMinusPrevented(game); - return "Discard - " + getAppendedTextNames(cards); + return "Discard " + getAppendedTextNames(cards); } @Override diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DrawCardEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DrawCardEffect.java index c1b6ef153..e078f149e 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DrawCardEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DrawCardEffect.java @@ -18,7 +18,7 @@ public class DrawCardEffect extends AbstractEffect { @Override public String getText(LotroGame game) { - return "Draw " + _count + " card(s)"; + return "Draw " + _count + " card" + ((_count > 1) ? "s" : ""); } @Override diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharactersEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharactersEffect.java index 02e1e8559..e275532dc 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharactersEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharactersEffect.java @@ -56,7 +56,7 @@ public class WoundCharactersEffect extends AbstractPreventableCardEffect { @Override public String getText(LotroGame game) { Collection cards = getAffectedCardsMinusPrevented(game); - return "Wound - " + getAppendedTextNames(cards); + return "Wound " + getAppendedTextNames(cards); } @Override