Refactoring.
This commit is contained in:
@@ -11,8 +11,13 @@ 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.GameUtils;
|
||||
import com.gempukku.lotro.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.modifiers.*;
|
||||
import com.gempukku.lotro.logic.modifiers.Condition;
|
||||
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
|
||||
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
|
||||
import com.gempukku.lotro.logic.timing.Action;
|
||||
|
||||
import java.util.Collections;
|
||||
@@ -37,14 +42,14 @@ public class Card13_050 extends AbstractMinion {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
|
||||
public List<? extends Modifier> getAlwaysOnModifiers(final LotroGame game, PhysicalCard self) {
|
||||
List<Modifier> modifiers = new LinkedList<Modifier>();
|
||||
modifiers.add(
|
||||
new StrengthModifier(self, self,
|
||||
new Condition() {
|
||||
@Override
|
||||
public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) {
|
||||
for (String somePlayerId : gameState.getPlayerOrder().getAllPlayers()) {
|
||||
for (String somePlayerId : GameUtils.getAllPlayers(game)) {
|
||||
if (Filters.filter(gameState.getRemoved(somePlayerId), gameState, modifiersQuerying, Filters.name("Deagol")).size() > 0)
|
||||
return true;
|
||||
}
|
||||
@@ -57,7 +62,7 @@ public class Card13_050 extends AbstractMinion {
|
||||
new Condition() {
|
||||
@Override
|
||||
public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) {
|
||||
for (String somePlayerId : gameState.getPlayerOrder().getAllPlayers()) {
|
||||
for (String somePlayerId : GameUtils.getAllPlayers(game)) {
|
||||
if (Filters.filter(gameState.getRemoved(somePlayerId), gameState, modifiersQuerying, Filters.name("Deagol")).size() > 0)
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -4,9 +4,14 @@ import com.gempukku.lotro.cards.AbstractPermanent;
|
||||
import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.TriggerConditions;
|
||||
import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
||||
import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.common.CardType;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
import com.gempukku.lotro.common.Side;
|
||||
import com.gempukku.lotro.common.Zone;
|
||||
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.RequiredTriggerAction;
|
||||
import com.gempukku.lotro.logic.effects.DiscardCardsFromHandEffect;
|
||||
import com.gempukku.lotro.logic.effects.DrawCardsEffect;
|
||||
@@ -44,7 +49,7 @@ public class Card15_031 extends AbstractPermanent {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
action.appendCost(
|
||||
new SelfDiscardEffect(self));
|
||||
for (String playerId : game.getGameState().getPlayerOrder().getAllPlayers()) {
|
||||
for (String playerId : GameUtils.getAllPlayers(game)) {
|
||||
int handSize = game.getGameState().getHand(playerId).size();
|
||||
action.appendEffect(
|
||||
new DiscardCardsFromHandEffect(self, playerId, new HashSet<PhysicalCard>(game.getGameState().getHand(playerId)), false));
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.gempukku.lotro.common.Keyword;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.PlayOrder;
|
||||
import com.gempukku.lotro.logic.GameUtils;
|
||||
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
|
||||
import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
@@ -30,9 +30,7 @@ public class Card18_134 extends AbstractNewSite {
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.movesTo(game, effectResult, self)) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
final PlayOrder counterClockwisePlayOrder = game.getGameState().getPlayerOrder().getCounterClockwisePlayOrder(game.getGameState().getCurrentPlayerId(), false);
|
||||
String playerId;
|
||||
while ((playerId = counterClockwisePlayOrder.getNextPlayer()) != null) {
|
||||
for (String playerId : GameUtils.getAllPlayers(game)) {
|
||||
action.appendEffect(
|
||||
new ChooseAndWoundCharactersEffect(action, playerId, 2, 2, Filters.owner(playerId), Filters.character));
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.gempukku.lotro.cards.effects.ReinforceTokenEffect;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.PlayOrder;
|
||||
import com.gempukku.lotro.logic.GameUtils;
|
||||
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
|
||||
@@ -31,9 +31,7 @@ public class Card18_137 extends AbstractNewSite {
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.movesTo(game, effectResult, self)) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
final PlayOrder counterClockwisePlayOrder = game.getGameState().getPlayerOrder().getCounterClockwisePlayOrder(game.getGameState().getCurrentPlayerId(), false);
|
||||
String playerId;
|
||||
while ((playerId = counterClockwisePlayOrder.getNextPlayer()) != null) {
|
||||
for (String playerId : GameUtils.getAllPlayers(game)) {
|
||||
action.appendEffect(
|
||||
new OptionalEffect(
|
||||
action, playerId,
|
||||
|
||||
@@ -5,7 +5,11 @@ import com.gempukku.lotro.cards.PlayConditions;
|
||||
import com.gempukku.lotro.cards.effects.PutCardFromDeckOnBottomOfDeckEffect;
|
||||
import com.gempukku.lotro.cards.effects.RemoveTwilightEffect;
|
||||
import com.gempukku.lotro.cards.effects.RevealTopCardsOfDrawDeckEffect;
|
||||
import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.common.CardType;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
import com.gempukku.lotro.common.Side;
|
||||
import com.gempukku.lotro.common.Zone;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.GameUtils;
|
||||
@@ -44,11 +48,9 @@ public class Card4_166 extends AbstractPermanent {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendCost(
|
||||
new RemoveTwilightEffect(2));
|
||||
final List<String> allPlayers = game.getGameState().getPlayerOrder().getAllPlayers();
|
||||
final String[] players = allPlayers.toArray(new String[allPlayers.size()]);
|
||||
action.appendEffect(
|
||||
new PlayoutDecisionEffect(playerId,
|
||||
new MultipleChoiceAwaitingDecision(1, "Choose player to reveal top card", players) {
|
||||
new MultipleChoiceAwaitingDecision(1, "Choose player to reveal top card", GameUtils.getAllPlayers(game)) {
|
||||
@Override
|
||||
protected void validDecisionMade(int index, String deckId) {
|
||||
action.insertEffect(
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.gempukku.lotro.common.Phase;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.PlayOrder;
|
||||
import com.gempukku.lotro.logic.GameUtils;
|
||||
import com.gempukku.lotro.logic.actions.ActivateCardAction;
|
||||
import com.gempukku.lotro.logic.decisions.MultipleChoiceAwaitingDecision;
|
||||
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
|
||||
@@ -36,9 +36,7 @@ public class Card7_331 extends AbstractSite {
|
||||
final ActivateCardAction action = new ActivateCardAction(self);
|
||||
action.appendEffect(
|
||||
new AddTwilightEffect(self, 2));
|
||||
PlayOrder drawOrder = game.getGameState().getPlayerOrder().getCounterClockwisePlayOrder(game.getGameState().getCurrentPlayerId(), false);
|
||||
String nextPlayerId;
|
||||
while ((nextPlayerId = drawOrder.getNextPlayer()) != null) {
|
||||
for (String nextPlayerId : GameUtils.getAllPlayers(game)) {
|
||||
final String drawingPlayerId = nextPlayerId;
|
||||
action.appendEffect(
|
||||
new PlayoutDecisionEffect(drawingPlayerId,
|
||||
|
||||
@@ -72,7 +72,18 @@ public class GameUtils {
|
||||
}
|
||||
|
||||
public static String[] getAllPlayers(LotroGame game) {
|
||||
return game.getGameState().getPlayerOrder().getAllPlayers().toArray(new String[0]);
|
||||
final GameState gameState = game.getGameState();
|
||||
final PlayerOrder playerOrder = gameState.getPlayerOrder();
|
||||
String[] result = new String[playerOrder.getPlayerCount()];
|
||||
|
||||
final PlayOrder counterClockwisePlayOrder = playerOrder.getCounterClockwisePlayOrder(gameState.getCurrentPlayerId(), false);
|
||||
int index=0;
|
||||
|
||||
String nextPlayer;
|
||||
while ((nextPlayer = counterClockwisePlayOrder.getNextPlayer()) != null) {
|
||||
result[index++] = nextPlayer;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static List<PhysicalCard> getRandomCards(List<? extends PhysicalCard> cards, int count) {
|
||||
|
||||
@@ -40,4 +40,8 @@ public class PlayerOrder {
|
||||
} while (currentPlayerIndex != nextIndex);
|
||||
return new PlayOrder(playOrder, looped);
|
||||
}
|
||||
|
||||
public int getPlayerCount() {
|
||||
return _turnOrder.size();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.gempukku.lotro.at;
|
||||
|
||||
import com.gempukku.lotro.logic.GameUtils;
|
||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class PlayerListAtTest extends AbstractAtTest {
|
||||
@Test
|
||||
public void testAllPlayers() throws DecisionResultInvalidException {
|
||||
initializeSimplestGame();
|
||||
skipMulligans();
|
||||
|
||||
final String[] allPlayers = GameUtils.getAllPlayers(_game);
|
||||
assertEquals(2, allPlayers.length);
|
||||
assertEquals(P1, allPlayers[0]);
|
||||
assertEquals(P2, allPlayers[1]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user