diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set03-Elven.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set03-Elven.hjson index 68ae5be70..4174ee2c3 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set03-Elven.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set03-Elven.hjson @@ -312,7 +312,7 @@ } { type: heal - select: choose(ally,allyHome(Fellowship,3)) + select: memory(healingAlly) times: memory(healing) } ] diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set03/set03-Elven-errata.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set03/set03-Elven-errata.hjson index 72bbe387b..7798b58d4 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set03/set03-Elven-errata.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set03/set03-Elven-errata.hjson @@ -125,8 +125,7 @@ effects: [ { type: Trigger - optional: false - optional: false + optional: true trigger: { type: StartOfTurn }, diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set03/Card_03_013_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set03/Card_03_013_Tests.java index 6492bbf43..061e98574 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set03/Card_03_013_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set03/Card_03_013_Tests.java @@ -3,13 +3,13 @@ package com.gempukku.lotro.cards.official.set03; import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.common.*; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class Card_03_013_Tests { @@ -18,7 +18,7 @@ public class Card_03_013_Tests return new GenericCardTestHelper( new HashMap<>() {{ - put("card", "3_13"); + put("elrond", "3_13"); // put other cards in here as needed for the test case }}, GenericCardTestHelper.FellowshipSites, @@ -47,7 +47,7 @@ public class Card_03_013_Tests var scn = GetScenario(); - var card = scn.GetFreepsCard("card"); + var card = scn.GetFreepsCard("elrond"); assertEquals("Elrond", card.getBlueprint().getTitle()); assertEquals("Herald to Gil-galad", card.getBlueprint().getSubtitle()); @@ -62,18 +62,46 @@ public class Card_03_013_Tests assertTrue(card.getBlueprint().hasAllyHome(new AllyHome(SitesBlock.FELLOWSHIP, 3))); } - // Uncomment any @Test markers below once this is ready to be used - //@Test - public void ElrondTest1() throws DecisionResultInvalidException, CardNotFoundException { + @Test + public void AtTheStartOfTurnHealAHome3AllyTwice() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup var scn = GetScenario(); - var card = scn.GetFreepsCard("card"); - scn.FreepsMoveCardToHand(card); + var elrond = scn.GetFreepsCard("elrond"); + scn.FreepsMoveCharToTable(elrond); scn.StartGame(); - scn.FreepsPlayCard(card); + scn.AddWoundsToChar(elrond, 3); + assertEquals(0, scn.GetTwilight()); + assertTrue(scn.FreepsHasOptionalTriggerAvailable()); - assertEquals(4, scn.GetTwilight()); + scn.FreepsAcceptOptionalTrigger(); + scn.FreepsChoose("2"); + + assertEquals(0, scn.GetTwilight()); + assertEquals(1, scn.GetWoundsOn(elrond)); + } + + @Test + public void RegroupActionExertsElrondTwiceToHealCompanionOnce() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + + var frodo = scn.GetRingBearer(); + var elrond = scn.GetFreepsCard("elrond"); + scn.FreepsMoveCharToTable(elrond); + + scn.StartGame(); + scn.FreepsDeclineOptionalTrigger(); + scn.AddWoundsToChar(frodo, 3); + + scn.SkipToPhase(Phase.REGROUP); + + assertEquals(0, scn.GetWoundsOn(elrond)); + assertEquals(3, scn.GetWoundsOn(frodo)); + assertTrue(scn.FreepsActionAvailable(elrond)); + scn.FreepsUseCardAction(elrond); + assertEquals(2, scn.GetWoundsOn(elrond)); + assertEquals(2, scn.GetWoundsOn(frodo)); } } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_013_ErrataTests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_013_ErrataTests.java index 6e8ce7ad7..1c85ebdfd 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_013_ErrataTests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_013_ErrataTests.java @@ -3,13 +3,13 @@ package com.gempukku.lotro.cards.unofficial.pc.errata.set03; import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.common.*; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class Card_03_013_ErrataTests { @@ -18,7 +18,7 @@ public class Card_03_013_ErrataTests return new GenericCardTestHelper( new HashMap<>() {{ - put("card", "53_13"); + put("elrond", "53_13"); // put other cards in here as needed for the test case }}, GenericCardTestHelper.FellowshipSites, @@ -42,13 +42,14 @@ public class Card_03_013_ErrataTests * Strength: 8 * Vitality: 4 * Site Number: 3 - * Game Text: At the start of each of your turns, you may heal up to 2 allies whose home is site 3. - * Regroup: Exert Elrond twice to heal a companion. + * Game Text: At the start of each of your turns, you may spot an ally whose home site is 3 to heal that ally + * up to 2 times. Add (1) per wound healed. + * Regroup: Exert Elrond twice to heal a companion. */ var scn = GetScenario(); - var card = scn.GetFreepsCard("card"); + var card = scn.GetFreepsCard("elrond"); assertEquals("Elrond", card.getBlueprint().getTitle()); assertEquals("Herald to Gil-galad", card.getBlueprint().getSubtitle()); @@ -63,18 +64,47 @@ public class Card_03_013_ErrataTests assertTrue(card.getBlueprint().hasAllyHome(new AllyHome(SitesBlock.FELLOWSHIP, 3))); } - // Uncomment any @Test markers below once this is ready to be used - //@Test - public void ElrondBTest1() throws DecisionResultInvalidException, CardNotFoundException { + @Test + public void AtTheStartOfTurnAdds2toHealAHome3AllyTwice() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup var scn = GetScenario(); - var card = scn.GetFreepsCard("card"); - scn.FreepsMoveCardToHand(card); + var elrond = scn.GetFreepsCard("elrond"); + scn.FreepsMoveCharToTable(elrond); scn.StartGame(); - scn.FreepsPlayCard(card); + scn.AddWoundsToChar(elrond, 3); + assertEquals(0, scn.GetTwilight()); + assertTrue(scn.FreepsHasOptionalTriggerAvailable()); - assertEquals(4, scn.GetTwilight()); + scn.FreepsAcceptOptionalTrigger(); + scn.FreepsChooseCard(elrond); + scn.FreepsChoose("2"); + + assertEquals(2, scn.GetTwilight()); + assertEquals(1, scn.GetWoundsOn(elrond)); + } + + @Test + public void RegroupActionExertsElrondTwiceToHealCompanionOnce() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + + var frodo = scn.GetRingBearer(); + var elrond = scn.GetFreepsCard("elrond"); + scn.FreepsMoveCharToTable(elrond); + + scn.StartGame(); + scn.FreepsDeclineOptionalTrigger(); + scn.AddWoundsToChar(frodo, 3); + + scn.SkipToPhase(Phase.REGROUP); + + assertEquals(0, scn.GetWoundsOn(elrond)); + assertEquals(3, scn.GetWoundsOn(frodo)); + assertTrue(scn.FreepsActionAvailable(elrond)); + scn.FreepsUseCardAction(elrond); + assertEquals(2, scn.GetWoundsOn(elrond)); + assertEquals(2, scn.GetWoundsOn(frodo)); } }