Simplifying the timing engine.

This commit is contained in:
marcins78@gmail.com
2011-11-25 19:34:28 +00:00
parent b43de63c28
commit 5f4551bf44
19 changed files with 61 additions and 176 deletions

View File

@@ -5,15 +5,15 @@ 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.timing.AbstractEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.OldAbstractEffect;
import com.gempukku.lotro.logic.timing.results.DiscardCardFromHandResult;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class DiscardCardAtRandomFromHandEffect extends OldAbstractEffect {
public class DiscardCardAtRandomFromHandEffect extends AbstractEffect {
private PhysicalCard _source;
private String _playerId;
private boolean _forced;
@@ -49,8 +49,9 @@ public class DiscardCardAtRandomFromHandEffect extends OldAbstractEffect {
gameState.sendMessage(_playerId + " randomly discards " + GameUtils.getCardLink(randomCard));
gameState.removeCardsFromZone(_source.getOwner(), Collections.singleton(randomCard));
gameState.addCardToZone(game, randomCard, Zone.DISCARD);
return new FullEffectResult(Collections.singleton(new DiscardCardFromHandResult(_source, randomCard, _forced)), true, true);
game.getActionsEnvironment().emitEffectResult(new DiscardCardFromHandResult(_source, randomCard, _forced));
return new FullEffectResult(true, true);
}
return new FullEffectResult(null, false, false);
return new FullEffectResult(false, false);
}
}

View File

@@ -9,11 +9,9 @@ import com.gempukku.lotro.logic.GameUtils;
import com.gempukku.lotro.logic.effects.AbstractPreventableCardEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.results.ExertResult;
import java.util.Collection;
import java.util.Collections;
public class ExertCharactersEffect extends AbstractPreventableCardEffect {
private String _playerId;
@@ -52,13 +50,13 @@ public class ExertCharactersEffect extends AbstractPreventableCardEffect {
}
@Override
protected Collection<? extends EffectResult> playoutEffectOn(LotroGame game, Collection<PhysicalCard> cards) {
protected void playoutEffectOn(LotroGame game, Collection<PhysicalCard> cards) {
if (cards.size() > 0)
game.getGameState().sendMessage(getAppendedNames(cards) + " exert" + GameUtils.s(cards) + " due to " + GameUtils.getCardLink(_source));
for (PhysicalCard woundedCard : cards)
game.getGameState().addWound(woundedCard);
return Collections.singleton(new ExertResult(cards));
game.getActionsEnvironment().emitEffectResult(new ExertResult(cards));
}
}

View File

@@ -64,11 +64,10 @@ public class ExhaustCharacterEffect extends AbstractSubActionEffect {
}
@Override
protected Collection<? extends EffectResult> playoutEffectOn(LotroGame game, Collection<PhysicalCard> cards) {
final Collection<? extends EffectResult> effectResults = super.playoutEffectOn(game, cards);
protected void playoutEffectOn(LotroGame game, Collection<PhysicalCard> cards) {
super.playoutEffectOn(game, cards);
if (getAffectedCards(game).size() > 0)
_subAction.appendEffect(new InfiniteExertionEffect(_source, _subAction, _filters));
return effectResults;
}
}
}

View File

