From 5db7562cde51238d29cbd5d30714310d67136c5a Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Tue, 20 Sep 2011 14:53:06 +0000 Subject: [PATCH] Simplifying how multiple characters wounding works. --- .../gempukku/lotro/cards/set1/dwarven/Card1_019.java | 5 +++-- .../gempukku/lotro/cards/set1/gondor/Card1_111.java | 7 ++----- .../gempukku/lotro/cards/set1/shire/Card1_308.java | 11 ++++------- .../gempukku/lotro/cards/set1/wraith/Card1_223.java | 7 ++----- .../gempukku/lotro/cards/set1/wraith/Card1_226.java | 8 ++------ .../com/gempukku/lotro/logic/actions/WoundAction.java | 7 +++++++ .../lotro/logic/timing/rules/ResolveSkirmishRule.java | 6 +++--- 7 files changed, 23 insertions(+), 28 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_019.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_019.java index 9ffc31cee..bf7cb3897 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_019.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/dwarven/Card1_019.java @@ -49,8 +49,9 @@ public class Card1_019 extends AbstractEvent { @Override protected void cardsSelected(List cards) { if (cards.size() == 2) { - action.addEffect(new WoundCharacterEffect(playerId, cards.get(0))); - action.addEffect(new WoundCharacterEffect(playerId, cards.get(1))); + action.addEffect( + new WoundCharacterEffect(playerId, + Filters.or(Filters.sameCard(cards.get(0)), Filters.sameCard(cards.get(1))))); } else { action.addEffect(new WoundCharacterEffect(playerId, cards.get(0))); action.addEffect(new WoundCharacterEffect(playerId, cards.get(0))); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_111.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_111.java index fad4cf9d6..6d54357b7 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_111.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_111.java @@ -9,8 +9,6 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.effects.WoundCharacterEffect; -import java.util.List; - /** * Set: The Fellowship of the Ring * Side: Free @@ -29,9 +27,8 @@ public class Card1_111 extends AbstractEvent { PlayEventAction action = new PlayEventAction(self); action.addCost( new ChooseAndExertCharacterEffect(action, playerId, "Choose a ranger", true, Filters.keyword(Keyword.RANGER), Filters.canExert())); - List minions = Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), Filters.type(CardType.MINION)); - for (PhysicalCard minion : minions) - action.addEffect(new WoundCharacterEffect(playerId, minion)); + action.addEffect( + new WoundCharacterEffect(playerId, Filters.type(CardType.MINION))); return action; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_308.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_308.java index 979169927..ef130c202 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_308.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_308.java @@ -3,10 +3,8 @@ package com.gempukku.lotro.cards.set1.shire; import com.gempukku.lotro.cards.AbstractEvent; import com.gempukku.lotro.cards.actions.PlayEventAction; import com.gempukku.lotro.cards.effects.AddBurdenEffect; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Side; +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.game.state.Skirmish; @@ -37,9 +35,8 @@ public class Card1_308 extends AbstractEvent { Skirmish skirmish = game.getGameState().getSkirmish(); if (skirmish != null) { if (game.getModifiersQuerying().hasKeyword(game.getGameState(), skirmish.getFellowshipCharacter(), Keyword.RING_BEARER)) { - for (PhysicalCard minion : skirmish.getShadowCharacters()) { - action.addEffect(new WoundCharacterEffect(playerId, minion)); - } + action.addEffect( + new WoundCharacterEffect(playerId, Filters.and(Filters.type(CardType.MINION), Filters.inSkirmish()))); } } return action; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/wraith/Card1_223.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/wraith/Card1_223.java index ad857fc6a..f29ffcb50 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/wraith/Card1_223.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/wraith/Card1_223.java @@ -9,8 +9,6 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.effects.WoundCharacterEffect; -import java.util.List; - /** * Set: The Fellowship of the Ring * Side: Shadow @@ -35,9 +33,8 @@ public class Card1_223 extends AbstractEvent { PlayEventAction action = new PlayEventAction(self); action.addCost( new ChooseAndExertCharacterEffect(action, playerId, "Choose a Nazgul", true, Filters.race(Race.NAZGUL), Filters.canExert())); - List archers = Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), Filters.type(CardType.COMPANION), Filters.keyword(Keyword.ARCHER)); - for (PhysicalCard archer : archers) - action.addEffect(new WoundCharacterEffect(playerId, archer)); + action.addEffect( + new WoundCharacterEffect(playerId, Filters.and(Filters.type(CardType.COMPANION), Filters.keyword(Keyword.ARCHER)))); return action; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/wraith/Card1_226.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/wraith/Card1_226.java index c7c46a324..4ee077d9d 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/wraith/Card1_226.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/wraith/Card1_226.java @@ -9,8 +9,6 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.effects.WoundCharacterEffect; -import java.util.List; - /** * Set: The Fellowship of the Ring * Side: Shadow @@ -35,10 +33,8 @@ public class Card1_226 extends AbstractEvent { PlayEventAction action = new PlayEventAction(self); action.addCost( new ChooseAndExertCharacterEffect(action, playerId, "Choose a Nazgul", true, Filters.race(Race.NAZGUL), Filters.canExert())); - List allies = Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), Filters.type(CardType.ALLY)); - for (PhysicalCard ally : allies) - action.addEffect( - new WoundCharacterEffect(playerId, ally)); + action.addEffect( + new WoundCharacterEffect(playerId, Filters.type(CardType.ALLY))); return action; } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/actions/WoundAction.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/actions/WoundAction.java index 12f8f6d4a..7c9729c03 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/actions/WoundAction.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/actions/WoundAction.java @@ -1,5 +1,6 @@ package com.gempukku.lotro.logic.actions; +import com.gempukku.lotro.filters.Filter; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.logic.effects.WoundCharacterEffect; @@ -9,4 +10,10 @@ public class WoundAction extends DefaultCostToEffectAction { for (int i = 0; i < wounds; i++) addEffect(new WoundCharacterEffect(playerId, card)); } + + public WoundAction(String playerId, Filter filter, int wounds) { + super(null, null, "Wound character(s)"); + for (int i = 0; i < wounds; i++) + addEffect(new WoundCharacterEffect(playerId, filter)); + } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/ResolveSkirmishRule.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/ResolveSkirmishRule.java index 4b453c8ad..918e821c9 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/ResolveSkirmishRule.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/ResolveSkirmishRule.java @@ -1,6 +1,7 @@ package com.gempukku.lotro.logic.timing.rules; import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.AbstractActionProxy; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.GameState; @@ -43,9 +44,8 @@ public class ResolveSkirmishRule { List losers = skirmishResult.getLosers(); List actions = new LinkedList(); - for (PhysicalCard loser : losers) { - actions.add(new WoundAction(loser.getOwner(), loser, dmg)); - } + actions.add(new WoundAction(winners.get(0).getOwner(), Filters.in(losers), dmg)); + return actions; } else if (effectResult.getType() == EffectResult.Type.OVERWHELM_IN_SKIRMISH) { OverwhelmSkirmishResult skirmishResult = (OverwhelmSkirmishResult) effectResult;