Applied Legacy Ruling #4

This commit is contained in:
Christian 'ketura' McCarty
2025-05-04 10:22:27 -05:00
parent 1c569779f4
commit 4f7023f3c7
2 changed files with 22 additions and 86 deletions

View File

@@ -645,22 +645,6 @@
{ {
type: Trigger type: Trigger
optional: false optional: false
trigger: [
{
type: MovesTo
filter: self
}
{
type: StartOfPhase
phase: Fellowship
}
]
requires: {
type: Location
filter: self
}
effect: {
type: addTrigger
trigger: { trigger: {
type: StartOfSkirmishInvolving type: StartOfSkirmishInvolving
filter: culture(rohan),companion filter: culture(rohan),companion
@@ -679,9 +663,6 @@
keyword: fierce keyword: fierce
until: regroup until: regroup
} }
until: regroup
}
limitPerTurn: 1
} }
] ]
gametext: <b>Plains</b>. Until the regroup phase, each minion skirmishing a [rohan] companion loses <b>fierce</b> and cannot gain fierce. gametext: <b>Plains</b>. Until the regroup phase, each minion skirmishing a [rohan] companion loses <b>fierce</b> and cannot gain fierce.

View File

@@ -6,7 +6,6 @@ import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.game.CardNotFoundException; import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.game.state.actions.DefaultActionsEnvironment;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test; import org.junit.Test;
@@ -57,7 +56,8 @@ public class Card_11_243_Tests
* Type: Site * Type: Site
* Subtype: * Subtype:
* Site Number: * * Site Number: *
* Game Text: <b>Plains</b>. Until the regroup phase, each minion skirmishing a [rohan] companion loses <b>fierce</b> and cannot gain fierce. * Game Text: <b>Plains</b>. Until the regroup phase, each minion skirmishing a [rohan] companion loses
* <b>fierce</b> and cannot gain fierce.
*/ */
var scn = GetScenario(); var scn = GetScenario();
@@ -73,23 +73,14 @@ public class Card_11_243_Tests
assertEquals(3, card.getBlueprint().getTwilightCost()); assertEquals(3, card.getBlueprint().getTwilightCost());
} }
// Uncomment any @Test markers below once this is ready to be used /**
//@Test * As per Legacy Ruling #4, Harrowdale's text is to be interpreted as only working while the fellowship is at that site.
public void HarrowdaleTest1() throws DecisionResultInvalidException, CardNotFoundException { * Thus, if you start at Harrowdale and move away from it, the text does not "follow" the fellowship.
//Pre-game setup * <a href="https://wiki.lotrtcgpc.net/wiki/Legacy_Ruling_4">Wiki LR#4</a>
var scn = GetScenario(); */
var card = scn.GetFreepsCard("card");
scn.FreepsMoveCardToHand(card);
scn.StartGame();
scn.FreepsPlayCard(card);
assertEquals(3, scn.GetTwilight());
}
@Test @Test
public void MovingFromHarrowdaleRemovesFierceAgainstSkirmishingRohirrim() throws DecisionResultInvalidException, CardNotFoundException { public void MovingFromHarrowdale_DOESNOT_RemoveFierceAgainstSkirmishingRohirrim() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup //Pre-game setup
var scn = GetScenario(); var scn = GetScenario();
var harrowdale = scn.GetFreepsSite("Harrowdale"); var harrowdale = scn.GetFreepsSite("Harrowdale");
@@ -110,7 +101,6 @@ public class Card_11_243_Tests
scn.FreepsPassCurrentPhaseAction(); scn.FreepsPassCurrentPhaseAction();
scn.ShadowChooseCardBPFromSelection(shadowSite2); scn.ShadowChooseCardBPFromSelection(shadowSite2);
assertEquals(1, ((DefaultActionsEnvironment) scn._game.getActionsEnvironment()).getUntilStartOfPhaseActionProxies(Phase.REGROUP).size());
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE)); assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE)); assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
@@ -124,7 +114,8 @@ public class Card_11_243_Tests
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE)); assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
scn.FreepsResolveSkirmish(eomer); scn.FreepsResolveSkirmish(eomer);
assertFalse(scn.hasKeyword(seeker, Keyword.FIERCE)); //Fierce was not removed because Harrowdale only works while on it
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
scn.PassCurrentPhaseActions(); scn.PassCurrentPhaseActions();
scn.FreepsResolveSkirmish(aragorn); scn.FreepsResolveSkirmish(aragorn);
@@ -134,42 +125,9 @@ public class Card_11_243_Tests
assertEquals(Phase.ASSIGNMENT, scn.GetCurrentPhase()); assertEquals(Phase.ASSIGNMENT, scn.GetCurrentPhase());
scn.PassCurrentPhaseActions(); scn.PassCurrentPhaseActions();
assertFalse(scn.hasKeyword(seeker, Keyword.FIERCE)); assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE)); assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
scn.FreepsAssignToMinions(aragorn, pursuer); scn.FreepsAssignToMinions(aragorn, pursuer);
scn.FreepsResolveSkirmish(aragorn);
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
scn.PassCurrentPhaseActions();
//Fierce suppression should have worn off
assertEquals(Phase.REGROUP, scn.GetCurrentPhase());
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
scn.PassCurrentPhaseActions();
scn.ShadowDeclineReconciliation();
scn.FreepsChooseToMove();
scn.ShadowChooseCardBPFromSelection(shadowSite3);
assertEquals(0, ((DefaultActionsEnvironment) scn._game.getActionsEnvironment()).getUntilStartOfPhaseActionProxies(Phase.REGROUP).size());
scn.SkipToAssignments();
scn.FreepsAssignToMinions(
new PhysicalCardImpl[] { eomer, pursuer},
new PhysicalCardImpl[] { aragorn, seeker}
);
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
scn.FreepsResolveSkirmish(eomer);
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
scn.PassCurrentPhaseActions();
scn.FreepsResolveSkirmish(aragorn);
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
scn.PassCurrentPhaseActions();
} }
@Test @Test
@@ -194,7 +152,6 @@ public class Card_11_243_Tests
scn.FreepsPassCurrentPhaseAction(); scn.FreepsPassCurrentPhaseAction();
scn.ShadowChooseCardBPFromSelection(harrowdale); scn.ShadowChooseCardBPFromSelection(harrowdale);
assertEquals(1, ((DefaultActionsEnvironment) scn._game.getActionsEnvironment()).getUntilStartOfPhaseActionProxies(Phase.REGROUP).size());
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE)); assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE)); assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
@@ -236,8 +193,6 @@ public class Card_11_243_Tests
scn.FreepsChooseToMove(); scn.FreepsChooseToMove();
scn.ShadowChooseCardBPFromSelection(shadowSite3); scn.ShadowChooseCardBPFromSelection(shadowSite3);
assertEquals(0, ((DefaultActionsEnvironment) scn._game.getActionsEnvironment()).getUntilStartOfPhaseActionProxies(Phase.REGROUP).size());
scn.SkipToAssignments(); scn.SkipToAssignments();
scn.FreepsAssignToMinions( scn.FreepsAssignToMinions(
new PhysicalCardImpl[] { eomer, pursuer}, new PhysicalCardImpl[] { eomer, pursuer},