diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/DiscardCardAtRandomFromHandEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/DiscardCardAtRandomFromHandEffect.java index fb66159f7..60068207b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/DiscardCardAtRandomFromHandEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/DiscardCardAtRandomFromHandEffect.java @@ -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); } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExertCharactersEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExertCharactersEffect.java index 292ed8997..302212065 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExertCharactersEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExertCharactersEffect.java @@ -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 playoutEffectOn(LotroGame game, Collection cards) { + protected void playoutEffectOn(LotroGame game, Collection 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)); } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExhaustCharacterEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExhaustCharacterEffect.java index 21c80fdd6..f6fb7eb0e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExhaustCharacterEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExhaustCharacterEffect.java @@ -64,11 +64,10 @@ public class ExhaustCharacterEffect extends AbstractSubActionEffect { } @Override - protected Collection playoutEffectOn(LotroGame game, Collection cards) { - final Collection effectResults = super.playoutEffectOn(game, cards); + protected void playoutEffectOn(LotroGame game, Collection cards) { + super.playoutEffectOn(game, cards); if (getAffectedCards(game).size() > 0) _subAction.appendEffect(new InfiniteExertionEffect(_source, _subAction, _filters)); - return effectResults; } } } \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/LiberateASiteEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/LiberateASiteEffect.java index f48ff0b78..8194aefc9 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/LiberateASiteEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/LiberateASiteEffect.java @@ -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); } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/PutCardFromDeckIntoHandOrDiscardEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/PutCardFromDeckIntoHandOrDiscardEffect.java index 951c15941..53979f51b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/PutCardFromDeckIntoHandOrDiscardEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/PutCardFromDeckIntoHandOrDiscardEffect.java @@ -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); } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ReturnCardsToHandEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ReturnCardsToHandEffect.java index ec000eccd..9a25557d9 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ReturnCardsToHandEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ReturnCardsToHandEffect.java @@ -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 cardsToReturnToHand = Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), _filter); // Preparation, figure out, what's going where... - Set stoppedAffecting = new HashSet(); Set discardedFromPlay = new HashSet(); Set removedFromZone = new HashSet(); for (PhysicalCard card : cardsToReturnToHand) { final List 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); } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/StackCardFromPlayEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/StackCardFromPlayEffect.java index 555724bbc..9041f98fb 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/StackCardFromPlayEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/StackCardFromPlayEffect.java @@ -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); } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_079.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_079.java index 4824cb9f8..9fa09b38b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_079.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_079.java @@ -52,12 +52,7 @@ public class Card4_079 extends AbstractResponseOldEvent { List possibleEffects = new LinkedList(); 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 diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_084.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_084.java index 27faf8d54..650585390 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_084.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/elven/Card4_084.java @@ -44,12 +44,7 @@ public class Card4_084 extends AbstractOldEvent { List possibleEffects = new LinkedList(); 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 diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/rohan/Card4_279.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/rohan/Card4_279.java index f79e50292..55107e800 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/rohan/Card4_279.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/rohan/Card4_279.java @@ -43,12 +43,7 @@ public class Card4_279 extends AbstractOldEvent { List possibleEffects = new LinkedList(); 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 diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/elven/Card5_014.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/elven/Card5_014.java index 236eb81a8..b91dfc8ea 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/elven/Card5_014.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/elven/Card5_014.java @@ -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)); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gondor/Card7_117.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gondor/Card7_117.java index e2c3f6ea4..1ac0e0631 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gondor/Card7_117.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gondor/Card7_117.java @@ -59,12 +59,7 @@ public class Card7_117 extends AbstractEvent { List possibleEffects = new LinkedList(); 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 diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/AbstractPreventableCardEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/AbstractPreventableCardEffect.java index 8d4a2fbc5..a8c83d7fe 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/AbstractPreventableCardEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/AbstractPreventableCardEffect.java @@ -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 _preventedTargets = new HashSet(); private int _requiredTargets; @@ -42,14 +41,14 @@ public abstract class AbstractPreventableCardEffect extends OldAbstractEffect { return getAffectedCardsMinusPrevented(game).size() >= _requiredTargets; } - protected abstract Collection playoutEffectOn(LotroGame game, Collection cards); + protected abstract void playoutEffectOn(LotroGame game, Collection cards); @Override protected FullEffectResult playEffectReturningResult(LotroGame game) { Collection affectedCards = getAffectedCards(game); Collection affectedMinusPreventedCards = getAffectedCardsMinusPrevented(game); - Collection 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) { diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java index d376cbd23..fe85d69fa 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java @@ -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 playoutEffectOn(LotroGame game, Collection cards) { + protected void playoutEffectOn(LotroGame game, Collection cards) { Set discardedCards = new HashSet(); Set toMoveFromZoneToDiscard = new HashSet(); @@ -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)); } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/HealCharactersEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/HealCharactersEffect.java index af62fd0b6..289f86dc2 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/HealCharactersEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/HealCharactersEffect.java @@ -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 playoutEffectOn(LotroGame game, Collection cards) { + protected void playoutEffectOn(LotroGame game, Collection cards) { Collection 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; } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ResolveSkirmishEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ResolveSkirmishEffect.java index 91ccb7c9f..1c66f4c3e 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ResolveSkirmishEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ResolveSkirmishEffect.java @@ -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 results = new HashSet(); 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 fpList(PhysicalCard card) { diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharactersEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharactersEffect.java index 0395d33fc..5303e33ac 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharactersEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharactersEffect.java @@ -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 playoutEffectOn(LotroGame game, Collection cards) { + protected void playoutEffectOn(LotroGame game, Collection 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 diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/OldAbstractEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/OldAbstractEffect.java deleted file mode 100644 index a3e89647b..000000000 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/OldAbstractEffect.java +++ /dev/null @@ -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 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 cards) { - return GameUtils.getAppendedTextNames(cards); - } - - protected final String getAppendedNames(Collection cards) { - return GameUtils.getAppendedNames(cards); - } - - protected static class FullEffectResult { - private Collection _results; - private boolean _successful; - private boolean _carriedOut; - - public FullEffectResult(Collection results, boolean successful, boolean carriedOut) { - _results = results; - _successful = successful; - _carriedOut = carriedOut; - } - - public boolean isSuccessful() { - return _successful; - } - - public boolean isCarriedOut() { - return _carriedOut; - } - } -} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java index 78b744952..3e830c7d7 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java @@ -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 results = new LinkedList(); - Action topmostAction = _actionStack.getTopmostAction(); - if (topmostAction != null && topmostAction.getActionSource() != null) - LoggingThreadLocal.logMethodStart(topmostAction.getActionSource(), "playEffect"); - - try { - final Collection 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());