diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealBottomCardsOfDrawDeckEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealBottomCardsOfDrawDeckEffect.java index 0cd3b8395..907e221ea 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealBottomCardsOfDrawDeckEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealBottomCardsOfDrawDeckEffect.java @@ -3,8 +3,12 @@ package com.gempukku.lotro.logic.effects; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.GameUtils; +import com.gempukku.lotro.logic.PlayOrder; +import com.gempukku.lotro.logic.decisions.ArbitraryCardsSelectionDecision; +import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import com.gempukku.lotro.logic.timing.AbstractEffect; +import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -39,8 +43,22 @@ public abstract class RevealBottomCardsOfDrawDeckEffect extends AbstractEffect { List deck = game.getGameState().getDeck(_playerId); int count = Math.min(deck.size(), _count); LinkedList bottomCards = new LinkedList(deck.subList(deck.size() - count, deck.size())); - if (bottomCards.size() > 0) + + if (bottomCards.size() > 0) { + final PlayOrder playerOrder = game.getGameState().getPlayerOrder().getCounterClockwisePlayOrder(_source.getOwner(), false); + + String nextPlayer; + while ((nextPlayer = playerOrder.getNextPlayer()) != null) { + game.getUserFeedback().sendAwaitingDecision(nextPlayer, + new ArbitraryCardsSelectionDecision(1, _playerId+" revealed card(s) from bottom of deck", bottomCards, Collections.emptySet(), 0, 0) { + @Override + public void decisionMade(String result) throws DecisionResultInvalidException { + } + }); + } + game.getGameState().sendMessage(GameUtils.getCardLink(_source) + " revealed cards from bottom of " + _playerId + " deck - " + getAppendedNames(bottomCards)); + } cardsRevealed(bottomCards); return new FullEffectResult(bottomCards.size() == _count); } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealCardEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealCardEffect.java index 151f38d2d..836d4362e 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealCardEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealCardEffect.java @@ -3,6 +3,10 @@ package com.gempukku.lotro.logic.effects; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.GameUtils; +import com.gempukku.lotro.logic.PlayOrder; +import com.gempukku.lotro.logic.PlayerOrder; +import com.gempukku.lotro.logic.decisions.ArbitraryCardsSelectionDecision; +import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import com.gempukku.lotro.logic.timing.AbstractSuccessfulEffect; import com.gempukku.lotro.logic.timing.Effect; @@ -34,7 +38,20 @@ public class RevealCardEffect extends AbstractSuccessfulEffect { @Override public void playEffect(LotroGame game) { - if (_cards.size() > 0) + if (_cards.size() > 0) { + final PlayOrder playerOrder = game.getGameState().getPlayerOrder().getCounterClockwisePlayOrder(_source.getOwner(), false); + + String nextPlayer; + while ((nextPlayer = playerOrder.getNextPlayer()) != null) { + game.getUserFeedback().sendAwaitingDecision(nextPlayer, + new ArbitraryCardsSelectionDecision(1, "Revealed card(s)", _cards, Collections.emptySet(), 0, 0) { + @Override + public void decisionMade(String result) throws DecisionResultInvalidException { + } + }); + } + game.getGameState().sendMessage(GameUtils.getCardLink(_source) + " revealed cards - " + getAppendedNames(_cards)); + } } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealRandomCardsFromHandEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealRandomCardsFromHandEffect.java index 3770a0755..06b62adae 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealRandomCardsFromHandEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealRandomCardsFromHandEffect.java @@ -3,10 +3,14 @@ package com.gempukku.lotro.logic.effects; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.GameUtils; +import com.gempukku.lotro.logic.PlayOrder; +import com.gempukku.lotro.logic.decisions.ArbitraryCardsSelectionDecision; +import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import com.gempukku.lotro.logic.timing.AbstractEffect; import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.results.RevealCardFromHandResult; +import java.util.Collections; import java.util.List; public abstract class RevealRandomCardsFromHandEffect extends AbstractEffect { @@ -36,8 +40,22 @@ public abstract class RevealRandomCardsFromHandEffect extends AbstractEffect { protected FullEffectResult playEffectReturningResult(LotroGame game) { if (_actingPlayer.equals(_playerHand) || game.getModifiersQuerying().canLookOrRevealCardsInHand(game, _playerHand, _actingPlayer)) { List randomCards = GameUtils.getRandomCards(game.getGameState().getHand(_playerHand), _count); - if (randomCards.size() > 0) + + if (randomCards.size() > 0) { + final PlayOrder playerOrder = game.getGameState().getPlayerOrder().getCounterClockwisePlayOrder(_source.getOwner(), false); + + String nextPlayer; + while ((nextPlayer = playerOrder.getNextPlayer()) != null) { + game.getUserFeedback().sendAwaitingDecision(nextPlayer, + new ArbitraryCardsSelectionDecision(1, _playerHand+" revealed card(s) from hand at random", randomCards, Collections.emptySet(), 0, 0) { + @Override + public void decisionMade(String result) throws DecisionResultInvalidException { + } + }); + } + game.getGameState().sendMessage(GameUtils.getCardLink(_source) + " revealed cards from " + _playerHand + " hand at random - " + getAppendedNames(randomCards)); + } cardsRevealed(randomCards); for (PhysicalCard randomCard : randomCards) game.getActionsEnvironment().emitEffectResult(new RevealCardFromHandResult(_source, _playerHand, randomCard)); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealTopCardsOfDrawDeckEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealTopCardsOfDrawDeckEffect.java index 3ebf41aaa..d04713fe9 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealTopCardsOfDrawDeckEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/RevealTopCardsOfDrawDeckEffect.java @@ -3,10 +3,14 @@ package com.gempukku.lotro.logic.effects; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.GameUtils; +import com.gempukku.lotro.logic.PlayOrder; +import com.gempukku.lotro.logic.decisions.ArbitraryCardsSelectionDecision; +import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import com.gempukku.lotro.logic.timing.AbstractEffect; import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.results.RevealCardFromTopOfDeckResult; +import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -42,6 +46,18 @@ public abstract class RevealTopCardsOfDrawDeckEffect extends AbstractEffect { int count = Math.min(deck.size(), _count); LinkedList topCards = new LinkedList(deck.subList(0, count)); if (topCards.size() > 0) { + final PlayOrder playerOrder = game.getGameState().getPlayerOrder().getCounterClockwisePlayOrder(_source.getOwner(), false); + + String nextPlayer; + while ((nextPlayer = playerOrder.getNextPlayer()) != null) { + game.getUserFeedback().sendAwaitingDecision(nextPlayer, + new ArbitraryCardsSelectionDecision(1, _playerId+" revealed card(s) from hand top of deck", topCards, Collections.emptySet(), 0, 0) { + @Override + public void decisionMade(String result) throws DecisionResultInvalidException { + } + }); + } + game.getGameState().sendMessage(GameUtils.getCardLink(_source) + " revealed cards from top of " + _playerId + " deck - " + getAppendedNames(topCards)); game.getActionsEnvironment().emitEffectResult( new RevealCardFromTopOfDeckResult(_playerId, topCards));