Fixed Blood Has Been Spilled being unusable.

This commit is contained in:
Christian 'ketura' McCarty
2025-03-22 21:38:19 -05:00
parent 7d36c436e0
commit 1732427f2b
3 changed files with 61 additions and 25 deletions

View File

@@ -80,21 +80,27 @@
text: Choose cards to discard text: Choose cards to discard
memorize: chosenMount memorize: chosenMount
} }
{
type: memorizeActive
filter: hasAttached(memory(chosenMount))
memory: chosenMan
}
{
type: discard
select: memory(chosenMount)
ignoreCostCheckFailure: true
}
] ]
effect: { effect: {
type: alterOverwhelmMultiplier type: CostToEffect
select: memory(chosenMan) cost: [
multiplier: 3 {
type: memorizeActive
filter: hasAttached(memory(chosenMount))
memory: chosenMan
ignoreCostCheckFailure: true
}
{
type: discard
select: memory(chosenMount)
ignoreCostCheckFailure: true
}
]
effect: {
type: alterOverwhelmMultiplier
select: memory(chosenMan)
multiplier: 3
}
} }
} }
] ]

View File

@@ -17,8 +17,11 @@ public class Card_06_091_Tests
return new GenericCardTestHelper( return new GenericCardTestHelper(
new HashMap<>() new HashMap<>()
{{ {{
put("card", "6_91"); put("blood", "6_91");
// put other cards in here as needed for the test case put("eowyn", "5_122");
put("mount", "4_287");
put("twk", "8_84");
}}, }},
GenericCardTestHelper.FellowshipSites, GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo, GenericCardTestHelper.FOTRFrodo,
@@ -38,12 +41,14 @@ public class Card_06_091_Tests
* Twilight Cost: 1 * Twilight Cost: 1
* Type: Condition * Type: Condition
* Subtype: * Subtype:
* Game Text: Plays to your support area.<br><b>Skirmish:</b> Discard a mount borne by a [rohan] Man to prevent that Man from being overwhelmed unless his or her strength is tripled. * Game Text: Plays to your support area.
* <b>Skirmish:</b> Discard a mount borne by a [rohan] Man to prevent
* that Man from being overwhelmed unless his or her strength is tripled.
*/ */
var scn = GetScenario(); var scn = GetScenario();
var card = scn.GetFreepsCard("card"); var card = scn.GetFreepsCard("blood");
assertEquals("Blood Has Been Spilled", card.getBlueprint().getTitle()); assertEquals("Blood Has Been Spilled", card.getBlueprint().getTitle());
assertNull(card.getBlueprint().getSubtitle()); assertNull(card.getBlueprint().getSubtitle());
@@ -55,18 +60,42 @@ public class Card_06_091_Tests
assertEquals(1, card.getBlueprint().getTwilightCost()); assertEquals(1, card.getBlueprint().getTwilightCost());
} }
// Uncomment any @Test markers below once this is ready to be used @Test
//@Test public void BloodHasBeenSpilledDiscardsAMountOnARohanCompanionToAddOverwhelmProtection() throws DecisionResultInvalidException, CardNotFoundException {
public void BloodHasBeenSpilledTest1() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup //Pre-game setup
var scn = GetScenario(); var scn = GetScenario();
var card = scn.GetFreepsCard("card"); var blood = scn.GetFreepsCard("blood");
scn.FreepsMoveCardToHand(card); var eowyn = scn.GetFreepsCard("eowyn");
var mount = scn.GetFreepsCard("mount");
scn.FreepsMoveCharToTable(eowyn);
scn.FreepsAttachCardsTo(eowyn, mount);
scn.FreepsMoveCardToSupportArea(blood);
var twk = scn.GetShadowCard("twk");
scn.ShadowMoveCharToTable(twk);
scn.StartGame(); scn.StartGame();
scn.FreepsPlayCard(card);
assertEquals(1, scn.GetTwilight()); scn.SkipToAssignments();
scn.FreepsAssignToMinions(eowyn, twk);
scn.FreepsResolveSkirmish(eowyn);
assertTrue(scn.FreepsActionAvailable(blood));
assertEquals(Zone.ATTACHED, mount.getZone());
assertEquals(6, scn.GetStrength(eowyn));
assertEquals(16, scn.GetStrength(twk)); //14 + 2 enduring due to the horse
scn.FreepsUseCardAction(blood);
assertEquals(Zone.DISCARD, mount.getZone());
assertEquals(6, scn.GetStrength(eowyn));
assertEquals(16, scn.GetStrength(twk)); //14 + 2 enduring due to the horse
scn.ShadowPassCurrentPhaseAction();
scn.FreepsPassCurrentPhaseAction();
assertEquals(1, scn.GetWoundsOn(eowyn));
assertEquals(Zone.FREE_CHARACTERS, eowyn.getZone());
assertEquals(Phase.REGROUP, scn.getPhase());
} }
} }

View File

@@ -285,7 +285,8 @@ public class Card_V2_053_Tests
scn.ShadowPassCurrentPhaseAction(); scn.ShadowPassCurrentPhaseAction();
assertTrue(scn.FreepsDecisionAvailable("maneuver")); assertTrue(scn.FreepsDecisionAvailable("maneuver"));
assertFalse(scn.FreepsPlayAvailable(valor)); assertFalse(scn.FreepsPlayAvailable(valor));
assertFalse(scn.FreepsActionAvailable(albert)); assertFalse(scn.FreepsPlayAvailable(valor));
assertFalse(scn.FreepsActionAvailable(red));
assertEquals(Zone.DISCARD, freeps1.getZone()); assertEquals(Zone.DISCARD, freeps1.getZone());
assertEquals(Zone.DISCARD, freeps2.getZone()); assertEquals(Zone.DISCARD, freeps2.getZone());