diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set05/set05-Isengard-errata.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set05/set05-Isengard-errata.hjson
index c6dbef286..c750c430d 100644
--- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set05/set05-Isengard-errata.hjson
+++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set05/set05-Isengard-errata.hjson
@@ -85,10 +85,7 @@
{
type: activated
phase: shadow
- requires: {
- type: perPhaseLimit
- limit: 2
- }
+ limitPerPhase: 2
cost: {
type: exert
select: choose(Uruk-hai)
@@ -100,10 +97,6 @@
culture: isengard
select: self
}
- {
- type: incrementPerPhaseLimit
- limit: 1
- }
]
}
{
diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set05/Card_05_057_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set05/Card_05_057_Tests.java
index 285e4b8ed..9033a2db1 100644
--- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set05/Card_05_057_Tests.java
+++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set05/Card_05_057_Tests.java
@@ -17,8 +17,8 @@ public class Card_05_057_Tests
return new GenericCardTestHelper(
new HashMap<>()
{{
- put("card", "5_57");
- // put other cards in here as needed for the test case
+ put("ladder", "5_57");
+ put("troop", "1_143");
}},
GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo,
@@ -43,7 +43,7 @@ public class Card_05_057_Tests
var scn = GetScenario();
- var card = scn.GetFreepsCard("card");
+ var card = scn.GetFreepsCard("ladder");
assertEquals("Scaling Ladder", card.getBlueprint().getTitle());
assertNull(card.getBlueprint().getSubtitle());
@@ -56,18 +56,36 @@ public class Card_05_057_Tests
assertEquals(0, card.getBlueprint().getTwilightCost());
}
- // Uncomment any @Test markers below once this is ready to be used
- //@Test
- public void ScalingLadderTest1() throws DecisionResultInvalidException, CardNotFoundException {
+ @Test
+ public void ScalingLadderExertsUruksToAddTokens() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
- var card = scn.GetFreepsCard("card");
- scn.FreepsMoveCardToHand(card);
+ var ladder = scn.GetShadowCard("ladder");
+ var troop = scn.GetShadowCard("troop");
+ scn.ShadowMoveCardToSupportArea(ladder);
+ scn.ShadowMoveCardToHand(troop);
scn.StartGame();
- scn.FreepsPlayCard(card);
+ scn.SetTwilight(10);
+ scn.FreepsPassCurrentPhaseAction();
- assertEquals(0, scn.GetTwilight());
+ assertFalse(scn.ShadowActionAvailable(ladder));
+ scn.ShadowPlayCard(troop);
+
+ assertEquals(0, scn.GetCultureTokensOn(ladder));
+ assertEquals(0, scn.getWounds(troop));
+ assertTrue(scn.ShadowActionAvailable(ladder));
+
+ scn.ShadowUseCardAction(ladder);
+ assertEquals(1, scn.GetCultureTokensOn(ladder));
+ assertEquals(1, scn.getWounds(troop));
+ assertTrue(scn.ShadowActionAvailable(ladder));
+
+ scn.ShadowUseCardAction(ladder);
+ assertEquals(2, scn.GetCultureTokensOn(ladder));
+ assertEquals(2, scn.getWounds(troop));
+
+ assertTrue(scn.ShadowActionAvailable(ladder));
}
}
diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set05/Card_05_057_ErrataTests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set05/Card_05_057_ErrataTests.java
new file mode 100644
index 000000000..3845e1fe1
--- /dev/null
+++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set05/Card_05_057_ErrataTests.java
@@ -0,0 +1,96 @@
+package com.gempukku.lotro.cards.unofficial.pc.errata.set05;
+
+import com.gempukku.lotro.cards.GenericCardTestHelper;
+import com.gempukku.lotro.common.CardType;
+import com.gempukku.lotro.common.Culture;
+import com.gempukku.lotro.common.Keyword;
+import com.gempukku.lotro.common.Side;
+import com.gempukku.lotro.game.CardNotFoundException;
+import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
+import org.junit.Test;
+
+import java.util.HashMap;
+
+import static org.junit.Assert.*;
+
+public class Card_05_057_ErrataTests
+{
+
+ protected GenericCardTestHelper GetScenario() throws CardNotFoundException, DecisionResultInvalidException {
+ return new GenericCardTestHelper(
+ new HashMap<>()
+ {{
+ put("ladder", "55_57");
+ put("troop", "1_143");
+ }},
+ GenericCardTestHelper.FellowshipSites,
+ GenericCardTestHelper.FOTRFrodo,
+ GenericCardTestHelper.RulingRing
+ );
+ }
+
+ @Test
+ public void ScalingLadderStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException {
+
+ /**
+ * Set: 5
+ * Name: Scaling Ladder
+ * Unique: False
+ * Side: Shadow
+ * Culture: Isengard
+ * Twilight Cost: 0
+ * Type: Condition
+ * Subtype:
+ * Game Text: Machine. Plays to your support area.
+ * Shadow: Exert an Uruk-hai to place an [isengard] token on this card (limit 2 per phase).
+ * Skirmish: For each [isengard] token here, heal an Uruk-hai. Discard this condition.
+ */
+
+ var scn = GetScenario();
+
+ var card = scn.GetFreepsCard("ladder");
+
+ assertEquals("Scaling Ladder", card.getBlueprint().getTitle());
+ assertNull(card.getBlueprint().getSubtitle());
+ assertFalse(card.getBlueprint().isUnique());
+ assertEquals(Side.SHADOW, card.getBlueprint().getSide());
+ assertEquals(Culture.ISENGARD, card.getBlueprint().getCulture());
+ assertEquals(CardType.CONDITION, card.getBlueprint().getCardType());
+ assertTrue(scn.hasKeyword(card, Keyword.MACHINE));
+ assertTrue(scn.hasKeyword(card, Keyword.SUPPORT_AREA));
+ assertEquals(0, card.getBlueprint().getTwilightCost());
+ }
+
+ @Test
+ public void ScalingLadderExertsUruksToAddTokensLimit2() throws DecisionResultInvalidException, CardNotFoundException {
+ //Pre-game setup
+ var scn = GetScenario();
+
+ var ladder = scn.GetShadowCard("ladder");
+ var troop = scn.GetShadowCard("troop");
+ scn.ShadowMoveCardToSupportArea(ladder);
+ scn.ShadowMoveCardToHand(troop);
+
+ scn.StartGame();
+ scn.SetTwilight(10);
+ scn.FreepsPassCurrentPhaseAction();
+
+ assertFalse(scn.ShadowActionAvailable(ladder));
+ scn.ShadowPlayCard(troop);
+
+ assertEquals(0, scn.GetCultureTokensOn(ladder));
+ assertEquals(0, scn.getWounds(troop));
+ assertTrue(scn.ShadowActionAvailable(ladder));
+
+ scn.ShadowUseCardAction(ladder);
+ assertEquals(1, scn.GetCultureTokensOn(ladder));
+ assertEquals(1, scn.getWounds(troop));
+ assertTrue(scn.ShadowActionAvailable(ladder));
+
+ scn.ShadowUseCardAction(ladder);
+ assertEquals(2, scn.GetCultureTokensOn(ladder));
+ assertEquals(2, scn.getWounds(troop));
+
+ assertFalse(scn.ShadowActionAvailable(ladder));
+ }
+}