diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_055.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_055.java index c02d540c2..a434a2639 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_055.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_055.java @@ -4,7 +4,12 @@ import com.gempukku.lotro.cards.AbstractPermanent; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.effects.DiscardCardFromDeckEffect; import com.gempukku.lotro.cards.effects.ExertCharactersEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.Block; +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.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -77,7 +82,7 @@ public class Card1_055 extends AbstractPermanent { } private String[] opponentsHavingAtLeast7Cards(LotroGame game, String currentPlayer) { - String[] opponents = GameUtils.getOpponents(game, currentPlayer); + String[] opponents = GameUtils.getShadowPlayers(game); List result = new LinkedList(); for (String shadowPlayer : opponents) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/site/Card13_188.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/site/Card13_188.java index d4c9528ae..70246d060 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/site/Card13_188.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/site/Card13_188.java @@ -8,7 +8,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.OptionalTriggerAction; import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect; import com.gempukku.lotro.logic.timing.EffectResult; @@ -31,10 +31,7 @@ public class Card13_188 extends AbstractNewSite { @Override public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - final PlayOrder playerOrder = game.getGameState().getPlayerOrder().getCounterClockwisePlayOrder(game.getGameState().getCurrentPlayerId(), false); - // Skipping FP player - playerOrder.getNextPlayer(); - String firstShadow = playerOrder.getNextPlayer(); + String firstShadow = GameUtils.getFirstShadowPlayer(game); if (TriggerConditions.movesTo(game, effectResult, self) && playerId.equals(firstShadow) && PlayConditions.canDiscardFromHand(game, playerId, 2, Filters.any)) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gandalf/Card15_038.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gandalf/Card15_038.java index e609c64a6..cc88f4850 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gandalf/Card15_038.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gandalf/Card15_038.java @@ -9,7 +9,7 @@ import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Race; 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; import com.gempukku.lotro.logic.timing.RuleUtils; @@ -43,10 +43,7 @@ public class Card15_038 extends AbstractCompanion { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.winsSkirmish(game, effectResult, self)) { - final PlayOrder counterClockwisePlayOrder = game.getGameState().getPlayerOrder().getCounterClockwisePlayOrder(game.getGameState().getCurrentPlayerId(), false); - // FP player - counterClockwisePlayOrder.getNextPlayer(); - String firstShadowPlayer = counterClockwisePlayOrder.getNextPlayer(); + String firstShadowPlayer = GameUtils.getFirstShadowPlayer(game); int selfStr = game.getModifiersQuerying().getStrength(game.getGameState(), self); int oppStr = RuleUtils.getShadowSkirmishStrength(game); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/site/Card15_192.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/site/Card15_192.java index 0db9389c3..26b83997a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/site/Card15_192.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/site/Card15_192.java @@ -8,7 +8,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.OptionalTriggerAction; import com.gempukku.lotro.logic.timing.EffectResult; @@ -30,9 +30,7 @@ public class Card15_192 extends AbstractNewSite { @Override public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - final PlayOrder playOrder = game.getGameState().getPlayerOrder().getCounterClockwisePlayOrder(game.getGameState().getCurrentPlayerId(), false); - playOrder.getNextPlayer(); - final String firstShadowPlayer = playOrder.getNextPlayer(); + final String firstShadowPlayer = GameUtils.getFirstShadowPlayer(game); if (TriggerConditions.transferredCard(game, effectResult, CardType.FOLLOWER, null, Filters.character) && playerId.equals(firstShadowPlayer)) { OptionalTriggerAction action = new OptionalTriggerAction(self); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_037.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_037.java index c2c00a2b8..f0be062fb 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_037.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_037.java @@ -31,7 +31,7 @@ public class Card18_037 extends AbstractEvent { PlayEventAction action = new PlayEventAction(self); action.appendEffect( new ReinforceTokenEffect(self, playerId, Token.GOLLUM)); - for (String shadowPlayer : GameUtils.getOpponents(game, playerId)) { + for (String shadowPlayer : GameUtils.getShadowPlayers(game)) { action.appendEffect( new OptionalEffect(action, shadowPlayer, new DrawCardsEffect(action, shadowPlayer, 1))); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gondor/Card18_050.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gondor/Card18_050.java index 539560cb1..d51b4fc84 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gondor/Card18_050.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gondor/Card18_050.java @@ -3,8 +3,19 @@ package com.gempukku.lotro.cards.set18.gondor; import com.gempukku.lotro.cards.AbstractPermanent; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.TriggerConditions; -import com.gempukku.lotro.cards.effects.*; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.cards.effects.AddTokenEffect; +import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect; +import com.gempukku.lotro.cards.effects.PreventableEffect; +import com.gempukku.lotro.cards.effects.RemoveTokenEffect; +import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.common.Side; +import com.gempukku.lotro.common.Token; +import com.gempukku.lotro.common.Zone; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -68,7 +79,7 @@ public class Card18_050 extends AbstractPermanent { public String getText(LotroGame game) { return "Make " + GameUtils.getFullName(minion) + " not assignable to skirmish until the regroup phase"; } - }, GameUtils.getOpponents(game, playerId), + }, GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gondor/Card18_057.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gondor/Card18_057.java index d8e4f270f..d16afae43 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gondor/Card18_057.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gondor/Card18_057.java @@ -5,7 +5,12 @@ import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.effects.SelfDiscardEffect; import com.gempukku.lotro.cards.effects.ShuffleCardsFromHandIntoDeckEffect; import com.gempukku.lotro.cards.modifiers.ArcheryTotalModifier; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.PossessionClass; +import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -51,7 +56,7 @@ public class Card18_057 extends AbstractAttachableFPPossession { ActivateCardAction action = new ActivateCardAction(self); action.appendCost( new SelfDiscardEffect(self)); - for (String opponentId : GameUtils.getOpponents(game, playerId)) { + for (String opponentId : GameUtils.getShadowPlayers(game)) { action.appendEffect( new ShuffleCardsFromHandIntoDeckEffect(self, opponentId, new HashSet(game.getGameState().getHand(opponentId)))); action.appendEffect( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/dwarven/Card19_004.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/dwarven/Card19_004.java index 5c95810d7..ab00d6719 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/dwarven/Card19_004.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/dwarven/Card19_004.java @@ -5,7 +5,11 @@ import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.actions.PlayEventAction; import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -37,7 +41,7 @@ public class Card19_004 extends AbstractEvent { PlayEventAction action = new PlayEventAction(self); action.appendCost( new ChooseAndExertCharactersEffect(action, playerId, 1, 1, CardType.COMPANION, Keyword.FELLOWSHIP)); - for (String opponentId : GameUtils.getOpponents(game, playerId)) { + for (String opponentId : GameUtils.getShadowPlayers(game)) { action.appendEffect( new ChooseAndDiscardCardsFromPlayEffect(action, opponentId, 1, 1, Filters.owner(opponentId), Side.SHADOW)); } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/dwarven/Card2_013.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/dwarven/Card2_013.java index 59102b982..89290a4dd 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/dwarven/Card2_013.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/dwarven/Card2_013.java @@ -43,7 +43,7 @@ public class Card2_013 extends AbstractOldEvent { action.appendEffect( new PreventableEffect(action, new DrawCardsEffect(action, playerId, 3), - Arrays.asList(GameUtils.getOpponents(game, playerId)), + Arrays.asList(GameUtils.getShadowPlayers(game)), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_028.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_028.java index afcf21a3d..ae85e36e6 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_028.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/gandalf/Card2_028.java @@ -5,7 +5,11 @@ import com.gempukku.lotro.cards.actions.PlayEventAction; import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect; import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -56,7 +60,7 @@ public class Card2_028 extends AbstractOldEvent { return "Make a companion Defender +1"; } }, - Arrays.asList(GameUtils.getOpponents(game, playerId)), + Arrays.asList(GameUtils.getShadowPlayers(game)), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/elven/Card20_097.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/elven/Card20_097.java index 4b3dbdc4e..ca72d51b3 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/elven/Card20_097.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/elven/Card20_097.java @@ -5,7 +5,11 @@ import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndPutCardsFromHandOnTopOfDrawDeckEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.PossessionClass; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -53,7 +57,7 @@ public class Card20_097 extends AbstractAttachableFPPossession { return "Make a minion skirmishing an unbound companion strength -3"; } }, - GameUtils.getOpponents(game, playerId), + GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/fallenRealms/Card20_481.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/fallenRealms/Card20_481.java index 1ec9e483a..1493831e8 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/fallenRealms/Card20_481.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/fallenRealms/Card20_481.java @@ -5,7 +5,11 @@ import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect; import com.gempukku.lotro.cards.effects.PreventableEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Race; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -54,7 +58,7 @@ public class Card20_481 extends AbstractMinion { public String getText(LotroGame game) { return "Wound a companion"; } - }, GameUtils.getOpponents(game, playerId), + }, GameUtils.getFreePeoplePlayer(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/fallenRealms/Card20_482.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/fallenRealms/Card20_482.java index 8f8e94f25..073894e09 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/fallenRealms/Card20_482.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/fallenRealms/Card20_482.java @@ -7,7 +7,11 @@ import com.gempukku.lotro.cards.effects.AddBurdenEffect; import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect; import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.RemoveBurdenEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Race; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -54,7 +58,7 @@ public class Card20_482 extends AbstractMinion { public String getText(LotroGame game) { return "Wound a companion"; } - }, GameUtils.getOpponents(game, playerId), + }, GameUtils.getFreePeoplePlayer(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/rohan/Card20_471.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/rohan/Card20_471.java index f02991107..71a97fcd8 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/rohan/Card20_471.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/rohan/Card20_471.java @@ -6,7 +6,12 @@ import com.gempukku.lotro.cards.effects.CancelSkirmishEffect; import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.SelfDiscardEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.PossessionClass; +import com.gempukku.lotro.common.Race; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -46,7 +51,7 @@ public class Card20_471 extends AbstractAttachableFPPossession { action.appendEffect( new PreventableEffect(action, new CancelSkirmishEffect(self.getAttachedTo()), - GameUtils.getOpponents(game, playerId), + GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/elven/Card3_011.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/elven/Card3_011.java index f5d1a94f9..fad933081 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/elven/Card3_011.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/elven/Card3_011.java @@ -45,7 +45,7 @@ public class Card3_011 extends AbstractOldEvent { @Override public PlayEventAction getPlayCardAction(final String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { final PlayEventAction action = new PlayEventAction(self); - String[] opponents = GameUtils.getOpponents(game, playerId); + String[] opponents = GameUtils.getShadowPlayers(game); final AtomicInteger integer = new AtomicInteger(0); for (String opponent : opponents) { action.appendEffect( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gandalf/Card4_097.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gandalf/Card4_097.java index 06f83c0fe..60f1f2723 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gandalf/Card4_097.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gandalf/Card4_097.java @@ -5,7 +5,11 @@ import com.gempukku.lotro.cards.actions.PlayEventAction; import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseActionProxyEffect; import com.gempukku.lotro.cards.effects.PreventAllWoundsActionProxy; import com.gempukku.lotro.cards.effects.PreventableEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -14,8 +18,6 @@ import com.gempukku.lotro.logic.actions.SubAction; import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect; import com.gempukku.lotro.logic.timing.Effect; -import java.util.Arrays; - /** * Set: The Two Towers * Side: Free @@ -49,7 +51,7 @@ public class Card4_097 extends AbstractOldEvent { return "Prevent all wounds to Gandalf"; } }, - Arrays.asList(GameUtils.getOpponents(game, playerId)), + GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String shadowPlayerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_112.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_112.java index e92f9cf7e..3c951cb1a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_112.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_112.java @@ -52,7 +52,7 @@ public class Card4_112 extends AbstractAttachableFPPossession { action.appendEffect( new PreventableEffect(action, new CancelSkirmishEffect(Filters.hasAttached(self)), - GameUtils.getOpponents(game, playerId), + GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_300.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_300.java index 3fe41428b..f168bd920 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_300.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_300.java @@ -7,7 +7,12 @@ import com.gempukku.lotro.cards.effects.ExertCharactersEffect; import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; import com.gempukku.lotro.cards.modifiers.VitalityModifier; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.filters.Filter; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; @@ -61,7 +66,7 @@ public class Card4_300 extends AbstractAttachable { action.appendEffect( new PreventableEffect(action, new CancelSkirmishEffect(Filters.hasAttached(self)), - GameUtils.getOpponents(game, playerId), + GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_310.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_310.java index 92ef0fbf1..91343c6a9 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_310.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_310.java @@ -48,7 +48,7 @@ public class Card4_310 extends AbstractCompanion { action.appendEffect( new PreventableEffect(action, new SelfDiscardEffect(self), - GameUtils.getOpponents(game, playerId), + GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_314.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_314.java index 2322ef289..87d302cb2 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_314.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_314.java @@ -46,7 +46,7 @@ public class Card4_314 extends AbstractCompanion { action.appendEffect( new PreventableEffect(action, new SelfDiscardEffect(self), - GameUtils.getOpponents(game, playerId), + GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gandalf/Card5_020.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gandalf/Card5_020.java index dc141d89d..8c443ba3d 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gandalf/Card5_020.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gandalf/Card5_020.java @@ -6,7 +6,11 @@ import com.gempukku.lotro.cards.actions.PlayEventAction; import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -47,7 +51,7 @@ public class Card5_020 extends AbstractEvent { public String getText(LotroGame game) { return "Discard up to 2 shadow possessions"; } - }, GameUtils.getOpponents(game, playerId), + }, GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_021.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_021.java index 394b2dd73..9843fa852 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_021.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_021.java @@ -48,7 +48,7 @@ public class Card5_021 extends AbstractEvent { public String getText(LotroGame game) { return "Discard a minion"; } - }, GameUtils.getOpponents(game, playerId), + }, GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/rohan/Card5_089.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/rohan/Card5_089.java index 3e9abac6b..2738b40dd 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/rohan/Card5_089.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/rohan/Card5_089.java @@ -6,7 +6,12 @@ import com.gempukku.lotro.cards.effects.CancelSkirmishEffect; import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.SelfDiscardEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.PossessionClass; +import com.gempukku.lotro.common.Race; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -48,7 +53,7 @@ public class Card5_089 extends AbstractAttachableFPPossession { action.appendEffect( new PreventableEffect(action, new CancelSkirmishEffect(self.getAttachedTo()), - GameUtils.getOpponents(game, playerId), + GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/rohan/Card6_096.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/rohan/Card6_096.java index 46c7e6e3a..08e7cbe3a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/rohan/Card6_096.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/rohan/Card6_096.java @@ -43,7 +43,7 @@ public class Card6_096 extends AbstractEvent { action.appendEffect( new AddUntilEndOfTurnModifierEffect( new MoveLimitModifier(self, 2))); - for (final String opponentId : GameUtils.getOpponents(game, playerId)) { + for (final String opponentId : GameUtils.getShadowPlayers(game)) { action.appendEffect( new PlayoutDecisionEffect(opponentId, new MultipleChoiceAwaitingDecision(1, "Do you want to draw 6 cards?", new String[]{"Yes", "No"}) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gandalf/Card7_037.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gandalf/Card7_037.java index 397af0867..27afe34d3 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gandalf/Card7_037.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gandalf/Card7_037.java @@ -6,7 +6,11 @@ import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect; import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.PutCardFromHandOnTopOfDeckEffect; import com.gempukku.lotro.cards.effects.choose.ChooseCardsFromHandEffect; -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.Race; +import com.gempukku.lotro.common.Signet; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -69,7 +73,7 @@ public class Card7_037 extends AbstractCompanion { public String getText(LotroGame game) { return "Make " + GameUtils.getFullName(card) + " strength -3"; } - }, GameUtils.getOpponents(game, playerId), + }, GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(final SubAction subAction, final String opponentId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gandalf/Card7_039.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gandalf/Card7_039.java index 93b72d22c..9558fde8e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gandalf/Card7_039.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gandalf/Card7_039.java @@ -4,7 +4,12 @@ import com.gempukku.lotro.cards.AbstractAttachableFPPossession; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; import com.gempukku.lotro.cards.effects.choose.ChooseOpponentEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.PossessionClass; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -67,7 +72,7 @@ public class Card7_039 extends AbstractAttachableFPPossession { private boolean hasMoreCardsThanEachOpponent(String playerId, LotroGame game) { int cardsInHand = game.getGameState().getHand(playerId).size(); - for (String opponentId : GameUtils.getOpponents(game, playerId)) { + for (String opponentId : GameUtils.getShadowPlayers(game)) { if (game.getGameState().getHand(opponentId).size() >= cardsInHand) return false; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_068.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_068.java index 58844ea74..648e8fd45 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_068.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_068.java @@ -8,7 +8,11 @@ import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.SelfDiscardEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; -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.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -85,7 +89,7 @@ public class Card7_068 extends AbstractPermanent { public String getText(LotroGame game) { return "Discard a minion"; } - }, GameUtils.getOpponents(game, playerId), + }, GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_232.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_232.java index 7410a7a9d..d57b24300 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_232.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_232.java @@ -8,7 +8,13 @@ import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.common.Names; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.PossessionClass; +import com.gempukku.lotro.common.Race; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -69,12 +75,13 @@ public class Card7_232 extends AbstractAttachableFPPossession { public String getText(LotroGame game) { return "Discard a condition"; } - }, GameUtils.getOpponents(game, playerId), new PreventableEffect.PreventionCost() { - @Override - public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { - return new RemoveTwilightEffect(1); - } - } + }, GameUtils.getShadowPlayers(game), + new PreventableEffect.PreventionCost() { + @Override + public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { + return new RemoveTwilightEffect(1); + } + } )); return Collections.singletonList(action); } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_243.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_243.java index 7ee7cc606..0730b9e2c 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_243.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_243.java @@ -46,7 +46,7 @@ public class Card7_243 extends AbstractEvent { public String getText(LotroGame game) { return "Make " + GameUtils.getFullName(rohanMan) + " strength +4"; } - }, GameUtils.getOpponents(game, playerId), + }, GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_250.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_250.java index e3db001bf..db33e8461 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_250.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_250.java @@ -8,7 +8,13 @@ import com.gempukku.lotro.cards.effects.LiberateASiteEffect; import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.common.Names; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.PossessionClass; +import com.gempukku.lotro.common.Race; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -66,7 +72,7 @@ public class Card7_250 extends AbstractAttachableFPPossession { action.appendEffect( new PreventableEffect(action, new LiberateASiteEffect(self, playerId, null), - GameUtils.getOpponents(game, playerId), + GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_251.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_251.java index 147e1f609..2ed4e863f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_251.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_251.java @@ -7,7 +7,12 @@ import com.gempukku.lotro.cards.effects.SelfDiscardEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndPutCardFromDiscardIntoHandEffect; import com.gempukku.lotro.cards.effects.choose.ChooseOpponentEffect; import com.gempukku.lotro.cards.modifiers.MoveLimitModifier; -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.Race; +import com.gempukku.lotro.common.Side; +import com.gempukku.lotro.common.Zone; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -56,7 +61,7 @@ public class Card7_251 extends AbstractPermanent { action.appendEffect( new AddUntilEndOfTurnModifierEffect( new MoveLimitModifier(self, 1))); - for (String opponentId : GameUtils.getOpponents(game, playerId)) { + for (String opponentId : GameUtils.getShadowPlayers(game)) { action.appendEffect( new ChooseAndPutCardFromDiscardIntoHandEffect(action, opponentId, 0, 4, Filters.any)); } @@ -68,7 +73,7 @@ public class Card7_251 extends AbstractPermanent { } private boolean canDiscardCardsEqualToOpponentsHandSize(String playerId, LotroGame game) { - for (String opponentId : GameUtils.getOpponents(game, playerId)) { + for (String opponentId : GameUtils.getShadowPlayers(game)) { if (PlayConditions.canDiscardFromHand(game, playerId, game.getGameState().getHand(opponentId).size(), Filters.any)) return true; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/elven/Card9_018.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/elven/Card9_018.java index 207017305..a07f359d7 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/elven/Card9_018.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/elven/Card9_018.java @@ -7,7 +7,11 @@ import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; import com.gempukku.lotro.cards.effects.SelfDiscardEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.PossessionClass; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -71,7 +75,7 @@ public class Card9_018 extends AbstractAttachableFPPossession { public String getText(LotroGame game) { return "Wound a minion Merry is skirmishing"; } - }, GameUtils.getOpponents(game, playerId), + }, GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/elven/Card9_021.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/elven/Card9_021.java index ec1c3be01..98da0c8a7 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/elven/Card9_021.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/elven/Card9_021.java @@ -7,7 +7,12 @@ import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; import com.gempukku.lotro.cards.effects.SelfDiscardEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.PossessionClass; +import com.gempukku.lotro.common.Race; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -71,7 +76,7 @@ public class Card9_021 extends AbstractAttachableFPPossession { public String getText(LotroGame game) { return "Wound a minion an Elf is skirmishing"; } - }, GameUtils.getOpponents(game, playerId), + }, GameUtils.getShadowPlayers(game), new PreventableEffect.PreventionCost() { @Override public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/gandalf/Card9_026.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/gandalf/Card9_026.java index afc30cc6c..6ab4d5f82 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/gandalf/Card9_026.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/gandalf/Card9_026.java @@ -51,7 +51,7 @@ public class Card9_026 extends AbstractCompanion { if (TriggerConditions.moves(game, effectResult) && PlayConditions.isPhase(game, Phase.REGROUP)) { List actions = new LinkedList(); - for (final String opponent : GameUtils.getOpponents(game, self.getOwner())) { + for (final String opponent : GameUtils.getShadowPlayers(game)) { if (PlayConditions.canDiscardFromHand(game, opponent, 2, Filters.any)) { final RequiredTriggerAction action = new RequiredTriggerAction(self); action.appendCost( diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/GameUtils.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/GameUtils.java index 9acdd63c7..2277c207d 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/GameUtils.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/GameUtils.java @@ -11,7 +11,13 @@ import com.gempukku.lotro.game.state.GameState; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; public class GameUtils { public static boolean isSide(GameState gameState, Side side, String playerId) { @@ -40,6 +46,25 @@ public class GameUtils { return blueprint.getName(); } + public static String getFirstShadowPlayer(LotroGame game) { + final String fpPlayer = game.getGameState().getCurrentPlayerId(); + final PlayOrder counterClockwisePlayOrder = game.getGameState().getPlayerOrder().getCounterClockwisePlayOrder(fpPlayer, false); + // Skip FP player + counterClockwisePlayOrder.getNextPlayer(); + return counterClockwisePlayOrder.getNextPlayer(); + } + + public static String[] getShadowPlayers(LotroGame game) { + final String fpPlayer = game.getGameState().getCurrentPlayerId(); + List shadowPlayers = new LinkedList(game.getGameState().getPlayerOrder().getAllPlayers()); + shadowPlayers.remove(fpPlayer); + return shadowPlayers.toArray(new String[shadowPlayers.size()]); + } + + public static String getFreePeoplePlayer(LotroGame game) { + return game.getGameState().getCurrentPlayerId(); + } + public static String[] getOpponents(LotroGame game, String playerId) { List shadowPlayers = new LinkedList(game.getGameState().getPlayerOrder().getAllPlayers()); shadowPlayers.remove(playerId); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/WinConditionRule.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/WinConditionRule.java index 1f3f7c46f..3c70e067f 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/WinConditionRule.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/WinConditionRule.java @@ -38,7 +38,7 @@ public class WinConditionRule { } } else if (game.getFormat().winOnControlling5Sites() && effectResults.getType() == EffectResult.Type.TAKE_CONTROL_OF_SITE) { - for (String opponent : GameUtils.getOpponents(game, game.getGameState().getCurrentPlayerId())) { + for (String opponent : GameUtils.getShadowPlayers(game)) { if (Filters.countActive(game.getGameState(), game.getModifiersQuerying(), CardType.SITE, Filters.siteControlled(opponent)) >= 5) game.playerWon(opponent, "Controls 5 sites"); }