From 7d4b98d3659f65fe6e0a7ba25e82bd3441180ecd Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Thu, 1 Dec 2011 00:58:36 +0000 Subject: [PATCH] Win/lose triggers now should work correctly. --- .../lotro/cards/set1/dwarven/Card1_009.java | 6 +-- .../lotro/cards/set1/dwarven/Card1_025.java | 9 ++--- .../lotro/cards/set1/elven/Card1_029.java | 6 +-- .../lotro/cards/set1/isengard/Card1_144.java | 10 +++-- .../lotro/cards/set1/isengard/Card1_159.java | 17 +++----- .../lotro/cards/set1/sauron/Card1_247.java | 17 +++----- .../lotro/cards/set4/dunland/Card4_027.java | 39 +++++++------------ .../lotro/cards/set4/dunland/Card4_032.java | 6 +-- .../lotro/cards/set4/dunland/Card4_037.java | 30 ++++++-------- .../lotro/cards/set4/elven/Card4_079.java | 12 +++--- .../lotro/cards/set5/isengard/Card5_055.java | 18 ++++----- .../lotro/cards/set7/raider/Card7_152.java | 6 +-- .../lotro/cards/set9/dwarven/Card9_005.java | 15 ++++--- 13 files changed, 80 insertions(+), 111 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_009.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_009.java index 9420c3aa2..d9e11af3c 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_009.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_009.java @@ -11,7 +11,7 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.SkirmishResult; +import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; import java.util.HashSet; import java.util.LinkedList; @@ -41,8 +41,8 @@ public class Card1_009 extends AbstractAttachableFPPossession { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.winsSkirmish(game, effectResult, self.getAttachedTo())) { - SkirmishResult skirmishResult = ((SkirmishResult) effectResult); - Set losers = skirmishResult.getLosers(); + CharacterWonSkirmishResult skirmishResult = ((CharacterWonSkirmishResult) effectResult); + Set losers = skirmishResult.getInvolving(); List actions = new LinkedList(); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_025.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_025.java index 20659de09..a64b55a8e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_025.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_025.java @@ -7,12 +7,11 @@ import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Race; import com.gempukku.lotro.common.Side; 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.effects.ChooseAndHealCharactersEffect; +import com.gempukku.lotro.logic.effects.HealCharactersEffect; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.SkirmishResult; +import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; import java.util.Collections; import java.util.List; @@ -39,10 +38,10 @@ public class Card1_025 extends AbstractResponseOldEvent { public List getOptionalAfterActions(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { if (self.getZone() == Zone.HAND && TriggerConditions.winsSkirmish(game, effectResult, Race.DWARF) && checkPlayRequirements(playerId, game, self, 0, false, false)) { - SkirmishResult skirmishResult = (SkirmishResult) effectResult; + CharacterWonSkirmishResult skirmishResult = (CharacterWonSkirmishResult) effectResult; PlayEventAction action = new PlayEventAction(self); action.appendEffect( - new ChooseAndHealCharactersEffect(action, playerId, 1, 1, Race.DWARF, Filters.in(skirmishResult.getWinners()))); + new HealCharactersEffect(self, skirmishResult.getWinner())); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_029.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_029.java index 2ea252db8..696dbd244 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_029.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_029.java @@ -18,7 +18,7 @@ import com.gempukku.lotro.logic.actions.RequiredTriggerAction; import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; import com.gempukku.lotro.logic.modifiers.StrengthModifier; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.SkirmishResult; +import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; import java.util.HashSet; import java.util.LinkedList; @@ -58,8 +58,8 @@ public class Card1_029 extends AbstractOldEvent { @Override public List getRequiredAfterTriggers(LotroGame lotroGame, EffectResult effectResult) { if (TriggerConditions.winsSkirmish(lotroGame, effectResult, elf)) { - SkirmishResult skirmishResult = (SkirmishResult) effectResult; - Set losers = skirmishResult.getLosers(); + CharacterWonSkirmishResult skirmishResult = (CharacterWonSkirmishResult) effectResult; + Set losers = skirmishResult.getInvolving(); Set opponents = new HashSet(); for (PhysicalCard loser : losers) opponents.add(loser.getOwner()); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_144.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_144.java index 34b99834e..4ccb4dec8 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_144.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_144.java @@ -7,10 +7,11 @@ 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.GameUtils; import com.gempukku.lotro.logic.actions.ActivateCardAction; -import com.gempukku.lotro.logic.effects.ChooseAndHealCharactersEffect; +import com.gempukku.lotro.logic.effects.HealCharactersEffect; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.SkirmishResult; +import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; import java.util.Collections; import java.util.List; @@ -32,11 +33,12 @@ public class Card1_144 extends AbstractPermanent { public List getOptionalInPlayAfterActions(final String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.winsSkirmish(game, effectResult, Filters.and(Race.URUK_HAI, Filters.owner(playerId))) && game.getGameState().getTwilightPool() >= 1) { - SkirmishResult skirmishResult = ((SkirmishResult) effectResult); + CharacterWonSkirmishResult skirmishResult = ((CharacterWonSkirmishResult) effectResult); final ActivateCardAction action = new ActivateCardAction(self); + action.setText("Heal " + GameUtils.getCardLink(skirmishResult.getWinner())); action.appendCost(new RemoveTwilightEffect(1)); action.appendEffect( - new ChooseAndHealCharactersEffect(action, playerId, Race.URUK_HAI, Filters.in(skirmishResult.getWinners()))); + new HealCharactersEffect(self, skirmishResult.getWinner())); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_159.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_159.java index 86454f7e0..13e7db9b2 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_159.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_159.java @@ -8,11 +8,11 @@ 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.GameUtils; import com.gempukku.lotro.logic.actions.ActivateCardAction; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; import com.gempukku.lotro.logic.modifiers.KeywordModifier; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.SkirmishResult; +import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; import java.util.Collections; import java.util.List; @@ -41,20 +41,15 @@ public class Card1_159 extends AbstractPermanent { public List getOptionalInPlayAfterActions(String playerId, LotroGame game, EffectResult effectResult, final PhysicalCard self) { if (TriggerConditions.winsSkirmish(game, effectResult, Filters.and(Filters.owner(playerId), Race.URUK_HAI)) && game.getGameState().getTwilightPool() >= 3) { - SkirmishResult skirmishResult = ((SkirmishResult) effectResult); + CharacterWonSkirmishResult skirmishResult = ((CharacterWonSkirmishResult) effectResult); final ActivateCardAction action = new ActivateCardAction(self); + action.setText("Make " + GameUtils.getCardLink(skirmishResult.getWinner()) + " fierce"); action.appendCost(new RemoveTwilightEffect(3)); action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose a winning Uruk-hai", Filters.and(Filters.owner(playerId), Race.URUK_HAI, Filters.in(skirmishResult.getWinners()))) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard winningUrukHai) { - action.appendEffect( - new AddUntilStartOfPhaseModifierEffect( - new KeywordModifier(self, Filters.sameCard(winningUrukHai), Keyword.FIERCE), Phase.REGROUP)); - } - }); + new AddUntilStartOfPhaseModifierEffect( + new KeywordModifier(self, skirmishResult.getWinner(), Keyword.FIERCE), Phase.REGROUP)); return Collections.singletonList(action); } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_247.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_247.java index 38401d52b..99cc48563 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_247.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_247.java @@ -8,10 +8,10 @@ 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.effects.ChooseActiveCardEffect; +import com.gempukku.lotro.logic.GameUtils; import com.gempukku.lotro.logic.modifiers.KeywordModifier; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.SkirmishResult; +import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; import java.util.Collections; import java.util.List; @@ -33,18 +33,13 @@ public class Card1_247 extends AbstractResponseOldEvent { public List getOptionalAfterActions(String playerId, LotroGame game, EffectResult effectResult, final PhysicalCard self) { if (TriggerConditions.winsSkirmish(game, effectResult, Filters.and(Culture.SAURON, Race.ORC)) && checkPlayRequirements(playerId, game, self, 0, false, false)) { - SkirmishResult skirmishResult = (SkirmishResult) effectResult; + CharacterWonSkirmishResult skirmishResult = (CharacterWonSkirmishResult) effectResult; final PlayEventAction action = new PlayEventAction(self); + action.setText("Make " + GameUtils.getCardLink(skirmishResult.getWinner()) + " fierce"); action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose an Orc", Culture.SAURON, Race.ORC, Filters.in(skirmishResult.getWinners())) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard winningSauronOrc) { - action.appendEffect( - new AddUntilStartOfPhaseModifierEffect( - new KeywordModifier(self, Filters.sameCard(winningSauronOrc), Keyword.FIERCE), Phase.REGROUP)); - } - }); + new AddUntilStartOfPhaseModifierEffect( + new KeywordModifier(self, skirmishResult.getWinner(), Keyword.FIERCE), Phase.REGROUP)); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_027.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_027.java index 7af0721f7..c765c2048 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_027.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_027.java @@ -12,12 +12,10 @@ import com.gempukku.lotro.logic.actions.OptionalTriggerAction; import com.gempukku.lotro.logic.modifiers.KeywordModifier; import com.gempukku.lotro.logic.modifiers.StrengthModifier; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.SkirmishResult; +import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; -import java.util.Collection; -import java.util.LinkedList; +import java.util.Collections; import java.util.List; -import java.util.Set; /** * Set: The Two Towers @@ -35,27 +33,18 @@ public class Card4_027 extends AbstractPermanent { @Override public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.losesSkirmish(game, effectResult, - Filters.and(Culture.ROHAN, Race.MAN))) { - - SkirmishResult skirmishResult = (SkirmishResult) effectResult; - Set winners = skirmishResult.getWinners(); - Collection winningDunlandMan = Filters.filter(winners, game.getGameState(), game.getModifiersQuerying(), Filters.and(Culture.DUNLAND, Race.MAN)); - - List actions = new LinkedList(); - for (final PhysicalCard physicalCard : winningDunlandMan) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.setText("Make " + GameUtils.getCardLink(physicalCard) + " strength +2 and Fierce"); - action.appendEffect( - new AddUntilStartOfPhaseModifierEffect( - new StrengthModifier(self, Filters.sameCard(physicalCard), 2), Phase.REGROUP)); - action.appendEffect( - new AddUntilStartOfPhaseModifierEffect( - new KeywordModifier(self, Filters.sameCard(physicalCard), Keyword.FIERCE), Phase.REGROUP)); - actions.add(action); - } - - return actions; + if (TriggerConditions.winsSkirmishInvolving(game, effectResult, Filters.and(Culture.DUNLAND, Race.MAN), Filters.and(Culture.ROHAN, Race.MAN))) { + CharacterWonSkirmishResult skirmishResult = (CharacterWonSkirmishResult) effectResult; + PhysicalCard winner = skirmishResult.getWinner(); + OptionalTriggerAction action = new OptionalTriggerAction(self); + action.setText("Make " + GameUtils.getCardLink(winner) + " strength +2 and Fierce"); + action.appendEffect( + new AddUntilStartOfPhaseModifierEffect( + new StrengthModifier(self, Filters.sameCard(winner), 2), Phase.REGROUP)); + action.appendEffect( + new AddUntilStartOfPhaseModifierEffect( + new KeywordModifier(self, Filters.sameCard(winner), Keyword.FIERCE), Phase.REGROUP)); + return Collections.singletonList(action); } return null; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_032.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_032.java index 1a8a28571..19e56bfcb 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_032.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_032.java @@ -13,7 +13,7 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.effects.DiscardCardsFromPlayEffect; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.SkirmishResult; +import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; import java.util.Collections; import java.util.List; @@ -43,8 +43,8 @@ public class Card4_032 extends AbstractResponseOldEvent { if (PlayConditions.canPlayCardDuringPhase(game, (Phase) null, self) && TriggerConditions.winsSkirmish(game, effectResult, Filters.and(Culture.DUNLAND, Race.MAN)) && checkPlayRequirements(playerId, game, self, 0, false, false)) { - SkirmishResult skirmishResult = (SkirmishResult) effectResult; - final Set losers = skirmishResult.getLosers(); + CharacterWonSkirmishResult skirmishResult = (CharacterWonSkirmishResult) effectResult; + final Set losers = skirmishResult.getInvolving(); PlayEventAction action = new PlayEventAction(self); action.appendEffect( new DiscardCardsFromPlayEffect(self, Filters.and(Filters.attachedTo(Filters.in(losers)), Side.FREE_PEOPLE))); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_037.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_037.java index 9f4a7d599..56ab7c19e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_037.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_037.java @@ -1,7 +1,6 @@ package com.gempukku.lotro.cards.set4.dunland; import com.gempukku.lotro.cards.AbstractResponseOldEvent; -import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.actions.PlayEventAction; import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect; @@ -9,15 +8,14 @@ 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.effects.ChooseActiveCardEffect; +import com.gempukku.lotro.logic.GameUtils; import com.gempukku.lotro.logic.modifiers.KeywordModifier; import com.gempukku.lotro.logic.modifiers.StrengthModifier; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.SkirmishResult; +import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; import java.util.Collections; import java.util.List; -import java.util.Set; /** * Set: The Two Towers @@ -39,23 +37,17 @@ public class Card4_037 extends AbstractResponseOldEvent { @Override public List getOptionalAfterActions(String playerId, LotroGame game, EffectResult effectResult, final PhysicalCard self) { - if (PlayConditions.canPlayCardDuringPhase(game, (Phase) null, self) - && TriggerConditions.winsSkirmish(game, effectResult, Filters.and(Culture.DUNLAND, Race.MAN)) + if (TriggerConditions.winsSkirmish(game, effectResult, Filters.and(Culture.DUNLAND, Race.MAN)) && checkPlayRequirements(playerId, game, self, 0, false, false)) { - final Set winners = ((SkirmishResult) effectResult).getWinners(); + PhysicalCard winner = ((CharacterWonSkirmishResult) effectResult).getWinner(); final PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose DUNLAND Man", Filters.in(winners), Culture.DUNLAND, Race.MAN) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard card) { - action.insertEffect( - new AddUntilStartOfPhaseModifierEffect( - new StrengthModifier(self, Filters.sameCard(card), 4), Phase.REGROUP)); - action.insertEffect( - new AddUntilStartOfPhaseModifierEffect( - new KeywordModifier(self, Filters.sameCard(card), Keyword.FIERCE), Phase.REGROUP)); - } - }); + action.setText("Make " + GameUtils.getCardLink(winner) + " strength +4 and Fierce"); + action.insertEffect( + new AddUntilStartOfPhaseModifierEffect( + new StrengthModifier(self, Filters.sameCard(winner), 4), Phase.REGROUP)); + action.insertEffect( + new AddUntilStartOfPhaseModifierEffect( + new KeywordModifier(self, Filters.sameCard(winner), Keyword.FIERCE), Phase.REGROUP)); return Collections.singletonList(action); } return null; 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 92795a545..079790022 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 @@ -5,24 +5,22 @@ import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.actions.PlayEventAction; import com.gempukku.lotro.cards.effects.ChoiceEffect; +import com.gempukku.lotro.cards.effects.ExertCharactersEffect; import com.gempukku.lotro.cards.effects.LiberateASiteEffect; -import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Race; 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.effects.ChooseAndWoundCharactersEffect; import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.SkirmishResult; +import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; import java.util.Collections; import java.util.LinkedList; import java.util.List; -import java.util.Set; /** * Set: The Two Towers @@ -45,11 +43,11 @@ public class Card4_079 extends AbstractResponseOldEvent { @Override public List getOptionalAfterActions(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.winsSkirmish(game, effectResult, Race.ELF)) { - final Set winners = ((SkirmishResult) effectResult).getWinners(); - if (PlayConditions.canExert(self, game, Filters.in(winners))) { + PhysicalCard winner = ((CharacterWonSkirmishResult) effectResult).getWinner(); + if (PlayConditions.canExert(self, game, winner)) { PlayEventAction action = new PlayEventAction(self); action.appendCost( - new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Race.ELF, Filters.in(winners))); + new ExertCharactersEffect(self, winner)); List possibleEffects = new LinkedList(); possibleEffects.add( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/isengard/Card5_055.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/isengard/Card5_055.java index dc2c872c6..c8cbbd930 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/isengard/Card5_055.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/isengard/Card5_055.java @@ -1,6 +1,7 @@ package com.gempukku.lotro.cards.set5.isengard; import com.gempukku.lotro.cards.AbstractMinion; +import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.ExertCharactersEffect; import com.gempukku.lotro.cards.effects.TakeControlOfASiteEffect; @@ -10,15 +11,14 @@ import com.gempukku.lotro.common.Race; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.GameUtils; import com.gempukku.lotro.logic.actions.OptionalTriggerAction; import com.gempukku.lotro.logic.modifiers.KeywordModifier; import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.SkirmishResult; +import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; -import java.util.Collection; import java.util.Collections; -import java.util.LinkedList; import java.util.List; /** @@ -48,19 +48,19 @@ public class Card5_055 extends AbstractMinion { @Override public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.winsSkirmish(game, effectResult, Culture.ISENGARD, Race.ORC)) { - SkirmishResult result = (SkirmishResult) effectResult; - Collection winners = Filters.filter(result.getWinners(), game.getGameState(), game.getModifiersQuerying(), Culture.ISENGARD, Race.ORC, Filters.canExert(self)); - List actions = new LinkedList(); - for (PhysicalCard winner : winners) { + CharacterWonSkirmishResult result = (CharacterWonSkirmishResult) effectResult; + PhysicalCard winner = result.getWinner(); + if (PlayConditions.canExert(self, game, winner)) { OptionalTriggerAction action = new OptionalTriggerAction(self); + action.setText("Exert " + GameUtils.getCardLink(winner)); action.appendCost( new ExertCharactersEffect(self, winner)); action.appendEffect( new TakeControlOfASiteEffect(self, playerId)); - actions.add(action); + return Collections.singletonList(action); } - return actions; } + return null; } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/raider/Card7_152.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/raider/Card7_152.java index b7d6b3518..c2fac936a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/raider/Card7_152.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/raider/Card7_152.java @@ -12,7 +12,7 @@ import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; import com.gempukku.lotro.logic.effects.KillEffect; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.SkirmishResult; +import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; import java.util.Collections; import java.util.List; @@ -45,10 +45,10 @@ public class Card7_152 extends AbstractMinion { public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.winsSkirmishInvolving(game, effectResult, self, CardType.COMPANION) && game.getGameState().getThreats() >= 6) { - SkirmishResult skirmishResult = (SkirmishResult) effectResult; + CharacterWonSkirmishResult skirmishResult = (CharacterWonSkirmishResult) effectResult; RequiredTriggerAction action = new RequiredTriggerAction(self); action.appendEffect( - new KillEffect(skirmishResult.getLosers(), KillEffect.Cause.CARD_EFFECT)); + new KillEffect(skirmishResult.getInvolving(), KillEffect.Cause.CARD_EFFECT)); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/dwarven/Card9_005.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/dwarven/Card9_005.java index 968279c68..c21448849 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/dwarven/Card9_005.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/dwarven/Card9_005.java @@ -17,7 +17,7 @@ import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect; import com.gempukku.lotro.logic.effects.HealCharactersEffect; import com.gempukku.lotro.logic.modifiers.KeywordModifier; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.SkirmishResult; +import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; import java.util.Collections; import java.util.List; @@ -43,13 +43,12 @@ public class Card9_005 extends AbstractCompanion { public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.winsSkirmish(game, effectResult, Race.DWARF) && game.getGameState().isFierceSkirmishes()) { - SkirmishResult skirmishResult = (SkirmishResult) effectResult; - for (PhysicalCard physicalCard : skirmishResult.getWinners()) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendEffect( - new HealCharactersEffect(self, physicalCard)); - return Collections.singletonList(action); - } + CharacterWonSkirmishResult skirmishResult = (CharacterWonSkirmishResult) effectResult; + PhysicalCard winner = skirmishResult.getWinner(); + OptionalTriggerAction action = new OptionalTriggerAction(self); + action.appendEffect( + new HealCharactersEffect(self, winner)); + return Collections.singletonList(action); } return null; }