"The Great Eye, Wreathed in Flame" now allows to be revealed, only if its your opponents turn

This commit is contained in:
marcin.sciesinski
2019-08-12 17:38:49 -07:00
parent c34273a0f7
commit 9b03c17844
6 changed files with 48 additions and 60 deletions

View File

@@ -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<OptionalTriggerAction> 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));

View File

@@ -44,8 +44,7 @@ return Collections.singletonList(new KeywordModifier(self, self, new NotConditio
@Override
public List<OptionalTriggerAction> 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));

View File

@@ -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<OptionalTriggerAction> 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));

View File

@@ -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<OptionalTriggerAction> 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));

View File

@@ -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<? extends Action> 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(

View File

@@ -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<OptionalTriggerAction, EffectResult> getOptionalAfterTriggers(String playerId, Collection<? extends EffectResult> 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<OptionalTriggerAction> 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<OptionalTriggerAction> actions = cardInHand.getBlueprint().getOptionalAfterTriggersFromHand(playerId, _lotroGame, effectResult, cardInHand);
if (actions != null) {
for (OptionalTriggerAction action : actions) {
if (!effectResult.wasOptionalTriggerUsed(action))
gatheredActions.put(action, effectResult);
}
}
}
}