Fixed V2 An End Worthy of Remembrance never being playable
This commit is contained in:
@@ -84,17 +84,19 @@
|
||||
timewords: Skirmish
|
||||
effects: {
|
||||
type: event
|
||||
requires: {
|
||||
type: CanSpot
|
||||
filter: HasCultureTokenCount(2,rohan)
|
||||
}
|
||||
requires: [
|
||||
{
|
||||
type: CanSpot
|
||||
filter: condition,HasCultureTokenCount(2,rohan)
|
||||
}
|
||||
]
|
||||
cost: [
|
||||
{
|
||||
type: ChooseActiveCards
|
||||
text: Choose how many {rohan} conditions to remove 2 tokens from.
|
||||
count: {
|
||||
type: Range
|
||||
from: 0
|
||||
from: 1
|
||||
to: {
|
||||
type: ForEachYouCanSpot
|
||||
filter: condition,HasCultureTokenCount(2,rohan)
|
||||
@@ -102,23 +104,26 @@
|
||||
}
|
||||
select: choose(HasCultureTokenCount(2,rohan))
|
||||
memorize: chosenConditions
|
||||
}
|
||||
{
|
||||
type: RemoveCultureTokens
|
||||
select: memory(chosenConditions)
|
||||
count: 2
|
||||
ignoreCostCheckFailure: true
|
||||
}
|
||||
}
|
||||
]
|
||||
effect: [
|
||||
{
|
||||
type: ModifyStrength
|
||||
select: choose(valiant, companion)
|
||||
count: 3
|
||||
until: start(regroup)
|
||||
amount: {
|
||||
type: ForEachInMemory
|
||||
memory: chosenConditions
|
||||
type: CostToEffect
|
||||
cost: {
|
||||
type: RemoveCultureTokens
|
||||
select: memory(chosenConditions)
|
||||
count: 2
|
||||
ignoreCostCheckFailure: true
|
||||
}
|
||||
effect: {
|
||||
type: ModifyStrength
|
||||
select: choose(valiant, companion)
|
||||
count: 3
|
||||
until: start(regroup)
|
||||
amount: {
|
||||
type: ForEachInMemory
|
||||
memory: chosenConditions
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02;
|
||||
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;
|
||||
|
||||
@@ -18,8 +17,16 @@ public class Card_V2_046_Tests
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<>()
|
||||
{{
|
||||
put("card", "102_46");
|
||||
// put other cards in here as needed for the test case
|
||||
put("end", "102_46");
|
||||
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.FOTRFrodo,
|
||||
@@ -44,7 +51,7 @@ public class Card_V2_046_Tests
|
||||
|
||||
var scn = GetScenario();
|
||||
|
||||
var card = scn.GetFreepsCard("card");
|
||||
var card = scn.GetFreepsCard("end");
|
||||
|
||||
assertEquals("An End Worthy of Remembrance", card.getBlueprint().getTitle());
|
||||
assertNull(card.getBlueprint().getSubtitle());
|
||||
@@ -56,18 +63,150 @@ public class Card_V2_046_Tests
|
||||
assertEquals(2, card.getBlueprint().getTwilightCost());
|
||||
}
|
||||
|
||||
// Uncomment any @Test markers below once this is ready to be used
|
||||
//@Test
|
||||
public void AnEndWorthyofRemembranceTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
@Test
|
||||
public void AnEndWorthyofRemembrancePumps3ValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
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");
|
||||
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.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