Simplified healing.

This commit is contained in:
marcins78@gmail.com
2011-09-16 20:18:24 +00:00
parent c8bf487c4d
commit ba7a15419e
15 changed files with 62 additions and 145 deletions

View File

@@ -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));
}
}

View File

@@ -2,14 +2,13 @@ package com.gempukku.lotro.cards.set1.elven;
import com.gempukku.lotro.cards.AbstractAlly; import com.gempukku.lotro.cards.AbstractAlly;
import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect;
import com.gempukku.lotro.cards.effects.ExertCharacterEffect; import com.gempukku.lotro.cards.effects.ExertCharacterEffect;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; 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.Action;
import java.util.Collections; import java.util.Collections;
@@ -37,12 +36,7 @@ public class Card1_034 extends AbstractAlly {
&& PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) { && PlayConditions.canExert(game.getGameState(), game.getModifiersQuerying(), self)) {
final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Celeborn to Heal an ELVEN ally"); final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Celeborn to Heal an ELVEN ally");
action.addCost(new ExertCharacterEffect(playerId, self)); action.addCost(new ExertCharacterEffect(playerId, self));
action.addEffect(new ChooseActiveCardEffect(playerId, "Choose an ELVEN ally", Filters.culture(Culture.ELVEN), Filters.type(CardType.ALLY)) { action.addEffect(new ChooseAndHealCharacterEffect(action, playerId, "Choose an ELVEN ally", false, Filters.culture(Culture.ELVEN), Filters.type(CardType.ALLY)));
@Override
protected void cardSelected(PhysicalCard elvenAlly) {
action.addEffect(new HealCharacterEffect(playerId, elvenAlly));
}
});
return Collections.singletonList(action); return Collections.singletonList(action);
} }

View File

@@ -4,6 +4,7 @@ import com.gempukku.lotro.cards.AbstractPermanent;
import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.AddTwilightEffect; import com.gempukku.lotro.cards.effects.AddTwilightEffect;
import com.gempukku.lotro.cards.effects.ChoiceEffect; 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.cards.effects.ExertCharacterEffect;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filters; 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.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction;
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; 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.Action;
import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.Effect;
@@ -52,12 +52,7 @@ public class Card1_059 extends AbstractPermanent {
protected void cardSelected(PhysicalCard dwarf) { protected void cardSelected(PhysicalCard dwarf) {
action.addCost(new ExertCharacterEffect(playerId, dwarf)); action.addCost(new ExertCharacterEffect(playerId, dwarf));
action.addEffect( action.addEffect(
new ChooseActiveCardEffect(playerId, "Choose Elf to heal", Filters.race(Race.ELF)) { new ChooseAndHealCharacterEffect(action, playerId, "Choose an Elf", false, Filters.race(Race.ELF)));
@Override
protected void cardSelected(PhysicalCard elf) {
action.addEffect(new HealCharacterEffect(playerId, elf));
}
});
} }
}); });
@@ -67,12 +62,7 @@ public class Card1_059 extends AbstractPermanent {
protected void cardSelected(PhysicalCard elf) { protected void cardSelected(PhysicalCard elf) {
action.addCost(new ExertCharacterEffect(playerId, elf)); action.addCost(new ExertCharacterEffect(playerId, elf));
action.addEffect( action.addEffect(
new ChooseActiveCardEffect(playerId, "Choose Dwarf to heal", Filters.race(Race.DWARF)) { new ChooseAndHealCharacterEffect(action, playerId, "Choose a Dwarf", false, Filters.race(Race.DWARF)));
@Override
protected void cardSelected(PhysicalCard dwarf) {
action.addEffect(new HealCharacterEffect(playerId, dwarf));
}
});
} }
}); });

View File

