From 956ca03986f2a975996a1c94091bf17ab24ed217 Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Sun, 9 Feb 2025 23:05:10 -0600 Subject: [PATCH 1/3] Fixed Fires Brightly Burning removing [Gollum] cards instead of [Men] cards from discard --- .../src/main/resources/cards/official/set13/set13-Men.hjson | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Men.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Men.hjson index 1807798e5..55c26055c 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Men.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Men.hjson @@ -510,7 +510,7 @@ type: discount discount: { type: ifRemoveFromDiscard - filter: culture(gollum) + filter: culture(men) count: 4 } } From 5c4ccdc1f0c36052e9298677f5010888ac1baeac Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Sun, 9 Feb 2025 23:06:20 -0600 Subject: [PATCH 2/3] Fixed the set 12 reprint of Boromir, Defender of Minas Tirith missing the Gandalf signet --- .../src/main/resources/cards/official/set12/set12-Gondor.hjson | 1 + 1 file changed, 1 insertion(+) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Gondor.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Gondor.hjson index 32093c0c6..80cd58c64 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Gondor.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Gondor.hjson @@ -72,6 +72,7 @@ strength: 7 vitality: 3 resistance: 6 + signet: Gandalf keywords: Ranger effects: [ { From cba954ebaa2792816830ac8912699914c35f3225 Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Sun, 9 Feb 2025 23:21:13 -0600 Subject: [PATCH 3/3] Fixed Sharp Defense always counting 0 attached possessions --- .../cards/official/set12/set12-Dwarven.hjson | 4 +- .../official/set12/Card_12_013_Tests.java | 94 +++++++++++++++++-- 2 files changed, 86 insertions(+), 12 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Dwarven.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Dwarven.hjson index ee3c66781..c7015a38e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Dwarven.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Dwarven.hjson @@ -626,8 +626,8 @@ filter: minResistance(4) } true: { - type: forEachHasAttached - filter: possession + type: ForEachYouCanSpot + filter: possession, AttachedTo(memory(chosenDwarf)) multiplier: 2 } false: 2 diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set12/Card_12_013_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set12/Card_12_013_Tests.java index b343f2090..a3775191f 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set12/Card_12_013_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set12/Card_12_013_Tests.java @@ -20,8 +20,12 @@ public class Card_12_013_Tests return new GenericCardTestHelper( new HashMap<>() {{ - put("card", "12_13"); - // put other cards in here as needed for the test case + put("sharp", "12_13"); + put("gimli", "11_8"); + put("book", "3_1"); + put("helm", "1_15"); + + put("savage", "1_151"); }}, GenericCardTestHelper.FellowshipSites, GenericCardTestHelper.FOTRFrodo, @@ -46,7 +50,7 @@ public class Card_12_013_Tests var scn = GetScenario(); - var card = scn.GetFreepsCard("card"); + var card = scn.GetFreepsCard("sharp"); assertEquals("Sharp Defense", card.getBlueprint().getTitle()); assertNull(card.getBlueprint().getSubtitle()); @@ -58,18 +62,88 @@ public class Card_12_013_Tests assertEquals(0, card.getBlueprint().getTwilightCost()); } - // Uncomment any @Test markers below once this is ready to be used - //@Test - public void SharpDefenseTest1() throws DecisionResultInvalidException, CardNotFoundException { + @Test + public void SharpDefenseMakesDwarfWith3ResistanceAndNoPossessionsStrengthPlus2() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup var scn = GetScenario(); - var card = scn.GetFreepsCard("card"); - scn.FreepsMoveCardToHand(card); + var sharp = scn.GetFreepsCard("sharp"); + var gimli = scn.GetFreepsCard("gimli"); + scn.FreepsMoveCardToHand(sharp); + scn.FreepsMoveCharToTable(gimli); + + var savage = scn.GetShadowCard("savage"); + scn.ShadowMoveCharToTable(savage); scn.StartGame(); - scn.FreepsPlayCard(card); - assertEquals(0, scn.GetTwilight()); + scn.AddBurdens(3); + scn.SkipToAssignments(); + scn.FreepsAssignToMinions(gimli, savage); + scn.FreepsResolveSkirmish(gimli); + + assertEquals(3, scn.getResistance(gimli)); + assertEquals(6, scn.GetStrength(gimli)); + + scn.FreepsPlayCard(sharp); + //Base 6, and since the 4 resistance clause is not met, +2 flat strength + assertEquals(8, scn.GetStrength(gimli)); + } + + @Test + public void SharpDefenseMakesDwarfWith4ResistanceAndNoPossessionsStrengthPlus0() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + + var sharp = scn.GetFreepsCard("sharp"); + var gimli = scn.GetFreepsCard("gimli"); + scn.FreepsMoveCardToHand(sharp); + scn.FreepsMoveCharToTable(gimli); + + var savage = scn.GetShadowCard("savage"); + scn.ShadowMoveCharToTable(savage); + + scn.StartGame(); + + scn.AddBurdens(2); + scn.SkipToAssignments(); + scn.FreepsAssignToMinions(gimli, savage); + scn.FreepsResolveSkirmish(gimli); + + assertEquals(4, scn.getResistance(gimli)); + assertEquals(6, scn.GetStrength(gimli)); + + scn.FreepsPlayCard(sharp); + //Base 6, and since the 4 resistance clause is met, +0 for all attached possessions + assertEquals(6, scn.GetStrength(gimli)); + } + + @Test + public void SharpDefenseMakesDwarfWith4ResistanceAndNoPossessionsStrengthPlus2ForEachPossessionBorne() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + + var sharp = scn.GetFreepsCard("sharp"); + var gimli = scn.GetFreepsCard("gimli"); + scn.FreepsMoveCardToHand(sharp); + scn.FreepsMoveCharToTable(gimli); + scn.FreepsAttachCardsTo(gimli, "book", "helm"); + + var savage = scn.GetShadowCard("savage"); + scn.ShadowMoveCharToTable(savage); + + scn.StartGame(); + + scn.AddBurdens(2); + scn.SkipToAssignments(); + scn.FreepsAssignToMinions(gimli, savage); + scn.FreepsResolveSkirmish(gimli); + + assertEquals(4, scn.getResistance(gimli)); + assertEquals(6, scn.GetStrength(gimli)); + + scn.FreepsPlayCard(sharp); + //Base 6 + 2 for book + 2 for helm + assertEquals(10, scn.GetStrength(gimli)); } }