diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Gandalf.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Gandalf.hjson
index ee3a2d874..136061559 100644
--- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Gandalf.hjson
+++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Gandalf.hjson
@@ -379,7 +379,7 @@
culture: Gandalf
twilight: 0
type: Condition
- target: companion,not(hasAttached(name(Salve)))
+ target: companion,OnePerBearer
keywords: Spell
effects: [
{
@@ -395,10 +395,17 @@
type: aboutToTakeWound
filter: exhausted,bearer
}
- cost: {
- type: discard
- select: self
- }
+ cost: [
+ {
+ type: memorize
+ filter: bearer
+ memory: bearer
+ }
+ {
+ type: discard
+ select: self
+ }
+ ]
effect: {
type: preventWound
select: memory(bearer)
diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set12/Card_12_032_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set12/Card_12_032_Tests.java
index 921a31dc0..e7319416e 100644
--- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set12/Card_12_032_Tests.java
+++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set12/Card_12_032_Tests.java
@@ -17,8 +17,11 @@ public class Card_12_032_Tests
return new GenericCardTestHelper(
new HashMap<>()
{{
- put("card", "12_32");
- // put other cards in here as needed for the test case
+ put("salve", "12_32");
+ put("aragorn", "1_89");
+
+ put("marksman", "1_176");
+
}},
GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo,
@@ -38,12 +41,13 @@ public class Card_12_032_Tests
* Twilight Cost: 0
* Type: Condition
* Subtype:
- * Game Text: Spell. To play, spot a [gandalf] Wizard. Bearer must be a companion. Limit 1 per bearer.
Response: If bearer is about to take a wound that would kill him or her, discard this condition to prevent that wound.
+ * Game Text: Spell. To play, spot a [gandalf] Wizard. Bearer must be a companion. Limit 1 per bearer.
+ * Response: If bearer is about to take a wound that would kill him or her, discard this condition to prevent that wound.
*/
var scn = GetScenario();
- var card = scn.GetFreepsCard("card");
+ var card = scn.GetFreepsCard("salve");
assertEquals("Salve", card.getBlueprint().getTitle());
assertNull(card.getBlueprint().getSubtitle());
@@ -55,18 +59,34 @@ public class Card_12_032_Tests
assertEquals(0, card.getBlueprint().getTwilightCost());
}
- // Uncomment any @Test markers below once this is ready to be used
- //@Test
- public void SalveTest1() throws DecisionResultInvalidException, CardNotFoundException {
+ @Test
+ public void SalveProtectsBearerFromLethalDamage() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
- var card = scn.GetFreepsCard("card");
- scn.FreepsMoveCardToHand(card);
+ var salve = scn.GetFreepsCard("salve");
+ var aragorn = scn.GetFreepsCard("aragorn");
+ scn.FreepsMoveCharToTable(aragorn);
+ scn.FreepsAttachCardsTo(aragorn, salve);
+
+ scn.ShadowMoveCharToTable("marksman");
scn.StartGame();
- scn.FreepsPlayCard(card);
+ scn.AddWoundsToChar(aragorn, 3);
+
+ scn.SkipToPhase(Phase.ARCHERY);
+ scn.PassCurrentPhaseActions();
+ scn.FreepsChooseCard(aragorn);
+
+ assertEquals(1, scn.GetVitality(aragorn));
+ assertEquals(Zone.ATTACHED, salve.getZone());
+ assertEquals(Zone.FREE_CHARACTERS, aragorn.getZone());
+ assertTrue(scn.FreepsHasOptionalTriggerAvailable());
+ scn.FreepsAcceptOptionalTrigger();
+
+ assertEquals(Zone.DISCARD, salve.getZone());
+ assertEquals(Zone.FREE_CHARACTERS, aragorn.getZone());
+ assertEquals(1, scn.GetVitality(aragorn));
- assertEquals(0, scn.GetTwilight());
}
}