Fixed Catapult crashing the game when the opponent has 0 cards in deck.
This commit is contained in:
@@ -633,11 +633,14 @@ public class FilterFactory {
|
||||
});
|
||||
parameterFilters.put("printedtwilightcostfrommemory",
|
||||
(parameter, environment) -> actionContext -> {
|
||||
var card = actionContext.getCardFromMemory(parameter).getBlueprint();
|
||||
if (card.getCardType() == CardType.THE_ONE_RING || card.getCardType() == CardType.MAP)
|
||||
var card = actionContext.getCardFromMemory(parameter);
|
||||
if(card == null)
|
||||
return Filters.none;
|
||||
var bp = card.getBlueprint();
|
||||
if (bp.getCardType() == CardType.THE_ONE_RING || bp.getCardType() == CardType.MAP)
|
||||
return Filters.none;
|
||||
|
||||
return Filters.printedTwilightCost(card.getTwilightCost());
|
||||
return Filters.printedTwilightCost(bp.getTwilightCost());
|
||||
});
|
||||
parameterFilters.put("race",
|
||||
(parameter, environment) -> {
|
||||
|
||||
@@ -119,4 +119,36 @@ public class Card_08_032_Tests
|
||||
assertEquals(Zone.DISCARD, larder.getZone());
|
||||
assertEquals(Zone.SHADOW_CHARACTERS, runner.getZone());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void CatapultBehavesWhenOpponentHas0CardsInDeck() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var catapult = scn.GetFreepsCard("catapult");
|
||||
scn.FreepsMoveCardToHand("fodder1", "fodder2");
|
||||
scn.FreepsMoveCardToSupportArea(catapult);
|
||||
|
||||
var runner = scn.GetShadowCard("runner");
|
||||
var shelob = scn.GetShadowCard("shelob");
|
||||
var larder = scn.GetShadowCard("larder");
|
||||
scn.ShadowMoveCharToTable(runner, shelob);
|
||||
scn.ShadowMoveCardToSupportArea(larder);
|
||||
scn.ShadowMoveCardToDiscard("catapult", "fodder1", "fodder2");
|
||||
|
||||
scn.StartGame();
|
||||
scn.SkipToPhase(Phase.MANEUVER);
|
||||
|
||||
assertEquals(2, scn.GetFreepsHandCount());
|
||||
assertEquals(0, scn.GetFreepsDiscardCount());
|
||||
assertEquals(0, scn.GetShadowDeckCount());
|
||||
assertTrue(scn.FreepsActionAvailable(catapult));
|
||||
|
||||
scn.FreepsUseCardAction(catapult);
|
||||
assertEquals(0, scn.GetFreepsHandCount());
|
||||
assertEquals(2, scn.GetFreepsDiscardCount());
|
||||
|
||||
//Skipped right to the other player's maneuver action
|
||||
assertTrue(scn.ShadowAnyDecisionsAvailable());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user