From e1ca6df08dbf6f1b716eb5d64df424501ae45d43 Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Thu, 8 Mar 2018 11:33:53 -0500 Subject: [PATCH 01/12] Fix to The Hobbit "Dawn Take You All" Now allows the Free Peoples to wound a minion twice if there is no minion with more than 1 vitality and no Troll in play --- .../lotro/cards/set30/gandalf/Card30_024.java | 44 ++++++++++++------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_024.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_024.java index ce32bccc1..ac18fa85f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_024.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_024.java @@ -13,6 +13,7 @@ import com.gempukku.lotro.cards.effects.ChoiceEffect; import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect; import com.gempukku.lotro.logic.effects.DiscardCardsFromPlayEffect; +import com.gempukku.lotro.logic.effects.WoundCharactersEffect; import com.gempukku.lotro.logic.timing.Effect; import java.util.LinkedList; @@ -39,29 +40,42 @@ public class Card30_024 extends AbstractEvent { } @Override - public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { - PlayEventAction action = new PlayEventAction(self); + public PlayEventAction getPlayCardAction(String playerId, final LotroGame game, final PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { + final PlayEventAction action = new PlayEventAction(self); action.appendCost( new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, Filters.gandalf)); List possibleEffects = new LinkedList(); + if (Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), CardType.MINION, Filters.moreVitalityThan(1))) { + possibleEffects.add( + new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, 2, CardType.MINION, Filters.moreVitalityThan(1)) { + @Override + public String getText(LotroGame game) { + return "Wound a minion twice"; + } + }); + } else if (!Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Race.TROLL)) { + possibleEffects.add( + new ChooseActiveCardEffect(self, playerId, "Choose minion", CardType.MINION, Filters.canTakeWounds(self, 1)) { + @Override + protected void cardSelected(LotroGame game, PhysicalCard card) { + action.insertEffect( + new WoundCharactersEffect(self, card)); + action.insertEffect( + new WoundCharactersEffect(self, card)); + } + }); + } possibleEffects.add( - new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, 2, CardType.MINION) { - @Override - public String getText(LotroGame game) { - return "Wound a minion twice"; - } - }); - possibleEffects.add( new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Race.TROLL) { - @Override - public String getText(LotroGame game) { - return "Discard a Troll"; - } - }); + @Override + public String getText(LotroGame game) { + return "Discard a Troll"; + } + }); action.appendEffect( new ChoiceEffect(action, playerId, possibleEffects)); return action; } } - \ No newline at end of file + From 2430f660704e4fcc8dfb5a0cd7442f65c7b18a9b Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Thu, 8 Mar 2018 11:35:51 -0500 Subject: [PATCH 02/12] Fix to The Hobbit "Gandalf, Leader of Dwarves" Added Wise keyword --- .../com/gempukku/lotro/cards/set30/gandalf/Card30_025.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_025.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_025.java index 684285192..1e9d7c443 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_025.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_025.java @@ -36,6 +36,7 @@ import java.util.List; public class Card30_025 extends AbstractCompanion { public Card30_025() { super(4, 7, 4, 6, Culture.GANDALF, Race.WIZARD, null, "Gandalf", "Leader of Dwarves", true); + addKeyword(Keyword.WISE); } @Override @@ -63,4 +64,4 @@ public class Card30_025 extends AbstractCompanion { } return null; } -} \ No newline at end of file +} From 9aba48185dd983a6abf5347a7ef5b175e5d467ea Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Thu, 8 Mar 2018 11:37:38 -0500 Subject: [PATCH 03/12] Fix to The Hobbit "Gandalf, Leader of Dwarves" Properly discard 2 Dwarf followers to replay from discard --- .../lotro/cards/set30/gandalf/Card30_025.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_025.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_025.java index 1e9d7c443..ebf9f62c6 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_025.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_025.java @@ -52,16 +52,18 @@ public class Card30_025 extends AbstractCompanion { return null; } - @Override - public List getPhaseActionsFromDiscard(String playerId, LotroGame game, final PhysicalCard self) { + @Override + public List getPhaseActionsFromDiscard(String playerId, LotroGame game, final PhysicalCard self) { if (PlayConditions.isPhase(game, Phase.MANEUVER) - && (PlayConditions.canDiscardFromPlay(self, game, 2, Race.DWARF, CardType.FOLLOWER)) - && (PlayConditions.canPlayFromDiscard(playerId, game, self))) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 2, 2, Race.DWARF, CardType.FOLLOWER)); - return Collections.singletonList(getPlayCardAction(playerId, game, self, 0, false)); + && (PlayConditions.canDiscardFromPlay(self, game, 2, Race.DWARF, CardType.FOLLOWER)) + && (PlayConditions.canPlayFromDiscard(playerId, game, self))) { + ActivateCardAction replayGandalf = new ActivateCardAction(self); + replayGandalf.appendCost( + new ChooseAndDiscardCardsFromPlayEffect(replayGandalf, playerId, 2, 2, Race.DWARF, CardType.FOLLOWER)); + replayGandalf.appendEffect( + new ChooseAndPlayCardFromDiscardEffect(playerId, game, self)); + return Collections.singletonList(replayGandalf); } return null; - } + } } From efe31933a250d12f61c096931baa53ac05fcd2dd Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Thu, 8 Mar 2018 11:38:23 -0500 Subject: [PATCH 04/12] Fix to The Hobbit "Gandalf, Leader of the Company" Added Wise keyword --- .../com/gempukku/lotro/cards/set30/gandalf/Card30_028.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_028.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_028.java index c99803291..bc400c228 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_028.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_028.java @@ -33,6 +33,7 @@ import java.util.List; public class Card30_028 extends AbstractCompanion { public Card30_028() { super(4, 7, 4, 6, Culture.GANDALF, Race.WIZARD, null, "Gandalf", "Leader of the Company", true); + addKeyword(Keyword.WISE); } @Override @@ -53,4 +54,4 @@ public class Card30_028 extends AbstractCompanion { } return null; } -} \ No newline at end of file +} From 919ec4e7b4cf1a1d3e113e307e0ec6987cdb6881 Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Thu, 8 Mar 2018 11:39:24 -0500 Subject: [PATCH 05/12] Fix to The Hobbit "He Gives Me Courage" No longer allows the Free Peoples to exert a Wise ally if no Wise [Elven] ally can exert --- .../java/com/gempukku/lotro/cards/set30/gandalf/Card30_030.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_030.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_030.java index 4463edfc7..532e3080b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_030.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_030.java @@ -38,7 +38,7 @@ public class Card30_030 extends AbstractEvent { public PlayEventAction getPlayCardAction(final String playerId, LotroGame game, final PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { final PlayEventAction action = new PlayEventAction(self); if ((PlayConditions.canExert(self, game, Filters.gandalf)) - && (PlayConditions.canExert(self, game, Keyword.WISE, CardType.ALLY))) { + && (PlayConditions.canExert(self, game, Keyword.WISE, Culture.ELVEN, CardType.ALLY))) { action.appendCost( new PlayoutDecisionEffect(playerId, new YesNoDecision("Do you want to exert Gandalf and a Wise ally?") { From 607c3b92957f8e281d96f222205263d85cc2c7de Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Thu, 8 Mar 2018 11:43:33 -0500 Subject: [PATCH 06/12] Fix to The Hobbit "Beorn, Skin-Changer" Now actually prevents discarding --- .../com/gempukku/lotro/cards/set31/gandalf/Card31_013.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gandalf/Card31_013.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gandalf/Card31_013.java index adee5b23d..6dbf7255a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gandalf/Card31_013.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gandalf/Card31_013.java @@ -44,9 +44,10 @@ public class Card31_013 extends AbstractFollower { } @Override - public Modifier getAlwaysOnModifier(LotroGame game, PhysicalCard self) { - return new CantDiscardFromPlayModifier(self, "Cannot be discarded from play by Shadow cards", - new SpotCondition(Filters.hasAttached(self)), self, Side.SHADOW); + protected List getNonBasicStatsModifiers(PhysicalCard self) { + return Collections.singletonList( + new CantDiscardFromPlayModifier(self, "Cannot be discarded from play by Shadow cards", + new SpotCondition(Filters.hasAttached(self)), self, Side.SHADOW)); } @Override From 2611698edf8e057eaf225b14fd270e300dc3b685 Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Thu, 8 Mar 2018 11:45:40 -0500 Subject: [PATCH 07/12] Fix to The Hobbit "Gandalf, Leader of Dwarves" Importing the right package... --- .../java/com/gempukku/lotro/cards/set30/gandalf/Card30_025.java | 1 + 1 file changed, 1 insertion(+) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_025.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_025.java index ebf9f62c6..b02ca6bc0 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_025.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set30/gandalf/Card30_025.java @@ -6,6 +6,7 @@ import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.SelfExertEffect; import com.gempukku.lotro.cards.effects.choose.ChooseCardsFromDeckEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDiscardEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDeckEffect; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filters; From ee57d3674054a9f5dcd5da659970c1ea50739090 Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Thu, 8 Mar 2018 11:47:25 -0500 Subject: [PATCH 08/12] Fix to The Hobbit "The Eagles Are Coming" Now properly attaches a follower --- .../lotro/cards/set31/gandalf/Card31_014.java | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gandalf/Card31_014.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gandalf/Card31_014.java index c7985481d..ef9b8f8c5 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gandalf/Card31_014.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gandalf/Card31_014.java @@ -3,18 +3,23 @@ package com.gempukku.lotro.cards.set31.gandalf; import com.gempukku.lotro.cards.AbstractEvent; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.actions.PlayEventAction; +import com.gempukku.lotro.cards.actions.SubCostToEffectAction; import com.gempukku.lotro.cards.effects.ChoiceEffect; import com.gempukku.lotro.cards.effects.OptionalEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDeckEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDiscardEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndTransferAttachableEffect; +import com.gempukku.lotro.cards.effects.TransferPermanentEffect; 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.StackActionEffect; import com.gempukku.lotro.logic.timing.Effect; +import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -39,8 +44,8 @@ public class Card31_014 extends AbstractEvent { } @Override - public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { - PlayEventAction action = new PlayEventAction(self); + public PlayEventAction getPlayCardAction(final String playerId, final LotroGame game, final PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { + final PlayEventAction action = new PlayEventAction(self); action.appendCost( new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.name("Gandalf"))); @@ -53,15 +58,30 @@ public class Card31_014 extends AbstractEvent { action.appendEffect( new ChoiceEffect(action, playerId, possibleEffects)); - action.appendEffect( - new OptionalEffect(action, playerId, - new ChooseAndTransferAttachableEffect(action, playerId, true, Filters.and(Culture.GANDALF, CardType.FOLLOWER, Zone.SUPPORT), Filters.any, CardType.COMPANION)) { + + SubCostToEffectAction subAction = new SubCostToEffectAction(action); + subAction.appendEffect( + new ChooseActiveCardEffect(self, playerId, "Choose a [GANDALF] follower", Culture.GANDALF, CardType.FOLLOWER, Zone.SUPPORT) { + @Override + protected void cardSelected(LotroGame game, final PhysicalCard follower) { + action.appendEffect( + new ChooseActiveCardEffect(self, playerId, "Choose a companion", CardType.COMPANION) { @Override - public String getText(LotroGame game) { - return "Attach a [GANDALF] follower"; + protected void cardSelected(LotroGame game, PhysicalCard companion) { + action.appendEffect(new TransferPermanentEffect(follower, companion)); } }); - - return action; + } + }); + + action.appendEffect( + new OptionalEffect(action, playerId, + new StackActionEffect(subAction) { + @Override + public String getText(LotroGame game) { + return "Attach a [GANDALF] follower"; + } + })); + return action; } } From e6ba807de2101bafcc64a2d34b0aac448d776d84 Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Thu, 8 Mar 2018 11:49:15 -0500 Subject: [PATCH 09/12] Fix to The Hobbit "Trollshaw Forest" Properly gives each player the opportunity to play a hand weapon --- .../gempukku/lotro/cards/set31/site/Card31_045.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/site/Card31_045.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/site/Card31_045.java index c13be8ef5..54a1b1377 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/site/Card31_045.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/site/Card31_045.java @@ -31,11 +31,13 @@ public class Card31_045 extends AbstractSite { } @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { + public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.startOfPhase(game, effectResult, Phase.MANEUVER)) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendEffect( - new ChooseAndPlayCardFromDeckEffect(playerId, PossessionClass.HAND_WEAPON)); + RequiredTriggerAction action = new RequiredTriggerAction(self); + for (String playerId : GameUtils.getAllPlayers(game)) { + action.appendEffect(new OptionalEffect(action, playerId, + new ChooseAndPlayCardFromDeckEffect(playerId, PossessionClass.HAND_WEAPON))); + } return Collections.singletonList(action); } return null; From e9064f35fe31f90a40a888c61e58c97250ab8adf Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Thu, 8 Mar 2018 11:51:43 -0500 Subject: [PATCH 10/12] Fix to The Hobbit "Riddles in the Dark" Prompt now tells the Free Peoples player what's going on --- .../lotro/cards/set31/gollum/Card31_022.java | 64 ++++++++++--------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gollum/Card31_022.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gollum/Card31_022.java index ddf8f41ee..b9c6ad868 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gollum/Card31_022.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/gollum/Card31_022.java @@ -49,38 +49,42 @@ public class Card31_022 extends AbstractPermanent { } return null; } - + @Override public List getOptionalInPlayAfterActions(final String playerId, final LotroGame game, EffectResult effectResult, final PhysicalCard self) { - if (TriggerConditions.forEachExerted(game, effectResult, Filters.name("Bilbo")) || TriggerConditions.forEachWounded(game, effectResult, Filters.name("Bilbo"))) { - final ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new ChooseAndExertCharactersEffect(action, playerId, 1, 1, CardType.MINION)); - action.appendCost( - new ChooseAndDiscardCardsFromHandEffect(action, playerId, true, 1, 1)); + if (TriggerConditions.forEachExerted(game, effectResult, Filters.name("Bilbo")) || TriggerConditions.forEachWounded(game, effectResult, Filters.name("Bilbo"))) { + final ActivateCardAction action = new ActivateCardAction(self); + action.appendCost( + new ChooseAndExertCharactersEffect(action, playerId, 1, 1, CardType.MINION)); + action.appendCost( + new ChooseAndDiscardCardsFromHandEffect(action, playerId, true, 1, 1)); action.appendEffect( - new PreventableEffect(action, - new UnrespondableEffect() { - @Override - public String getText(LotroGame game) { - return "Choose a SHIRE card"; - } - - @Override - protected void doPlayEffect(LotroGame game) { - action.appendEffect( - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Culture.SHIRE)); - } + new PreventableEffect(action, + new UnrespondableEffect() { + @Override + public String getText(LotroGame game) { + return "a SHIRE card from being discarded"; + } + + @Override + protected void doPlayEffect(LotroGame game) { + action.appendEffect( + new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Culture.SHIRE)); + } }, Collections.singletonList(game.getGameState().getCurrentPlayerId()), - new PreventableEffect.PreventionCost() { - @Override - public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { - return new ChooseAndDiscardCardsFromHandEffect(subAction, playerId, true, 2, 2); - } - } - )); - return Collections.singletonList(action); + new PreventableEffect.PreventionCost() { + @Override + public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { + return new ChooseAndDiscardCardsFromHandEffect(subAction, playerId, false, 2, 2) { + @Override + public String getText(LotroGame game) { + return "Discard 2 cards from hand"; + } + }; + } + })); + return Collections.singletonList(action); } - return null; - } -} \ No newline at end of file + return null; + } +} From ddcb217a9bb294e9adbe8d9384c12b7f326308fc Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Thu, 8 Mar 2018 11:53:03 -0500 Subject: [PATCH 11/12] Fix to The Hobbit "Goblin Song" Checks if costs can be paid to play from discard before playing --- .../lotro/cards/set31/moria/Card31_033.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/moria/Card31_033.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/moria/Card31_033.java index 080d21f82..ab22b87c6 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/moria/Card31_033.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/moria/Card31_033.java @@ -11,6 +11,7 @@ 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.actions.ActivateCardAction; import com.gempukku.lotro.logic.timing.Action; import java.util.Collections; @@ -39,8 +40,8 @@ public class Card31_033 extends AbstractEvent { @Override public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { PlayEventAction action = new PlayEventAction(self); - action.appendCost( - new ChooseAndExertCharactersEffect(action, playerId, 2, 2, Race.ORC)); + action.appendCost( + new ChooseAndExertCharactersEffect(action, playerId, 2, 2, Race.ORC)); action.appendEffect( new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.or(CardType.POSSESSION, CardType.ARTIFACT), Filters.attachedTo(Filters.and(CardType.COMPANION, Race.DWARF)))); return action; @@ -50,12 +51,18 @@ public class Card31_033 extends AbstractEvent { public List getPhaseActionsFromDiscard(String playerId, LotroGame game, final PhysicalCard self) { if (PlayConditions.isPhase(game, Phase.MANEUVER) && PlayConditions.canExert(self, game, 2, Filters.name("The Great Goblin")) - && PlayConditions.canPlayFromDiscard(playerId, game, self)) { - final PlayEventAction action = getPlayCardAction(playerId, game, self, 0, false); - action.appendCost( - new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, Filters.name("The Great Goblin"))); + && (PlayConditions.canExert(self, game, 1, 2, Filters.and(Race.ORC, Filters.not(Filters.name("The Great Goblin")))) + || (PlayConditions.canExert(self, game, 1, Filters.and(Race.ORC, Filters.not(Filters.name("The Great Goblin")))) + && PlayConditions.canExert(self, game, 3, Filters.name("The Great Goblin"))))) { + ActivateCardAction action = new ActivateCardAction(self); + action.appendCost( + new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, Filters.name("The Great Goblin"))); + action.appendCost( + new ChooseAndExertCharactersEffect(action, playerId, 2, 2, Race.ORC)); + action.appendEffect( + new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.or(CardType.POSSESSION, CardType.ARTIFACT), Filters.attachedTo(Filters.and(CardType.COMPANION, Race.DWARF)))); return Collections.singletonList(action); } return null; } -} \ No newline at end of file +} From b2703b23855e0648c7d05ec3c99a11f9413f867a Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Sun, 11 Mar 2018 13:16:49 -0400 Subject: [PATCH 12/12] Fix to The Hobbit "Caught in a Sack" Now properly unique --- .../java/com/gempukku/lotro/cards/set31/troll/Card31_065.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/troll/Card31_065.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/troll/Card31_065.java index 9a93ed47f..f7dd9db5e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/troll/Card31_065.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set31/troll/Card31_065.java @@ -36,7 +36,7 @@ import java.util.List; */ public class Card31_065 extends AbstractPermanent { public Card31_065() { - super(Side.SHADOW, 2, CardType.CONDITION, Culture.GUNDABAD, Zone.SUPPORT, "Caught in a Sack"); + super(Side.SHADOW, 2, CardType.CONDITION, Culture.GUNDABAD, Zone.SUPPORT, "Caught in a Sack", null, true); } @Override