diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_287.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_287.java new file mode 100644 index 000000000..8d3d97df8 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_287.java @@ -0,0 +1,53 @@ +package com.gempukku.lotro.cards.set1.shire; + +import com.gempukku.lotro.cards.AbstractLotroCardBlueprint; +import com.gempukku.lotro.cards.actions.PlayEventAction; +import com.gempukku.lotro.cards.effects.CancelEffect; +import com.gempukku.lotro.cards.effects.RemoveBurderEffect; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Side; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.timing.Action; +import com.gempukku.lotro.logic.timing.Effect; +import com.gempukku.lotro.logic.timing.EffectResult; +import com.gempukku.lotro.logic.timing.results.HealResult; + +import java.util.Collections; +import java.util.List; + +/** + * Set: The Fellowship of the Ring + * Side: Free + * Culture: Shire + * Twilight Cost: 0 + * Type: Event + * Game Text: Response: If the Ring-bearer is about to heal, remove a burden instead. + */ +public class Card1_287 extends AbstractLotroCardBlueprint { + public Card1_287() { + super(Side.FREE_PEOPLE, CardType.EVENT, Culture.SHIRE, "Extraordinary Resilience"); + addKeyword(Keyword.RESPONSE); + } + + @Override + public int getTwilightCost() { + return 0; + } + + @Override + public List getPlayableIsAboutToActions(String playerId, LotroGame game, Effect effect, EffectResult effectResult, PhysicalCard self) { + if (effectResult.getType() == EffectResult.Type.HEAL + && game.getModifiersQuerying().hasKeyword(game.getGameState(), ((HealResult) effectResult).getCard(), Keyword.RING_BEARER)) { + PlayEventAction action = new PlayEventAction(self); + action.addCost( + new CancelEffect(effect)); + action.addEffect( + new RemoveBurderEffect(playerId)); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/HealCharacterEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/HealCharacterEffect.java index b6ea4d48f..7fc2b8ef5 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/HealCharacterEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/HealCharacterEffect.java @@ -2,15 +2,27 @@ package com.gempukku.lotro.logic.effects; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.timing.UnrespondableEffect; +import com.gempukku.lotro.logic.timing.AbstractEffect; +import com.gempukku.lotro.logic.timing.EffectResult; +import com.gempukku.lotro.logic.timing.results.HealResult; -public class HealCharacterEffect extends UnrespondableEffect { +public class HealCharacterEffect extends AbstractEffect { private PhysicalCard _physicalCard; public HealCharacterEffect(PhysicalCard physicalCard) { _physicalCard = physicalCard; } + @Override + public EffectResult getRespondableResult() { + return new HealResult(_physicalCard); + } + + @Override + public String getText() { + return "Heal " + _physicalCard.getBlueprint().getName(); + } + @Override public boolean canPlayEffect(LotroGame game) { return (game.getGameState().getWounds(_physicalCard) > 0); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/EffectResult.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/EffectResult.java index b1211a7f1..9a939d68d 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/EffectResult.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/EffectResult.java @@ -2,7 +2,8 @@ package com.gempukku.lotro.logic.timing; public abstract class EffectResult { public enum Type { - WOUND, KILL, + WOUND, KILL, HEAL, + OVERWHELM_IN_SKIRMISH, RESOLVE_SKIRMISH, START_OF_PHASE, diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/HealResult.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/HealResult.java new file mode 100644 index 000000000..ac5e6e432 --- /dev/null +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/HealResult.java @@ -0,0 +1,17 @@ +package com.gempukku.lotro.logic.timing.results; + +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.logic.timing.EffectResult; + +public class HealResult extends EffectResult { + private PhysicalCard _card; + + public HealResult(PhysicalCard card) { + super(Type.HEAL); + _card = card; + } + + public PhysicalCard getCard() { + return _card; + } +}