From ba7a15419e9673df4bb015d77a2e9752a2bb8cd1 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Fri, 16 Sep 2011 20:18:24 +0000 Subject: [PATCH] Simplified healing. --- .../effects/ChooseAndHealCharacterEffect.java | 33 +++++++++++++++++++ .../lotro/cards/set1/elven/Card1_034.java | 10 ++---- .../lotro/cards/set1/elven/Card1_059.java | 16 ++------- .../lotro/cards/set1/gondor/Card1_365.java | 11 ++----- .../lotro/cards/set1/isengard/Card1_144.java | 11 ++----- .../lotro/cards/set1/isengard/Card1_152.java | 10 ++---- .../lotro/cards/set1/shire/Card1_288.java | 20 ++--------- .../lotro/cards/set1/shire/Card1_289.java | 11 ++----- .../lotro/cards/set1/shire/Card1_291.java | 20 ++--------- .../lotro/cards/set1/shire/Card1_297.java | 9 ++--- .../lotro/cards/set1/shire/Card1_307.java | 16 ++------- .../lotro/cards/set1/shire/Card1_315.java | 10 ++---- .../lotro/cards/set1/site/Card1_343.java | 9 ++--- .../lotro/cards/set1/site/Card1_358.java | 10 ++---- .../lotro/cards/set1/wraith/Card1_220.java | 11 ++----- 15 files changed, 62 insertions(+), 145 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ChooseAndHealCharacterEffect.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ChooseAndHealCharacterEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ChooseAndHealCharacterEffect.java new file mode 100644 index 000000000..2fffe252c --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ChooseAndHealCharacterEffect.java @@ -0,0 +1,33 @@ +package com.gempukku.lotro.cards.effects; + +import com.gempukku.lotro.filters.Filter; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.logic.actions.CostToEffectAction; +import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; +import com.gempukku.lotro.logic.effects.HealCharacterEffect; + +public class ChooseAndHealCharacterEffect extends ChooseActiveCardEffect { + private CostToEffectAction _action; + private String _playerId; + private boolean _cost; + + public ChooseAndHealCharacterEffect(CostToEffectAction action, String playerId, String choiceText, boolean cost, Filter... filters) { + super(playerId, choiceText, filters); + _action = action; + _playerId = playerId; + _cost = cost; + } + + @Override + public String getText() { + return "Choose character to heal"; + } + + @Override + protected void cardSelected(PhysicalCard character) { + if (_cost) + _action.addCost(new HealCharacterEffect(_playerId, character)); + else + _action.addEffect(new HealCharacterEffect(_playerId, character)); + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_034.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_034.java index 8ecd29892..301b2d5fe 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_034.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_034.java @@ -2,14 +2,13 @@ package com.gempukku.lotro.cards.set1.elven; import com.gempukku.lotro.cards.AbstractAlly; import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect; import com.gempukku.lotro.cards.effects.ExertCharacterEffect; 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.actions.DefaultCostToEffectAction; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.Action; import java.util.Collections; @@ -37,12 +36,7 @@ public class Card1_034 extends AbstractAlly { && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Celeborn to Heal an ELVEN ally"); action.addCost(new ExertCharacterEffect(playerId, self)); - action.addEffect(new ChooseActiveCardEffect(playerId, "Choose an ELVEN ally", Filters.culture(Culture.ELVEN), Filters.type(CardType.ALLY)) { - @Override - protected void cardSelected(PhysicalCard elvenAlly) { - action.addEffect(new HealCharacterEffect(playerId, elvenAlly)); - } - }); + action.addEffect(new ChooseAndHealCharacterEffect(action, playerId, "Choose an ELVEN ally", false, Filters.culture(Culture.ELVEN), Filters.type(CardType.ALLY))); return Collections.singletonList(action); } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_059.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_059.java index 3a9ceb2ce..6d2cd4d6e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_059.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_059.java @@ -4,6 +4,7 @@ import com.gempukku.lotro.cards.AbstractPermanent; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.effects.AddTwilightEffect; import com.gempukku.lotro.cards.effects.ChoiceEffect; +import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect; import com.gempukku.lotro.cards.effects.ExertCharacterEffect; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filters; @@ -11,7 +12,6 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.Effect; @@ -52,12 +52,7 @@ public class Card1_059 extends AbstractPermanent { protected void cardSelected(PhysicalCard dwarf) { action.addCost(new ExertCharacterEffect(playerId, dwarf)); action.addEffect( - new ChooseActiveCardEffect(playerId, "Choose Elf to heal", Filters.race(Race.ELF)) { - @Override - protected void cardSelected(PhysicalCard elf) { - action.addEffect(new HealCharacterEffect(playerId, elf)); - } - }); + new ChooseAndHealCharacterEffect(action, playerId, "Choose an Elf", false, Filters.race(Race.ELF))); } }); @@ -67,12 +62,7 @@ public class Card1_059 extends AbstractPermanent { protected void cardSelected(PhysicalCard elf) { action.addCost(new ExertCharacterEffect(playerId, elf)); action.addEffect( - new ChooseActiveCardEffect(playerId, "Choose Dwarf to heal", Filters.race(Race.DWARF)) { - @Override - protected void cardSelected(PhysicalCard dwarf) { - action.addEffect(new HealCharacterEffect(playerId, dwarf)); - } - }); + new ChooseAndHealCharacterEffect(action, playerId, "Choose a Dwarf", false, Filters.race(Race.DWARF))); } }); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_365.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_365.java index fd9940538..79e9071ce 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_365.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_365.java @@ -1,13 +1,12 @@ package com.gempukku.lotro.cards.set1.gondor; import com.gempukku.lotro.cards.AbstractCompanion; +import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect; 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.actions.OptionalTriggerAction; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.EffectResult; import java.util.Collections; @@ -36,13 +35,7 @@ public class Card1_365 extends AbstractCompanion { if (effectResult.getType() == EffectResult.Type.START_OF_TURN) { final OptionalTriggerAction action = new OptionalTriggerAction(self, null, "Heal another companion who has the Aragorn signet"); action.addEffect( - new ChooseActiveCardEffect(playerId, "Choose companion to heal", Filters.type(CardType.COMPANION), Filters.signet(Signet.ARAGORN), Filters.not(Filters.sameCard(self))) { - @Override - protected void cardSelected(PhysicalCard companion) { - action.addEffect(new HealCharacterEffect(playerId, companion)); - } - } - ); + new ChooseAndHealCharacterEffect(action, playerId, "Choose companion", false, Filters.type(CardType.COMPANION), Filters.signet(Signet.ARAGORN), Filters.not(Filters.sameCard(self)))); return Collections.singletonList(action); } return null; 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 ad6f9a2c7..33626a296 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 @@ -2,14 +2,13 @@ package com.gempukku.lotro.cards.set1.isengard; import com.gempukku.lotro.cards.AbstractPermanent; import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; 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.actions.DefaultCostToEffectAction; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.results.SkirmishResult; @@ -38,13 +37,7 @@ public class Card1_144 extends AbstractPermanent { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.RESPONSE, "If your Uruk-hai wins a skirmish, remove (1) to heal him."); action.addCost(new RemoveTwilightEffect(1)); action.addEffect( - new ChooseActiveCardEffect(playerId, "Choose Uruk-hai to heal", Filters.race(Race.URUK_HAI), Filters.in(skirmishResult.getWinners())) { - @Override - protected void cardSelected(PhysicalCard winningUrukHai) { - action.addEffect(new HealCharacterEffect(playerId, winningUrukHai)); - } - } - ); + new ChooseAndHealCharacterEffect(action, playerId, "Choose an Uruk-hai", false, Filters.race(Race.URUK_HAI), Filters.in(skirmishResult.getWinners()))); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_152.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_152.java index 2974cb45a..bd981442f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_152.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_152.java @@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.set1.isengard; import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; @@ -11,8 +12,6 @@ import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.Action; import java.util.Collections; @@ -41,12 +40,7 @@ public class Card1_152 extends AbstractMinion { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.MANEUVER, "Remove (2) to heal an Uruk-hai"); action.addCost(new RemoveTwilightEffect(2)); action.addEffect( - new ChooseActiveCardEffect(playerId, "Choose an Uruk-hai", Filters.race(Race.URUK_HAI)) { - @Override - protected void cardSelected(PhysicalCard urukHai) { - action.addEffect(new HealCharacterEffect(playerId, urukHai)); - } - }); + new ChooseAndHealCharacterEffect(action, playerId, "Choose an Uruk-hai", false, Filters.race(Race.URUK_HAI))); return Collections.singletonList(action); } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_288.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_288.java index 1afc76455..9473b0d0b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_288.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_288.java @@ -2,7 +2,7 @@ package com.gempukku.lotro.cards.set1.shire; import com.gempukku.lotro.cards.AbstractAlly; import com.gempukku.lotro.cards.PlayConditions; -import com.gempukku.lotro.cards.effects.ChoiceEffect; +import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect; import com.gempukku.lotro.cards.effects.ExertCharacterEffect; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; @@ -12,12 +12,9 @@ import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; -import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.Action; -import com.gempukku.lotro.logic.timing.Effect; import java.util.Collections; -import java.util.LinkedList; import java.util.List; /** @@ -43,21 +40,8 @@ public class Card1_288 extends AbstractAlly { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Farmer Maggot to heal Merry or Pippin."); action.addCost( new ExertCharacterEffect(playerId, self)); - - PhysicalCard merry = Filters.findFirstActive(game.getGameState(), game.getModifiersQuerying(), Filters.name("Merry")); - PhysicalCard pippin = Filters.findFirstActive(game.getGameState(), game.getModifiersQuerying(), Filters.name("Pippin")); - - List possibleEffects = new LinkedList(); - if (merry != null) - possibleEffects.add( - new HealCharacterEffect(playerId, merry)); - if (pippin != null) - possibleEffects.add( - new HealCharacterEffect(playerId, pippin)); - action.addEffect( - new ChoiceEffect(action, playerId, possibleEffects, false)); - + new ChooseAndHealCharacterEffect(action, playerId, "Choose Merry or Pippin", false, Filters.or(Filters.name("Merry"), Filters.name("Pippin")))); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_289.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_289.java index b912ffd2b..b0904ebd0 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_289.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_289.java @@ -1,13 +1,12 @@ package com.gempukku.lotro.cards.set1.shire; import com.gempukku.lotro.cards.AbstractCompanion; +import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect; 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.actions.OptionalTriggerAction; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.EffectResult; import java.util.Collections; @@ -41,13 +40,7 @@ public class Card1_289 extends AbstractCompanion { if (effectResult.getType() == EffectResult.Type.START_OF_TURN) { final OptionalTriggerAction action = new OptionalTriggerAction(self, null, "You may heal a Hobbit ally"); action.addEffect( - new ChooseActiveCardEffect(playerId, "Choose a Hobbit ally", Filters.type(CardType.ALLY), Filters.race(Race.HOBBIT)) { - @Override - protected void cardSelected(PhysicalCard hobbitAlly) { - action.addEffect(new HealCharacterEffect(playerId, hobbitAlly)); - } - } - ); + new ChooseAndHealCharacterEffect(action, playerId, "Choose a Hobbit ally", false, Filters.type(CardType.ALLY), Filters.race(Race.HOBBIT))); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_291.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_291.java index b48548805..0812c13f9 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_291.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_291.java @@ -2,7 +2,7 @@ package com.gempukku.lotro.cards.set1.shire; import com.gempukku.lotro.cards.AbstractAlly; import com.gempukku.lotro.cards.PlayConditions; -import com.gempukku.lotro.cards.effects.ChoiceEffect; +import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect; import com.gempukku.lotro.cards.effects.ExertCharacterEffect; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; @@ -12,12 +12,9 @@ import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; -import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.Action; -import com.gempukku.lotro.logic.timing.Effect; import java.util.Collections; -import java.util.LinkedList; import java.util.List; /** @@ -43,21 +40,8 @@ public class Card1_291 extends AbstractAlly { DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert The Gaffer to heal Frodo or Sam."); action.addCost( new ExertCharacterEffect(playerId, self)); - - PhysicalCard frodo = Filters.findFirstActive(game.getGameState(), game.getModifiersQuerying(), Filters.name("Frodo")); - PhysicalCard sam = Filters.findFirstActive(game.getGameState(), game.getModifiersQuerying(), Filters.name("Sam")); - - List possibleEffects = new LinkedList(); - if (frodo != null) - possibleEffects.add( - new HealCharacterEffect(playerId, frodo)); - if (sam != null) - possibleEffects.add( - new HealCharacterEffect(playerId, sam)); - action.addEffect( - new ChoiceEffect(action, playerId, possibleEffects, false)); - + new ChooseAndHealCharacterEffect(action, playerId, "Choose Frodo or Sam", false, Filters.or(Filters.name("Frodo"), Filters.name("Sam")))); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_297.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_297.java index b29def8e0..c5d9532d4 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_297.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_297.java @@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.set1.shire; import com.gempukku.lotro.cards.AbstractAlly; import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect; import com.gempukku.lotro.cards.effects.ExertCharacterEffect; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filters; @@ -9,7 +10,6 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.EffectResult; @@ -42,12 +42,7 @@ public class Card1_297 extends AbstractAlly { action.addCost( new ExertCharacterEffect(playerId, self)); action.addEffect( - new ChooseActiveCardEffect(playerId, "Choose another Hobbit ally", Filters.type(CardType.ALLY), Filters.race(Race.HOBBIT), Filters.not(Filters.sameCard(self)), Filters.siteNumber(1)) { - @Override - protected void cardSelected(PhysicalCard anotherHobbitAlly) { - action.addEffect(new HealCharacterEffect(playerId, anotherHobbitAlly)); - } - }); + new ChooseAndHealCharacterEffect(action, playerId, "Choose another Hobbit ally", false, Filters.type(CardType.ALLY), Filters.race(Race.HOBBIT), Filters.not(Filters.sameCard(self)), Filters.siteNumber(1))); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_307.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_307.java index bf9d1c9ea..c32832609 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_307.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_307.java @@ -3,6 +3,7 @@ package com.gempukku.lotro.cards.set1.shire; import com.gempukku.lotro.cards.AbstractCompanion; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.effects.ChoiceEffect; +import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect; import com.gempukku.lotro.cards.effects.RemoveBurdenEffect; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; @@ -12,8 +13,6 @@ import com.gempukku.lotro.filters.Filters; 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.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.EffectResult; @@ -46,18 +45,7 @@ public class Card1_307 extends AbstractCompanion { List possibleEffects = new LinkedList(); possibleEffects.add(new RemoveBurdenEffect(self.getOwner())); possibleEffects.add( - new ChooseActiveCardEffect(self.getOwner(), "Choose a companion", Filters.type(CardType.COMPANION)) { - @Override - public String getText() { - return "Remove a wound form a companion"; - } - - @Override - protected void cardSelected(PhysicalCard card) { - action.addEffect(new HealCharacterEffect(self.getOwner(), card)); - } - }); - + new ChooseAndHealCharacterEffect(action, self.getOwner(), "Choose a companion", false, Filters.type(CardType.COMPANION))); action.addEffect(new ChoiceEffect(action, self.getOwner(), possibleEffects, false)); return Collections.singletonList(action); } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_315.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_315.java index a7b50ba06..7ba0f23fd 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_315.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_315.java @@ -2,6 +2,7 @@ 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.ChooseAndHealCharacterEffect; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.common.Race; @@ -9,8 +10,6 @@ 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.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.HealCharacterEffect; /** * Set: The Fellowship of the Ring @@ -29,12 +28,7 @@ public class Card1_315 extends AbstractEvent { public PlayEventAction getPlayCardAction(final String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { final PlayEventAction action = new PlayEventAction(self); action.addEffect( - new ChooseActiveCardEffect(playerId, "Choose a Hobbit", Filters.race(Race.HOBBIT)) { - @Override - protected void cardSelected(PhysicalCard hobbit) { - action.addEffect(new HealCharacterEffect(playerId, hobbit)); - } - }); + new ChooseAndHealCharacterEffect(action, playerId, "Choose a Hobbit", false, Filters.race(Race.HOBBIT))); return action; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_343.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_343.java index 1b6aa8b19..fa07001b0 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_343.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_343.java @@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.set1.site; import com.gempukku.lotro.cards.AbstractSite; import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Phase; @@ -11,7 +12,6 @@ import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; import com.gempukku.lotro.logic.effects.DiscardCardFromPlayEffect; -import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.Action; import java.util.Collections; @@ -43,12 +43,7 @@ public class Card1_343 extends AbstractSite { } }); action.addEffect( - new ChooseActiveCardEffect(playerId, "Choose your companion", Filters.owner(playerId), Filters.type(CardType.COMPANION)) { - @Override - protected void cardSelected(PhysicalCard companion) { - action.addEffect(new HealCharacterEffect(playerId, companion)); - } - }); + new ChooseAndHealCharacterEffect(action, playerId, "Choose your companion", false, Filters.owner(playerId), Filters.type(CardType.COMPANION))); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_358.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_358.java index 7cdcbb74a..5305fb924 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_358.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_358.java @@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.set1.site; import com.gempukku.lotro.cards.AbstractSite; import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; @@ -10,10 +11,8 @@ import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; import com.gempukku.lotro.logic.effects.ChooseCardsFromHandEffect; import com.gempukku.lotro.logic.effects.DiscardCardFromHandEffect; -import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.Action; import java.util.Collections; @@ -45,12 +44,7 @@ public class Card1_358 extends AbstractSite { } }); action.addEffect( - new ChooseActiveCardEffect(playerId, "Choose a GONDOR companion", Filters.type(CardType.COMPANION), Filters.culture(Culture.GONDOR)) { - @Override - protected void cardSelected(PhysicalCard gondorCompanion) { - action.addEffect(new HealCharacterEffect(playerId, gondorCompanion)); - } - }); + new ChooseAndHealCharacterEffect(action, playerId, "Choose a GONDOR companion", false, Filters.type(CardType.COMPANION), Filters.culture(Culture.GONDOR))); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/wraith/Card1_220.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/wraith/Card1_220.java index 0d858e340..063fcefa9 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/wraith/Card1_220.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/wraith/Card1_220.java @@ -2,14 +2,13 @@ package com.gempukku.lotro.cards.set1.wraith; import com.gempukku.lotro.cards.AbstractPermanent; import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; 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.actions.DefaultCostToEffectAction; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.HealCharacterEffect; import com.gempukku.lotro.logic.timing.Action; import java.util.Collections; @@ -35,13 +34,7 @@ public class Card1_220 extends AbstractPermanent { final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, (game.getGameState().getCurrentPhase() == Phase.MANEUVER) ? Keyword.MANEUVER : Keyword.SKIRMISH, "Remove (3) to heal a Nazgul."); action.addCost(new RemoveTwilightEffect(3)); action.addEffect( - new ChooseActiveCardEffect(playerId, "Choose a Nazgul", Filters.race(Race.NAZGUL)) { - @Override - protected void cardSelected(PhysicalCard nazgul) { - action.addEffect( - new HealCharacterEffect(playerId, nazgul)); - } - }); + new ChooseAndHealCharacterEffect(action, playerId, "Choose a Nazgul", false, Filters.race(Race.NAZGUL))); return Collections.singletonList(action); } return null;