diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js index 22f4a3143..ed50a8f2e 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js +++ b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js @@ -794,6 +794,8 @@ var PCCards = { '102_71' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S071.0_card.jpg', // Palantir of Orthanc, Corrupted Relic (V2R72) [Playtest] '102_72' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S072.0_card.jpg', + // Fortress of My Fathers (V249) + '102_73' : 'https://i.lotrtcgpc.net/sets/V2/LOTR-ENV2S073.0_card.jpg', //V2-associated Errata // Erethon, Naith Lieutenant (4R65) [Errata] diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Rohan-playtest.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Rohan-playtest.hjson index 6b34b1c67..16c8d6c2f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Rohan-playtest.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Rohan-playtest.hjson @@ -140,17 +140,20 @@ effects: [ { type: ToPlay - requires: [ - { - type: CanSpot - filter: name(Theoden) - } - { - type: CanSpot - filter: culture(Rohan), Man - count: 3 - } - ] + requires: { + type: Or + requires: [ + { + type: CanSpot + filter: name(Theoden) + } + { + type: CanSpot + filter: culture(Rohan), Man + count: 3 + } + ] + } } { type: Activated @@ -749,10 +752,6 @@ twilight: 2 type: Event timewords: Skirmish - /*requires: { - - } - */ effects: { type: event requires: { @@ -808,4 +807,92 @@ } } } + + + 102_73: { + cardInfo: { + imagePath: sets/V2/LOTR-ENV2S049.0_card.jpg + //parentId: 102_49 + //One of: Variant, Errata, Reprint + //parentType: Variant + //parentPath: alts/promo + version: 0 + collInfo: V249 + rarity: + setNum: "V2" + cardNum: 49 + style: Standard + } + title: Fortress of My Fathers + unique: false + side: Free Peoples + culture: Rohan + twilight: 1 + type: Possession + keywords: [ + Support Area + Fortification + ] + effects: [ + { + type: ToPlay + requires: { + type: Or + requires: [ + { + type: CanSpot + filter: valiant,companion + count: 2 + } + { + type: CanSpot + filter: culture(Rohan), Companion + count: 3 + } + ] + } + } + { + type: Response + trigger: { + type: aboutToTakeWound + filter: culture(rohan),companion + } + cost: { + type: Choice + texts: [ + Discard Fortress of My Fathers + Discard 2 other {rohan} possessions + ] + effects: [ + { + type: discard + select: self + } + { + type: discard + select: other,culture(rohan),possession + count: 2 + } + ] + } + effect: [ + { + type: preventWound + select: choose(culture(rohan),companion) + } + ] + + } + ] + gametext: Fortification. To play, spot 3 [rohan] companions (or 2 valiant companions).
Response: If a [rohan] companion is about to take a wound, discard this or 2 other [rohan] possessions to prevent that wound. + lore: "'Is it not said that no foe has ever taken the Hornburg, if men defended it?'" + promotext: "" + alts: { + promos: { + } + errata: { + } + } + } } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_073_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_073_Tests.java new file mode 100644 index 000000000..2e45ce249 --- /dev/null +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_073_Tests.java @@ -0,0 +1,73 @@ +package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02; + +import com.gempukku.lotro.cards.GenericCardTestHelper; +import com.gempukku.lotro.common.*; +import com.gempukku.lotro.game.CardNotFoundException; +import com.gempukku.lotro.game.PhysicalCardImpl; +import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; +import org.junit.Test; + +import java.util.HashMap; + +import static org.junit.Assert.*; + +public class Card_V2_073_Tests +{ + + protected GenericCardTestHelper GetScenario() throws CardNotFoundException, DecisionResultInvalidException { + return new GenericCardTestHelper( + new HashMap<>() + {{ + put("card", "102_73"); + // put other cards in here as needed for the test case + }}, + GenericCardTestHelper.FellowshipSites, + GenericCardTestHelper.FOTRFrodo, + GenericCardTestHelper.RulingRing + ); + } + + @Test + public void FortressofMyFathersStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException { + + /** + * Set: V2 + * Name: Fortress of My Fathers + * Unique: False + * Side: Free Peoples + * Culture: Rohan + * Twilight Cost: 1 + * Type: Possession + * Subtype: Support area + * Game Text: 73 + */ + + var scn = GetScenario(); + + var card = scn.GetFreepsCard("card"); + + assertEquals("Fortress of My Fathers", card.getBlueprint().getTitle()); + assertNull(card.getBlueprint().getSubtitle()); + assertFalse(card.getBlueprint().isUnique()); + assertEquals(Side.FREE_PEOPLE, card.getBlueprint().getSide()); + assertEquals(Culture.ROHAN, card.getBlueprint().getCulture()); + assertEquals(CardType.POSSESSION, card.getBlueprint().getCardType()); + assertTrue(scn.hasKeyword(card, Keyword.SUPPORT_AREA)); + assertEquals(1, card.getBlueprint().getTwilightCost()); + } + + // Uncomment any @Test markers below once this is ready to be used + //@Test + public void FortressofMyFathersTest1() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + + var card = scn.GetFreepsCard("card"); + scn.FreepsMoveCardToHand(card); + + scn.StartGame(); + scn.FreepsPlayCard(card); + + assertEquals(1, scn.GetTwilight()); + } +}