Moved the skirmish about to end trigger to before skirmish resolution, which should fix certain skirmish responses getting swalled by overwhelm results. As a result, fixed Sting, Bane of the Eight Legs (and others) not triggering during an overwhelm.

This commit is contained in:
Christian 'ketura' McCarty
2025-03-21 21:33:47 -05:00
parent c1c4b5204e
commit 3bf3d774ee
2 changed files with 36 additions and 4 deletions

View File

@@ -41,6 +41,8 @@ public class SkirmishPhaseAction extends SystemQueueAction {
game.getActionsEnvironment().addActionToStack(new SkirmishActionProcedureAction()); game.getActionsEnvironment().addActionToStack(new SkirmishActionProcedureAction());
} }
}); });
appendEffect(
new TriggeringResultEffect(null, new SkirmishAboutToEndResult(fellowshipCharacter, shadowCharacters), "Skirmish about to end"));
appendEffect( appendEffect(
new UnrespondableEffect() { new UnrespondableEffect() {
@Override @Override
@@ -51,8 +53,7 @@ public class SkirmishPhaseAction extends SystemQueueAction {
} }
} }
}); });
appendEffect(
new TriggeringResultEffect(null, new SkirmishAboutToEndResult(fellowshipCharacter, shadowCharacters), "Skirmish about to end"));
appendEffect( appendEffect(
new TriggeringResultEffect(null, new EndOfPhaseResult(Phase.SKIRMISH), "End of skirmish phase")); new TriggeringResultEffect(null, new EndOfPhaseResult(Phase.SKIRMISH), "End of skirmish phase"));
appendEffect( appendEffect(

View File

@@ -19,6 +19,7 @@ public class Card_08_113_Tests
{{ {{
put("sting", "8_113"); put("sting", "8_113");
put("shelob", "8_25"); put("shelob", "8_25");
put("sauron", "9_48");
}}, }},
GenericCardTestHelper.FellowshipSites, GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo, GenericCardTestHelper.FOTRFrodo,
@@ -85,13 +86,43 @@ public class Card_08_113_Tests
scn.FreepsResolveSkirmish(frodo); scn.FreepsResolveSkirmish(frodo);
scn.PassCurrentPhaseActions(); scn.PassCurrentPhaseActions();
scn.FreepsDeclineOptionalTrigger(); //Ring converting burdens
assertTrue(scn.FreepsHasOptionalTriggerAvailable()); assertTrue(scn.FreepsHasOptionalTriggerAvailable());
assertEquals(0, scn.GetThreats()); assertEquals(0, scn.GetThreats());
assertEquals(Zone.SHADOW_CHARACTERS, shelob.getZone()); assertEquals(Zone.SHADOW_CHARACTERS, shelob.getZone());
scn.FreepsAcceptOptionalTrigger(); scn.FreepsAcceptOptionalTrigger();
assertEquals(1, scn.GetThreats()); assertEquals(1, scn.GetThreats());
assertEquals(Zone.DISCARD, shelob.getZone()); assertEquals(Zone.DISCARD, shelob.getZone());
} }
@Test
public void StingTriggersOnOverwhelm() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var frodo = scn.GetRingBearer();
var sting = scn.GetFreepsCard("sting");
scn.FreepsAttachCardsTo(frodo, sting);
var sauron = scn.GetShadowCard("sauron");
scn.ShadowMoveCharToTable(sauron);
scn.StartGame();
scn.SkipToAssignments();
scn.FreepsDeclineAssignments();
scn.ShadowDeclineAssignments();
//Fierce assignment
scn.PassCurrentPhaseActions();
scn.FreepsAssignToMinions(frodo, sauron);
scn.FreepsResolveSkirmish(frodo);
scn.PassCurrentPhaseActions();
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
assertEquals(0, scn.GetThreats());
assertEquals(Zone.SHADOW_CHARACTERS, sauron.getZone());
scn.FreepsAcceptOptionalTrigger();
assertEquals(1, scn.GetThreats());
assertEquals(Zone.DISCARD, sauron.getZone());
}
} }