From b9a63600b8898123906cde14958133b831740e15 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Tue, 25 Oct 2011 15:14:22 +0000 Subject: [PATCH] Fixed Final Cry, hate weird corner cases and special phase for just one card... --- .../lotro/cards/set2/moria/Card2_057.java | 30 ++++++++++--------- .../lotro/logic/timing/EffectResult.java | 2 ++ .../timing/actions/ResolveSkirmishAction.java | 4 +++ .../results/SkirmishAboutToEndResult.java | 9 ++++++ gemp-lotr/todo.txt | 1 - 5 files changed, 31 insertions(+), 15 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/SkirmishAboutToEndResult.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/moria/Card2_057.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/moria/Card2_057.java index 2549c0f5b..1e5afb8b6 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/moria/Card2_057.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/moria/Card2_057.java @@ -2,12 +2,16 @@ package com.gempukku.lotro.cards.set2.moria; import com.gempukku.lotro.cards.AbstractResponseOldEvent; import com.gempukku.lotro.cards.actions.PlayEventAction; +import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; 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; -import com.gempukku.lotro.logic.timing.Effect; +import com.gempukku.lotro.logic.effects.WoundCharactersEffect; +import com.gempukku.lotro.logic.timing.EffectResult; +import java.util.Collections; import java.util.List; /** @@ -30,19 +34,17 @@ public class Card2_057 extends AbstractResponseOldEvent { } @Override - public List getOptionalBeforeActions(String playerId, LotroGame game, Effect effect, PhysicalCard self) { -// if (PlayConditions.canPlayCardDuringPhase(game, (Phase) null, self)) { -// if (effect.getType() == EffectResult.Type.END_OF_PHASE -// && game.getGameState().getCurrentPhase() == Phase.SKIRMISH -// && Filters.filter(game.getGameState().getSkirmish().getShadowCharacters(), game.getGameState(), game.getModifiersQuerying(), Filters.name("The Balrog"), Filters.hasAttached(Filters.name("Whip of Many Thongs"))).size() > 0) { -// PlayEventAction action = new PlayEventAction(self); -// action.appendEffect( -// new WoundCharactersEffect(self, Filters.and(Filters.type(CardType.COMPANION), Filters.inSkirmish))); -// action.appendEffect( -// new WoundCharactersEffect(self, Filters.and(Filters.type(CardType.COMPANION), Filters.inSkirmish))); -// return Collections.singletonList(action); -// } -// } + public List getOptionalAfterActions(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (effectResult.getType() == EffectResult.Type.SKIRMISH_ABOUT_TO_END + && Filters.filter(game.getGameState().getSkirmish().getShadowCharacters(), game.getGameState(), game.getModifiersQuerying(), + Filters.name("The Balrog"), Filters.hasAttached(Filters.name("Whip of Many Thongs"))).size() > 0) { + PlayEventAction action = new PlayEventAction(self); + action.appendEffect( + new WoundCharactersEffect(self, CardType.COMPANION, Filters.inSkirmish)); + action.appendEffect( + new WoundCharactersEffect(self, CardType.COMPANION, Filters.inSkirmish)); + return Collections.singletonList(action); + } return null; } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/EffectResult.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/EffectResult.java index e0b9c19e6..206633d36 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/EffectResult.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/EffectResult.java @@ -18,6 +18,8 @@ public abstract class EffectResult { PUT_ON_THE_ONE_RING, REMOVE_BURDEN, ADD_BURDEN, + SKIRMISH_ABOUT_TO_END, + WHEN_MOVE_FROM, WHEN_FELLOWSHIP_MOVES, WHEN_MOVE_TO, REVEAL_CARDS_FROM_HAND, INITIATIVE_CHANGE diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/actions/ResolveSkirmishAction.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/actions/ResolveSkirmishAction.java index 72cf22c4f..67813e77b 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/actions/ResolveSkirmishAction.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/actions/ResolveSkirmishAction.java @@ -7,10 +7,12 @@ import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.Skirmish; import com.gempukku.lotro.logic.effects.OverwhelmedEffect; import com.gempukku.lotro.logic.effects.SkirmishResolvedEffect; +import com.gempukku.lotro.logic.effects.TriggeringResultEffect; import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.RuleUtils; import com.gempukku.lotro.logic.timing.UnrespondableEffect; +import com.gempukku.lotro.logic.timing.results.SkirmishAboutToEndResult; import java.util.Collections; import java.util.Iterator; @@ -94,6 +96,8 @@ public class ResolveSkirmishAction implements Action { else effects.add(new SkirmishResolvedEffect(fpList(fellowshipCharacter), shadowCharacters)); + effects.add(new TriggeringResultEffect(new SkirmishAboutToEndResult(), "Skirmish about to end")); + effects.add(new UnrespondableEffect() { @Override public void doPlayEffect(LotroGame game) { diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/SkirmishAboutToEndResult.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/SkirmishAboutToEndResult.java new file mode 100644 index 000000000..58c31a335 --- /dev/null +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/SkirmishAboutToEndResult.java @@ -0,0 +1,9 @@ +package com.gempukku.lotro.logic.timing.results; + +import com.gempukku.lotro.logic.timing.EffectResult; + +public class SkirmishAboutToEndResult extends EffectResult { + public SkirmishAboutToEndResult() { + super(Type.SKIRMISH_ABOUT_TO_END); + } +} diff --git a/gemp-lotr/todo.txt b/gemp-lotr/todo.txt index 10cf47014..7a203c6f0 100644 --- a/gemp-lotr/todo.txt +++ b/gemp-lotr/todo.txt @@ -1,6 +1,5 @@ TO DO: Critical: -- Fix "Final Cry" Next priority: 30. Watching game replay after it's finished and sharing the game replay with others via code.