Fixed V2 An End Worthy of Remembrance never being playable
This commit is contained in:
@@ -84,17 +84,19 @@
|
|||||||
timewords: Skirmish
|
timewords: Skirmish
|
||||||
effects: {
|
effects: {
|
||||||
type: event
|
type: event
|
||||||
requires: {
|
requires: [
|
||||||
|
{
|
||||||
type: CanSpot
|
type: CanSpot
|
||||||
filter: HasCultureTokenCount(2,rohan)
|
filter: condition,HasCultureTokenCount(2,rohan)
|
||||||
}
|
}
|
||||||
|
]
|
||||||
cost: [
|
cost: [
|
||||||
{
|
{
|
||||||
type: ChooseActiveCards
|
type: ChooseActiveCards
|
||||||
text: Choose how many {rohan} conditions to remove 2 tokens from.
|
text: Choose how many {rohan} conditions to remove 2 tokens from.
|
||||||
count: {
|
count: {
|
||||||
type: Range
|
type: Range
|
||||||
from: 0
|
from: 1
|
||||||
to: {
|
to: {
|
||||||
type: ForEachYouCanSpot
|
type: ForEachYouCanSpot
|
||||||
filter: condition,HasCultureTokenCount(2,rohan)
|
filter: condition,HasCultureTokenCount(2,rohan)
|
||||||
@@ -103,15 +105,17 @@
|
|||||||
select: choose(HasCultureTokenCount(2,rohan))
|
select: choose(HasCultureTokenCount(2,rohan))
|
||||||
memorize: chosenConditions
|
memorize: chosenConditions
|
||||||
}
|
}
|
||||||
|
]
|
||||||
|
effect: [
|
||||||
{
|
{
|
||||||
|
type: CostToEffect
|
||||||
|
cost: {
|
||||||
type: RemoveCultureTokens
|
type: RemoveCultureTokens
|
||||||
select: memory(chosenConditions)
|
select: memory(chosenConditions)
|
||||||
count: 2
|
count: 2
|
||||||
ignoreCostCheckFailure: true
|
ignoreCostCheckFailure: true
|
||||||
}
|
}
|
||||||
]
|
effect: {
|
||||||
effect: [
|
|
||||||
{
|
|
||||||
type: ModifyStrength
|
type: ModifyStrength
|
||||||
select: choose(valiant, companion)
|
select: choose(valiant, companion)
|
||||||
count: 3
|
count: 3
|
||||||
@@ -121,6 +125,7 @@
|
|||||||
memory: chosenConditions
|
memory: chosenConditions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
gametext: Spot X [rohan] conditions and remove 2 tokens from each to make 3 valiant companions strength +X until the regroup phase.
|
gametext: Spot X [rohan] conditions and remove 2 tokens from each to make 3 valiant companions strength +X until the regroup phase.
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02;
|
|||||||
import com.gempukku.lotro.cards.GenericCardTestHelper;
|
import com.gempukku.lotro.cards.GenericCardTestHelper;
|
||||||
import com.gempukku.lotro.common.*;
|
import com.gempukku.lotro.common.*;
|
||||||
import com.gempukku.lotro.game.CardNotFoundException;
|
import com.gempukku.lotro.game.CardNotFoundException;
|
||||||
import com.gempukku.lotro.game.PhysicalCardImpl;
|
|
||||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
@@ -18,8 +17,16 @@ public class Card_V2_046_Tests
|
|||||||
return new GenericCardTestHelper(
|
return new GenericCardTestHelper(
|
||||||
new HashMap<>()
|
new HashMap<>()
|
||||||
{{
|
{{
|
||||||
put("card", "102_46");
|
put("end", "102_46");
|
||||||
// put other cards in here as needed for the test case
|
put("fortress", "4_276");
|
||||||
|
put("none", "6_97");
|
||||||
|
put("doom", "8_86");
|
||||||
|
put("vhaldir", "102_8");
|
||||||
|
put("vgimli", "55_7");
|
||||||
|
put("veowyn", "4_270");
|
||||||
|
put("veomer", "6_92");
|
||||||
|
|
||||||
|
put("runner", "1_178");
|
||||||
}},
|
}},
|
||||||
GenericCardTestHelper.FellowshipSites,
|
GenericCardTestHelper.FellowshipSites,
|
||||||
GenericCardTestHelper.FOTRFrodo,
|
GenericCardTestHelper.FOTRFrodo,
|
||||||
@@ -44,7 +51,7 @@ public class Card_V2_046_Tests
|
|||||||
|
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
|
|
||||||
var card = scn.GetFreepsCard("card");
|
var card = scn.GetFreepsCard("end");
|
||||||
|
|
||||||
assertEquals("An End Worthy of Remembrance", card.getBlueprint().getTitle());
|
assertEquals("An End Worthy of Remembrance", card.getBlueprint().getTitle());
|
||||||
assertNull(card.getBlueprint().getSubtitle());
|
assertNull(card.getBlueprint().getSubtitle());
|
||||||
@@ -56,18 +63,150 @@ public class Card_V2_046_Tests
|
|||||||
assertEquals(2, card.getBlueprint().getTwilightCost());
|
assertEquals(2, card.getBlueprint().getTwilightCost());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uncomment any @Test markers below once this is ready to be used
|
@Test
|
||||||
//@Test
|
public void AnEndWorthyofRemembrancePumps3ValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
public void AnEndWorthyofRemembranceTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
|
||||||
//Pre-game setup
|
//Pre-game setup
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
|
|
||||||
var card = scn.GetFreepsCard("card");
|
var end = scn.GetFreepsCard("end");
|
||||||
scn.FreepsMoveCardToHand(card);
|
var fortress = scn.GetFreepsCard("fortress");
|
||||||
|
var none = scn.GetFreepsCard("none");
|
||||||
|
var doom = scn.GetFreepsCard("doom");
|
||||||
|
var vhaldir = scn.GetFreepsCard("vhaldir");
|
||||||
|
var vgimli = scn.GetFreepsCard("vgimli");
|
||||||
|
var veowyn = scn.GetFreepsCard("veowyn");
|
||||||
|
var veomer = scn.GetFreepsCard("veomer");
|
||||||
|
scn.FreepsMoveCardToHand(end);
|
||||||
|
scn.FreepsMoveCardToSupportArea(fortress, none, doom);
|
||||||
|
scn.FreepsMoveCharToTable(vhaldir, vgimli, veowyn, veomer);
|
||||||
|
scn.AddTokensToCard(fortress, 3);
|
||||||
|
scn.AddTokensToCard(none, 3);
|
||||||
|
scn.AddTokensToCard(doom, 3);
|
||||||
|
|
||||||
|
var runner = scn.GetShadowCard("runner");
|
||||||
|
scn.ShadowMoveCharToTable(runner);
|
||||||
|
|
||||||
scn.StartGame();
|
scn.StartGame();
|
||||||
scn.FreepsPlayCard(card);
|
scn.SkipToAssignments();
|
||||||
|
scn.FreepsAssignToMinions(vgimli, runner);
|
||||||
|
scn.FreepsResolveSkirmish(vgimli);
|
||||||
|
|
||||||
assertEquals(2, scn.GetTwilight());
|
assertEquals(3, scn.GetCultureTokensOn(fortress));
|
||||||
|
assertEquals(3, scn.GetCultureTokensOn(none));
|
||||||
|
assertEquals(3, scn.GetCultureTokensOn(doom));
|
||||||
|
assertEquals(6, scn.GetStrength(vhaldir));
|
||||||
|
assertEquals(6, scn.GetStrength(vgimli));
|
||||||
|
assertEquals(6, scn.GetStrength(veowyn));
|
||||||
|
assertEquals(7, scn.GetStrength(veomer));
|
||||||
|
|
||||||
|
assertTrue(scn.FreepsPlayAvailable(end));
|
||||||
|
scn.FreepsPlayCard(end);
|
||||||
|
scn.FreepsChooseCards(fortress, none, doom);
|
||||||
|
|
||||||
|
assertEquals(3, scn.FreepsGetChoiceMax());
|
||||||
|
scn.FreepsChooseCards(vgimli, vhaldir, veowyn);
|
||||||
|
assertEquals(1, scn.GetCultureTokensOn(fortress));
|
||||||
|
assertEquals(1, scn.GetCultureTokensOn(none));
|
||||||
|
assertEquals(1, scn.GetCultureTokensOn(doom));
|
||||||
|
assertEquals(9, scn.GetStrength(vhaldir));
|
||||||
|
assertEquals(9, scn.GetStrength(vgimli));
|
||||||
|
assertEquals(9, scn.GetStrength(veowyn));
|
||||||
|
assertEquals(7, scn.GetStrength(veomer));
|
||||||
|
|
||||||
|
scn.ShadowPassCurrentPhaseAction();
|
||||||
|
scn.FreepsPassCurrentPhaseAction();
|
||||||
|
scn.FreepsDeclineOptionalTrigger();
|
||||||
|
|
||||||
|
assertEquals(Phase.REGROUP, scn.GetCurrentPhase());
|
||||||
|
assertEquals(6, scn.GetStrength(vhaldir));
|
||||||
|
assertEquals(6, scn.GetStrength(vgimli));
|
||||||
|
assertEquals(6, scn.GetStrength(veowyn));
|
||||||
|
assertEquals(7, scn.GetStrength(veomer));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void AnEndWorthyofRemembranceCannotPlayIfNoConditionsWith2RohanTokens() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
|
//Pre-game setup
|
||||||
|
var scn = GetScenario();
|
||||||
|
|
||||||
|
var frodo = scn.GetRingBearer();
|
||||||
|
var end = scn.GetFreepsCard("end");
|
||||||
|
var fortress = scn.GetFreepsCard("fortress");
|
||||||
|
var none = scn.GetFreepsCard("none");
|
||||||
|
var doom = scn.GetFreepsCard("doom");
|
||||||
|
scn.FreepsMoveCardToHand(end);
|
||||||
|
scn.FreepsMoveCardToSupportArea(fortress, none, doom);
|
||||||
|
scn.AddTokensToCard(fortress, 1);
|
||||||
|
scn.AddTokensToCard(none, 1);
|
||||||
|
scn.AddTokensToCard(doom, 1);
|
||||||
|
|
||||||
|
var runner = scn.GetShadowCard("runner");
|
||||||
|
scn.ShadowMoveCharToTable(runner);
|
||||||
|
|
||||||
|
scn.StartGame();
|
||||||
|
scn.SkipToAssignments();
|
||||||
|
scn.FreepsAssignToMinions(frodo, runner);
|
||||||
|
scn.FreepsResolveSkirmish(frodo);
|
||||||
|
|
||||||
|
assertEquals(1, scn.GetCultureTokensOn(fortress));
|
||||||
|
assertEquals(1, scn.GetCultureTokensOn(none));
|
||||||
|
assertEquals(1, scn.GetCultureTokensOn(doom));
|
||||||
|
|
||||||
|
assertFalse(scn.FreepsPlayAvailable(end));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void AnEndWorthyofRemembrancePumps3ValiantCompanionsPlusOneIfOnlyOneConditionUsed() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
|
//Pre-game setup
|
||||||
|
var scn = GetScenario();
|
||||||
|
|
||||||
|
var end = scn.GetFreepsCard("end");
|
||||||
|
var fortress = scn.GetFreepsCard("fortress");
|
||||||
|
var none = scn.GetFreepsCard("none");
|
||||||
|
var doom = scn.GetFreepsCard("doom");
|
||||||
|
var vhaldir = scn.GetFreepsCard("vhaldir");
|
||||||
|
var vgimli = scn.GetFreepsCard("vgimli");
|
||||||
|
var veowyn = scn.GetFreepsCard("veowyn");
|
||||||
|
scn.FreepsMoveCardToHand(end);
|
||||||
|
scn.FreepsMoveCardToSupportArea(fortress, none, doom);
|
||||||
|
scn.FreepsMoveCharToTable(vhaldir, vgimli, veowyn);
|
||||||
|
scn.AddTokensToCard(fortress, 3);
|
||||||
|
scn.AddTokensToCard(none, 3);
|
||||||
|
scn.AddTokensToCard(doom, 3);
|
||||||
|
|
||||||
|
var runner = scn.GetShadowCard("runner");
|
||||||
|
scn.ShadowMoveCharToTable(runner);
|
||||||
|
|
||||||
|
scn.StartGame();
|
||||||
|
scn.SkipToAssignments();
|
||||||
|
scn.FreepsAssignToMinions(vgimli, runner);
|
||||||
|
scn.FreepsResolveSkirmish(vgimli);
|
||||||
|
|
||||||
|
assertEquals(3, scn.GetCultureTokensOn(fortress));
|
||||||
|
assertEquals(3, scn.GetCultureTokensOn(none));
|
||||||
|
assertEquals(3, scn.GetCultureTokensOn(doom));
|
||||||
|
assertEquals(6, scn.GetStrength(vhaldir));
|
||||||
|
assertEquals(6, scn.GetStrength(vgimli));
|
||||||
|
assertEquals(6, scn.GetStrength(veowyn));
|
||||||
|
|
||||||
|
assertTrue(scn.FreepsPlayAvailable(end));
|
||||||
|
scn.FreepsPlayCard(end);
|
||||||
|
scn.FreepsChooseCards(fortress);
|
||||||
|
|
||||||
|
assertEquals(1, scn.GetCultureTokensOn(fortress));
|
||||||
|
assertEquals(3, scn.GetCultureTokensOn(none));
|
||||||
|
assertEquals(3, scn.GetCultureTokensOn(doom));
|
||||||
|
assertEquals(7, scn.GetStrength(vhaldir));
|
||||||
|
assertEquals(7, scn.GetStrength(vgimli));
|
||||||
|
assertEquals(7, scn.GetStrength(veowyn));
|
||||||
|
|
||||||
|
scn.ShadowPassCurrentPhaseAction();
|
||||||
|
scn.FreepsPassCurrentPhaseAction();
|
||||||
|
scn.FreepsDeclineOptionalTrigger();
|
||||||
|
|
||||||
|
assertEquals(Phase.REGROUP, scn.GetCurrentPhase());
|
||||||
|
assertEquals(6, scn.GetStrength(vhaldir));
|
||||||
|
assertEquals(6, scn.GetStrength(vgimli));
|
||||||
|
assertEquals(6, scn.GetStrength(veowyn));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user