diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Gondor-playtest.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Gondor-playtest.hjson
index 5ffb7b3ba..05135a2f6 100644
--- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Gondor-playtest.hjson
+++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Gondor-playtest.hjson
@@ -28,17 +28,48 @@
signet: Theoden
resistance: 6
keywords: Valiant
- /*requires: {
-
- }
effects: [
{
-
+ type: modifier
+ modifier: {
+ type: FPCultureSpot
+ requires: {
+ type: canSpot
+ count: 3
+ filter: valiant,companion
+ }
+ amount: -1
+ }
}
{
-
+ type: activated
+ requires: {
+ type: canSpot
+ count: 1
+ filter: valiant,companion,inSkirmish
+ }
+ phase: skirmish
+ cost: {
+ type: exert
+ filter: self
+ }
+ effect: {
+ type: modifyStrength
+ filter: choose(valiant,companion,inSkirmish)
+ memorize: chosenCompanion
+ amount: {
+ type: requires
+ requires: {
+ type: memoryMatches
+ memory: chosenCompanion
+ filter: Exhausted
+ }
+ true: 3
+ false: 2
+ }
+ }
}
- ]*/
+ ]
gametext: Valiant.
While you can spot 3 valiant companions, the number of free peoples cultures that can be counted is-1.
Skirmish: If a valiant companion is skirmishing a minion with a strength of 12 or higher, exert Aragorn to make that companion strength +2 (or +3 if that companion is exhausted).
lore: ""
promotext: ""
diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_016_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_016_Tests.java
index fc10519d3..bda8a4185 100644
--- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_016_Tests.java
+++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_016_Tests.java
@@ -5,6 +5,8 @@ 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 com.gempukku.lotro.logic.modifiers.FPCulturesSideSpotCountModifier;
+import com.gempukku.lotro.logic.modifiers.FPCulturesSpotCountModifier;
import org.junit.Test;
import java.util.HashMap;
@@ -19,6 +21,12 @@ public class Card_V2_016_Tests
new HashMap<>()
{{
put("card", "102_16");
+ put("veowyn", "4_270");
+ put("vgamling", "5_82");
+ put("vrscout", "5_90");
+ put("gandalf", "1_72");
+ put("grima", "5_51");
+ put("twk", "1_237");
// put other cards in here as needed for the test case
}},
GenericCardTestHelper.FellowshipSites,
@@ -62,21 +70,135 @@ public class Card_V2_016_Tests
assertEquals(4, card.getBlueprint().getTwilightCost());
assertEquals(7, card.getBlueprint().getStrength());
assertEquals(4, card.getBlueprint().getVitality());
+ assertEquals(6, card.getBlueprint().getResistance());
assertEquals(Signet.THEODEN, card.getBlueprint().getSignet());
}
- // Uncomment any @Test markers below once this is ready to be used
- //@Test
- public void AragornTest1() throws DecisionResultInvalidException, CardNotFoundException {
+ // @Test
+ public void ReducesFPsCulturesSpottedWhenThreeValiantCompanionsArePresent() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
- var scn = GetScenario();
+ GenericCardTestHelper scn = GetScenario();
- var card = scn.GetFreepsCard("card");
- scn.FreepsMoveCardToHand(card);
+ PhysicalCardImpl card = scn.GetFreepsCard("card");
+ PhysicalCardImpl veowyn = scn.GetFreepsCard("veowyn");
+ PhysicalCardImpl vgamling = scn.GetFreepsCard("vgamling");
+ PhysicalCardImpl vrscout = scn.GetFreepsCard("vrscout");
+ PhysicalCardImpl gandalf = scn.GetFreepsCard("gandalf");
+ scn.FreepsMoveCardToHand(card, veowyn, gandalf, vgamling, vrscout);
scn.StartGame();
- scn.FreepsPlayCard(card);
+ // Play Aragorn
+ scn.FreepsPlayCard(card);
assertEquals(4, scn.GetTwilight());
+
+ // Play companions of two additional (non-gondor, non-shire) cultures to get to 4 total to spot
+ scn.FreepsPlayCard(veowyn);
+ scn.FreepsPlayCard(gandalf);
+
+ // TODO assert that there are 4 cultures spotted (2 valiant companions)
+
+ scn.FreepsPlayCard(vgamling);
+
+ // TODO assert that there are 3 cultures spotted even though 4 are on the board (3 valiant companions)
+
+ scn.FreepsPlayCard(vrscout);
+
+ // TODO assert that there are 3 cultures spotted even though 4 are on the board (gt 3 valiant companions)
+ }
+
+
+ @Test
+ public void ExertsToBoostValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException {
+ //Pre-game setup
+ GenericCardTestHelper scn = GetScenario();
+
+ PhysicalCardImpl card = scn.GetFreepsCard("card");
+ PhysicalCardImpl veowyn = scn.GetFreepsCard("veowyn");
+ scn.FreepsMoveCardToHand(card, veowyn);
+
+ PhysicalCardImpl twk = scn.GetShadowCard("twk");
+ scn.ShadowMoveCardToHand(twk);
+
+ scn.StartGame();
+
+ // Play Aragorn
+ scn.FreepsPlayCard(card);
+ assertEquals(4, scn.GetTwilight());
+
+ // Play companions of two additional (non-gondor, non-shire) cultures to get to 4 total to spot
+ scn.FreepsPlayCard(veowyn);
+
+ // Get the game state to where Grima is on the table and it's the shadow player's turn during the maneuver phase
+ scn.SkipToPhase(Phase.SHADOW);
+
+ scn.ShadowPlayCard(twk);
+
+ scn.SkipToPhase(Phase.ASSIGNMENT);
+
+ scn.PassCurrentPhaseActions();
+ scn.FreepsAssignToMinions(veowyn, twk);
+ scn.FreepsResolveSkirmish(veowyn);
+
+ assertTrue(scn.FreepsActionAvailable(card));
+ assertEquals(0, scn.GetWoundsOn(card));
+ assertEquals(0, scn.GetWoundsOn(veowyn));
+ assertEquals(6, scn.GetStrength(veowyn));
+
+ scn.FreepsUseCardAction(card);
+ assertEquals(1, scn.GetWoundsOn(card));
+ assertEquals(0, scn.GetWoundsOn(veowyn));
+ // strength +2 because Eowyn isn't exhausted
+ assertEquals(8, scn.GetStrength(veowyn));
+
+ // Wound Eowyn twice and have the shadow player pass their skirmish action
+ scn.AddWoundsToChar(veowyn, 2);
+ scn.ShadowPassCurrentPhaseAction();
+
+ assertTrue(scn.FreepsActionAvailable(card));
+ assertEquals(1, scn.GetWoundsOn(card));
+ assertEquals(2, scn.GetWoundsOn(veowyn));
+ assertEquals(8, scn.GetStrength(veowyn));
+
+ scn.FreepsUseCardAction(card);
+ assertEquals(2, scn.GetWoundsOn(card));
+ assertEquals(2, scn.GetWoundsOn(veowyn));
+ // strength +3 because Eowyn isn't exhausted, now all she needs is Merry with a dagger to help her out
+ assertEquals(11, scn.GetStrength(veowyn));
+ }
+
+ @Test
+ public void CantExertToBoostNonValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException {
+ //Pre-game setup
+ GenericCardTestHelper scn = GetScenario();
+
+ PhysicalCardImpl card = scn.GetFreepsCard("card");
+ PhysicalCardImpl gandalf = scn.GetFreepsCard("gandalf");
+ scn.FreepsMoveCardToHand(card, gandalf);
+
+ PhysicalCardImpl twk = scn.GetShadowCard("twk");
+ scn.ShadowMoveCardToHand(twk);
+
+ scn.StartGame();
+
+ // Play Aragorn
+ scn.FreepsPlayCard(card);
+ assertEquals(4, scn.GetTwilight());
+
+ scn.FreepsPlayCard(gandalf);
+
+ // Get the game state to where Grima is on the table and it's the shadow player's turn during the maneuver phase
+ scn.SkipToPhase(Phase.SHADOW);
+
+ scn.ShadowPlayCard(twk);
+
+ scn.SkipToPhase(Phase.ASSIGNMENT);
+
+ scn.PassCurrentPhaseActions();
+ scn.FreepsAssignToMinions(gandalf, twk);
+ scn.FreepsResolveSkirmish(gandalf);
+
+ // Despite all evidence to the contrary, Gandalf isn't valiant so shouldn't be boostable
+ assertFalse(scn.FreepsActionAvailable(card));
}
}