diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/site/Card20_416.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/site/Card20_416.java new file mode 100644 index 000000000..2e02eed1d --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/site/Card20_416.java @@ -0,0 +1,48 @@ +package com.gempukku.lotro.cards.set20.site; + +import com.gempukku.lotro.cards.AbstractSite; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.SnapshotAndApplyStrengthModifierUntilStartOfPhaseEffect; +import com.gempukku.lotro.common.Block; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.GameUtils; +import com.gempukku.lotro.logic.actions.ActivateCardAction; +import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect; +import com.gempukku.lotro.logic.modifiers.evaluator.ConstantEvaluator; +import com.gempukku.lotro.logic.timing.Action; + +import java.util.Collections; +import java.util.List; + +/** + * Bag End + * 1 0 + * Dwelling. + * Fellowship: Discard a card from hand to make Frodo strength +1 until the regroup phase. + */ +public class Card20_416 extends AbstractSite { + public Card20_416() { + super("Bag End", Block.SECOND_ED, 1, 0, null); + addKeyword(Keyword.DWELLING); + } + + @Override + public List getPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + if (PlayConditions.canUseSiteDuringPhase(game, Phase.FELLOWSHIP, self) + && GameUtils.isFP(game, playerId) + && PlayConditions.canDiscardFromHand(game, playerId, 1, Filters.any)) { + ActivateCardAction action = new ActivateCardAction(self); + action.appendCost( + new ChooseAndDiscardCardsFromHandEffect(action, playerId, false, 1)); + action.appendEffect( + new SnapshotAndApplyStrengthModifierUntilStartOfPhaseEffect(self, + new ConstantEvaluator(1), Phase.REGROUP, Filters.frodo)); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Block.java b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Block.java index dfce632ae..d10311b36 100644 --- a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Block.java +++ b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Block.java @@ -1,7 +1,8 @@ package com.gempukku.lotro.common; public enum Block { - FELLOWSHIP("Fellowship"), TWO_TOWERS("Towers"), KING("King"), SHADOWS("Shadows and onwards"), SPECIAL("Special"); + FELLOWSHIP("Fellowship"), TWO_TOWERS("Towers"), KING("King"), SHADOWS("Shadows and onwards"), SPECIAL("Special"), + SECOND_ED("2nd edition"); private String _humanReadable; diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/GameUtils.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/GameUtils.java index dcc33541e..3bd93829b 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/GameUtils.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/GameUtils.java @@ -13,6 +13,10 @@ import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; import java.util.*; public class GameUtils { + public static boolean isFP(LotroGame game, String playerId) { + return game.getGameState().getCurrentPlayerId().equals(playerId); + } + public static String getFullName(PhysicalCard card) { LotroCardBlueprint blueprint = card.getBlueprint(); return getFullName(blueprint);