Add effects and tests for v2_16

This commit is contained in:
Devon Henegar
2024-04-26 17:01:41 -04:00
parent c98eceda58
commit a67437d01f
2 changed files with 166 additions and 13 deletions

View File

@@ -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.<br>While you can spot 3 valiant companions, the number of free peoples cultures that can be counted is-1.<br>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: ""

View File

@@ -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));
}
}