Goblin Archer errata tests (plus original)
This commit is contained in:
@@ -4,6 +4,7 @@ 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.logic.decisions.DecisionResultInvalidException;
|
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||||
|
import com.gempukku.lotro.logic.modifiers.ArcheryTotalModifier;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -17,8 +18,8 @@ public class Card_01_172_Tests
|
|||||||
return new GenericCardTestHelper(
|
return new GenericCardTestHelper(
|
||||||
new HashMap<>()
|
new HashMap<>()
|
||||||
{{
|
{{
|
||||||
put("card", "1_172");
|
put("archer", "1_172");
|
||||||
// put other cards in here as needed for the test case
|
put("runner", "1_178");
|
||||||
}},
|
}},
|
||||||
GenericCardTestHelper.FellowshipSites,
|
GenericCardTestHelper.FellowshipSites,
|
||||||
GenericCardTestHelper.FOTRFrodo,
|
GenericCardTestHelper.FOTRFrodo,
|
||||||
@@ -46,7 +47,7 @@ public class Card_01_172_Tests
|
|||||||
|
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
|
|
||||||
var card = scn.GetFreepsCard("card");
|
var card = scn.GetFreepsCard("archer");
|
||||||
|
|
||||||
assertEquals("Goblin Archer", card.getBlueprint().getTitle());
|
assertEquals("Goblin Archer", card.getBlueprint().getTitle());
|
||||||
assertNull(card.getBlueprint().getSubtitle());
|
assertNull(card.getBlueprint().getSubtitle());
|
||||||
@@ -62,18 +63,38 @@ public class Card_01_172_Tests
|
|||||||
assertEquals(4, card.getBlueprint().getSiteNumber());
|
assertEquals(4, card.getBlueprint().getSiteNumber());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uncomment any @Test markers below once this is ready to be used
|
@Test
|
||||||
//@Test
|
public void GoblinArcherSpotsAnotherMoriaOrcToMakeFellowshipArcheryTotalMinus6() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
public void GoblinArcherTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
|
||||||
//Pre-game setup
|
//Pre-game setup
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
|
|
||||||
var card = scn.GetFreepsCard("card");
|
var archer = scn.GetShadowCard("archer");
|
||||||
scn.FreepsMoveCardToHand(card);
|
var runner = scn.GetShadowCard("runner");
|
||||||
|
|
||||||
|
scn.ShadowMoveCharToTable(runner);
|
||||||
|
scn.ShadowMoveCardToHand(archer);
|
||||||
|
|
||||||
scn.StartGame();
|
scn.StartGame();
|
||||||
scn.FreepsPlayCard(card);
|
scn.ApplyAdHocModifier(new ArcheryTotalModifier(null, Side.FREE_PEOPLE, 7));
|
||||||
|
scn.SkipToPhase(Phase.ARCHERY);
|
||||||
|
|
||||||
assertEquals(5, scn.GetTwilight());
|
assertEquals(7, scn.GetFreepsArcheryTotal());
|
||||||
|
scn.FreepsMoveCharToTable(archer);
|
||||||
|
assertEquals(1, scn.GetFreepsArcheryTotal());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void GoblinArcherDoesNotAlterFellowshipArcheryTotalIfNoOtherMoriaOrc() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
|
//Pre-game setup
|
||||||
|
var scn = GetScenario();
|
||||||
|
|
||||||
|
var archer = scn.GetShadowCard("archer");
|
||||||
|
scn.ShadowMoveCharToTable(archer);
|
||||||
|
|
||||||
|
scn.StartGame();
|
||||||
|
scn.ApplyAdHocModifier(new ArcheryTotalModifier(null, Side.FREE_PEOPLE, 7));
|
||||||
|
scn.SkipToPhase(Phase.ARCHERY);
|
||||||
|
|
||||||
|
assertEquals(7, scn.GetFreepsArcheryTotal());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ 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.logic.decisions.DecisionResultInvalidException;
|
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||||
|
import com.gempukku.lotro.logic.modifiers.ArcheryTotalModifier;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -17,12 +18,17 @@ public class Card_01_172_ErrataTests
|
|||||||
return new GenericCardTestHelper(
|
return new GenericCardTestHelper(
|
||||||
new HashMap<>()
|
new HashMap<>()
|
||||||
{{
|
{{
|
||||||
put("card", "51_172");
|
put("archer", "51_172");
|
||||||
// put other cards in here as needed for the test case
|
put("marksman", "1_176");
|
||||||
|
put("commander", "2_49");
|
||||||
|
put("bowman", "2_60");
|
||||||
|
put("troop", "2_67");
|
||||||
|
put("runner", "1_178");
|
||||||
|
|
||||||
}},
|
}},
|
||||||
GenericCardTestHelper.FellowshipSites,
|
GenericCardTestHelper.FellowshipSites,
|
||||||
GenericCardTestHelper.FOTRFrodo,
|
GenericCardTestHelper.FOTRFrodo,
|
||||||
GenericCardTestHelper.RulingRing
|
GenericCardTestHelper.ATARRing
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,7 +54,7 @@ public class Card_01_172_ErrataTests
|
|||||||
|
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
|
|
||||||
var card = scn.GetFreepsCard("card");
|
var card = scn.GetFreepsCard("archer");
|
||||||
|
|
||||||
assertEquals("Goblin Archer", card.getBlueprint().getTitle());
|
assertEquals("Goblin Archer", card.getBlueprint().getTitle());
|
||||||
assertNull(card.getBlueprint().getSubtitle());
|
assertNull(card.getBlueprint().getSubtitle());
|
||||||
@@ -64,29 +70,63 @@ public class Card_01_172_ErrataTests
|
|||||||
assertEquals(4, card.getBlueprint().getSiteNumber());
|
assertEquals(4, card.getBlueprint().getSiteNumber());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uncomment any @Test markers below once this is ready to be used
|
@Test
|
||||||
//@Test
|
public void GoblinArcherMakesFellowshipArcheryTotalMinus1PerMoriaArcher() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
public void GoblinArcherTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
|
||||||
//Pre-game setup
|
//Pre-game setup
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
|
|
||||||
// var card = scn.GetFreepsCard("card");
|
var archer = scn.GetShadowCard("archer");
|
||||||
// scn.FreepsMoveCardToHand(card);
|
var marksman = scn.GetShadowCard("marksman");
|
||||||
// scn.FreepsMoveCharToTable(card);
|
var commander = scn.GetShadowCard("commander");
|
||||||
// scn.FreepsMoveCardToSupportArea(card);
|
var bowman = scn.GetShadowCard("bowman");
|
||||||
// scn.FreepsMoveCardToDiscard(card);
|
var troop = scn.GetShadowCard("troop");
|
||||||
// scn.FreepsMoveCardsToTopOfDeck(card);
|
var runner = scn.GetShadowCard("runner");
|
||||||
|
|
||||||
var card = scn.GetShadowCard("card");
|
scn.ShadowMoveCharToTable(marksman, commander, bowman, troop, runner);
|
||||||
scn.ShadowMoveCardToHand(card);
|
scn.ShadowMoveCardToHand(archer);
|
||||||
scn.ShadowMoveCharToTable(card);
|
|
||||||
scn.ShadowMoveCardToSupportArea(card);
|
|
||||||
scn.ShadowMoveCardToDiscard(card);
|
|
||||||
scn.ShadowMoveCardsToTopOfDeck(card);
|
|
||||||
|
|
||||||
scn.StartGame();
|
scn.StartGame();
|
||||||
scn.FreepsPlayCard(card);
|
scn.ApplyAdHocModifier(new ArcheryTotalModifier(null, Side.FREE_PEOPLE, 6));
|
||||||
|
scn.SkipToPhase(Phase.ARCHERY);
|
||||||
|
|
||||||
|
assertEquals(6, scn.GetFreepsArcheryTotal());
|
||||||
|
scn.FreepsMoveCharToTable(archer);
|
||||||
|
// -5 for the 5 archers, the runner doesn't count
|
||||||
|
assertEquals(1, scn.GetFreepsArcheryTotal());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void GoblinArcherAssignmentAbilityPreventsMoriaArchersFromSkirmishing() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
|
//Pre-game setup
|
||||||
|
var scn = GetScenario();
|
||||||
|
|
||||||
|
var archer = scn.GetShadowCard("archer");
|
||||||
|
var marksman = scn.GetShadowCard("marksman");
|
||||||
|
var commander = scn.GetShadowCard("commander");
|
||||||
|
var bowman = scn.GetShadowCard("bowman");
|
||||||
|
var troop = scn.GetShadowCard("troop");
|
||||||
|
var runner = scn.GetShadowCard("runner");
|
||||||
|
scn.ShadowMoveCharToTable(archer, marksman, commander, bowman, troop, runner);
|
||||||
|
|
||||||
|
var frodo = scn.GetRingBearer();
|
||||||
|
|
||||||
|
//so frodo doesn't die to all the arrows
|
||||||
|
scn.ApplyAdHocModifier(new ArcheryTotalModifier(null, Side.SHADOW, -6));
|
||||||
|
|
||||||
|
scn.StartGame();
|
||||||
|
scn.SkipToPhase(Phase.ASSIGNMENT);
|
||||||
|
|
||||||
|
scn.FreepsPassCurrentPhaseAction();
|
||||||
|
|
||||||
|
assertTrue(scn.ShadowActionAvailable(archer));
|
||||||
|
assertEquals(0, scn.GetWoundsOn(archer));
|
||||||
|
scn.ShadowUseCardAction(archer);
|
||||||
|
|
||||||
|
assertEquals(1, scn.GetWoundsOn(archer));
|
||||||
|
scn.PassAssignmentActions();
|
||||||
|
|
||||||
|
//Only the runner is now assignable
|
||||||
|
assertEquals(1, scn.FreepsGetShadowAssignmentTargetCount());
|
||||||
|
|
||||||
assertEquals(5, scn.GetTwilight());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user