Revealing cards in a popup window
This commit is contained in:
@@ -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<? extends PhysicalCard> deck = game.getGameState().getDeck(_playerId);
|
||||
int count = Math.min(deck.size(), _count);
|
||||
LinkedList<PhysicalCard> bottomCards = new LinkedList<PhysicalCard>(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.<PhysicalCard>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);
|
||||
}
|
||||
|
||||
@@ -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.<PhysicalCard>emptySet(), 0, 0) {
|
||||
@Override
|
||||
public void decisionMade(String result) throws DecisionResultInvalidException {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
game.getGameState().sendMessage(GameUtils.getCardLink(_source) + " revealed cards - " + getAppendedNames(_cards));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<PhysicalCard> 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.<PhysicalCard>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));
|
||||
|
||||
@@ -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<PhysicalCard> topCards = new LinkedList<PhysicalCard>(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.<PhysicalCard>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));
|
||||
|
||||
Reference in New Issue
Block a user