diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ShuffleCardsFromPlayOrStackedIntoDeckEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ShuffleCardsFromPlayAndStackedOnItIntoDeckEffect.java similarity index 57% rename from gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ShuffleCardsFromPlayOrStackedIntoDeckEffect.java rename to gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ShuffleCardsFromPlayAndStackedOnItIntoDeckEffect.java index 75e4f517d..5680534ab 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ShuffleCardsFromPlayOrStackedIntoDeckEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ShuffleCardsFromPlayAndStackedOnItIntoDeckEffect.java @@ -10,12 +10,12 @@ import java.util.Collection; import java.util.HashSet; import java.util.Set; -public class ShuffleCardsFromPlayOrStackedIntoDeckEffect extends AbstractEffect { +public class ShuffleCardsFromPlayAndStackedOnItIntoDeckEffect extends AbstractEffect { private PhysicalCard _source; private String _playerDeck; private Collection _cards; - public ShuffleCardsFromPlayOrStackedIntoDeckEffect(PhysicalCard source, String playerDeck, Collection cards) { + public ShuffleCardsFromPlayAndStackedOnItIntoDeckEffect(PhysicalCard source, String playerDeck, Collection cards) { _source = source; _playerDeck = playerDeck; _cards = cards; @@ -43,29 +43,34 @@ public class ShuffleCardsFromPlayOrStackedIntoDeckEffect extends AbstractEffect @Override protected FullEffectResult playEffectReturningResult(LotroGame game) { - Set stacked = new HashSet(); + Set toShuffleIn = new HashSet(); Set inPlay = new HashSet(); + for (PhysicalCard card : _cards) { - if (card.getZone() == Zone.STACKED) - stacked.add(card); - else if (card.getZone().isInPlay()) + if (card.getZone().isInPlay()) { inPlay.add(card); + toShuffleIn.add(card); + toShuffleIn.addAll(game.getGameState().getStackedCards(card)); + } } for (PhysicalCard physicalCard : inPlay) game.getGameState().stopAffecting(physicalCard); - Set shuffleIn = new HashSet(stacked); - shuffleIn.addAll(inPlay); + if (toShuffleIn.size() > 0) { + game.getGameState().removeCardsFromZone(toShuffleIn); - if (shuffleIn.size() > 0) { - game.getGameState().removeCardsFromZone(shuffleIn); + game.getGameState().shuffleCardsIntoDeck(toShuffleIn, _playerDeck); - game.getGameState().shuffleCardsIntoDeck(shuffleIn, _playerDeck); + game.getGameState().sendMessage(getAppendedNames(toShuffleIn) + " is/are shuffled into " + _playerDeck + " deck"); - game.getGameState().sendMessage(getAppendedNames(shuffleIn) + " is/are shuffled into " + _playerDeck + " deck"); + cardsShuffledCallback(toShuffleIn); } - return new FullEffectResult(null, shuffleIn.size() == _cards.size(), shuffleIn.size() == _cards.size()); + return new FullEffectResult(null, inPlay.size() == _cards.size(), inPlay.size() == _cards.size()); + } + + protected void cardsShuffledCallback(Set cardsShuffled) { + } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dwarven/Card4_054.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dwarven/Card4_054.java index db2b17f55..48adf72a3 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dwarven/Card4_054.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dwarven/Card4_054.java @@ -2,7 +2,7 @@ package com.gempukku.lotro.cards.set4.dwarven; import com.gempukku.lotro.cards.AbstractEvent; import com.gempukku.lotro.cards.actions.PlayEventAction; -import com.gempukku.lotro.cards.effects.ShuffleCardsFromPlayOrStackedIntoDeckEffect; +import com.gempukku.lotro.cards.effects.ShuffleCardsFromPlayAndStackedOnItIntoDeckEffect; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Phase; @@ -13,8 +13,6 @@ import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.effects.ChooseActiveCardsEffect; import java.util.Collection; -import java.util.HashSet; -import java.util.Set; /** * Set: The Two Towers @@ -41,14 +39,8 @@ public class Card4_054 extends AbstractEvent { new ChooseActiveCardsEffect(self, playerId, "Choose DWARVEN conditions", 0, Integer.MAX_VALUE, Filters.culture(Culture.DWARVEN), Filters.type(CardType.CONDITION)) { @Override protected void cardsSelected(LotroGame game, Collection cards) { - Set toShuffle = new HashSet(); - for (PhysicalCard card : cards) { - toShuffle.add(card); - toShuffle.addAll(game.getGameState().getStackedCards(card)); - } - action.insertEffect( - new ShuffleCardsFromPlayOrStackedIntoDeckEffect(self, playerId, toShuffle)); + new ShuffleCardsFromPlayAndStackedOnItIntoDeckEffect(self, playerId, cards)); } }); return action; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dwarven/Card4_055.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dwarven/Card4_055.java index c82eb52d1..b6237d7b3 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dwarven/Card4_055.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dwarven/Card4_055.java @@ -4,14 +4,14 @@ import com.gempukku.lotro.cards.AbstractEvent; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.actions.PlayEventAction; import com.gempukku.lotro.cards.effects.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.cards.effects.ShuffleCardsFromPlayOrStackedIntoDeckEffect; +import com.gempukku.lotro.cards.effects.ShuffleCardsFromPlayAndStackedOnItIntoDeckEffect; 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 java.util.HashSet; +import java.util.Collections; import java.util.Set; /** @@ -48,15 +48,15 @@ public class Card4_055 extends AbstractEvent { new ChooseActiveCardEffect(self, playerId, "Choose a DWARVEN condition", Filters.culture(Culture.DWARVEN), Filters.type(CardType.CONDITION)) { @Override protected void cardSelected(PhysicalCard card) { - Set toShuffle = new HashSet(); - toShuffle.add(card); - toShuffle.addAll(game.getGameState().getStackedCards(card)); - action.insertEffect( - new ShuffleCardsFromPlayOrStackedIntoDeckEffect(self, playerId, toShuffle)); + new ShuffleCardsFromPlayAndStackedOnItIntoDeckEffect(self, playerId, Collections.singleton(card)) { + @Override + protected void cardsShuffledCallback(Set cardsShuffled) { + action.appendEffect( + new ChooseAndExertCharactersEffect(action, playerId, cardsShuffled.size(), cardsShuffled.size(), Filters.type(CardType.MINION))); + } + }); - action.appendEffect( - new ChooseAndExertCharactersEffect(action, playerId, toShuffle.size(), toShuffle.size(), Filters.type(CardType.MINION))); } }); return action;