Changing Ford of Bruinen and Dimrill Dale to use PerTurn/PerPhase limits instead of in-zone data, so now they shouldn't flash at the end of turn/end of shadow phase.
This commit is contained in:
@@ -548,11 +548,8 @@
|
||||
modifier: {
|
||||
type: modifyCost
|
||||
requires: {
|
||||
type: not
|
||||
requires: {
|
||||
type: hasInZoneData
|
||||
filter: self
|
||||
}
|
||||
type: perTurnLimit
|
||||
limit: 1
|
||||
}
|
||||
filter: nazgul
|
||||
amount: -5
|
||||
@@ -563,27 +560,10 @@
|
||||
trigger: {
|
||||
type: played
|
||||
filter: nazgul
|
||||
memorize: playedNazgul
|
||||
}
|
||||
requires: {
|
||||
type: not
|
||||
requires: {
|
||||
type: hasInZoneData
|
||||
filter: self
|
||||
}
|
||||
}
|
||||
effect: {
|
||||
type: storeWhileInZone
|
||||
memory: playedNazgul
|
||||
}
|
||||
}
|
||||
{
|
||||
type: trigger
|
||||
trigger: {
|
||||
type: endOfTurn
|
||||
}
|
||||
effect: {
|
||||
type: resetWhileInZoneData
|
||||
type: incrementPerTurnLimit
|
||||
limit: 1
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -917,11 +897,8 @@
|
||||
modifier: {
|
||||
type: modifyCost
|
||||
requires: {
|
||||
type: not
|
||||
requires: {
|
||||
type: hasInZoneData
|
||||
filter: self
|
||||
}
|
||||
type: perPhaseLimit
|
||||
limit: 1
|
||||
}
|
||||
filter: culture(moria),orc
|
||||
amount: -2
|
||||
@@ -932,28 +909,10 @@
|
||||
trigger: {
|
||||
type: played
|
||||
filter: culture(moria),orc
|
||||
memorize: playedOrc
|
||||
}
|
||||
requires: {
|
||||
type: not
|
||||
requires: {
|
||||
type: hasInZoneData
|
||||
filter: self
|
||||
}
|
||||
}
|
||||
effect: {
|
||||
type: appendCardIdsToWhileInZone
|
||||
memory: playedOrc
|
||||
}
|
||||
}
|
||||
{
|
||||
type: trigger
|
||||
trigger: {
|
||||
type: endOfPhase
|
||||
phase: shadow
|
||||
}
|
||||
effect: {
|
||||
type: resetWhileInZoneData
|
||||
type: incrementPerPhaseLimit
|
||||
limit: 1
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -18,10 +18,21 @@ public class Card_01_338_Tests
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<>()
|
||||
{{
|
||||
put("card", "1_338");
|
||||
put("twk", "1_237");
|
||||
put("lemenya", "1_232");
|
||||
// put other cards in here as needed for the test case
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
new HashMap<>() {{
|
||||
put("site1", "1_319");
|
||||
put("site2", "1_327");
|
||||
put("site3", "1_338");
|
||||
put("site4", "1_343");
|
||||
put("site5", "1_349");
|
||||
put("site6", "1_351");
|
||||
put("site7", "1_353");
|
||||
put("site8", "1_356");
|
||||
put("site9", "1_360");
|
||||
}},
|
||||
GenericCardTestHelper.FOTRFrodo,
|
||||
GenericCardTestHelper.RulingRing
|
||||
);
|
||||
@@ -45,9 +56,7 @@ public class Card_01_338_Tests
|
||||
|
||||
var scn = GetScenario();
|
||||
|
||||
//Use this once you have set the deck up properly
|
||||
//var card = scn.GetFreepsSite(3);
|
||||
var card = scn.GetFreepsCard("card");
|
||||
var card = scn.GetFreepsSite(3);
|
||||
|
||||
assertEquals("Ford of Bruinen", card.getBlueprint().getTitle());
|
||||
assertNull(card.getBlueprint().getSubtitle());
|
||||
@@ -59,18 +68,37 @@ public class Card_01_338_Tests
|
||||
assertEquals(3, card.getBlueprint().getSiteNumber());
|
||||
}
|
||||
|
||||
// Uncomment any @Test markers below once this is ready to be used
|
||||
//@Test
|
||||
public void FordofBruinenTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
@Test
|
||||
public void FordofBruinenOnlyDiscountsTheFirstNazgul() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
var ford = scn.GetShadowSite(3);
|
||||
|
||||
var twk = scn.GetShadowCard("twk");
|
||||
var lemenya = scn.GetShadowCard("lemenya");
|
||||
scn.ShadowMoveCardToHand(twk, lemenya);
|
||||
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
//Start our test on 2 so that moving to 3 is the first thing we do
|
||||
scn.SkipToSite(2);
|
||||
|
||||
assertEquals(0, scn.GetTwilight());
|
||||
scn.SetTwilight(9);
|
||||
scn.FreepsPassCurrentPhaseAction();
|
||||
|
||||
assertEquals(ford, scn.GetCurrentSite());
|
||||
|
||||
//9 manual + 1 from the fellowship moving
|
||||
assertEquals(10, scn.GetTwilight());
|
||||
|
||||
scn.ShadowPlayCard(twk);
|
||||
//TWK costs 8 (no roaming), discounted by 5 to 3 total
|
||||
//10 - 3
|
||||
assertEquals(7, scn.GetTwilight());
|
||||
|
||||
scn.ShadowPlayCard(lemenya);
|
||||
//Lemenya costs 4, should have no discount
|
||||
//7 - 4
|
||||
assertEquals(3, scn.GetTwilight());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,10 +18,21 @@ public class Card_01_350_Tests
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<>()
|
||||
{{
|
||||
put("card", "1_350");
|
||||
// put other cards in here as needed for the test case
|
||||
put("troop", "1_177");
|
||||
put("flankers", "2_61");
|
||||
put("redeye", "1_266");
|
||||
}},
|
||||
new HashMap<>() {{
|
||||
put("site1", "1_319");
|
||||
put("site2", "1_327");
|
||||
put("site3", "1_338");
|
||||
put("site4", "1_343");
|
||||
put("site5", "1_349");
|
||||
put("site6", "1_350");
|
||||
put("site7", "1_353");
|
||||
put("site8", "1_356");
|
||||
put("site9", "1_360");
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
GenericCardTestHelper.FOTRFrodo,
|
||||
GenericCardTestHelper.RulingRing
|
||||
);
|
||||
@@ -45,9 +56,7 @@ public class Card_01_350_Tests
|
||||
|
||||
var scn = GetScenario();
|
||||
|
||||
//Use this once you have set the deck up properly
|
||||
//var card = scn.GetFreepsSite(6);
|
||||
var card = scn.GetFreepsCard("card");
|
||||
var card = scn.GetFreepsSite(6);
|
||||
|
||||
assertEquals("Dimrill Dale", card.getBlueprint().getTitle());
|
||||
assertNull(card.getBlueprint().getSubtitle());
|
||||
@@ -58,18 +67,43 @@ public class Card_01_350_Tests
|
||||
assertEquals(6, card.getBlueprint().getSiteNumber());
|
||||
}
|
||||
|
||||
// Uncomment any @Test markers below once this is ready to be used
|
||||
//@Test
|
||||
public void DimrillDaleTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
@Test
|
||||
public void DimrillDaleOnlyDiscountsFirstMoriaOrc() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
var dale = scn.GetShadowSite(6);
|
||||
|
||||
var troop = scn.GetShadowCard("troop");
|
||||
var flankers = scn.GetShadowCard("flankers");
|
||||
var redeye = scn.GetShadowCard("redeye");
|
||||
scn.ShadowMoveCardToHand(troop, redeye);
|
||||
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
//Start our test on 5 so that moving to 6 is the first thing we do
|
||||
scn.SkipToSite(5);
|
||||
|
||||
assertEquals(3, scn.GetTwilight());
|
||||
scn.SetTwilight(11);
|
||||
scn.FreepsPassCurrentPhaseAction();
|
||||
|
||||
assertEquals(dale, scn.GetCurrentSite());
|
||||
|
||||
//11 manual + 4 from the fellowship moving
|
||||
assertEquals(15, scn.GetTwilight());
|
||||
|
||||
scn.ShadowPlayCard(redeye);
|
||||
//Orc Chieftain costs 2, should have had 0 discount
|
||||
//15 - 2
|
||||
assertEquals(13, scn.GetTwilight());
|
||||
|
||||
scn.ShadowPlayCard(troop);
|
||||
//Troop costs 6 (no roaming), discounted by 2 to 4 total
|
||||
//13 - 4
|
||||
assertEquals(9, scn.GetTwilight());
|
||||
|
||||
scn.ShadowPlayCard(flankers);
|
||||
//flankers costs 5, should have no discount
|
||||
//9 - 5
|
||||
assertEquals(4, scn.GetTwilight());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user