From 2054925fcf6289f912c42bbba78b477a4ad80939 Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Sun, 7 Nov 2021 18:59:57 -0600 Subject: [PATCH] Fixes Fixed multiple instances of One Purpose triggering on the same tentacle. Fixed Darkness Grew acting like it could be activated at any time. Also fixed it not looking for the Balrog. Hopefully fixed Dark Waters not self-defending --- .../cards/set101/set101_moria_playtest.json | 64 +++++++++++-------- .../pc/vset1/vpack1/Card_V1_002Tests.java | 5 +- .../pc/vset1/vpack1/Card_V1_034Tests.java | 36 ++++++++++- .../pc/vset1/vpack1/Card_V1_035Tests.java | 13 ++-- 4 files changed, 86 insertions(+), 32 deletions(-) diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_moria_playtest.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_moria_playtest.json index 11f9595f0..a60bcbd1a 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_moria_playtest.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_moria_playtest.json @@ -8,17 +8,15 @@ "keyword": "support area", "effects": [ { - "type": "trigger", - "optional": true, + "type": "activatedTrigger", "trigger": { "type": "winsskirmish", - "filter": "your,tentacle", - "memorize": "winner" + "filter": "your,tentacle,inSkirmish", }, "effect": { - "type": "stackcards", - "where": "self", - "filter": "memory(winner)" + "type": "stackCards", + "filter": "choose(your,tentacle,inSkirmish)", + "where": "self" } }, { @@ -152,7 +150,23 @@ ] } }, - + { + "type": "activatedtrigger", + "trigger": { + "type": "abouttodiscard", + "filter": "self" + }, + "cost": { + "type": "discardstackedcards", + "on": "self", + "filter": "choose(tentacle)", + "count": 1 + }, + "effect": { + "type": "preventDiscard", + "filter": "self" + } + } ] }, @@ -167,24 +181,24 @@ { "type": "activated", "phase": "shadow", + "effect":{ + "type": "stackCardsFromHand", + "filter": "choose(culture(moria),item)", + "where": "self" + }, + }, + { + "type": "activated", + "phase": "shadow", + "condition": { + "type": "canSpot", + "filter": "name(The Balrog)" + }, "effect": { - "type": "choice", - "texts": [ - "Stack a [moria] item here.", - "Spot The Balrog to take a [moria] item here into hand." - ], - "effects": [ - { - "type": "stackCardsFromHand", - "filter": "choose(culture(moria),item)", - "where": "self" - }, - { - "type": "putStackedCardsIntoHand", - "filter": "choose(culture(moria),item)", - "on": "self" - } - ] + "type": "putStackedCardsIntoHand", + + "filter": "choose(culture(moria),item)", + "on": "self" } }, ] diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_002Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_002Tests.java index a61dd3eb3..8bab830ac 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_002Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_002Tests.java @@ -117,11 +117,12 @@ public class Card_V1_002Tests scn.FreepsUseCardAction(deep); - //assertTrue(scn.FreepsDecisionAvailable("Choose")); - //scn.FreepsChooseCard(axe); + //for some reason, pulling cards stacked on a condition flat out doesn't work here in the test rig. assertEquals(1, scn.GetWoundsOn(gimli)); assertEquals(1, scn.GetFreepsHandCount()); assertEquals(1, scn.GetStackedCards(deep).size()); + + //for some reason, pulling cards stacked on a condition flat out doesn't work here in the test rig. } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_034Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_034Tests.java index 374f3ba15..183bea811 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_034Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_034Tests.java @@ -27,6 +27,7 @@ public class Card_V1_034Tests put("darkwaters", "151_34"); put("ftentacle1", "2_58"); put("ftentacle2", "2_58"); + put("song", "3_5"); }}, GenericCardTestHelper.FellowshipSites, GenericCardTestHelper.FOTRFrodo, @@ -60,7 +61,7 @@ public class Card_V1_034Tests assertEquals(0, darkwaters.getBlueprint().getTwilightCost()); assertEquals(CardType.CONDITION, darkwaters.getBlueprint().getCardType()); assertEquals(Culture.MORIA, darkwaters.getBlueprint().getCulture()); - assertEquals(Side.FREE_PEOPLE, darkwaters.getBlueprint().getSide()); + assertEquals(Side.SHADOW, darkwaters.getBlueprint().getSide()); } @Test @@ -82,12 +83,45 @@ public class Card_V1_034Tests assertTrue(scn.ShadowActionAvailable("Dark Waters")); assertEquals(7, scn.GetTwilight()); + assertEquals(0, scn.GetStackedCards(darkwaters).size()); scn.ShadowUseCardAction(darkwaters); scn.ShadowChooseCard(ftentacle1); assertEquals(6, scn.GetTwilight()); + assertEquals(1, scn.GetStackedCards(darkwaters).size()); assertTrue(scn.ShadowActionAvailable("Dark Waters")); scn.ShadowUseCardAction(darkwaters); + assertEquals(5, scn.GetTwilight()); + assertEquals(2, scn.GetStackedCards(darkwaters).size()); + + + //for some reason, pulling cards stacked on a condition flat out doesn't work here in the test rig. + assertTrue(scn.ShadowActionAvailable("Dark Waters")); scn.ShadowUseCardAction(darkwaters); + assertEquals(1, scn.GetStackedCards(darkwaters).size()); + } + + + @Test + public void DarkWatersCanBurnAStackedTentacleToPreventSelfDiscard() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + GenericCardTestHelper scn = GetScenario(); + + PhysicalCardImpl song = scn.GetFreepsCard("song"); + scn.FreepsMoveCardToSupportArea(song); + + PhysicalCardImpl darkwaters = scn.GetShadowCard("darkwaters"); + PhysicalCardImpl ftentacle1 = scn.GetShadowCard("ftentacle1"); + PhysicalCardImpl ftentacle2 = scn.GetShadowCard("ftentacle2"); + scn.ShadowMoveCardToSupportArea(darkwaters); + scn.StackCardsOn(darkwaters, ftentacle1, ftentacle2); + + scn.StartGame(); + + scn.FreepsUseCardAction(song); + scn.FreepsChooseCard(darkwaters); + assertTrue(scn.ShadowHasOptionalTriggerAvailable()); + + } } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_035Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_035Tests.java index 3db0db100..33f86166d 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_035Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_035Tests.java @@ -58,11 +58,11 @@ public class Card_V1_035Tests assertEquals(1, darkness.getBlueprint().getTwilightCost()); assertEquals(CardType.CONDITION, darkness.getBlueprint().getCardType()); assertEquals(Culture.MORIA, darkness.getBlueprint().getCulture()); - assertEquals(Side.FREE_PEOPLE, darkness.getBlueprint().getSide()); + assertEquals(Side.SHADOW, darkness.getBlueprint().getSide()); } @Test - public void TheDarknessGrewTest1() throws DecisionResultInvalidException, CardNotFoundException { + public void TheDarknessGrewStacksAndRetrievesItems() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup GenericCardTestHelper scn = GetScenario(); @@ -78,14 +78,19 @@ public class Card_V1_035Tests scn.ShadowPlayCard(darkness); assertTrue(scn.ShadowActionAvailable("Darkness Grew")); + assertEquals(0, scn.GetStackedCards(darkness).size()); scn.ShadowUseCardAction(darkness); scn.ShadowChooseCard(whip); + assertEquals(1, scn.GetStackedCards(darkness).size()); scn.ShadowUseCardAction(darkness); + assertEquals(2, scn.GetStackedCards(darkness).size()); + assertFalse(scn.ShadowActionAvailable("Darkness Grew")); + //for some reason, pulling cards stacked on a condition flat out doesn't work here in the test rig. scn.ShadowPlayCard(balrog); - + assertTrue(scn.ShadowActionAvailable("Darkness Grew")); scn.ShadowUseCardAction(darkness); + assertEquals(1, scn.GetStackedCards(darkness).size()); - assertEquals(1, scn.GetTwilight()); } }