Fixed DiscardFromPlay effects not defining the correct performing player

This commit is contained in:
Christian 'ketura' McCarty
2025-03-22 18:19:12 -05:00
parent 1db9963a31
commit 0580fa4da6
2 changed files with 46 additions and 15 deletions

View File

@@ -36,7 +36,7 @@ public class DiscardFromPlay implements EffectAppenderProducer {
MultiEffectAppender result = new MultiEffectAppender(); MultiEffectAppender result = new MultiEffectAppender();
EffectAppender cardResolver = CardResolver.resolveCards(select, EffectAppender cardResolver = CardResolver.resolveCards(select,
(actionContext) -> Filters.canBeDiscarded(actionContext.getPerformingPlayer(), actionContext.getSource()), (actionContext) -> Filters.canBeDiscarded(discardingPlayer.getPlayer(actionContext), actionContext.getSource()),
valueSource, memory, player, "Choose cards to discard", environment); valueSource, memory, player, "Choose cards to discard", environment);
EffectUtils.validatePreEvaluate(cost, effectObject, discardingPlayer, valueSource, cardResolver); EffectUtils.validatePreEvaluate(cost, effectObject, discardingPlayer, valueSource, cardResolver);

View File

@@ -17,10 +17,23 @@ public class Card_10_118_Tests
return new GenericCardTestHelper( return new GenericCardTestHelper(
new HashMap<>() new HashMap<>()
{{ {{
put("card", "10_118"); put("pippin", "1_306");
// put other cards in here as needed for the test case put("bowmen", "3_41");
put("knows", "9_50");
put("savage", "1_151");
}},
new HashMap<>() {{
put("site1", "7_330");
put("site2", "7_335");
put("site3", "8_117");
put("site4", "10_118"); //here
put("site5", "7_345");
put("site6", "7_350");
put("site7", "8_120");
put("site8", "10_120");
put("site9", "7_360");
}}, }},
GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo, GenericCardTestHelper.FOTRFrodo,
GenericCardTestHelper.RulingRing GenericCardTestHelper.RulingRing
); );
@@ -39,14 +52,13 @@ public class Card_10_118_Tests
* Type: Site * Type: Site
* Subtype: * Subtype:
* Site Number: 4K * Site Number: 4K
* Game Text: <b>Plains</b>. <b>Shadow:</b> Exert a minion and remove a burden to make the Free Peoples player discard one of his or her conditions. * Game Text: <b>Plains</b>. <b>Shadow:</b> Exert a minion and remove a burden to make
* the Free Peoples player discard one of his or her conditions.
*/ */
var scn = GetScenario(); var scn = GetScenario();
//Use this once you have set the deck up properly var card = scn.GetFreepsSite(4);
//var card = scn.GetFreepsSite(4);
var card = scn.GetFreepsCard("card");
assertEquals("Pelennor Prairie", card.getBlueprint().getTitle()); assertEquals("Pelennor Prairie", card.getBlueprint().getTitle());
assertNull(card.getBlueprint().getSubtitle()); assertNull(card.getBlueprint().getSubtitle());
@@ -57,18 +69,37 @@ public class Card_10_118_Tests
assertEquals(4, card.getBlueprint().getSiteNumber()); assertEquals(4, card.getBlueprint().getSiteNumber());
} }
// Uncomment any @Test markers below once this is ready to be used @Test
//@Test public void PelennorPrairieIsNotBlockedByPippinFriendToFrodo() throws DecisionResultInvalidException, CardNotFoundException {
public void PelennorPrairieTest1() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup //Pre-game setup
var scn = GetScenario(); var scn = GetScenario();
var card = scn.GetFreepsCard("card"); var prairie = scn.GetShadowSite(4);
scn.FreepsMoveCardToHand(card);
var pippin = scn.GetFreepsCard("pippin");
var bowmen = scn.GetFreepsCard("bowmen");
var knows = scn.GetFreepsCard("knows");
scn.FreepsMoveCharToTable(pippin);
scn.FreepsMoveCardToSupportArea(bowmen, knows);
var savage = scn.GetShadowCard("savage");
scn.StartGame(); scn.StartGame();
scn.FreepsPlayCard(card);
assertEquals(3, scn.GetTwilight()); scn.SkipToSite(3);
scn.ShadowMoveCharToTable(savage);
scn.FreepsPassCurrentPhaseAction();
assertEquals(prairie, scn.GetCurrentSite());
assertTrue(scn.ShadowActionAvailable(prairie));
assertEquals(0, scn.GetWoundsOn(savage));
assertEquals(1, scn.GetBurdens());
scn.ShadowUseCardAction(prairie);
assertEquals(1, scn.GetWoundsOn(savage));
assertEquals(0, scn.GetBurdens());
assertEquals(2, scn.FreepsGetCardChoiceCount());
} }
} }