Mostly finishing Shire V1 revamp (Bilbo is pending)
This commit is contained in:
@@ -11,24 +11,35 @@
|
||||
"vitality": 3,
|
||||
"effects": [
|
||||
{
|
||||
"type": "trigger",
|
||||
"optional": true,
|
||||
"trigger": {
|
||||
"type": "moves"
|
||||
"type": "activated",
|
||||
"phase": "fellowship",
|
||||
"condition": {
|
||||
"type": "location",
|
||||
"filter": "sanctuary"
|
||||
},
|
||||
"cost": {
|
||||
"type": "exert",
|
||||
"filter": "self"
|
||||
"filter": "self",
|
||||
"times": 2
|
||||
},
|
||||
"effect": {
|
||||
"type": "modifyStrength",
|
||||
"filter": "choose(companion,signet(frodo))",
|
||||
"amount": 1,
|
||||
"until": "start(regroup)"
|
||||
}
|
||||
}
|
||||
"effect": [
|
||||
{
|
||||
"type": "playCardFromDrawDeck",
|
||||
"filter": "choose(item)",
|
||||
"on": "culture(shire),companion",
|
||||
"nocheck": true
|
||||
},
|
||||
{
|
||||
"type": "playCardFromDrawDeck",
|
||||
"filter": "choose(item)",
|
||||
"on": "culture(shire),companion",
|
||||
"nocheck": true
|
||||
}
|
||||
]
|
||||
},
|
||||
]
|
||||
},
|
||||
|
||||
"151_51": {
|
||||
"title": "*Griffo Boffin",
|
||||
"subtitle": "Uncouth Fellow",
|
||||
@@ -58,6 +69,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"151_52": {
|
||||
"title": "*Merry",
|
||||
"subtitle": "Of Buckland",
|
||||
@@ -75,22 +87,13 @@
|
||||
"phase": "assignment",
|
||||
"cost": [
|
||||
{
|
||||
"type": "discard",
|
||||
"filter": "choose(culture(dwarven),follower)",
|
||||
"count": "1-100",
|
||||
"memorize": "discardedTales"
|
||||
},
|
||||
{
|
||||
"type": "memorizeNumber",
|
||||
"memory": "numberOfTalesDiscarded",
|
||||
"amount": {
|
||||
"type": "forEachInMemory",
|
||||
"memory": "discardedTales"
|
||||
}
|
||||
"type": "exert",
|
||||
"filter": "self",
|
||||
"times": "2",
|
||||
},
|
||||
{
|
||||
"type": "chooseActiveCards",
|
||||
"text": "Choose minion",
|
||||
"text": "Choose minion to prevent from skirmishing",
|
||||
"filter": "choose(minion)",
|
||||
"memorize": "chosenMinion"
|
||||
}
|
||||
@@ -98,26 +101,21 @@
|
||||
"effect": {
|
||||
"type": "preventable",
|
||||
"player": "shadowPlayer",
|
||||
"text": "Would you like to remove {numberOfTalesDiscarded} twilight to allow {chosenMinion} to skirmish?",
|
||||
"text": "Would you like to exhaust {chosenMinion} to permit it to skirmish?",
|
||||
"cost": {
|
||||
"type": "removeTwilight",
|
||||
"amount": {
|
||||
"type": "forEachInMemory",
|
||||
"memory": "discardedTales"
|
||||
}
|
||||
"type": "exhaust",
|
||||
"filter": "memory(chosenMinion)"
|
||||
},
|
||||
"effect": {
|
||||
"type": "addModifier",
|
||||
"modifier": {
|
||||
"type": "cantBeAssignedToSkirmishAgainst",
|
||||
"fpCharacter": "any",
|
||||
"minion": "memory(chosenMinion)"
|
||||
}
|
||||
"type": "cantBeAssignedToSkirmish",
|
||||
"filter": "memory(chosenMinion)",
|
||||
"until": "start(regroup)"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"151_53": {
|
||||
"title": "*Pippin",
|
||||
"subtitle": "Of Tuckborough",
|
||||
@@ -140,7 +138,7 @@
|
||||
"effect": [
|
||||
{
|
||||
"type": "cantBeOverwhelmedMultiplier",
|
||||
"filter": "choose(culture(shire),companion)",
|
||||
"filter": "choose(culture(shire),companion,inSkirmish)",
|
||||
"memorize": "shireCompanion"
|
||||
},
|
||||
{
|
||||
@@ -160,6 +158,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"151_54": {
|
||||
"title": "*Sam",
|
||||
"subtitle": "Of Bagshot Row",
|
||||
@@ -215,6 +214,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"151_55": {
|
||||
"title": "We May Yet",
|
||||
"culture": "shire",
|
||||
@@ -225,7 +225,7 @@
|
||||
"type": "event",
|
||||
"cost": {
|
||||
"type": "exert",
|
||||
"filter": "choose(companion,signet(frodo))",
|
||||
"filter": "choose(companion,signet(frodo),inSkirmish)",
|
||||
"memorize": "exertedCompanion"
|
||||
},
|
||||
"effect": {
|
||||
@@ -239,6 +239,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"151_56": {
|
||||
"title": "We're Coming Too",
|
||||
"culture": "shire",
|
||||
|
||||
@@ -426,7 +426,7 @@ public class GenericCardTestHelper extends AbstractAtTest {
|
||||
Arrays.stream(cards).forEach(card -> MoveCardToZone(P1, card, Zone.DISCARD));
|
||||
}
|
||||
public void ShadowMoveCardToDiscard(String...names) {
|
||||
Arrays.stream(names).forEach(name -> ShadowMoveCardToDiscard(GetFreepsCard(name)));
|
||||
Arrays.stream(names).forEach(name -> ShadowMoveCardToDiscard(GetShadowCard(name)));
|
||||
}
|
||||
public void ShadowMoveCardToDiscard(PhysicalCardImpl...cards) {
|
||||
Arrays.stream(cards).forEach(card -> MoveCardToZone(P2, card, Zone.DISCARD));
|
||||
@@ -781,4 +781,9 @@ public class GenericCardTestHelper extends AbstractAtTest {
|
||||
playerDecided(P1, "");
|
||||
playerDecided(P2, "");
|
||||
}
|
||||
|
||||
public int GetOverwhelmMultiplier(PhysicalCardImpl card)
|
||||
{
|
||||
return _game.getModifiersQuerying().getOverwhelmMultiplier(_game, card);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,11 @@ package com.gempukku.lotro.cards.unofficial.pc.vset1.vpack1;
|
||||
|
||||
import com.gempukku.lotro.cards.GenericCardTestHelper;
|
||||
import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.CardNotFoundException;
|
||||
import com.gempukku.lotro.game.PhysicalCardImpl;
|
||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.MoveLimitModifier;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -22,8 +24,13 @@ public class Card_V1_050_Tests
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<String, String>()
|
||||
{{
|
||||
put("card", "151_50");
|
||||
// put other cards in here as needed for the test case
|
||||
put("bilbo", "151_50");
|
||||
put("sam", "1_311");
|
||||
put("coat", "13_153");
|
||||
put("sting", "8_113");
|
||||
|
||||
put("phial", "3_24");
|
||||
put("greenleaf", "1_50");
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
GenericCardTestHelper.FOTRFrodo,
|
||||
@@ -31,9 +38,7 @@ public class Card_V1_050_Tests
|
||||
);
|
||||
}
|
||||
|
||||
// Uncomment both @Test markers below once this is ready to be used
|
||||
|
||||
//@Test
|
||||
@Test
|
||||
public void BilboStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
|
||||
/**
|
||||
@@ -53,34 +58,100 @@ public class Card_V1_050_Tests
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl card = scn.GetFreepsCard("card");
|
||||
PhysicalCardImpl bilbo = scn.GetFreepsCard("bilbo");
|
||||
|
||||
assertTrue(card.getBlueprint().isUnique());
|
||||
assertEquals(Side.FREE_PEOPLE, card.getBlueprint().getSide());
|
||||
assertEquals(Culture.SHIRE, card.getBlueprint().getCulture());
|
||||
assertEquals(CardType.ALLY, card.getBlueprint().getCardType());
|
||||
assertEquals(Race.CREATURE, card.getBlueprint().getRace());
|
||||
assertTrue(scn.HasKeyword(card, Keyword.SUPPORT_AREA)); // test for keywords as needed
|
||||
assertEquals(2, card.getBlueprint().getTwilightCost());
|
||||
assertEquals(2, card.getBlueprint().getStrength());
|
||||
assertEquals(3, card.getBlueprint().getVitality());
|
||||
//assertEquals(, card.getBlueprint().getResistance());
|
||||
//assertEquals(Signet., card.getBlueprint().getSignet());
|
||||
assertEquals(3, card.getBlueprint().getSiteNumber()); // Change this to getAllyHomeSiteNumbers for allies
|
||||
assertTrue(bilbo.getBlueprint().isUnique());
|
||||
assertEquals(Side.FREE_PEOPLE, bilbo.getBlueprint().getSide());
|
||||
assertEquals(Culture.SHIRE, bilbo.getBlueprint().getCulture());
|
||||
assertEquals(CardType.ALLY, bilbo.getBlueprint().getCardType());
|
||||
assertEquals(Race.HOBBIT, bilbo.getBlueprint().getRace());
|
||||
//assertTrue(scn.HasKeyword(bilbo, Keyword.SUPPORT_AREA)); // test for keywords as needed
|
||||
assertEquals(2, bilbo.getBlueprint().getTwilightCost());
|
||||
assertEquals(2, bilbo.getBlueprint().getStrength());
|
||||
assertEquals(3, bilbo.getBlueprint().getVitality());
|
||||
//assertEquals(, bilbo.getBlueprint().getResistance());
|
||||
//assertEquals(Signet., bilbo.getBlueprint().getSignet());
|
||||
assertEquals(3, bilbo.getBlueprint().getAllyHomeSiteNumbers()[0]); // Change this to getAllyHomeSiteNumbers for allies
|
||||
|
||||
}
|
||||
|
||||
//@Test
|
||||
public void BilboTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
@Test
|
||||
public void FellowshipAbilityOnlyWorksAtSanctuary() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
PhysicalCardImpl bilbo = scn.GetFreepsCard("bilbo");
|
||||
scn.FreepsMoveCardToSupportArea(bilbo);
|
||||
|
||||
scn.FreepsMoveCardToDiscard("sam", "sting", "coat");
|
||||
scn.ShadowMoveCardToDiscard("bilbo", "sam", "sting", "coat");
|
||||
|
||||
//Max out the move limit so we don't have to juggle play back and forth
|
||||
scn.ApplyAdHocModifier(new MoveLimitModifier(null, 10));
|
||||
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
|
||||
assertEquals(2, scn.GetTwilight());
|
||||
for(int i = 1; i <= 8; i++)
|
||||
{
|
||||
PhysicalCardImpl site = scn.GetCurrentSite();
|
||||
if(i == 3 || i == 6 || scn.HasKeyword(scn.GetCurrentSite(), Keyword.SANCTUARY)) {
|
||||
assertTrue(scn.FreepsCardActionAvailable(bilbo));
|
||||
}
|
||||
else {
|
||||
assertFalse(scn.FreepsCardActionAvailable(bilbo));
|
||||
}
|
||||
|
||||
scn.SkipToPhase(Phase.REGROUP);
|
||||
if(i == 8)
|
||||
break; // Game finished
|
||||
scn.PassCurrentPhaseActions();
|
||||
scn.FreepsChooseToStay();
|
||||
|
||||
//Shadow player
|
||||
scn.SkipToPhase(Phase.REGROUP);
|
||||
scn.FreepsPassCurrentPhaseAction(); // actually shadow with the swap
|
||||
scn.ShadowChoose("1"); // Choose to stay
|
||||
assertEquals(Phase.FELLOWSHIP, scn.GetCurrentPhase());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void FellowshipAbilityExertsTwiceToTutor2ItemsOnFrodoSignetCompanions() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl frodo = scn.GetRingBearer();
|
||||
PhysicalCardImpl bilbo = scn.GetFreepsCard("bilbo");
|
||||
PhysicalCardImpl greenleaf = scn.GetFreepsCard("greenleaf");
|
||||
PhysicalCardImpl sam = scn.GetFreepsCard("sam");
|
||||
PhysicalCardImpl coat = scn.GetFreepsCard("coat");
|
||||
PhysicalCardImpl sting = scn.GetFreepsCard("sting");
|
||||
PhysicalCardImpl phial = scn.GetFreepsCard("phial");
|
||||
scn.FreepsMoveCardToSupportArea(bilbo, greenleaf);
|
||||
scn.FreepsMoveCharToTable(sam);
|
||||
|
||||
//Cheat the sanctuary so we don't have to move and swap
|
||||
scn.ApplyAdHocModifier(new KeywordModifier(null, Filters.siteNumber(1), Keyword.SANCTUARY));
|
||||
|
||||
scn.StartGame();
|
||||
|
||||
assertTrue(scn.FreepsCardActionAvailable(bilbo));
|
||||
assertEquals(0, scn.GetWoundsOn(bilbo));
|
||||
|
||||
scn.FreepsUseCardAction(bilbo);
|
||||
assertEquals(2, scn.GetWoundsOn(bilbo));
|
||||
assertTrue(scn.FreepsDecisionAvailable("Choose card from deck"));
|
||||
assertEquals(2, scn.GetFreepsCardChoiceCount());
|
||||
|
||||
scn.FreepsChooseCardBPFromSelection(coat);
|
||||
assertEquals(Zone.ATTACHED, coat.getZone());
|
||||
assertEquals(frodo, coat.getAttachedTo());
|
||||
|
||||
assertTrue(scn.FreepsDecisionAvailable("Choose card from deck"));
|
||||
assertEquals(1, scn.GetFreepsCardChoiceCount());
|
||||
scn.FreepsChooseCardBPFromSelection(sting);
|
||||
assertEquals(Zone.ATTACHED, sting.getZone());
|
||||
assertEquals(frodo, sting.getAttachedTo());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,9 @@ public class Card_V1_051_Tests
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<String, String>()
|
||||
{{
|
||||
put("card", "151_51");
|
||||
put("griffo", "151_51");
|
||||
put("farmer1", "1_295");
|
||||
put("farmer2", "1_295");
|
||||
// put other cards in here as needed for the test case
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
@@ -31,9 +33,7 @@ public class Card_V1_051_Tests
|
||||
);
|
||||
}
|
||||
|
||||
// Uncomment both @Test markers below once this is ready to be used
|
||||
|
||||
//@Test
|
||||
@Test
|
||||
public void GriffoBoffinStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
|
||||
/**
|
||||
@@ -47,40 +47,49 @@ public class Card_V1_051_Tests
|
||||
* Strength: 3
|
||||
* Vitality: 2
|
||||
* Site Number: 1
|
||||
* Game Text: Each time you play a [shire] ally, you may add (1) to draw a card.
|
||||
* Game Text: Each time you play a [shire] ally, you may add (1) to draw a griffo.
|
||||
*/
|
||||
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl card = scn.GetFreepsCard("card");
|
||||
PhysicalCardImpl griffo = scn.GetFreepsCard("griffo");
|
||||
|
||||
assertTrue(card.getBlueprint().isUnique());
|
||||
assertEquals(Side.FREE_PEOPLE, card.getBlueprint().getSide());
|
||||
assertEquals(Culture.SHIRE, card.getBlueprint().getCulture());
|
||||
assertEquals(CardType.ALLY, card.getBlueprint().getCardType());
|
||||
assertEquals(Race.CREATURE, card.getBlueprint().getRace());
|
||||
assertTrue(scn.HasKeyword(card, Keyword.SUPPORT_AREA)); // test for keywords as needed
|
||||
assertEquals(1, card.getBlueprint().getTwilightCost());
|
||||
assertEquals(3, card.getBlueprint().getStrength());
|
||||
assertEquals(2, card.getBlueprint().getVitality());
|
||||
//assertEquals(, card.getBlueprint().getResistance());
|
||||
//assertEquals(Signet., card.getBlueprint().getSignet());
|
||||
assertEquals(1, card.getBlueprint().getSiteNumber()); // Change this to getAllyHomeSiteNumbers for allies
|
||||
assertTrue(griffo.getBlueprint().isUnique());
|
||||
assertEquals(Side.FREE_PEOPLE, griffo.getBlueprint().getSide());
|
||||
assertEquals(Culture.SHIRE, griffo.getBlueprint().getCulture());
|
||||
assertEquals(CardType.ALLY, griffo.getBlueprint().getCardType());
|
||||
assertEquals(Race.HOBBIT, griffo.getBlueprint().getRace());
|
||||
//assertTrue(scn.HasKeyword(griffo, Keyword.SUPPORT_AREA)); // test for keywords as needed
|
||||
assertEquals(1, griffo.getBlueprint().getTwilightCost());
|
||||
assertEquals(3, griffo.getBlueprint().getStrength());
|
||||
assertEquals(2, griffo.getBlueprint().getVitality());
|
||||
//assertEquals(, griffo.getBlueprint().getResistance());
|
||||
//assertEquals(Signet., griffo.getBlueprint().getSignet());
|
||||
assertEquals(1, griffo.getBlueprint().getAllyHomeSiteNumbers()[0]); // Change this to getAllyHomeSiteNumbers for allies
|
||||
|
||||
}
|
||||
|
||||
//@Test
|
||||
public void GriffoBoffinTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
@Test
|
||||
public void WhenShireAllyIsPlayedAdd1ToDraw() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
PhysicalCardImpl griffo = scn.GetFreepsCard("griffo");
|
||||
PhysicalCardImpl farmer1 = scn.GetFreepsCard("farmer1");
|
||||
PhysicalCardImpl farmer2 = scn.GetFreepsCard("farmer2");
|
||||
scn.FreepsMoveCharToTable(griffo);
|
||||
scn.FreepsMoveCardToHand(farmer1);
|
||||
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
assertEquals(0, scn.GetTwilight());
|
||||
assertEquals(Zone.DECK, farmer2.getZone());
|
||||
|
||||
scn.FreepsPlayCard(farmer1);
|
||||
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
|
||||
scn.FreepsAcceptOptionalTrigger();
|
||||
assertEquals(2, scn.GetTwilight()); // +1 from playing farmer, +1 from Griffo's ability
|
||||
assertEquals(Zone.HAND, farmer2.getZone());
|
||||
|
||||
assertEquals(1, scn.GetTwilight());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.gempukku.lotro.game.PhysicalCardImpl;
|
||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||
import com.gempukku.lotro.logic.modifiers.MoveLimitModifier;
|
||||
import org.junit.Test;
|
||||
import org.xml.sax.SAXNotRecognizedException;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@@ -22,8 +23,8 @@ public class Card_V1_052_Tests
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<String, String>()
|
||||
{{
|
||||
put("card", "151_52");
|
||||
// put other cards in here as needed for the test case
|
||||
put("merry", "151_52");
|
||||
put("shelob", "8_26");
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
GenericCardTestHelper.FOTRFrodo,
|
||||
@@ -31,9 +32,7 @@ public class Card_V1_052_Tests
|
||||
);
|
||||
}
|
||||
|
||||
// Uncomment both @Test markers below once this is ready to be used
|
||||
|
||||
//@Test
|
||||
@Test
|
||||
public void MerryStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
|
||||
/**
|
||||
@@ -53,34 +52,80 @@ public class Card_V1_052_Tests
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl card = scn.GetFreepsCard("card");
|
||||
PhysicalCardImpl merry = scn.GetFreepsCard("merry");
|
||||
|
||||
assertTrue(card.getBlueprint().isUnique());
|
||||
assertEquals(Side.FREE_PEOPLE, card.getBlueprint().getSide());
|
||||
assertEquals(Culture.SHIRE, card.getBlueprint().getCulture());
|
||||
assertEquals(CardType.COMPANION, card.getBlueprint().getCardType());
|
||||
assertEquals(Race.CREATURE, card.getBlueprint().getRace());
|
||||
assertTrue(scn.HasKeyword(card, Keyword.SUPPORT_AREA)); // test for keywords as needed
|
||||
assertEquals(1, card.getBlueprint().getTwilightCost());
|
||||
assertEquals(3, card.getBlueprint().getStrength());
|
||||
assertEquals(4, card.getBlueprint().getVitality());
|
||||
//assertEquals(, card.getBlueprint().getResistance());
|
||||
assertEquals(Signet.FRODO, card.getBlueprint().getSignet());
|
||||
//assertEquals(, card.getBlueprint().getSiteNumber()); // Change this to getAllyHomeSiteNumbers for allies
|
||||
assertTrue(merry.getBlueprint().isUnique());
|
||||
assertEquals(Side.FREE_PEOPLE, merry.getBlueprint().getSide());
|
||||
assertEquals(Culture.SHIRE, merry.getBlueprint().getCulture());
|
||||
assertEquals(CardType.COMPANION, merry.getBlueprint().getCardType());
|
||||
assertEquals(Race.HOBBIT, merry.getBlueprint().getRace());
|
||||
//assertTrue(scn.HasKeyword(merry, Keyword.SUPPORT_AREA)); // test for keywords as needed
|
||||
assertEquals(1, merry.getBlueprint().getTwilightCost());
|
||||
assertEquals(3, merry.getBlueprint().getStrength());
|
||||
assertEquals(4, merry.getBlueprint().getVitality());
|
||||
//assertEquals(, merry.getBlueprint().getResistance());
|
||||
assertEquals(Signet.FRODO, merry.getBlueprint().getSignet());
|
||||
//assertEquals(, merry.getBlueprint().getSiteNumber()); // Change this to getAllyHomeSiteNumbers for allies
|
||||
|
||||
}
|
||||
|
||||
//@Test
|
||||
public void MerryTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
@Test
|
||||
public void MerryExertsTwiceToPreventMinionSkirmishing() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
PhysicalCardImpl merry = scn.GetFreepsCard("merry");
|
||||
scn.FreepsMoveCharToTable(merry);
|
||||
|
||||
PhysicalCardImpl shelob = scn.GetShadowCard("shelob");
|
||||
scn.ShadowMoveCharToTable(shelob);
|
||||
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
|
||||
assertEquals(1, scn.GetTwilight());
|
||||
scn.SkipToPhase(Phase.ASSIGNMENT);
|
||||
assertEquals(0, scn.GetWoundsOn(merry));
|
||||
assertEquals(0, scn.GetWoundsOn(shelob));
|
||||
assertTrue(scn.FreepsCardActionAvailable(merry));
|
||||
|
||||
scn.FreepsUseCardAction(merry);
|
||||
assertEquals(2, scn.GetWoundsOn(merry));
|
||||
scn.ShadowChooseNo();
|
||||
scn.ShadowPassCurrentPhaseAction();
|
||||
scn.FreepsPassCurrentPhaseAction();
|
||||
//immediately skips to the fierce skirmish
|
||||
scn.PassCurrentPhaseActions();
|
||||
|
||||
assertEquals(Phase.REGROUP, scn.GetCurrentPhase());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void MinionCanExhaustToPreventAbility() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl merry = scn.GetFreepsCard("merry");
|
||||
scn.FreepsMoveCharToTable(merry);
|
||||
|
||||
PhysicalCardImpl shelob = scn.GetShadowCard("shelob");
|
||||
scn.ShadowMoveCharToTable(shelob);
|
||||
|
||||
scn.StartGame();
|
||||
|
||||
scn.SkipToPhase(Phase.ASSIGNMENT);
|
||||
assertEquals(0, scn.GetWoundsOn(merry));
|
||||
assertEquals(0, scn.GetWoundsOn(shelob));
|
||||
assertTrue(scn.FreepsCardActionAvailable(merry));
|
||||
|
||||
scn.FreepsUseCardAction(merry);
|
||||
assertEquals(2, scn.GetWoundsOn(merry));
|
||||
assertTrue(scn.ShadowDecisionAvailable("Would you like to exhaust"));
|
||||
|
||||
scn.ShadowChooseYes();
|
||||
assertEquals(7, scn.GetWoundsOn(shelob));
|
||||
|
||||
scn.ShadowPassCurrentPhaseAction();
|
||||
scn.FreepsPassCurrentPhaseAction();
|
||||
|
||||
assertTrue(scn.FreepsDecisionAvailable("Assign minions"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.gempukku.lotro.game.PhysicalCardImpl;
|
||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||
import com.gempukku.lotro.logic.modifiers.MoveLimitModifier;
|
||||
import org.junit.Test;
|
||||
import org.mockito.internal.matchers.Same;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@@ -22,8 +23,10 @@ public class Card_V1_053_Tests
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<String, String>()
|
||||
{{
|
||||
put("card", "151_53");
|
||||
// put other cards in here as needed for the test case
|
||||
put("pippin", "151_53");
|
||||
put("sam", "1_310");
|
||||
|
||||
put("nazgul", "1_232");
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
GenericCardTestHelper.FOTRFrodo,
|
||||
@@ -31,9 +34,7 @@ public class Card_V1_053_Tests
|
||||
);
|
||||
}
|
||||
|
||||
// Uncomment both @Test markers below once this is ready to be used
|
||||
|
||||
//@Test
|
||||
@Test
|
||||
public void PippinStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
|
||||
/**
|
||||
@@ -53,34 +54,85 @@ public class Card_V1_053_Tests
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl card = scn.GetFreepsCard("card");
|
||||
PhysicalCardImpl pippin = scn.GetFreepsCard("pippin");
|
||||
|
||||
assertTrue(card.getBlueprint().isUnique());
|
||||
assertEquals(Side.FREE_PEOPLE, card.getBlueprint().getSide());
|
||||
assertEquals(Culture.SHIRE, card.getBlueprint().getCulture());
|
||||
assertEquals(CardType.COMPANION, card.getBlueprint().getCardType());
|
||||
assertEquals(Race.CREATURE, card.getBlueprint().getRace());
|
||||
assertTrue(scn.HasKeyword(card, Keyword.SUPPORT_AREA)); // test for keywords as needed
|
||||
assertEquals(1, card.getBlueprint().getTwilightCost());
|
||||
assertEquals(3, card.getBlueprint().getStrength());
|
||||
assertEquals(4, card.getBlueprint().getVitality());
|
||||
//assertEquals(, card.getBlueprint().getResistance());
|
||||
assertEquals(Signet.FRODO, card.getBlueprint().getSignet());
|
||||
//assertEquals(, card.getBlueprint().getSiteNumber()); // Change this to getAllyHomeSiteNumbers for allies
|
||||
assertTrue(pippin.getBlueprint().isUnique());
|
||||
assertEquals(Side.FREE_PEOPLE, pippin.getBlueprint().getSide());
|
||||
assertEquals(Culture.SHIRE, pippin.getBlueprint().getCulture());
|
||||
assertEquals(CardType.COMPANION, pippin.getBlueprint().getCardType());
|
||||
assertEquals(Race.HOBBIT, pippin.getBlueprint().getRace());
|
||||
//assertTrue(scn.HasKeyword(pippin, Keyword.SUPPORT_AREA)); // test for keywords as needed
|
||||
assertEquals(1, pippin.getBlueprint().getTwilightCost());
|
||||
assertEquals(3, pippin.getBlueprint().getStrength());
|
||||
assertEquals(4, pippin.getBlueprint().getVitality());
|
||||
//assertEquals(, pippin.getBlueprint().getResistance());
|
||||
assertEquals(Signet.FRODO, pippin.getBlueprint().getSignet());
|
||||
//assertEquals(, pippin.getBlueprint().getSiteNumber()); // Change this to getAllyHomeSiteNumbers for allies
|
||||
|
||||
}
|
||||
|
||||
//@Test
|
||||
public void PippinTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
@Test
|
||||
public void SkirmishAbilityExertsPippinToPreventShireOverwhelmUnlessTripled() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
PhysicalCardImpl frodo = scn.GetRingBearer();
|
||||
PhysicalCardImpl pippin = scn.GetFreepsCard("pippin");
|
||||
//PhysicalCardImpl sam = scn.GetFreepsCard("sam");
|
||||
scn.FreepsMoveCharToTable(pippin);
|
||||
|
||||
PhysicalCardImpl nazgul = scn.GetShadowCard("nazgul");
|
||||
scn.FreepsMoveCharToTable(nazgul);
|
||||
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
|
||||
assertEquals(1, scn.GetTwilight());
|
||||
scn.SkipToPhase(Phase.ASSIGNMENT);
|
||||
scn.PassCurrentPhaseActions();
|
||||
scn.FreepsAssignToMinions(frodo, nazgul);
|
||||
scn.FreepsResolveSkirmish(frodo);
|
||||
|
||||
assertEquals(2, scn.GetOverwhelmMultiplier(frodo)); // 2x is the default
|
||||
assertTrue(scn.FreepsCardActionAvailable(pippin));
|
||||
assertEquals(0, scn.GetWoundsOn(pippin));
|
||||
|
||||
scn.FreepsUseCardAction(pippin);
|
||||
assertEquals(3, scn.GetOverwhelmMultiplier(frodo));
|
||||
assertEquals(1, scn.GetWoundsOn(pippin));
|
||||
|
||||
scn.ShadowPassCurrentPhaseAction();
|
||||
scn.FreepsPassCurrentPhaseAction();
|
||||
scn.FreepsDeclineOptionalTrigger(); //ring response
|
||||
|
||||
assertEquals(1, scn.GetWoundsOn(frodo));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void SkirmishAbilityPumpsIfThreeFrodoSignets() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl frodo = scn.GetRingBearer();
|
||||
PhysicalCardImpl pippin = scn.GetFreepsCard("pippin");
|
||||
PhysicalCardImpl sam = scn.GetFreepsCard("sam");
|
||||
scn.FreepsMoveCharToTable(pippin, sam);
|
||||
|
||||
PhysicalCardImpl nazgul = scn.GetShadowCard("nazgul");
|
||||
scn.FreepsMoveCharToTable(nazgul);
|
||||
|
||||
scn.StartGame();
|
||||
|
||||
scn.SkipToPhase(Phase.ASSIGNMENT);
|
||||
scn.PassCurrentPhaseActions();
|
||||
scn.FreepsAssignToMinions(sam, nazgul);
|
||||
scn.FreepsResolveSkirmish(sam);
|
||||
|
||||
assertEquals(3, scn.GetStrength(sam));
|
||||
assertTrue(scn.FreepsCardActionAvailable(pippin));
|
||||
assertEquals(0, scn.GetWoundsOn(pippin));
|
||||
|
||||
scn.FreepsUseCardAction(pippin);
|
||||
assertEquals(4, scn.GetStrength(sam));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,8 +22,10 @@ public class Card_V1_054_Tests
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<String, String>()
|
||||
{{
|
||||
put("card", "151_54");
|
||||
// put other cards in here as needed for the test case
|
||||
put("sam", "151_54");
|
||||
put("boromir", "1_97");
|
||||
|
||||
put("runner", "1_178");
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
GenericCardTestHelper.FOTRFrodo,
|
||||
@@ -31,9 +33,7 @@ public class Card_V1_054_Tests
|
||||
);
|
||||
}
|
||||
|
||||
// Uncomment both @Test markers below once this is ready to be used
|
||||
|
||||
//@Test
|
||||
@Test
|
||||
public void SamStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
|
||||
/**
|
||||
@@ -54,34 +54,94 @@ public class Card_V1_054_Tests
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl card = scn.GetFreepsCard("card");
|
||||
PhysicalCardImpl sam = scn.GetFreepsCard("sam");
|
||||
|
||||
assertTrue(card.getBlueprint().isUnique());
|
||||
assertEquals(Side.FREE_PEOPLE, card.getBlueprint().getSide());
|
||||
assertEquals(Culture.SHIRE, card.getBlueprint().getCulture());
|
||||
assertEquals(CardType.COMPANION, card.getBlueprint().getCardType());
|
||||
assertEquals(Race.CREATURE, card.getBlueprint().getRace());
|
||||
assertTrue(scn.HasKeyword(card, Keyword.SUPPORT_AREA)); // test for keywords as needed
|
||||
assertEquals(2, card.getBlueprint().getTwilightCost());
|
||||
assertEquals(3, card.getBlueprint().getStrength());
|
||||
assertEquals(4, card.getBlueprint().getVitality());
|
||||
//assertEquals(, card.getBlueprint().getResistance());
|
||||
assertEquals(Signet.FRODO, card.getBlueprint().getSignet());
|
||||
//assertEquals(, card.getBlueprint().getSiteNumber()); // Change this to getAllyHomeSiteNumbers for allies
|
||||
assertTrue(sam.getBlueprint().isUnique());
|
||||
assertEquals(Side.FREE_PEOPLE, sam.getBlueprint().getSide());
|
||||
assertEquals(Culture.SHIRE, sam.getBlueprint().getCulture());
|
||||
assertEquals(CardType.COMPANION, sam.getBlueprint().getCardType());
|
||||
assertEquals(Race.HOBBIT, sam.getBlueprint().getRace());
|
||||
//assertTrue(scn.HasKeyword(sam, Keyword.SUPPORT_AREA)); // test for keywords as needed
|
||||
assertEquals(2, sam.getBlueprint().getTwilightCost());
|
||||
assertEquals(3, sam.getBlueprint().getStrength());
|
||||
assertEquals(4, sam.getBlueprint().getVitality());
|
||||
//assertEquals(, sam.getBlueprint().getResistance());
|
||||
assertEquals(Signet.FRODO, sam.getBlueprint().getSignet());
|
||||
//assertEquals(, sam.getBlueprint().getSiteNumber()); // Change this to getAllyHomeSiteNumbers for allies
|
||||
|
||||
}
|
||||
|
||||
//@Test
|
||||
public void SamTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
@Test
|
||||
public void EachTimeFrodoSignetWinsSkirmishSamCanExertToHealThem() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
PhysicalCardImpl sam = scn.GetFreepsCard("sam");
|
||||
PhysicalCardImpl boromir = scn.GetFreepsCard("boromir");
|
||||
scn.FreepsMoveCharToTable(sam, boromir);
|
||||
|
||||
PhysicalCardImpl runner = scn.GetShadowCard("runner");
|
||||
scn.ShadowMoveCharToTable(runner);
|
||||
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
|
||||
assertEquals(2, scn.GetTwilight());
|
||||
scn.AddWoundsToChar(boromir, 1);
|
||||
|
||||
scn.SkipToPhase(Phase.ASSIGNMENT);
|
||||
scn.PassCurrentPhaseActions();
|
||||
scn.FreepsAssignToMinions(boromir, runner);
|
||||
scn.FreepsResolveSkirmish(boromir);
|
||||
|
||||
assertEquals(1, scn.GetWoundsOn(boromir));
|
||||
assertEquals(0, scn.GetWoundsOn(sam));
|
||||
assertEquals(1, scn.GetBurdens()); //1 from the bidding
|
||||
|
||||
scn.PassCurrentPhaseActions();
|
||||
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
|
||||
scn.FreepsAcceptOptionalTrigger();
|
||||
assertTrue(scn.FreepsDecisionAvailable("choose action"));
|
||||
assertEquals(2, scn.FreepsGetMultipleChoices().size());
|
||||
scn.FreepsChooseMultipleChoiceOption("exert");
|
||||
|
||||
assertEquals(0, scn.GetWoundsOn(boromir));
|
||||
assertEquals(1, scn.GetWoundsOn(sam));
|
||||
assertEquals(1, scn.GetBurdens());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void EachTimeFrodoSignetWinsSkirmishSamCanAddBurdenToHealThem() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl sam = scn.GetFreepsCard("sam");
|
||||
PhysicalCardImpl boromir = scn.GetFreepsCard("boromir");
|
||||
scn.FreepsMoveCharToTable(sam, boromir);
|
||||
|
||||
PhysicalCardImpl runner = scn.GetShadowCard("runner");
|
||||
scn.ShadowMoveCharToTable(runner);
|
||||
|
||||
scn.StartGame();
|
||||
|
||||
scn.AddWoundsToChar(boromir, 1);
|
||||
|
||||
scn.SkipToPhase(Phase.ASSIGNMENT);
|
||||
scn.PassCurrentPhaseActions();
|
||||
scn.FreepsAssignToMinions(boromir, runner);
|
||||
scn.FreepsResolveSkirmish(boromir);
|
||||
|
||||
assertEquals(1, scn.GetWoundsOn(boromir));
|
||||
assertEquals(0, scn.GetWoundsOn(sam));
|
||||
assertEquals(1, scn.GetBurdens()); //1 from the bidding
|
||||
|
||||
scn.PassCurrentPhaseActions();
|
||||
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
|
||||
scn.FreepsAcceptOptionalTrigger();
|
||||
assertTrue(scn.FreepsDecisionAvailable("choose action"));
|
||||
assertEquals(2, scn.FreepsGetMultipleChoices().size());
|
||||
scn.FreepsChooseMultipleChoiceOption("burden");
|
||||
|
||||
assertEquals(0, scn.GetWoundsOn(boromir));
|
||||
assertEquals(0, scn.GetWoundsOn(sam));
|
||||
assertEquals(2, scn.GetBurdens());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.gempukku.lotro.game.PhysicalCardImpl;
|
||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||
import com.gempukku.lotro.logic.modifiers.MoveLimitModifier;
|
||||
import org.junit.Test;
|
||||
import org.xml.sax.SAXNotRecognizedException;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@@ -22,8 +23,14 @@ public class Card_V1_055_Tests
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<String, String>()
|
||||
{{
|
||||
put("card", "151_55");
|
||||
// put other cards in here as needed for the test case
|
||||
put("yet", "151_55");
|
||||
put("boromir", "1_97");
|
||||
put("sam", "1_311");
|
||||
put("pippin", "1_306");
|
||||
put("merry", "1_302");
|
||||
put("gimli", "2_121");
|
||||
|
||||
put("runner", "1_178");
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
GenericCardTestHelper.FOTRFrodo,
|
||||
@@ -31,9 +38,7 @@ public class Card_V1_055_Tests
|
||||
);
|
||||
}
|
||||
|
||||
// Uncomment both @Test markers below once this is ready to be used
|
||||
|
||||
//@Test
|
||||
@Test
|
||||
public void WeMayYetStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
|
||||
/**
|
||||
@@ -50,34 +55,81 @@ public class Card_V1_055_Tests
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl card = scn.GetFreepsCard("card");
|
||||
PhysicalCardImpl yet = scn.GetFreepsCard("yet");
|
||||
|
||||
assertFalse(card.getBlueprint().isUnique());
|
||||
assertEquals(Side.FREE_PEOPLE, card.getBlueprint().getSide());
|
||||
assertEquals(Culture.SHIRE, card.getBlueprint().getCulture());
|
||||
assertEquals(CardType.EVENT, card.getBlueprint().getCardType());
|
||||
//assertEquals(Race.CREATURE, card.getBlueprint().getRace());
|
||||
assertTrue(scn.HasKeyword(card, Keyword.SUPPORT_AREA)); // test for keywords as needed
|
||||
assertEquals(1, card.getBlueprint().getTwilightCost());
|
||||
//assertEquals(, card.getBlueprint().getStrength());
|
||||
//assertEquals(, card.getBlueprint().getVitality());
|
||||
//assertEquals(, card.getBlueprint().getResistance());
|
||||
//assertEquals(Signet., card.getBlueprint().getSignet());
|
||||
//assertEquals(, card.getBlueprint().getSiteNumber()); // Change this to getAllyHomeSiteNumbers for allies
|
||||
assertFalse(yet.getBlueprint().isUnique());
|
||||
assertEquals(Side.FREE_PEOPLE, yet.getBlueprint().getSide());
|
||||
assertEquals(Culture.SHIRE, yet.getBlueprint().getCulture());
|
||||
assertEquals(CardType.EVENT, yet.getBlueprint().getCardType());
|
||||
//assertEquals(Race.CREATURE, yet.getBlueprint().getRace());
|
||||
assertTrue(scn.HasKeyword(yet, Keyword.SKIRMISH)); // test for keywords as needed
|
||||
assertEquals(1, yet.getBlueprint().getTwilightCost());
|
||||
//assertEquals(, yet.getBlueprint().getStrength());
|
||||
//assertEquals(, yet.getBlueprint().getVitality());
|
||||
//assertEquals(, yet.getBlueprint().getResistance());
|
||||
//assertEquals(Signet., yet.getBlueprint().getSignet());
|
||||
//assertEquals(, yet.getBlueprint().getSiteNumber()); // Change this to getAllyHomeSiteNumbers for allies
|
||||
|
||||
}
|
||||
|
||||
//@Test
|
||||
public void WeMayYetTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
@Test
|
||||
public void WeMayYetExertsToPumpBasedOnFrodoSignets() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
PhysicalCardImpl yet = scn.GetFreepsCard("yet");
|
||||
PhysicalCardImpl boromir = scn.GetFreepsCard("boromir");
|
||||
PhysicalCardImpl sam = scn.GetFreepsCard("sam");
|
||||
PhysicalCardImpl merry = scn.GetFreepsCard("merry");
|
||||
PhysicalCardImpl pippin = scn.GetFreepsCard("pippin");
|
||||
PhysicalCardImpl gimli = scn.GetFreepsCard("gimli");
|
||||
scn.FreepsMoveCharToTable(boromir, sam, merry, pippin, gimli);
|
||||
scn.FreepsMoveCardToHand(yet);
|
||||
|
||||
PhysicalCardImpl runner = scn.GetShadowCard("runner");
|
||||
scn.ShadowMoveCharToTable(runner);
|
||||
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
scn.SkipToPhase(Phase.ASSIGNMENT);
|
||||
scn.PassCurrentPhaseActions();
|
||||
scn.FreepsAssignToMinions(boromir, runner);
|
||||
scn.FreepsResolveSkirmish(boromir);
|
||||
|
||||
assertTrue(scn.FreepsCardPlayAvailable(yet));
|
||||
assertEquals(0, scn.GetWoundsOn(boromir));
|
||||
assertEquals(7, scn.GetStrength(boromir));
|
||||
|
||||
scn.FreepsPlayCard(yet);
|
||||
assertEquals(1, scn.GetWoundsOn(boromir));
|
||||
// frodo/boromir/gimli/merry/pippin makes 5 frodo signets, but it's capped to 4. Sam is gorn signet
|
||||
assertEquals(11, scn.GetStrength(boromir));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void WeMayYetRequiresFrodoSignetInSkirmish() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl yet = scn.GetFreepsCard("yet");
|
||||
PhysicalCardImpl sam = scn.GetFreepsCard("sam");
|
||||
scn.FreepsMoveCharToTable(sam);
|
||||
scn.FreepsMoveCardToHand(yet);
|
||||
|
||||
PhysicalCardImpl runner = scn.GetShadowCard("runner");
|
||||
scn.ShadowMoveCharToTable(runner);
|
||||
|
||||
scn.StartGame();
|
||||
|
||||
scn.AddWoundsToChar(scn.GetRingBearer(), 4);
|
||||
scn.FreepsPassCurrentPhaseAction();
|
||||
scn.FreepsAcceptOptionalTrigger(); // transfer ring to sam
|
||||
|
||||
scn.SkipToPhase(Phase.ASSIGNMENT);
|
||||
scn.PassCurrentPhaseActions();
|
||||
scn.FreepsAssignToMinions(sam, runner);
|
||||
scn.FreepsResolveSkirmish(sam);
|
||||
|
||||
assertFalse(scn.FreepsCardPlayAvailable(yet));
|
||||
|
||||
assertEquals(1, scn.GetTwilight());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,8 +22,10 @@ public class Card_V1_056_Tests
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<String, String>()
|
||||
{{
|
||||
put("card", "151_56");
|
||||
// put other cards in here as needed for the test case
|
||||
put("coming", "151_56");
|
||||
put("pippin", "1_306");
|
||||
put("merry", "1_302");
|
||||
put("gimli", "2_121");
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
GenericCardTestHelper.FOTRFrodo,
|
||||
@@ -31,9 +33,7 @@ public class Card_V1_056_Tests
|
||||
);
|
||||
}
|
||||
|
||||
// Uncomment both @Test markers below once this is ready to be used
|
||||
|
||||
//@Test
|
||||
@Test
|
||||
public void WereComingTooStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
|
||||
/**
|
||||
@@ -50,34 +50,51 @@ public class Card_V1_056_Tests
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl card = scn.GetFreepsCard("card");
|
||||
PhysicalCardImpl coming = scn.GetFreepsCard("coming");
|
||||
|
||||
assertFalse(card.getBlueprint().isUnique());
|
||||
assertEquals(Side.FREE_PEOPLE, card.getBlueprint().getSide());
|
||||
assertEquals(Culture.SHIRE, card.getBlueprint().getCulture());
|
||||
assertEquals(CardType.EVENT, card.getBlueprint().getCardType());
|
||||
//assertEquals(Race.CREATURE, card.getBlueprint().getRace());
|
||||
assertTrue(scn.HasKeyword(card, Keyword.SUPPORT_AREA)); // test for keywords as needed
|
||||
assertEquals(2, card.getBlueprint().getTwilightCost());
|
||||
//assertEquals(, card.getBlueprint().getStrength());
|
||||
//assertEquals(, card.getBlueprint().getVitality());
|
||||
//assertEquals(, card.getBlueprint().getResistance());
|
||||
//assertEquals(Signet., card.getBlueprint().getSignet());
|
||||
//assertEquals(, card.getBlueprint().getSiteNumber()); // Change this to getAllyHomeSiteNumbers for allies
|
||||
assertFalse(coming.getBlueprint().isUnique());
|
||||
assertEquals(Side.FREE_PEOPLE, coming.getBlueprint().getSide());
|
||||
assertEquals(Culture.SHIRE, coming.getBlueprint().getCulture());
|
||||
assertEquals(CardType.EVENT, coming.getBlueprint().getCardType());
|
||||
//assertEquals(Race.CREATURE, coming.getBlueprint().getRace());
|
||||
assertTrue(scn.HasKeyword(coming, Keyword.FELLOWSHIP)); // test for keywords as needed
|
||||
assertEquals(2, coming.getBlueprint().getTwilightCost());
|
||||
//assertEquals(, coming.getBlueprint().getStrength());
|
||||
//assertEquals(, coming.getBlueprint().getVitality());
|
||||
//assertEquals(, coming.getBlueprint().getResistance());
|
||||
//assertEquals(Signet., coming.getBlueprint().getSignet());
|
||||
//assertEquals(, coming.getBlueprint().getSiteNumber()); // Change this to getAllyHomeSiteNumbers for allies
|
||||
|
||||
}
|
||||
|
||||
//@Test
|
||||
@Test
|
||||
public void WereComingTooTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
GenericCardTestHelper scn = GetScenario();
|
||||
|
||||
PhysicalCardImpl card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
PhysicalCardImpl coming = scn.GetFreepsCard("coming");
|
||||
PhysicalCardImpl frodo = scn.GetRingBearer();
|
||||
PhysicalCardImpl merry = scn.GetFreepsCard("merry");
|
||||
PhysicalCardImpl pippin = scn.GetFreepsCard("pippin");
|
||||
PhysicalCardImpl gimli = scn.GetFreepsCard("gimli");
|
||||
scn.FreepsMoveCharToTable(gimli);
|
||||
scn.FreepsMoveCardToHand(coming, merry, pippin);
|
||||
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
scn.AddWoundsToChar(gimli, 1);
|
||||
scn.AddWoundsToChar(frodo, 1);
|
||||
|
||||
assertFalse(scn.FreepsCardPlayAvailable(coming));
|
||||
scn.FreepsPlayCard(merry);
|
||||
assertFalse(scn.FreepsCardPlayAvailable(coming));
|
||||
scn.FreepsPlayCard(pippin);
|
||||
assertTrue(scn.FreepsCardPlayAvailable(coming));
|
||||
|
||||
assertEquals(1, scn.GetWoundsOn(gimli));
|
||||
assertEquals(1, scn.GetWoundsOn(frodo));
|
||||
scn.FreepsPlayCard(coming);
|
||||
assertEquals(0, scn.GetWoundsOn(gimli));
|
||||
assertEquals(0, scn.GetWoundsOn(frodo));
|
||||
|
||||
assertEquals(2, scn.GetTwilight());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user