@@ -1,13 +1,12 @@
package com.gempukku.lotro.cards.set1.gondor; package com.gempukku.lotro.cards.set1.gondor;
import com.gempukku.lotro.cards.AbstractCompanion; import com.gempukku.lotro.cards.AbstractCompanion;
import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.OptionalTriggerAction; 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 com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections; import java.util.Collections;
@@ -36,13 +35,7 @@ public class Card1_365 extends AbstractCompanion {
if (effectResult.getType() == EffectResult.Type.START_OF_TURN) { if (effectResult.getType() == EffectResult.Type.START_OF_TURN) {
final OptionalTriggerAction action = new OptionalTriggerAction(self, null, "Heal another companion who has the Aragorn signet"); final OptionalTriggerAction action = new OptionalTriggerAction(self, null, "Heal another companion who has the Aragorn signet");
action.addEffect( action.addEffect(
new ChooseActiveCardEffect(playerId, "Choose companion to heal", Filters.type(CardType.COMPANION), Filters.signet(Signet.ARAGORN), Filters.not(Filters.sameCard(self))) { new ChooseAndHealCharacterEffect(action, playerId, "Choose companion", false, 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));
}
}
);
return Collections.singletonList(action); return Collections.singletonList(action);
} }
return null; return null;

View File

@@ -2,14 +2,13 @@ package com.gempukku.lotro.cards.set1.isengard;
import com.gempukku.lotro.cards.AbstractPermanent; import com.gempukku.lotro.cards.AbstractPermanent;
import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect;
import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; 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.Action;
import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.results.SkirmishResult; 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."); 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.addCost(new RemoveTwilightEffect(1));
action.addEffect( action.addEffect(
new ChooseActiveCardEffect(playerId, "Choose Uruk-hai to heal", Filters.race(Race.URUK_HAI), Filters.in(skirmishResult.getWinners())) { new ChooseAndHealCharacterEffect(action, playerId, "Choose an Uruk-hai", false, Filters.race(Race.URUK_HAI), Filters.in(skirmishResult.getWinners())));
@Override
protected void cardSelected(PhysicalCard winningUrukHai) {
action.addEffect(new HealCharacterEffect(playerId, winningUrukHai));
}
}
);
return Collections.singletonList(action); return Collections.singletonList(action);
} }
return null; return null;

View File

@@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.set1.isengard;
import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.AbstractMinion;
import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect;
import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect;
import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword; 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.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; 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.Action;
import java.util.Collections; 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"); final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.MANEUVER, "Remove (2) to heal an Uruk-hai");
action.addCost(new RemoveTwilightEffect(2)); action.addCost(new RemoveTwilightEffect(2));
action.addEffect( action.addEffect(
new ChooseActiveCardEffect(playerId, "Choose an Uruk-hai", Filters.race(Race.URUK_HAI)) { new ChooseAndHealCharacterEffect(action, playerId, "Choose an Uruk-hai", false, Filters.race(Race.URUK_HAI)));
@Override
protected void cardSelected(PhysicalCard urukHai) {
action.addEffect(new HealCharacterEffect(playerId, urukHai));
}
});
return Collections.singletonList(action); return Collections.singletonList(action);
} }

View File

@@ -2,7 +2,7 @@ package com.gempukku.lotro.cards.set1.shire;
import com.gempukku.lotro.cards.AbstractAlly; import com.gempukku.lotro.cards.AbstractAlly;
import com.gempukku.lotro.cards.PlayConditions; 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.cards.effects.ExertCharacterEffect;
import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword; 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.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; 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.Action;
import com.gempukku.lotro.logic.timing.Effect;
import java.util.Collections; import java.util.Collections;
import java.util.LinkedList;
import java.util.List; 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."); DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert Farmer Maggot to heal Merry or Pippin.");
action.addCost( action.addCost(
new ExertCharacterEffect(playerId, self)); 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<Effect> possibleEffects = new LinkedList<Effect>();
if (merry != null)
possibleEffects.add(
new HealCharacterEffect(playerId, merry));
if (pippin != null)
possibleEffects.add(
new HealCharacterEffect(playerId, pippin));
action.addEffect( 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 Collections.singletonList(action);
} }
return null; return null;

View File

@@ -1,13 +1,12 @@
package com.gempukku.lotro.cards.set1.shire; package com.gempukku.lotro.cards.set1.shire;
import com.gempukku.lotro.cards.AbstractCompanion; import com.gempukku.lotro.cards.AbstractCompanion;
import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.OptionalTriggerAction; 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 com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections; import java.util.Collections;
@@ -41,13 +40,7 @@ public class Card1_289 extends AbstractCompanion {
if (effectResult.getType() == EffectResult.Type.START_OF_TURN) { if (effectResult.getType() == EffectResult.Type.START_OF_TURN) {
final OptionalTriggerAction action = new OptionalTriggerAction(self, null, "You may heal a Hobbit ally"); final OptionalTriggerAction action = new OptionalTriggerAction(self, null, "You may heal a Hobbit ally");
action.addEffect( action.addEffect(
new ChooseActiveCardEffect(playerId, "Choose a Hobbit ally", Filters.type(CardType.ALLY), Filters.race(Race.HOBBIT)) { new ChooseAndHealCharacterEffect(action, playerId, "Choose a Hobbit ally", false, Filters.type(CardType.ALLY), Filters.race(Race.HOBBIT)));
@Override
protected void cardSelected(PhysicalCard hobbitAlly) {
action.addEffect(new HealCharacterEffect(playerId, hobbitAlly));
}
}
);
return Collections.singletonList(action); return Collections.singletonList(action);
} }
return null; return null;

View File

@@ -2,7 +2,7 @@ package com.gempukku.lotro.cards.set1.shire;
import com.gempukku.lotro.cards.AbstractAlly; import com.gempukku.lotro.cards.AbstractAlly;
import com.gempukku.lotro.cards.PlayConditions; 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.cards.effects.ExertCharacterEffect;
import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword; 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.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; 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.Action;
import com.gempukku.lotro.logic.timing.Effect;
import java.util.Collections; import java.util.Collections;
import java.util.LinkedList;
import java.util.List; 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."); DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, Keyword.FELLOWSHIP, "Exert The Gaffer to heal Frodo or Sam.");
action.addCost( action.addCost(
new ExertCharacterEffect(playerId, self)); 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<Effect> possibleEffects = new LinkedList<Effect>();
if (frodo != null)
possibleEffects.add(
new HealCharacterEffect(playerId, frodo));
if (sam != null)
possibleEffects.add(
new HealCharacterEffect(playerId, sam));
action.addEffect( 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 Collections.singletonList(action);
} }
return null; return null;

View File

@@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.set1.shire;
import com.gempukku.lotro.cards.AbstractAlly; import com.gempukku.lotro.cards.AbstractAlly;
import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect;
import com.gempukku.lotro.cards.effects.ExertCharacterEffect; import com.gempukku.lotro.cards.effects.ExertCharacterEffect;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filters; 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.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction; 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.effects.HealCharacterEffect;
import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.Action;
import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.EffectResult;
@@ -42,12 +42,7 @@ public class Card1_297 extends AbstractAlly {
action.addCost( action.addCost(
new ExertCharacterEffect(playerId, self)); new ExertCharacterEffect(playerId, self));
action.addEffect( 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)) { 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)));
@Override
protected void cardSelected(PhysicalCard anotherHobbitAlly) {
action.addEffect(new HealCharacterEffect(playerId, anotherHobbitAlly));
}
});
return Collections.singletonList(action); return Collections.singletonList(action);
} }
return null; return null;

View File

@@ -3,6 +3,7 @@ package com.gempukku.lotro.cards.set1.shire;
import com.gempukku.lotro.cards.AbstractCompanion; import com.gempukku.lotro.cards.AbstractCompanion;
import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.ChoiceEffect; 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.cards.effects.RemoveBurdenEffect;
import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture; 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.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction; 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.Effect;
import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.EffectResult;
@@ -46,18 +45,7 @@ public class Card1_307 extends AbstractCompanion {
List<Effect> possibleEffects = new LinkedList<Effect>(); List<Effect> possibleEffects = new LinkedList<Effect>();
possibleEffects.add(new RemoveBurdenEffect(self.getOwner())); possibleEffects.add(new RemoveBurdenEffect(self.getOwner()));
possibleEffects.add( possibleEffects.add(
new ChooseActiveCardEffect(self.getOwner(), "Choose a companion", Filters.type(CardType.COMPANION)) { new ChooseAndHealCharacterEffect(action, self.getOwner(), "Choose a companion", false, 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));
}
});
action.addEffect(new ChoiceEffect(action, self.getOwner(), possibleEffects, false)); action.addEffect(new ChoiceEffect(action, self.getOwner(), possibleEffects, false));
return Collections.singletonList(action); return Collections.singletonList(action);
} }

View File

@@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.set1.shire;
import com.gempukku.lotro.cards.AbstractEvent; import com.gempukku.lotro.cards.AbstractEvent;
import com.gempukku.lotro.cards.actions.PlayEventAction; 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.Culture;
import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Race; 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.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame; 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 * 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) { public PlayEventAction getPlayCardAction(final String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
final PlayEventAction action = new PlayEventAction(self); final PlayEventAction action = new PlayEventAction(self);
action.addEffect( action.addEffect(
new ChooseActiveCardEffect(playerId, "Choose a Hobbit", Filters.race(Race.HOBBIT)) { new ChooseAndHealCharacterEffect(action, playerId, "Choose a Hobbit", false, Filters.race(Race.HOBBIT)));
@Override
protected void cardSelected(PhysicalCard hobbit) {
action.addEffect(new HealCharacterEffect(playerId, hobbit));
}
});
return action; return action;
} }

View File

@@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.set1.site;
import com.gempukku.lotro.cards.AbstractSite; import com.gempukku.lotro.cards.AbstractSite;
import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect;
import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase; 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.actions.DefaultCostToEffectAction;
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
import com.gempukku.lotro.logic.effects.DiscardCardFromPlayEffect; import com.gempukku.lotro.logic.effects.DiscardCardFromPlayEffect;
import com.gempukku.lotro.logic.effects.HealCharacterEffect;
import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.Action;
import java.util.Collections; import java.util.Collections;
@@ -43,12 +43,7 @@ public class Card1_343 extends AbstractSite {
} }
}); });
action.addEffect( action.addEffect(
new ChooseActiveCardEffect(playerId, "Choose your companion", Filters.owner(playerId), Filters.type(CardType.COMPANION)) { new ChooseAndHealCharacterEffect(action, playerId, "Choose your companion", false, Filters.owner(playerId), Filters.type(CardType.COMPANION)));
@Override
protected void cardSelected(PhysicalCard companion) {
action.addEffect(new HealCharacterEffect(playerId, companion));
}
});
return Collections.singletonList(action); return Collections.singletonList(action);
} }
return null; return null;

View File

@@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.set1.site;
import com.gempukku.lotro.cards.AbstractSite; import com.gempukku.lotro.cards.AbstractSite;
import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect;
import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword; 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.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; 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.ChooseCardsFromHandEffect;
import com.gempukku.lotro.logic.effects.DiscardCardFromHandEffect; import com.gempukku.lotro.logic.effects.DiscardCardFromHandEffect;
import com.gempukku.lotro.logic.effects.HealCharacterEffect;
import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.Action;
import java.util.Collections; import java.util.Collections;
@@ -45,12 +44,7 @@ public class Card1_358 extends AbstractSite {
} }
}); });
action.addEffect( action.addEffect(
new ChooseActiveCardEffect(playerId, "Choose a GONDOR companion", Filters.type(CardType.COMPANION), Filters.culture(Culture.GONDOR)) { new ChooseAndHealCharacterEffect(action, playerId, "Choose a GONDOR companion", false, Filters.type(CardType.COMPANION), Filters.culture(Culture.GONDOR)));
@Override
protected void cardSelected(PhysicalCard gondorCompanion) {
action.addEffect(new HealCharacterEffect(playerId, gondorCompanion));
}
});
return Collections.singletonList(action); return Collections.singletonList(action);
} }
return null; return null;

View File

@@ -2,14 +2,13 @@ package com.gempukku.lotro.cards.set1.wraith;
import com.gempukku.lotro.cards.AbstractPermanent; import com.gempukku.lotro.cards.AbstractPermanent;
import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.ChooseAndHealCharacterEffect;
import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.DefaultCostToEffectAction; 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.Action;
import java.util.Collections; 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."); 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.addCost(new RemoveTwilightEffect(3));
action.addEffect( action.addEffect(
new ChooseActiveCardEffect(playerId, "Choose a Nazgul", Filters.race(Race.NAZGUL)) { new ChooseAndHealCharacterEffect(action, playerId, "Choose a Nazgul", false, Filters.race(Race.NAZGUL)));
@Override
protected void cardSelected(PhysicalCard nazgul) {
action.addEffect(
new HealCharacterEffect(playerId, nazgul));
}
});
return Collections.singletonList(action); return Collections.singletonList(action);
} }
return null; return null;