diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/wraith/Card12_183.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/wraith/Card12_183.java index c3c122d50..98e9dd890 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/wraith/Card12_183.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/wraith/Card12_183.java @@ -1,19 +1,15 @@ package com.gempukku.lotro.cards.set12.wraith; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.timing.TriggerConditions; -import com.gempukku.lotro.logic.effects.RevealCardsFromYourHandEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Names; -import com.gempukku.lotro.common.Race; +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.actions.OptionalTriggerAction; +import com.gempukku.lotro.logic.cardtype.AbstractMinion; +import com.gempukku.lotro.logic.effects.RevealCardsFromYourHandEffect; +import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; import com.gempukku.lotro.logic.timing.EffectResult; +import com.gempukku.lotro.logic.timing.TriggerConditions; import java.util.Collections; import java.util.List; @@ -43,8 +39,7 @@ public class Card12_183 extends AbstractMinion { @Override public List getOptionalAfterTriggersFromHand(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.played(game, effectResult, CardType.COMPANION) - && !playerId.equals(game.getGameState().getCurrentPlayerId())) { + if (TriggerConditions.played(game, effectResult, CardType.COMPANION)) { OptionalTriggerAction action = new OptionalTriggerAction(self); action.appendCost( new RevealCardsFromYourHandEffect(self, playerId, self)); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/men/Card13_084.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/men/Card13_084.java index f366560df..af3ab3950 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/men/Card13_084.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/men/Card13_084.java @@ -44,8 +44,7 @@ return Collections.singletonList(new KeywordModifier(self, self, new NotConditio @Override public List getOptionalAfterTriggersFromHand(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.played(game, effectResult, Side.FREE_PEOPLE, CardType.POSSESSION) - && PlayConditions.canSpot(game, Culture.MEN) - && !playerId.equals(game.getGameState().getCurrentPlayerId())) { + && PlayConditions.canSpot(game, Culture.MEN)) { OptionalTriggerAction action = new OptionalTriggerAction(self); action.appendCost( new RevealCardsFromYourHandEffect(self, playerId, self)); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/orc/Card13_112.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/orc/Card13_112.java index 20f8307e2..7520c2c4a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/orc/Card13_112.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/orc/Card13_112.java @@ -1,10 +1,5 @@ package com.gempukku.lotro.cards.set13.orc; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; -import com.gempukku.lotro.logic.effects.AddBurdenEffect; -import com.gempukku.lotro.logic.effects.RevealCardsFromYourHandEffect; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; @@ -13,7 +8,12 @@ import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.OptionalTriggerAction; +import com.gempukku.lotro.logic.cardtype.AbstractMinion; +import com.gempukku.lotro.logic.effects.AddBurdenEffect; +import com.gempukku.lotro.logic.effects.RevealCardsFromYourHandEffect; import com.gempukku.lotro.logic.timing.EffectResult; +import com.gempukku.lotro.logic.timing.PlayConditions; +import com.gempukku.lotro.logic.timing.TriggerConditions; import java.util.Collections; import java.util.List; @@ -50,8 +50,7 @@ public class Card13_112 extends AbstractMinion { public List getOptionalAfterTriggersFromHand(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.losesSkirmishInvolving(game, effectResult, Filters.and(CardType.COMPANION, Keyword.RING_BOUND), - Filters.and(Culture.ORC, CardType.MINION)) - && !playerId.equals(game.getGameState().getCurrentPlayerId())) { + Filters.and(Culture.ORC, CardType.MINION))) { OptionalTriggerAction action = new OptionalTriggerAction(self); action.appendCost( new RevealCardsFromYourHandEffect(self, playerId, self)); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_360.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_360.java index 6f833f431..ce0ceb7e4 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_360.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/sauron/Card20_360.java @@ -1,13 +1,5 @@ package com.gempukku.lotro.cards.set20.sauron; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; -import com.gempukku.lotro.logic.effects.AddBurdenEffect; -import com.gempukku.lotro.logic.effects.RevealCardsFromYourHandEffect; -import com.gempukku.lotro.logic.effects.SelfExertEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; -import com.gempukku.lotro.logic.modifiers.evaluator.CountActiveEvaluator; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; @@ -17,9 +9,17 @@ import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.ActivateCardAction; import com.gempukku.lotro.logic.actions.OptionalTriggerAction; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; +import com.gempukku.lotro.logic.cardtype.AbstractMinion; +import com.gempukku.lotro.logic.effects.AddBurdenEffect; import com.gempukku.lotro.logic.effects.AddThreatsEffect; +import com.gempukku.lotro.logic.effects.RevealCardsFromYourHandEffect; +import com.gempukku.lotro.logic.effects.SelfExertEffect; +import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; +import com.gempukku.lotro.logic.modifiers.evaluator.CountActiveEvaluator; import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.EffectResult; +import com.gempukku.lotro.logic.timing.PlayConditions; +import com.gempukku.lotro.logic.timing.TriggerConditions; import java.util.Collections; import java.util.List; @@ -43,8 +43,7 @@ public class Card20_360 extends AbstractMinion { @Override public List getOptionalAfterTriggersFromHand(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (effectResult.getType() == EffectResult.Type.PUT_ON_THE_ONE_RING - && !playerId.equals(game.getGameState().getCurrentPlayerId())) { + if (effectResult.getType() == EffectResult.Type.PUT_ON_THE_ONE_RING) { OptionalTriggerAction action = new OptionalTriggerAction(self); action.appendCost( new RevealCardsFromYourHandEffect(self, playerId, self)); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_219.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_219.java index 455921a79..7d728a5c3 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_219.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_219.java @@ -1,14 +1,5 @@ package com.gempukku.lotro.cards.set40.sauron; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; -import com.gempukku.lotro.logic.effects.AddBurdenEffect; -import com.gempukku.lotro.logic.effects.RevealCardsFromYourHandEffect; -import com.gempukku.lotro.logic.effects.SelfExertEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; -import com.gempukku.lotro.logic.modifiers.evaluator.CountSpottableEvaluator; -import com.gempukku.lotro.logic.modifiers.evaluator.MinEvaluator; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; @@ -18,9 +9,18 @@ import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.ActivateCardAction; import com.gempukku.lotro.logic.actions.OptionalTriggerAction; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; +import com.gempukku.lotro.logic.cardtype.AbstractMinion; +import com.gempukku.lotro.logic.effects.AddBurdenEffect; import com.gempukku.lotro.logic.effects.AddThreatsEffect; +import com.gempukku.lotro.logic.effects.RevealCardsFromYourHandEffect; +import com.gempukku.lotro.logic.effects.SelfExertEffect; +import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; +import com.gempukku.lotro.logic.modifiers.evaluator.CountSpottableEvaluator; +import com.gempukku.lotro.logic.modifiers.evaluator.MinEvaluator; import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.EffectResult; +import com.gempukku.lotro.logic.timing.PlayConditions; +import com.gempukku.lotro.logic.timing.TriggerConditions; import java.util.Collections; import java.util.List; @@ -75,8 +75,8 @@ public class Card40_219 extends AbstractMinion { @Override protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SKIRMISH, self, 0) - && PlayConditions.canSelfExert(self, game)) { - ActivateCardAction action= new ActivateCardAction(self); + && PlayConditions.canSelfExert(self, game)) { + ActivateCardAction action = new ActivateCardAction(self); action.appendCost( new SelfExertEffect(action, self)); action.appendEffect( diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/actions/DefaultActionsEnvironment.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/actions/DefaultActionsEnvironment.java index 95c2f8cfd..1a6f1052f 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/actions/DefaultActionsEnvironment.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/actions/DefaultActionsEnvironment.java @@ -2,13 +2,11 @@ package com.gempukku.lotro.game.state.actions; import com.gempukku.lotro.common.Filterable; import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.AbstractActionProxy; -import com.gempukku.lotro.game.ActionProxy; -import com.gempukku.lotro.game.ActionsEnvironment; -import com.gempukku.lotro.game.CompletePhysicalCardVisitor; -import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.*; 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.actions.OptionalTriggerAction; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; @@ -23,14 +21,7 @@ import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; import com.gempukku.lotro.logic.timing.results.PlayCardResult; import org.apache.log4j.Logger; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; public class DefaultActionsEnvironment implements ActionsEnvironment { private static Logger LOG = Logger.getLogger(DefaultActionsEnvironment.class); @@ -246,6 +237,7 @@ public class DefaultActionsEnvironment implements ActionsEnvironment { @Override public Map getOptionalAfterTriggers(String playerId, Collection effectResults) { + final boolean fpPlayer = GameUtils.isFP(_lotroGame, playerId); GatherOptionalAfterTriggers gatherActions = new GatherOptionalAfterTriggers(playerId, effectResults); _lotroGame.getGameState().iterateActiveTextCards(playerId, gatherActions); @@ -264,14 +256,18 @@ public class DefaultActionsEnvironment implements ActionsEnvironment { } } + Side workingSide = fpPlayer ? Side.FREE_PEOPLE : Side.SHADOW; + // Optional triggers from hand for (PhysicalCard cardInHand : _lotroGame.getGameState().getHand(playerId)) { - for (EffectResult effectResult : effectResults) { - List actions = cardInHand.getBlueprint().getOptionalAfterTriggersFromHand(playerId, _lotroGame, effectResult, cardInHand); - if (actions != null) { - for (OptionalTriggerAction action : actions) { - if (!effectResult.wasOptionalTriggerUsed(action)) - gatheredActions.put(action, effectResult); + if (cardInHand.getBlueprint().getSide() == workingSide) { + for (EffectResult effectResult : effectResults) { + List actions = cardInHand.getBlueprint().getOptionalAfterTriggersFromHand(playerId, _lotroGame, effectResult, cardInHand); + if (actions != null) { + for (OptionalTriggerAction action : actions) { + if (!effectResult.wasOptionalTriggerUsed(action)) + gatheredActions.put(action, effectResult); + } } } }