Initial attempt at jetsam
This commit is contained in:
@@ -25,17 +25,26 @@
|
|||||||
Pipeweed
|
Pipeweed
|
||||||
Support Area
|
Support Area
|
||||||
]
|
]
|
||||||
/*requires: {
|
effects: {
|
||||||
|
type: trigger
|
||||||
|
optional: true
|
||||||
|
trigger: {
|
||||||
|
type: played
|
||||||
|
filter: self
|
||||||
|
}
|
||||||
|
effect: [
|
||||||
|
{
|
||||||
|
type: shuffleCardsFromDiscardIntoDrawDeck
|
||||||
|
filter: choose(pipe)
|
||||||
|
count: 0-1
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type: shuffleCardsFromDiscardIntoDrawDeck
|
||||||
|
filter: choose(pipeweed)
|
||||||
|
count: 0-1
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
effects: [
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
]*/
|
|
||||||
gametext: Pipeweed.<br>When you play this possession, you may shuffle a pipe and a pipeweed into your deck from your discard pile.
|
gametext: Pipeweed.<br>When you play this possession, you may shuffle a pipe and a pipeweed into your deck from your discard pile.
|
||||||
lore: "'How it came here, I can't imagine. For Saruman's private use, I fancy.'"
|
lore: "'How it came here, I can't imagine. For Saruman's private use, I fancy.'"
|
||||||
promotext: ""
|
promotext: ""
|
||||||
|
|||||||
@@ -18,7 +18,11 @@ public class Card_V2_012_Tests
|
|||||||
return new GenericCardTestHelper(
|
return new GenericCardTestHelper(
|
||||||
new HashMap<>()
|
new HashMap<>()
|
||||||
{{
|
{{
|
||||||
put("card", "102_12");
|
put("jetsam", "102_12");
|
||||||
|
put("pipe", "1_285");
|
||||||
|
put("pipeweed", "1_305");
|
||||||
|
put("pipe2", "1_285");
|
||||||
|
put("pipeweed2", "1_305");
|
||||||
// put other cards in here as needed for the test case
|
// put other cards in here as needed for the test case
|
||||||
}},
|
}},
|
||||||
GenericCardTestHelper.FellowshipSites,
|
GenericCardTestHelper.FellowshipSites,
|
||||||
@@ -45,31 +49,67 @@ public class Card_V2_012_Tests
|
|||||||
|
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
|
|
||||||
var card = scn.GetFreepsCard("card");
|
var jetsam = scn.GetFreepsCard("jetsam");
|
||||||
|
|
||||||
assertEquals("Jetsam", card.getBlueprint().getTitle());
|
assertEquals("Jetsam", jetsam.getBlueprint().getTitle());
|
||||||
assertNull(card.getBlueprint().getSubtitle());
|
assertNull(jetsam.getBlueprint().getSubtitle());
|
||||||
assertFalse(card.getBlueprint().isUnique());
|
assertFalse(jetsam.getBlueprint().isUnique());
|
||||||
assertEquals(Side.FREE_PEOPLE, card.getBlueprint().getSide());
|
assertEquals(Side.FREE_PEOPLE, jetsam.getBlueprint().getSide());
|
||||||
assertEquals(Culture.GANDALF, card.getBlueprint().getCulture());
|
assertEquals(Culture.GANDALF, jetsam.getBlueprint().getCulture());
|
||||||
assertEquals(CardType.POSSESSION, card.getBlueprint().getCardType());
|
assertEquals(CardType.POSSESSION, jetsam.getBlueprint().getCardType());
|
||||||
assertTrue(scn.HasKeyword(card, Keyword.PIPEWEED));
|
assertTrue(scn.HasKeyword(jetsam, Keyword.PIPEWEED));
|
||||||
assertTrue(scn.HasKeyword(card, Keyword.SUPPORT_AREA));
|
assertTrue(scn.HasKeyword(jetsam, Keyword.SUPPORT_AREA));
|
||||||
assertEquals(1, card.getBlueprint().getTwilightCost());
|
assertEquals(1, jetsam.getBlueprint().getTwilightCost());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uncomment any @Test markers below once this is ready to be used
|
@Test
|
||||||
//@Test
|
|
||||||
public void JetsamTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
public void JetsamTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
//Pre-game setup
|
//Pre-game setup
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
|
|
||||||
var card = scn.GetFreepsCard("card");
|
var jetsam = scn.GetFreepsCard("jetsam");
|
||||||
scn.FreepsMoveCardToHand(card);
|
var pipe = scn.GetFreepsCard("pipe");
|
||||||
|
var pipeweed = scn.GetFreepsCard("pipeweed");
|
||||||
|
// var pipe2 = scn.GetFreepsCard("pipe2");
|
||||||
|
// var pipeweed2 = scn.GetFreepsCard("pipeweed2");
|
||||||
|
|
||||||
|
scn.FreepsMoveCardToHand(jetsam);
|
||||||
|
scn.FreepsMoveCardToDiscard(pipe);
|
||||||
|
scn.FreepsMoveCardToDiscard(pipeweed);
|
||||||
|
|
||||||
scn.StartGame();
|
scn.StartGame();
|
||||||
scn.FreepsPlayCard(card);
|
|
||||||
|
|
||||||
|
|
||||||
|
assertEquals(2, scn.GetFreepsDeckCount());
|
||||||
|
assertEquals(2, scn.GetFreepsDiscardCount());
|
||||||
|
assertEquals(0, scn.GetTwilight());
|
||||||
|
|
||||||
|
|
||||||
|
scn.FreepsPlayCard(jetsam);
|
||||||
|
|
||||||
|
|
||||||
|
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
|
||||||
|
scn.FreepsAcceptOptionalTrigger();
|
||||||
|
|
||||||
|
assertTrue(scn.FreepsDecisionAvailable(""));
|
||||||
|
assertEquals(1, scn.GetFreepsCardChoiceCount());
|
||||||
|
assertEquals(Zone.DISCARD, pipe.getZone());
|
||||||
|
|
||||||
|
scn.FreepsChooseCardIDFromSelection(pipe);
|
||||||
|
|
||||||
|
assertEquals(Zone.DECK, pipe.getZone());
|
||||||
|
|
||||||
|
|
||||||
|
assertEquals(1, scn.GetFreepsCardChoiceCount());
|
||||||
|
|
||||||
|
scn.FreepsChooseCardIDFromSelection(pipeweed);
|
||||||
|
|
||||||
|
assertFalse(scn.FreepsHasOptionalTriggerAvailable());
|
||||||
|
|
||||||
|
scn.FreepsPassCurrentPhaseAction();
|
||||||
|
|
||||||
|
assertEquals(4, scn.GetFreepsDeckCount());
|
||||||
|
assertEquals(0, scn.GetFreepsDiscardCount());
|
||||||
assertEquals(1, scn.GetTwilight());
|
assertEquals(1, scn.GetTwilight());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user