@@ -4,16 +4,15 @@ 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;
import com.gempukku.lotro.logic.timing.AbstractEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.OldAbstractEffect;
import com.gempukku.lotro.logic.timing.results.DiscardCardsFromPlayResult;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class LiberateASiteEffect extends OldAbstractEffect {
public class LiberateASiteEffect extends AbstractEffect {
private PhysicalCard _source;
public LiberateASiteEffect(PhysicalCard source) {
@@ -70,8 +69,10 @@ public class LiberateASiteEffect extends OldAbstractEffect {
game.getGameState().loseControlOfCard(siteToLiberate, Zone.ADVENTURE_PATH);
return new FullEffectResult(Collections.singleton(new DiscardCardsFromPlayResult(discardedCards)), true, true);
if (discardedCards.size() > 0)
game.getActionsEnvironment().emitEffectResult(new DiscardCardsFromPlayResult(discardedCards));
return new FullEffectResult(true, true);
}
return new FullEffectResult(null, false, false);
return new FullEffectResult(false, false);
}
}

View File

@@ -4,13 +4,13 @@ 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.timing.AbstractEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.OldAbstractEffect;
import com.gempukku.lotro.logic.timing.results.DrawCardOrPutIntoHandResult;
import java.util.Collections;
public class PutCardFromDeckIntoHandOrDiscardEffect extends OldAbstractEffect {
public class PutCardFromDeckIntoHandOrDiscardEffect extends AbstractEffect {
private PhysicalCard _physicalCard;
public PutCardFromDeckIntoHandOrDiscardEffect(PhysicalCard physicalCard) {
@@ -43,13 +43,14 @@ public class PutCardFromDeckIntoHandOrDiscardEffect extends OldAbstractEffect {
game.getGameState().sendMessage(_physicalCard.getOwner() + " puts " + GameUtils.getCardLink(_physicalCard) + " from deck into his or her hand");
game.getGameState().removeCardsFromZone(_physicalCard.getOwner(), Collections.singleton(_physicalCard));
game.getGameState().addCardToZone(game, _physicalCard, Zone.HAND);
return new FullEffectResult(Collections.singleton(new DrawCardOrPutIntoHandResult(_physicalCard.getOwner())), true, true);
game.getActionsEnvironment().emitEffectResult(new DrawCardOrPutIntoHandResult(_physicalCard.getOwner()));
return new FullEffectResult(true, true);
} else {
game.getGameState().sendMessage(_physicalCard.getOwner() + " discards " + GameUtils.getCardLink(_physicalCard) + " from deck due to Rule of 4");
game.getGameState().removeCardsFromZone(_physicalCard.getOwner(), Collections.singleton(_physicalCard));
game.getGameState().addCardToZone(game, _physicalCard, Zone.DISCARD);
}
}
return new FullEffectResult(null, false, false);
return new FullEffectResult(false, false);
}
}

View File

@@ -7,13 +7,16 @@ 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.timing.AbstractEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.OldAbstractEffect;
import com.gempukku.lotro.logic.timing.results.DiscardCardsFromPlayResult;
import java.util.*;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class ReturnCardsToHandEffect extends OldAbstractEffect {
public class ReturnCardsToHandEffect extends AbstractEffect {
private PhysicalCard _source;
private Filterable _filter;
@@ -43,16 +46,12 @@ public class ReturnCardsToHandEffect extends OldAbstractEffect {
Collection<PhysicalCard> cardsToReturnToHand = Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), _filter);
// Preparation, figure out, what's going where...
Set<PhysicalCard> stoppedAffecting = new HashSet<PhysicalCard>();
Set<PhysicalCard> discardedFromPlay = new HashSet<PhysicalCard>();
Set<PhysicalCard> removedFromZone = new HashSet<PhysicalCard>();
for (PhysicalCard card : cardsToReturnToHand) {
final List<PhysicalCard> attachedCards = game.getGameState().getAttachedCards(card);
stoppedAffecting.add(card);
stoppedAffecting.addAll(attachedCards);
discardedFromPlay.addAll(attachedCards);
removedFromZone.add(card);
@@ -79,8 +78,8 @@ public class ReturnCardsToHandEffect extends OldAbstractEffect {
if (_source != null && cardsToReturnToHand.size() > 0)
game.getGameState().sendMessage(GameUtils.getCardLink(_source) + " returns " + getAppendedNames(cardsToReturnToHand) + " to hand");
if (discardedFromPlay.size() > 0)
return new FullEffectResult(Collections.singleton(new DiscardCardsFromPlayResult(discardedFromPlay)), true, true);
game.getActionsEnvironment().emitEffectResult(new DiscardCardsFromPlayResult(discardedFromPlay));
return new FullEffectResult(null, true, true);
return new FullEffectResult(true, true);
}
}

View File

@@ -5,16 +5,15 @@ 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.timing.AbstractEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.OldAbstractEffect;
import com.gempukku.lotro.logic.timing.results.DiscardCardsFromPlayResult;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class StackCardFromPlayEffect extends OldAbstractEffect {
public class StackCardFromPlayEffect extends AbstractEffect {
private PhysicalCard _card;
private PhysicalCard _stackOn;
@@ -68,10 +67,9 @@ public class StackCardFromPlayEffect extends OldAbstractEffect {
// Send the result (attached cards get discarded)
if (discardedCards.size() > 0)
return new FullEffectResult(Collections.singleton(new DiscardCardsFromPlayResult(discardedCards)), true, true);
else
return new FullEffectResult(null, true, true);
game.getActionsEnvironment().emitEffectResult(new DiscardCardsFromPlayResult(discardedCards));
return new FullEffectResult(true, true);
}
return new FullEffectResult(null, false, false);
return new FullEffectResult(false, false);
}
}

View File

@@ -52,12 +52,7 @@ public class Card4_079 extends AbstractResponseOldEvent {
List<Effect> possibleEffects = new LinkedList<Effect>();
possibleEffects.add(
new LiberateASiteEffect(self) {
@Override
public String getText(LotroGame game) {
return "Liberate a site";
}
});
new LiberateASiteEffect(self));
possibleEffects.add(
new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, CardType.MINION) {
@Override

View File

@@ -44,12 +44,7 @@ public class Card4_084 extends AbstractOldEvent {
List<Effect> possibleEffects = new LinkedList<Effect>();
possibleEffects.add(
new LiberateASiteEffect(self) {
@Override
public String getText(LotroGame game) {
return "Liberate a site";
}
});
new LiberateASiteEffect(self));
possibleEffects.add(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, CardType.MINION) {
@Override

View File

@@ -43,12 +43,7 @@ public class Card4_279 extends AbstractOldEvent {
List<Effect> possibleEffects = new LinkedList<Effect>();
possibleEffects.add(
new LiberateASiteEffect(self) {
@Override
public String getText(LotroGame game) {
return "Liberate a site";
}
});
new LiberateASiteEffect(self));
possibleEffects.add(
new DrawCardsEffect(playerId, 3) {
@Override

View File

@@ -45,12 +45,7 @@ public class Card5_014 extends AbstractEvent {
}
});
possibleEffects.add(
new LiberateASiteEffect(self) {
@Override
public String getText(LotroGame game) {
return "Liberate a site";
}
});
new LiberateASiteEffect(self));
action.appendEffect(
new ChoiceEffect(action, playerId, possibleEffects));

View File

@@ -59,12 +59,7 @@ public class Card7_117 extends AbstractEvent {
List<Effect> possibleEffects = new LinkedList<Effect>();
possibleEffects.add(
new LiberateASiteEffect(self) {
@Override
public String getText(LotroGame game) {
return "Liberate a site";
}
});
new LiberateASiteEffect(self));
possibleEffects.add(
new ChooseAndDiscardCardsFromHandEffect(action, playerId, false, 0, Integer.MAX_VALUE, Filters.any) {
@Override

View File

@@ -5,12 +5,11 @@ import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.OldAbstractEffect;
import com.gempukku.lotro.logic.timing.AbstractEffect;
import java.util.*;
public abstract class AbstractPreventableCardEffect extends OldAbstractEffect {
public abstract class AbstractPreventableCardEffect extends AbstractEffect {
private Filter _filter;
private Set<PhysicalCard> _preventedTargets = new HashSet<PhysicalCard>();
private int _requiredTargets;
@@ -42,14 +41,14 @@ public abstract class AbstractPreventableCardEffect extends OldAbstractEffect {
return getAffectedCardsMinusPrevented(game).size() >= _requiredTargets;
}
protected abstract Collection<? extends EffectResult> playoutEffectOn(LotroGame game, Collection<PhysicalCard> cards);
protected abstract void playoutEffectOn(LotroGame game, Collection<PhysicalCard> cards);
@Override
protected FullEffectResult playEffectReturningResult(LotroGame game) {
Collection<PhysicalCard> affectedCards = getAffectedCards(game);
Collection<PhysicalCard> affectedMinusPreventedCards = getAffectedCardsMinusPrevented(game);
Collection<? extends EffectResult> results = playoutEffectOn(game, affectedMinusPreventedCards);
return new FullEffectResult(results, affectedCards.size() >= _requiredTargets, affectedMinusPreventedCards.size() >= _requiredTargets);
playoutEffectOn(game, affectedMinusPreventedCards);
return new FullEffectResult(affectedCards.size() >= _requiredTargets, affectedMinusPreventedCards.size() >= _requiredTargets);
}
public void preventEffect(LotroGame game, PhysicalCard card) {

View File

@@ -9,10 +9,12 @@ import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.GameUtils;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.results.DiscardCardsFromPlayResult;
import java.util.*;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class DiscardCardsFromPlayEffect extends AbstractPreventableCardEffect {
private PhysicalCard _source;
@@ -54,7 +56,7 @@ public class DiscardCardsFromPlayEffect extends AbstractPreventableCardEffect {
}
@Override
protected Collection<? extends EffectResult> playoutEffectOn(LotroGame game, Collection<PhysicalCard> cards) {
protected void playoutEffectOn(LotroGame game, Collection<PhysicalCard> cards) {
Set<PhysicalCard> discardedCards = new HashSet<PhysicalCard>();
Set<PhysicalCard> toMoveFromZoneToDiscard = new HashSet<PhysicalCard>();
@@ -84,6 +86,6 @@ public class DiscardCardsFromPlayEffect extends AbstractPreventableCardEffect {
if (_source != null && discardedCards.size() > 0)
game.getGameState().sendMessage(_source.getOwner() + " discards " + getAppendedNames(discardedCards) + " from play using " + GameUtils.getCardLink(_source));
return Collections.singleton(new DiscardCardsFromPlayResult(discardedCards));
game.getActionsEnvironment().emitEffectResult(new DiscardCardsFromPlayResult(discardedCards));
}
}

View File

@@ -9,11 +9,9 @@ import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.GameUtils;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.results.HealResult;
import java.util.Collection;
import java.util.Collections;
public class HealCharactersEffect extends AbstractPreventableCardEffect {
private PhysicalCard _source;
@@ -52,7 +50,7 @@ public class HealCharactersEffect extends AbstractPreventableCardEffect {
}
@Override
protected Collection<? extends EffectResult> playoutEffectOn(LotroGame game, Collection<PhysicalCard> cards) {
protected void playoutEffectOn(LotroGame game, Collection<PhysicalCard> cards) {
Collection<PhysicalCard> cardsToHeal = getAffectedCardsMinusPrevented(game);
if (cardsToHeal.size() > 0) {
@@ -61,8 +59,7 @@ public class HealCharactersEffect extends AbstractPreventableCardEffect {
game.getGameState().removeWound(cardToHeal);
}
return Collections.singleton(new HealResult(cardsToHeal));
game.getActionsEnvironment().emitEffectResult(new HealResult(cardsToHeal));
}
return null;
}
}

View File

@@ -3,18 +3,15 @@ package com.gempukku.lotro.logic.effects;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.game.state.Skirmish;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.OldAbstractEffect;
import com.gempukku.lotro.logic.timing.AbstractEffect;
import com.gempukku.lotro.logic.timing.RuleUtils;
import com.gempukku.lotro.logic.timing.results.NormalSkirmishResult;
import com.gempukku.lotro.logic.timing.results.OverwhelmSkirmishResult;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class ResolveSkirmishEffect extends OldAbstractEffect {
public class ResolveSkirmishEffect extends AbstractEffect {
public enum Result {
FELLOWSHIP_OVERWHELMED, FELLOWSHIP_LOSES, SHADOW_LOSES, SHADOW_OVERWHELMED
}
@@ -60,23 +57,22 @@ public class ResolveSkirmishEffect extends OldAbstractEffect {
Skirmish skirmish = game.getGameState().getSkirmish();
Result result = getUpcomingResult(game);
Set<EffectResult> results = new HashSet<EffectResult>();
if (result == Result.FELLOWSHIP_LOSES) {
game.getGameState().sendMessage("Skirmish finishes with a normal win");
results.add(new NormalSkirmishResult(skirmish.getShadowCharacters(), fpList(skirmish.getFellowshipCharacter()), skirmish.getRemovedFromSkirmish()));
game.getActionsEnvironment().emitEffectResult(new NormalSkirmishResult(skirmish.getShadowCharacters(), fpList(skirmish.getFellowshipCharacter()), skirmish.getRemovedFromSkirmish()));
} else if (result == Result.SHADOW_LOSES) {
game.getGameState().sendMessage("Skirmish finishes with a normal win");
results.add(new NormalSkirmishResult(fpList(skirmish.getFellowshipCharacter()), skirmish.getShadowCharacters(), skirmish.getRemovedFromSkirmish()));
game.getActionsEnvironment().emitEffectResult(new NormalSkirmishResult(fpList(skirmish.getFellowshipCharacter()), skirmish.getShadowCharacters(), skirmish.getRemovedFromSkirmish()));
} else if (result == Result.FELLOWSHIP_OVERWHELMED) {
game.getGameState().sendMessage("Skirmish finishes with an overwhelm");
results.add(new OverwhelmSkirmishResult(skirmish.getShadowCharacters(), fpList(skirmish.getFellowshipCharacter()), skirmish.getRemovedFromSkirmish()));
game.getActionsEnvironment().emitEffectResult(new OverwhelmSkirmishResult(skirmish.getShadowCharacters(), fpList(skirmish.getFellowshipCharacter()), skirmish.getRemovedFromSkirmish()));
} else {
game.getGameState().sendMessage("Skirmish finishes with an overwhelm");
results.add(new OverwhelmSkirmishResult(fpList(skirmish.getFellowshipCharacter()), skirmish.getShadowCharacters(), skirmish.getRemovedFromSkirmish()));
game.getActionsEnvironment().emitEffectResult(new OverwhelmSkirmishResult(fpList(skirmish.getFellowshipCharacter()), skirmish.getShadowCharacters(), skirmish.getRemovedFromSkirmish()));
}
return new FullEffectResult(results, true, true);
return new FullEffectResult(true, true);
}
private List<PhysicalCard> fpList(PhysicalCard card) {

View File

@@ -9,7 +9,6 @@ import com.gempukku.lotro.logic.GameUtils;
import com.gempukku.lotro.logic.modifiers.ModifierFlag;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.results.WoundResult;
import java.util.Collection;
@@ -72,7 +71,7 @@ public class WoundCharactersEffect extends AbstractPreventableCardEffect {
}
@Override
protected Collection<? extends EffectResult> playoutEffectOn(LotroGame game, Collection<PhysicalCard> cards) {
protected void playoutEffectOn(LotroGame game, Collection<PhysicalCard> cards) {
if (cards.size() > 0)
game.getGameState().sendMessage(getAppendedNames(cards) + " " + GameUtils.be(cards) + " wounded by " + _sourceText);
@@ -80,8 +79,7 @@ public class WoundCharactersEffect extends AbstractPreventableCardEffect {
game.getGameState().addWound(woundedCard);
game.getModifiersEnvironment().addedWound(woundedCard);
}
return Collections.singleton(new WoundResult(cards));
game.getActionsEnvironment().emitEffectResult(new WoundResult(cards));
}
@Override

View File

@@ -1,67 +0,0 @@
package com.gempukku.lotro.logic.timing;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.GameUtils;
import com.sun.istack.internal.NotNull;
import java.util.Collection;
public abstract class OldAbstractEffect implements Effect {
private Boolean _carriedOut;
private Boolean _successful;
protected abstract
@NotNull
FullEffectResult playEffectReturningResult(LotroGame game);
@Override
public final Collection<? extends EffectResult> playEffect(LotroGame game) {
FullEffectResult fullEffectResult = playEffectReturningResult(game);
_carriedOut = fullEffectResult.isCarriedOut();
_successful = fullEffectResult.isSuccessful();
return fullEffectResult._results;
}
@Override
public boolean wasCarriedOut() {
if (_carriedOut == null)
throw new IllegalStateException("Effect has to be played first");
return _carriedOut;
}
@Override
public boolean wasSuccessful() {
if (_successful == null)
throw new IllegalStateException("Effect has to be played first");
return _successful;
}
protected final String getAppendedTextNames(Collection<PhysicalCard> cards) {
return GameUtils.getAppendedTextNames(cards);
}
protected final String getAppendedNames(Collection<PhysicalCard> cards) {
return GameUtils.getAppendedNames(cards);
}
protected static class FullEffectResult {
private Collection<? extends EffectResult> _results;
private boolean _successful;
private boolean _carriedOut;
public FullEffectResult(Collection<? extends EffectResult> results, boolean successful, boolean carriedOut) {
_results = results;
_successful = successful;
_carriedOut = carriedOut;
}
public boolean isSuccessful() {
return _successful;
}
public boolean isCarriedOut() {
return _carriedOut;
}
}
}

View File

@@ -10,7 +10,6 @@ import com.gempukku.lotro.logic.actions.SystemQueueAction;
import com.gempukku.lotro.logic.decisions.ActionSelectionDecision;
import com.gempukku.lotro.logic.decisions.CardActionSelectionDecision;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import com.gempukku.lotro.logic.modifiers.LoggingThreadLocal;
import com.gempukku.lotro.logic.timing.actions.SystemAction;
import com.gempukku.lotro.logic.timing.processes.GameProcess;
import com.gempukku.lotro.logic.timing.processes.pregame.BiddingGameProcess;
@@ -111,18 +110,7 @@ public class TurnProcedure {
List<EffectResult> results = new LinkedList<EffectResult>();
Action topmostAction = _actionStack.getTopmostAction();
if (topmostAction != null && topmostAction.getActionSource() != null)
LoggingThreadLocal.logMethodStart(topmostAction.getActionSource(), "playEffect");
try {
final Collection<? extends EffectResult> effectResults = _effect.playEffect(_game);
if (effectResults != null)
results.addAll(effectResults);
} finally {
if (topmostAction != null && topmostAction.getActionSource() != null)
LoggingThreadLocal.logMethodEnd();
}
_effect.playEffect(_game);
Side initiativePostEffect = _game.getModifiersQuerying().hasInitiative(_game.getGameState());