From 4b6ebc8a68faafe41265d2772459d46eae8918c2 Mon Sep 17 00:00:00 2001 From: MarcinSc Date: Mon, 22 Apr 2024 13:00:36 +0700 Subject: [PATCH] Migrated Site cards in set 5 to hjson --- .../lotro/cards/set5/site/Card5_118.java | 48 ------------ .../lotro/cards/set5/site/Card5_119.java | 57 -------------- .../lotro/cards/set5/site/Card5_120.java | 34 -------- .../official/set05}/set05-Sites.hjson | 78 +++++++++++-------- .../modifier/ModifierSourceFactory.java | 1 + 5 files changed, 46 insertions(+), 172 deletions(-) delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/site/Card5_118.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/site/Card5_119.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/site/Card5_120.java rename gemp-lotr/gemp-lotr-cards/src/main/resources/{card-stubs => cards/official/set05}/set05-Sites.hjson (67%) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/site/Card5_118.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/site/Card5_118.java deleted file mode 100644 index edf6d9443..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/site/Card5_118.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.gempukku.lotro.cards.set5.site; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.SitesBlock; -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.AbstractSite; -import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect; -import com.gempukku.lotro.logic.effects.RemoveTwilightEffect; -import com.gempukku.lotro.logic.modifiers.ModifierFlag; -import com.gempukku.lotro.logic.modifiers.SpecialFlagModifier; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Battle of Helm's Deep - * Twilight Cost: 6 - * Type: Site - * Site: 7T - * Game Text: Regroup: Spot your minion and remove (9) to make the fellowship move again this turn (if the move - * limit allows). - */ -public class Card5_118 extends AbstractSite { - public Card5_118() { - super("Hornburg Wall", SitesBlock.TWO_TOWERS, 7, 6, Direction.RIGHT); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseSiteDuringPhase(game, Phase.REGROUP, self) - && PlayConditions.canSpot(game, CardType.MINION, Filters.owner(playerId)) - && game.getGameState().getTwilightPool() >= 9) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new RemoveTwilightEffect(9)); - action.appendEffect( - new AddUntilEndOfPhaseModifierEffect( - new SpecialFlagModifier(self, ModifierFlag.HAS_TO_MOVE_IF_POSSIBLE))); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/site/Card5_119.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/site/Card5_119.java deleted file mode 100644 index 791419521..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/site/Card5_119.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.gempukku.lotro.cards.set5.site; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.SitesBlock; -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.AbstractSite; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.PreventCardEffect; -import com.gempukku.lotro.logic.effects.RemoveTwilightEffect; -import com.gempukku.lotro.logic.effects.WoundCharactersEffect; -import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -/** - * Set: Battle of Helm's Deep - * Twilight Cost: 8 - * Type: Site - * Site: 8T - * Game Text: Plains. Response: If your mounted minion is about to take a wound, remove (2) to prevent that wound. - */ -public class Card5_119 extends AbstractSite { - public Card5_119() { - super("Nan CurunĂ­r", SitesBlock.TWO_TOWERS, 8, 8, Direction.RIGHT); - addKeyword(Keyword.PLAINS); - } - - @Override - public List getOptionalInPlayBeforeActions(String playerId, LotroGame game, Effect effect, PhysicalCard self) { - if (TriggerConditions.isGettingWounded(effect, game, CardType.MINION, Filters.owner(playerId), Filters.mounted) - && game.getGameState().getTwilightPool() >= 2) { - final WoundCharactersEffect woundEffect = (WoundCharactersEffect) effect; - final Collection cardsToBeWounded = woundEffect.getAffectedCardsMinusPrevented(game); - - final ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new RemoveTwilightEffect(2)); - action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose minion", CardType.MINION, Filters.owner(playerId), Filters.mounted, Filters.in(cardsToBeWounded)) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard minion) { - action.appendEffect( - new PreventCardEffect(woundEffect, minion)); - } - }); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/site/Card5_120.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/site/Card5_120.java deleted file mode 100644 index c9604b3e5..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/site/Card5_120.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.gempukku.lotro.cards.set5.site; - -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.SitesBlock; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.cardtype.AbstractSite; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.ModifierFlag; -import com.gempukku.lotro.logic.modifiers.SpecialFlagModifier; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Battle of Helm's Deep - * Twilight Cost: 9 - * Type: Site - * Site: 9T - * Game Text: Underground. The Free Peoples player wins the game only if the Ring-bearer survives until Shadow players - * reconcile. - */ -public class Card5_120 extends AbstractSite { - public Card5_120() { - super("Caverns of Isengard", SitesBlock.TWO_TOWERS, 9, 9, Direction.LEFT); - addKeyword(Keyword.UNDERGROUND); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { - return Collections.singletonList( - new SpecialFlagModifier(self, ModifierFlag.WIN_CHECK_AFTER_SHADOW_RECONCILE)); - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set05-Sites.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set05/set05-Sites.hjson similarity index 67% rename from gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set05-Sites.hjson rename to gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set05/set05-Sites.hjson index 0c44a5b46..43603bdc2 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set05-Sites.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set05/set05-Sites.hjson @@ -19,20 +19,29 @@ unique: false twilight: 6 type: Site - site: 7T + site: 7 block: Towers direction: Right - /*requires: { - - } effects: [ - { - - } - { - - } - ]*/ + { + type: activated + phase: regroup + requires: { + type: canSpot + filter: your,minion + } + cost: { + type: removeTwilight + amount: 9 + } + effect: { + type: addModifier + modifier: { + type: hasToMoveIfAble + } + } + } + ] gametext: Regroup: Spot your minion and remove (9) to make the fellowship move again this turn (if the move limit allows). lore: "" promotext: "" @@ -63,21 +72,27 @@ unique: false twilight: 8 type: Site - site: 8T + site: 8 block: Towers direction: Left keywords: Plains - /*requires: { - - } effects: [ - { - - } - { - - } - ]*/ + { + type: activatedTrigger + trigger: { + type: aboutToTakeWound + filter: your,mounted,minion + } + cost: { + type: removeTwilight + amount: 2 + } + effect: { + type: preventWound + filter: choose(your,mounted,minion) + } + } + ] gametext: Plains. Response: If your mounted minion is about to take a wound, remove (2) to prevent that wound. lore: "" promotext: "" @@ -108,21 +123,18 @@ unique: false twilight: 9 type: Site - site: 9T + site: 9 block: Towers direction: Right keywords: Underground - /*requires: { - - } effects: [ - { - - } - { - - } - ]*/ + { + type: modifier + modifier: { + type: winsAfterReconcile + } + } + ] gametext: Underground. The Free Peoples player wins the game only if the Ring-bearer survives until Shadow players reconcile. lore: "" promotext: "" diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/ModifierSourceFactory.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/ModifierSourceFactory.java index 603484410..9a4da5a07 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/ModifierSourceFactory.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/ModifierSourceFactory.java @@ -81,6 +81,7 @@ public class ModifierSourceFactory { modifierProducers.put("shadowusesvitinsteadofstr", new ShadowUsesVitInsteadOfStr()); modifierProducers.put("skipphase", new SkipPhase()); modifierProducers.put("unhastycompanioncanparticipateinskirmishes", new UnhastyCompanionCanParticipateInSkirmishes()); + modifierProducers.put("winsafterreconcile", new AddModifierFlag(ModifierFlag.WIN_CHECK_AFTER_SHADOW_RECONCILE)); } public ModifierSource getModifier(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {