Fixing One Dwarf in Moria not offering the discard if the chosen dwarf has no wounds

This commit is contained in:
Christian 'ketura' McCarty
2023-01-13 01:08:01 -06:00
parent d0dfb63340
commit fa105f802d
2 changed files with 49 additions and 5 deletions

View File

@@ -203,22 +203,28 @@
type: event
effect: [
{
type: heal
type: chooseActiveCards
count: 1
filter: choose(dwarf,hasAttachedCount(2,item))
memorize: chosenDwarf
text: Choose a Dwarf with 2 or more items to heal
}
{
type: heal
filter: memory(chosenDwarf)
times: 1
memorize: healedDwarf
}
{
type: memorizenumber
memory: originalItemCount
amount: {
type: forEachYouCanSpot
filter: item,attachedTo(memory(healedDwarf))
filter: item,attachedTo(memory(chosenDwarf))
}
}
{
type: returntohand
filter: choose(item,attachedTo(memory(healedDwarf)))
filter: choose(item,attachedTo(memory(chosenDwarf)))
count: 0-50
}
{
@@ -232,7 +238,7 @@
}
secondNumber: {
type: forEachYouCanSpot
filter: item,attachedTo(memory(healedDwarf))
filter: item,attachedTo(memory(chosenDwarf))
}
}
}

View File

@@ -129,6 +129,44 @@ public class Card_V1_005_Tests
assertEquals(Zone.SHADOW_CHARACTERS, scn.GetShadowCardByID(choices[5]).getZone());
}
@Test
public void OneDwarfDiscardsAndWoundsEvenIfDwarfIsFullyHealed() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
GenericCardTestHelper scn = GetScenario();
PhysicalCardImpl onedwarf = scn.GetFreepsCard("onedwarf");
PhysicalCardImpl gimli = scn.GetFreepsCard("gimli");
scn.FreepsMoveCardToHand(onedwarf);
scn.FreepsMoveCharToTable(gimli);
scn.FreepsMoveCharToTable("guard");
scn.FreepsAttachCardsTo(gimli, "handaxe1", "handaxe2", "armor", "bracers", "ring");
scn.ShadowMoveCharToTable("runner", "runner2", "runner3", "runner4", "runner5", "runner6");
scn.StartGame();
scn.SkipToPhase(Phase.MANEUVER);
assertTrue(scn.FreepsActionAvailable("One Dwarf"));
assertEquals(0, scn.GetWoundsOn(gimli));
scn.FreepsPlayCard(onedwarf);
assertTrue(scn.FreepsDecisionAvailable("Choose cards to return to hand"));
assertEquals(5, scn.GetFreepsCardChoiceCount()); // There are 5 items on gimli
String[] choices = scn.FreepsGetCardChoices().toArray(new String[0]);
scn.FreepsChoose(choices[0], choices[1], choices[2], choices[3], choices[4]);
assertTrue(scn.FreepsDecisionAvailable("Choose cards to wound"));
choices = scn.FreepsGetCardChoices().toArray(new String[0]);
scn.FreepsChoose(choices[0], choices[1], choices[2], choices[3], choices[4]);
assertEquals(Zone.DISCARD, scn.GetShadowCardByID(choices[0]).getZone());
assertEquals(Zone.DISCARD, scn.GetShadowCardByID(choices[1]).getZone());
assertEquals(Zone.DISCARD, scn.GetShadowCardByID(choices[2]).getZone());
assertEquals(Zone.DISCARD, scn.GetShadowCardByID(choices[3]).getZone());
assertEquals(Zone.DISCARD, scn.GetShadowCardByID(choices[4]).getZone());
assertEquals(Zone.SHADOW_CHARACTERS, scn.GetShadowCardByID(choices[5]).getZone());
}
@Test
public void OneDwarfCantBePlayedIfNoDwarvesWithTwoItems() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup