diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-shire.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-shire.json index ab124ff75..9469f6d4b 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-shire.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set40/set40-shire.json @@ -711,6 +711,205 @@ } ] }, + "40_267": { + "title": "*Sam", + "subtitle": "Dropper of Eaves", + "culture": "shire", + "cost": 2, + "type": "companion", + "race": "hobbit", + "strength": 3, + "vitality": 4, + "resistance": 9, + "keyword": "ring-bound", + "effects": [ + { + "type": "modifier", + "modifier": { + "type": "modifyResistance", + "amount": -4, + "filter": "self,ring bearer" + } + }, + { + "type": "activated", + "phase": "fellowship", + "cost": { + "type": "exert", + "filter": "self", + "times": 2 + }, + "effect": { + "type": "discard", + "filter": "choose(side(shadow),condition,attachedTo(companion))" + } + }, + { + "type": "trigger", + "optional": true, + "trigger": { + "type": "killed", + "filter": "name(Frodo),ring bearer" + }, + "effect": { + "type": "makeSelfRingBearer" + } + } + ] + }, + "40_268": { + "title": "*Sam", + "subtitle": "Humble Halfling", + "culture": "shire", + "cost": 2, + "type": "companion", + "race": "hobbit", + "strength": 3, + "vitality": 4, + "resistance": 9, + "keyword": "ring-bound", + "effects": [ + { + "type": "modifier", + "modifier": { + "type": "modifyResistance", + "amount": -4, + "filter": "self,ring bearer" + } + }, + { + "type": "trigger", + "optional": true, + "trigger": { + "type": "startOfTurn" + }, + "cost": { + "type": "exert", + "filter": "choose(name(Sam))" + }, + "effect": { + "type": "removeBurdens" + } + }, + { + "type": "trigger", + "optional": true, + "trigger": { + "type": "killed", + "filter": "name(Frodo),ring bearer" + }, + "effect": { + "type": "makeSelfRingBearer" + } + } + ] + }, + "40_269": { + "title": "*Sam's Pipe", + "culture": "shire", + "cost": 1, + "type": "possession", + "possession": "pipe", + "target": "name(Sam)", + "effects": { + "type": "activated", + "phase": "regroup", + "cost": [ + { + "type": "discard", + "filter": "choose(pipeweed,possession)" + }, + { + "type": "chooseHowManyToSpot", + "filter": "pipe", + "memorize": "numberOfPipes" + } + ], + "effect": { + "type": "removeBurdens", + "amount": { + "type": "fromMemory", + "memory": "numberOfPipes" + } + }, + "limitPerPhase": 1 + } + }, + "40_270": { + "title": "Save the Shire", + "culture": "shire", + "cost": 0, + "type": "event", + "keyword": "skirmish", + "effects": { + "type": "event", + "effect": [ + { + "type": "modifyStrength", + "filter": "choose(hobbit)", + "amount": 1, + "memorize": "chosenHobbit" + }, + { + "type": "addTrigger", + "optional": true, + "trigger": { + "type": "winsSkirmish", + "filter": "memory(chosenHobbit)" + }, + "effect": { + "type": "removeBurdens", + "amount": 2 + } + } + ] + } + }, + "40_271": { + "title": "Southern Star", + "subtitle": "Southfarthing Vintage", + "culture": "shire", + "cost": 1, + "type": "possession", + "keyword": [ + "support area", + "pipeweed" + ], + "effects": { + "type": "trigger", + "optional": true, + "trigger": { + "type": "played", + "filter": "self" + }, + "cost": { + "type": "discardFromHand", + "forced": false + }, + "effect": { + "type": "heal", + "filter": "choose(hobbit)" + } + } + }, + "40_272": { + "title": "*Sting", + "subtitle": "Baggins Birthright", + "culture": "shire", + "cost": 1, + "type": "possession", + "possession": "hand weapon", + "strength": 2, + "target": "name(Frodo)", + "effects": { + "type": "modifier", + "modifier": { + "type": "modifyStrength", + "filter": "bearer,strengthLessThan(9)", + "amount": 2 + } + } + }, "40_319": { "title": "*A Hobbit's Tale", "culture": "shire", diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_267.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_267.java deleted file mode 100644 index d216c82f2..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_267.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.gempukku.lotro.cards.set40.shire; - -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.ActivateCardAction; -import com.gempukku.lotro.logic.actions.OptionalTriggerAction; -import com.gempukku.lotro.logic.cardtype.AbstractCompanion; -import com.gempukku.lotro.logic.effects.MakeRingBearerEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.ResistanceModifier; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Title: *Sam, Dropper of Eaves - * Set: Second Edition - * Side: Free - * Culture: Shire - * Twilight Cost: 2 - * Type: Companion - Hobbit - * Strength: 3 - * Vitality: 4 - * Resistance: 9 - * Card Number: 1C267 - * Game Text: Ring-bound. While bearing The One Ring, Sam is resistance -4. - * Fellowship: Exert Sam twice to discard a Shadow condition borne by a companion. - * Response: If Frodo dies, make Sam the Ring-bearer. - */ -public class Card40_267 extends AbstractCompanion { - public Card40_267() { - super(2, 3, 4, 9, Culture.SHIRE, Race.HOBBIT, null, "Sam", - "Dropper of Eaves", true); - addKeyword(Keyword.RING_BOUND); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { - ResistanceModifier modifier = new ResistanceModifier(self, Filters.and(self, Filters.hasAttached(CardType.THE_ONE_RING)), -4); - return Collections.singletonList(modifier); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self) - && PlayConditions.canSelfExert(self, 2, game)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, self)); - action.appendEffect( - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Side.SHADOW, CardType.CONDITION, Filters.attachedTo(CardType.COMPANION))); - return Collections.singletonList(action); - } - return null; - } - - @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.forEachKilled(game, effectResult, Filters.frodo, Filters.ringBearer)) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendEffect(new MakeRingBearerEffect(self)); - return Collections.singletonList(action); - } - - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_268.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_268.java deleted file mode 100644 index 68d11cd4d..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_268.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.gempukku.lotro.cards.set40.shire; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -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.actions.OptionalTriggerAction; -import com.gempukku.lotro.logic.cardtype.AbstractCompanion; -import com.gempukku.lotro.logic.effects.MakeRingBearerEffect; -import com.gempukku.lotro.logic.effects.RemoveBurdenEffect; -import com.gempukku.lotro.logic.effects.SelfExertEffect; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.ResistanceModifier; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Title: *Sam, Humble Halfling - * Set: Second Edition - * Side: Free - * Culture: Shire - * Twilight Cost: 2 - * Type: Companion - Hobbit - * Strength: 3 - * Vitality: 4 - * Resistance: 9 - * Card Number: 1R268 - * Game Text: Ring-bound. While bearing The One Ring, Sam is resistance -4. - * At the start of each of your turns, you may exert Sam to remove a burden. - * Response: If Frodo dies, make Sam the Ring-bearer. - */ -public class Card40_268 extends AbstractCompanion { - public Card40_268() { - super(2, 3, 4, 9, Culture.SHIRE, Race.HOBBIT, null, "Sam", - "Humble Halfling", true); - addKeyword(Keyword.RING_BOUND); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { - ResistanceModifier modifier = new ResistanceModifier(self, Filters.and(self, Filters.hasAttached(CardType.THE_ONE_RING)), -4); - return Collections.singletonList(modifier); - } - - @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.forEachKilled(game, effectResult, Filters.frodo, Filters.ringBearer)) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendEffect(new MakeRingBearerEffect(self)); - return Collections.singletonList(action); - } - if (TriggerConditions.startOfTurn(game, effectResult) - && PlayConditions.canSelfExert(self, game)) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendCost( - new SelfExertEffect(action, self)); - action.appendEffect( - new RemoveBurdenEffect(playerId, self)); - return Collections.singletonList(action); - } - - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_269.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_269.java deleted file mode 100644 index 7b74119bf..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_269.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.gempukku.lotro.cards.set40.shire; - -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.ActivateCardAction; -import com.gempukku.lotro.logic.cardtype.AbstractAttachableFPPossession; -import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; -import com.gempukku.lotro.logic.decisions.ForEachYouSpotDecision; -import com.gempukku.lotro.logic.effects.IncrementPhaseLimitEffect; -import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect; -import com.gempukku.lotro.logic.effects.RemoveBurdenEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Title: *Sam's Pipe - * Set: Second Edition - * Side: Free - * Culture: Shire - * Twilight Cost: 1 - * Type: Possession - Pipe - * Card Number: 1U269 - * Game Text: Bearer must be Sam. Fellowship: Discard a Pipeweed possession and spot X pipes to remove X burdens (limit once per phase). - */ -public class Card40_269 extends AbstractAttachableFPPossession { - public Card40_269() { - super(1, 0, 0, Culture.SHIRE, PossessionClass.PIPE, "Sam's Pipe", null, true); - } - - @Override - public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { - return Filters.sam; - } - - @Override - public List getPhaseActionsInPlay(final String playerId, LotroGame game, final PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self) - && PlayConditions.canDiscardFromPlay(self, game, CardType.POSSESSION, Keyword.PIPEWEED) - && PlayConditions.checkPhaseLimit(game, self, 1)) { - final ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new IncrementPhaseLimitEffect(self, 1)); - action.appendCost( - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, CardType.POSSESSION, Keyword.PIPEWEED)); - action.appendEffect( - new PlayoutDecisionEffect(playerId, - new ForEachYouSpotDecision(1, "Choose number of pipes you wish to spot", game, Integer.MAX_VALUE, PossessionClass.PIPE) { - @Override - public void decisionMade(String result) throws DecisionResultInvalidException { - final int spotCount = getValidatedResult(result); - action.appendEffect( - new RemoveBurdenEffect(playerId, self, spotCount)); - } - })); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_270.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_270.java deleted file mode 100644 index c1c312d8d..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_270.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.gempukku.lotro.cards.set40.shire; - -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.common.Side; -import com.gempukku.lotro.game.AbstractActionProxy; -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.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseActionProxyEffect; -import com.gempukku.lotro.logic.effects.RemoveBurdenEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Title: Save the Shire - * Set: Second Edition - * Side: Free - * Culture: Shire - * Twilight Cost: 0 - * Type: Event - Skirmish - * Card Number: 1R270 - * Game Text: Make a Hobbit strength +1. If that Hobbit wins this skirmish, you may remove 2 burdens. - */ -public class Card40_270 extends AbstractEvent { - public Card40_270() { - super(Side.FREE_PEOPLE, 0, Culture.SHIRE, "Save the Shire", Phase.SKIRMISH); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, final PhysicalCard self) { - final PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, 1, Race.HOBBIT) { - @Override - protected void selectedCharacterCallback(final PhysicalCard selectedCharacter) { - action.appendEffect( - new AddUntilEndOfPhaseActionProxyEffect( - new AbstractActionProxy() { - @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult) { - if (TriggerConditions.winsSkirmish(game, effectResult, selectedCharacter) - && playerId.equals(self.getOwner())) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.setVirtualCardAction(true); - action.appendEffect( - new RemoveBurdenEffect(playerId, self, 2)); - return Collections.singletonList(action); - } - return null; - } - } - )); - } - }); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_271.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_271.java deleted file mode 100644 index 719f9cafe..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_271.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.gempukku.lotro.cards.set40.shire; - -import com.gempukku.lotro.logic.cardtype.AbstractPermanent; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; -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.ChooseAndDiscardCardsFromHandEffect; -import com.gempukku.lotro.logic.effects.ChooseAndHealCharactersEffect; -import com.gempukku.lotro.logic.timing.EffectResult; - -import java.util.Collections; -import java.util.List; - -/** - * Title: Southern Star, Southfarthing Vintage - * Set: Second Edition - * Side: Free - * Culture: Shire - * Twilight Cost: 1 - * Type: Possession - Support Area - * Card Number: 1C271 - * Game Text: Pipeweed. When you play this possession, you may discard a card from hand to heal a Hobbit. - */ -public class Card40_271 extends AbstractPermanent { - public Card40_271() { - super(Side.FREE_PEOPLE, 1, CardType.POSSESSION, Culture.SHIRE, "Southern Star", - "Southfarthing Vintage", false); - addKeyword(Keyword.PIPEWEED); - } - - @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.played(game, effectResult, self) - && PlayConditions.canDiscardFromHand(game, playerId, 1, Filters.any)) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendCost( - new ChooseAndDiscardCardsFromHandEffect(action, playerId, false, 1, Filters.any)); - action.appendEffect( - new ChooseAndHealCharactersEffect(action, playerId, Race.HOBBIT)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_272.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_272.java deleted file mode 100644 index 000ec8df6..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/shire/Card40_272.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gempukku.lotro.cards.set40.shire; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Filterable; -import com.gempukku.lotro.common.PossessionClass; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.cardtype.AbstractAttachableFPPossession; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; - -import java.util.Collections; -import java.util.List; - -/** - * Title: *Sting, Baggins Birthright - * Set: Second Edition - * Side: Free - * Culture: Shire - * Twilight Cost: 1 - * Type: Possession - Hand Weapon - * Strength: +2 - * Card Number: 1R272 - * Game Text: Bearer must be Frodo. While skirmishing a minion that has strength 8 or less, Frodo is strength +2. - */ -public class Card40_272 extends AbstractAttachableFPPossession { - public Card40_272() { - super(1, 2, 0, Culture.SHIRE, PossessionClass.HAND_WEAPON, "Sting", - "Baggins Birthright", true); - } - - @Override - public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { - return Filters.frodo; - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { - StrengthModifier modifier = new StrengthModifier(self, Filters.and(Filters.hasAttached(self), - Filters.inSkirmishAgainst(CardType.MINION, Filters.lessStrengthThan(9))), 2); - return Collections.singletonList(modifier); - } -}