Merge pull request #678 from PlayersCouncil/bug/ketura-bugs
The Empire Strikes Bugs
This commit is contained in:
@@ -85,6 +85,10 @@
|
|||||||
{
|
{
|
||||||
type: activated
|
type: activated
|
||||||
phase: skirmish
|
phase: skirmish
|
||||||
|
requires: {
|
||||||
|
type: CanSpot
|
||||||
|
filter: self,Zone(SUPPORT)
|
||||||
|
}
|
||||||
cost: {
|
cost: {
|
||||||
type: choice
|
type: choice
|
||||||
texts: [
|
texts: [
|
||||||
@@ -143,6 +147,10 @@
|
|||||||
{
|
{
|
||||||
type: activated
|
type: activated
|
||||||
phase: skirmish
|
phase: skirmish
|
||||||
|
requires: {
|
||||||
|
type: CanSpot
|
||||||
|
filter: self,Zone(SUPPORT)
|
||||||
|
}
|
||||||
cost: {
|
cost: {
|
||||||
type: choice
|
type: choice
|
||||||
texts: [
|
texts: [
|
||||||
@@ -382,6 +390,10 @@
|
|||||||
{
|
{
|
||||||
type: activated
|
type: activated
|
||||||
phase: skirmish
|
phase: skirmish
|
||||||
|
requires: {
|
||||||
|
type: CanSpot
|
||||||
|
filter: self,Zone(SUPPORT)
|
||||||
|
}
|
||||||
cost: {
|
cost: {
|
||||||
type: exert
|
type: exert
|
||||||
select: choose(culture(gondor),man)
|
select: choose(culture(gondor),man)
|
||||||
|
|||||||
@@ -709,6 +709,10 @@
|
|||||||
{
|
{
|
||||||
type: activated
|
type: activated
|
||||||
phase: maneuver
|
phase: maneuver
|
||||||
|
requires: {
|
||||||
|
type: CanSpot
|
||||||
|
filter: self,Zone(SUPPORT)
|
||||||
|
}
|
||||||
cost: {
|
cost: {
|
||||||
type: choice
|
type: choice
|
||||||
texts: [
|
texts: [
|
||||||
@@ -2055,6 +2059,10 @@
|
|||||||
{
|
{
|
||||||
type: activated
|
type: activated
|
||||||
phase: maneuver
|
phase: maneuver
|
||||||
|
requires: {
|
||||||
|
type: CanSpot
|
||||||
|
filter: self,Zone(SUPPORT)
|
||||||
|
}
|
||||||
cost: {
|
cost: {
|
||||||
type: choice
|
type: choice
|
||||||
texts: [
|
texts: [
|
||||||
@@ -2113,6 +2121,10 @@
|
|||||||
{
|
{
|
||||||
type: activated
|
type: activated
|
||||||
phase: skirmish
|
phase: skirmish
|
||||||
|
requires: {
|
||||||
|
type: CanSpot
|
||||||
|
filter: self,Zone(SUPPORT)
|
||||||
|
}
|
||||||
cost: {
|
cost: {
|
||||||
type: exert
|
type: exert
|
||||||
select: choose(culture(gondor),man)
|
select: choose(culture(gondor),man)
|
||||||
@@ -2402,6 +2414,10 @@
|
|||||||
{
|
{
|
||||||
type: activated
|
type: activated
|
||||||
phase: skirmish
|
phase: skirmish
|
||||||
|
requires: {
|
||||||
|
type: CanSpot
|
||||||
|
filter: self,Zone(SUPPORT)
|
||||||
|
}
|
||||||
cost: {
|
cost: {
|
||||||
type: choice
|
type: choice
|
||||||
texts: [
|
texts: [
|
||||||
|
|||||||
@@ -241,6 +241,10 @@
|
|||||||
{
|
{
|
||||||
type: activated
|
type: activated
|
||||||
phase: skirmish
|
phase: skirmish
|
||||||
|
requires: {
|
||||||
|
type: CanSpot
|
||||||
|
filter: self,Zone(SUPPORT)
|
||||||
|
}
|
||||||
cost: {
|
cost: {
|
||||||
type: choice
|
type: choice
|
||||||
texts: [
|
texts: [
|
||||||
|
|||||||
@@ -645,43 +645,24 @@
|
|||||||
{
|
{
|
||||||
type: Trigger
|
type: Trigger
|
||||||
optional: false
|
optional: false
|
||||||
trigger: [
|
trigger: {
|
||||||
{
|
type: StartOfSkirmishInvolving
|
||||||
type: MovesTo
|
filter: culture(rohan),companion
|
||||||
filter: self
|
}
|
||||||
}
|
|
||||||
{
|
|
||||||
type: StartOfPhase
|
|
||||||
phase: Fellowship
|
|
||||||
}
|
|
||||||
]
|
|
||||||
requires: {
|
requires: {
|
||||||
type: Location
|
type: canSpot
|
||||||
filter: self
|
filter: minion,inSkirmishAgainst(culture(rohan),companion)
|
||||||
}
|
}
|
||||||
effect: {
|
effect: {
|
||||||
type: addTrigger
|
type: RemoveKeyword
|
||||||
trigger: {
|
count: {
|
||||||
type: StartOfSkirmishInvolving
|
type: ForEachYouCanSpot
|
||||||
filter: culture(rohan),companion
|
|
||||||
}
|
|
||||||
requires: {
|
|
||||||
type: canSpot
|
|
||||||
filter: minion,inSkirmishAgainst(culture(rohan),companion)
|
filter: minion,inSkirmishAgainst(culture(rohan),companion)
|
||||||
}
|
}
|
||||||
effect: {
|
select: all(minion,inSkirmishAgainst(culture(rohan),companion))
|
||||||
type: RemoveKeyword
|
keyword: fierce
|
||||||
count: {
|
|
||||||
type: ForEachYouCanSpot
|
|
||||||
filter: minion,inSkirmishAgainst(culture(rohan),companion)
|
|
||||||
}
|
|
||||||
select: all(minion,inSkirmishAgainst(culture(rohan),companion))
|
|
||||||
keyword: fierce
|
|
||||||
until: regroup
|
|
||||||
}
|
|
||||||
until: regroup
|
until: regroup
|
||||||
}
|
}
|
||||||
limitPerTurn: 1
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
gametext: <b>Plains</b>. Until the regroup phase, each minion skirmishing a [rohan] companion loses <b>fierce</b> and cannot gain fierce.
|
gametext: <b>Plains</b>. Until the regroup phase, each minion skirmishing a [rohan] companion loses <b>fierce</b> and cannot gain fierce.
|
||||||
|
|||||||
@@ -112,6 +112,7 @@
|
|||||||
amount: {
|
amount: {
|
||||||
type: forEachWound
|
type: forEachWound
|
||||||
filter: character,inSkirmish
|
filter: character,inSkirmish
|
||||||
|
multiplier: 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -458,17 +459,6 @@
|
|||||||
site: 4
|
site: 4
|
||||||
keywords: Lurker
|
keywords: Lurker
|
||||||
effects: [
|
effects: [
|
||||||
{
|
|
||||||
type: modifier
|
|
||||||
modifier: {
|
|
||||||
type: addKeyword
|
|
||||||
requires: {
|
|
||||||
type: sarumanFirstSentenceActive
|
|
||||||
}
|
|
||||||
filter: self
|
|
||||||
keyword: lurker
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
type: activated
|
type: activated
|
||||||
phase: skirmish
|
phase: skirmish
|
||||||
|
|||||||
@@ -232,6 +232,10 @@
|
|||||||
{
|
{
|
||||||
type: activated
|
type: activated
|
||||||
phase: skirmish
|
phase: skirmish
|
||||||
|
requires: {
|
||||||
|
type: CanSpot
|
||||||
|
filter: self,Zone(SUPPORT)
|
||||||
|
}
|
||||||
cost: {
|
cost: {
|
||||||
type: exert
|
type: exert
|
||||||
select: choose(culture(gondor),man)
|
select: choose(culture(gondor),man)
|
||||||
@@ -664,6 +668,10 @@
|
|||||||
{
|
{
|
||||||
type: activated
|
type: activated
|
||||||
phase: skirmish
|
phase: skirmish
|
||||||
|
requires: {
|
||||||
|
type: CanSpot
|
||||||
|
filter: self,Zone(SUPPORT)
|
||||||
|
}
|
||||||
cost: {
|
cost: {
|
||||||
type: choice
|
type: choice
|
||||||
texts: [
|
texts: [
|
||||||
@@ -849,6 +857,10 @@
|
|||||||
{
|
{
|
||||||
type: activated
|
type: activated
|
||||||
phase: skirmish
|
phase: skirmish
|
||||||
|
requires: {
|
||||||
|
type: CanSpot
|
||||||
|
filter: self,Zone(SUPPORT)
|
||||||
|
}
|
||||||
cost: {
|
cost: {
|
||||||
type: choice
|
type: choice
|
||||||
texts: [
|
texts: [
|
||||||
|
|||||||
@@ -455,6 +455,7 @@
|
|||||||
}
|
}
|
||||||
filter: site,zone(adventure path)
|
filter: site,zone(adventure path)
|
||||||
from: siteYouControl
|
from: siteYouControl
|
||||||
|
terrain: true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -616,7 +616,7 @@
|
|||||||
modifier: {
|
modifier: {
|
||||||
type: AddKeyword
|
type: AddKeyword
|
||||||
keyword: marsh
|
keyword: marsh
|
||||||
filter: or(river,and(site,not(or(Battleground,Dwelling,Forest,Mountain,Plains,Sanctuary,River,Underground))))
|
filter: or(river,and(site,not(or(Battleground,Dwelling,Forest,Mountain,Plains,River,Underground))))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -197,7 +197,7 @@
|
|||||||
text: Would you like to exhaust {chosenMinion} to permit it to skirmish?
|
text: Would you like to exhaust {chosenMinion} to permit it to skirmish?
|
||||||
cost: {
|
cost: {
|
||||||
type: exhaust
|
type: exhaust
|
||||||
select: memory(chosenMinion)
|
select: choose(CanExert,memory(chosenMinion))
|
||||||
}
|
}
|
||||||
effect: {
|
effect: {
|
||||||
type: disableSkirmishAssignment
|
type: disableSkirmishAssignment
|
||||||
|
|||||||
@@ -20,7 +20,11 @@ public enum Keyword implements Filterable {
|
|||||||
FIERCE("Fierce", true, false, false, true),
|
FIERCE("Fierce", true, false, false, true),
|
||||||
LURKER("Lurker", true, false, false, true),
|
LURKER("Lurker", true, false, false, true),
|
||||||
MUSTER("Muster", true, false, false, true),
|
MUSTER("Muster", true, false, false, true),
|
||||||
SANCTUARY("Sanctuary", true, false, true, true),
|
/**
|
||||||
|
* As per Modern Ruling #1, Sanctuary is not considered a terrain keyword.
|
||||||
|
* https://wiki.lotrtcgpc.net/wiki/Modern_Ruling_1
|
||||||
|
*/
|
||||||
|
SANCTUARY("Sanctuary", true, false, false, true),
|
||||||
RING_BEARER("Ring-Bearer", true, false, true, true),
|
RING_BEARER("Ring-Bearer", true, false, true, true),
|
||||||
UNHASTY("Unhasty", true, false, false, true),
|
UNHASTY("Unhasty", true, false, false, true),
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ public interface LotroFormat {
|
|||||||
String PCSummary = """
|
String PCSummary = """
|
||||||
As a reminder, PC formats incorporate the following changes:
|
As a reminder, PC formats incorporate the following changes:
|
||||||
<br/>- <a href="https://wiki.lotrtcgpc.net/wiki/PC_Errata" target="_blank">PC Errata are in effect</a>
|
<br/>- <a href="https://wiki.lotrtcgpc.net/wiki/PC_Errata" target="_blank">PC Errata are in effect</a>
|
||||||
<br/>- Set V1 is legal
|
<br/>- Sets V1 and V2 are legal (where applicable)
|
||||||
<br/>- Discard piles are public information for both sides
|
<br/>- Discard piles are public information for both sides
|
||||||
<br/>- The game ends after Regroup actions are made (instead of at the start of Regroup)
|
<br/>- The game ends after Regroup actions are made (instead of at the start of Regroup)
|
||||||
""";
|
""";
|
||||||
|
|||||||
@@ -41,8 +41,6 @@ public class SkirmishPhaseAction extends SystemQueueAction {
|
|||||||
game.getActionsEnvironment().addActionToStack(new SkirmishActionProcedureAction());
|
game.getActionsEnvironment().addActionToStack(new SkirmishActionProcedureAction());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
appendEffect(
|
|
||||||
new TriggeringResultEffect(null, new SkirmishAboutToEndResult(fellowshipCharacter, shadowCharacters), "Skirmish about to end"));
|
|
||||||
appendEffect(
|
appendEffect(
|
||||||
new UnrespondableEffect() {
|
new UnrespondableEffect() {
|
||||||
@Override
|
@Override
|
||||||
@@ -53,7 +51,8 @@ public class SkirmishPhaseAction extends SystemQueueAction {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
appendEffect(
|
||||||
|
new TriggeringResultEffect(null, new SkirmishAboutToEndResult(fellowshipCharacter, shadowCharacters), "Skirmish about to end"));
|
||||||
appendEffect(
|
appendEffect(
|
||||||
new TriggeringResultEffect(null, new EndOfPhaseResult(Phase.SKIRMISH), "End of skirmish phase"));
|
new TriggeringResultEffect(null, new EndOfPhaseResult(Phase.SKIRMISH), "End of skirmish phase"));
|
||||||
appendEffect(
|
appendEffect(
|
||||||
|
|||||||
@@ -199,10 +199,10 @@ public class TournamentService {
|
|||||||
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
|
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
addRecurringScheduledQueue("fotr_daily_eu", "Daily Gondor Fellowship Block", "2013-01-15 19:30:00", "fotrDailyEu-", "fotr_block");
|
addRecurringScheduledQueue("fotr_daily_eu", "Daily Fellowship Block", "2013-01-15 19:30:00", "fotrDailyEu-", "fotr_block");
|
||||||
addRecurringScheduledQueue("fotr_daily_us", "Daily Rohan Fellowship Block", "2013-01-16 00:30:00", "fotrDailyUS-", "fotr_block");
|
addRecurringScheduledQueue("fotr_daily_us", "Daily Fellowship Block", "2013-01-16 00:30:00", "fotrDailyUS-", "fotr_block");
|
||||||
addRecurringScheduledQueue("movie_daily_eu", "Daily Gondor Movie Block", "2013-01-16 19:30:00", "movieDailyEu-", "movie");
|
addRecurringScheduledQueue("movie_daily_eu", "Daily Movie Block", "2013-01-16 19:30:00", "movieDailyEu-", "movie");
|
||||||
addRecurringScheduledQueue("movie_daily_us", "Daily Rohan Movie Block", "2013-01-17 00:30:00", "movieDailyUs-", "movie");
|
addRecurringScheduledQueue("movie_daily_us", "Daily Movie Block", "2013-01-17 00:30:00", "movieDailyUs-", "movie");
|
||||||
|
|
||||||
} catch (DateTimeParseException exp) {
|
} catch (DateTimeParseException exp) {
|
||||||
// Ignore, can't happen
|
// Ignore, can't happen
|
||||||
|
|||||||
@@ -89,13 +89,14 @@ public class Card_08_113_Tests
|
|||||||
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
|
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
|
||||||
assertEquals(0, scn.GetThreats());
|
assertEquals(0, scn.GetThreats());
|
||||||
assertEquals(Zone.SHADOW_CHARACTERS, shelob.getZone());
|
assertEquals(Zone.SHADOW_CHARACTERS, shelob.getZone());
|
||||||
scn.FreepsAcceptOptionalTrigger();
|
scn.FreepsDeclineOptionalTrigger(); //Ring converting burdens
|
||||||
|
scn.FreepsAcceptOptionalTrigger(); //Sting
|
||||||
assertEquals(1, scn.GetThreats());
|
assertEquals(1, scn.GetThreats());
|
||||||
assertEquals(Zone.DISCARD, shelob.getZone());
|
assertEquals(Zone.DISCARD, shelob.getZone());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void StingTriggersOnOverwhelm() throws DecisionResultInvalidException, CardNotFoundException {
|
public void Sting_DOESNOT_TriggerOnOverwhelm() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
//Pre-game setup
|
//Pre-game setup
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
|
|
||||||
@@ -117,12 +118,10 @@ public class Card_08_113_Tests
|
|||||||
scn.FreepsResolveSkirmish(frodo);
|
scn.FreepsResolveSkirmish(frodo);
|
||||||
scn.PassCurrentPhaseActions();
|
scn.PassCurrentPhaseActions();
|
||||||
|
|
||||||
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
|
assertFalse(scn.FreepsHasOptionalTriggerAvailable());
|
||||||
|
|
||||||
assertEquals(0, scn.GetThreats());
|
assertEquals(0, scn.GetThreats());
|
||||||
assertEquals(Zone.SHADOW_CHARACTERS, sauron.getZone());
|
assertEquals(Zone.SHADOW_CHARACTERS, sauron.getZone());
|
||||||
scn.FreepsAcceptOptionalTrigger();
|
|
||||||
assertEquals(1, scn.GetThreats());
|
|
||||||
assertEquals(Zone.DISCARD, sauron.getZone());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import com.gempukku.lotro.common.Keyword;
|
|||||||
import com.gempukku.lotro.common.Phase;
|
import com.gempukku.lotro.common.Phase;
|
||||||
import com.gempukku.lotro.game.CardNotFoundException;
|
import com.gempukku.lotro.game.CardNotFoundException;
|
||||||
import com.gempukku.lotro.game.PhysicalCardImpl;
|
import com.gempukku.lotro.game.PhysicalCardImpl;
|
||||||
import com.gempukku.lotro.game.state.actions.DefaultActionsEnvironment;
|
|
||||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
@@ -57,7 +56,8 @@ public class Card_11_243_Tests
|
|||||||
* Type: Site
|
* Type: Site
|
||||||
* Subtype:
|
* Subtype:
|
||||||
* Site Number: *
|
* Site Number: *
|
||||||
* Game Text: <b>Plains</b>. Until the regroup phase, each minion skirmishing a [rohan] companion loses <b>fierce</b> and cannot gain fierce.
|
* Game Text: <b>Plains</b>. Until the regroup phase, each minion skirmishing a [rohan] companion loses
|
||||||
|
* <b>fierce</b> and cannot gain fierce.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
@@ -73,23 +73,14 @@ public class Card_11_243_Tests
|
|||||||
assertEquals(3, card.getBlueprint().getTwilightCost());
|
assertEquals(3, card.getBlueprint().getTwilightCost());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uncomment any @Test markers below once this is ready to be used
|
/**
|
||||||
//@Test
|
* As per Legacy Ruling #4, Harrowdale's text is to be interpreted as only working while the fellowship is at that site.
|
||||||
public void HarrowdaleTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
* Thus, if you start at Harrowdale and move away from it, the text does not "follow" the fellowship.
|
||||||
//Pre-game setup
|
* <a href="https://wiki.lotrtcgpc.net/wiki/Legacy_Ruling_4">Wiki LR#4</a>
|
||||||
var scn = GetScenario();
|
*/
|
||||||
|
|
||||||
var card = scn.GetFreepsCard("card");
|
|
||||||
scn.FreepsMoveCardToHand(card);
|
|
||||||
|
|
||||||
scn.StartGame();
|
|
||||||
scn.FreepsPlayCard(card);
|
|
||||||
|
|
||||||
assertEquals(3, scn.GetTwilight());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void MovingFromHarrowdaleRemovesFierceAgainstSkirmishingRohirrim() throws DecisionResultInvalidException, CardNotFoundException {
|
public void MovingFromHarrowdale_DOESNOT_RemoveFierceAgainstSkirmishingRohirrim() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
//Pre-game setup
|
//Pre-game setup
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
var harrowdale = scn.GetFreepsSite("Harrowdale");
|
var harrowdale = scn.GetFreepsSite("Harrowdale");
|
||||||
@@ -110,7 +101,6 @@ public class Card_11_243_Tests
|
|||||||
scn.FreepsPassCurrentPhaseAction();
|
scn.FreepsPassCurrentPhaseAction();
|
||||||
scn.ShadowChooseCardBPFromSelection(shadowSite2);
|
scn.ShadowChooseCardBPFromSelection(shadowSite2);
|
||||||
|
|
||||||
assertEquals(1, ((DefaultActionsEnvironment) scn._game.getActionsEnvironment()).getUntilStartOfPhaseActionProxies(Phase.REGROUP).size());
|
|
||||||
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
|
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
|
||||||
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
|
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
|
||||||
|
|
||||||
@@ -124,7 +114,8 @@ public class Card_11_243_Tests
|
|||||||
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
|
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
|
||||||
|
|
||||||
scn.FreepsResolveSkirmish(eomer);
|
scn.FreepsResolveSkirmish(eomer);
|
||||||
assertFalse(scn.hasKeyword(seeker, Keyword.FIERCE));
|
//Fierce was not removed because Harrowdale only works while on it
|
||||||
|
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
|
||||||
scn.PassCurrentPhaseActions();
|
scn.PassCurrentPhaseActions();
|
||||||
|
|
||||||
scn.FreepsResolveSkirmish(aragorn);
|
scn.FreepsResolveSkirmish(aragorn);
|
||||||
@@ -134,42 +125,9 @@ public class Card_11_243_Tests
|
|||||||
assertEquals(Phase.ASSIGNMENT, scn.GetCurrentPhase());
|
assertEquals(Phase.ASSIGNMENT, scn.GetCurrentPhase());
|
||||||
scn.PassCurrentPhaseActions();
|
scn.PassCurrentPhaseActions();
|
||||||
|
|
||||||
assertFalse(scn.hasKeyword(seeker, Keyword.FIERCE));
|
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
|
||||||
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
|
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
|
||||||
scn.FreepsAssignToMinions(aragorn, pursuer);
|
scn.FreepsAssignToMinions(aragorn, pursuer);
|
||||||
|
|
||||||
scn.FreepsResolveSkirmish(aragorn);
|
|
||||||
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
|
|
||||||
scn.PassCurrentPhaseActions();
|
|
||||||
|
|
||||||
//Fierce suppression should have worn off
|
|
||||||
assertEquals(Phase.REGROUP, scn.GetCurrentPhase());
|
|
||||||
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
|
|
||||||
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
|
|
||||||
|
|
||||||
scn.PassCurrentPhaseActions();
|
|
||||||
scn.ShadowDeclineReconciliation();
|
|
||||||
scn.FreepsChooseToMove();
|
|
||||||
scn.ShadowChooseCardBPFromSelection(shadowSite3);
|
|
||||||
|
|
||||||
assertEquals(0, ((DefaultActionsEnvironment) scn._game.getActionsEnvironment()).getUntilStartOfPhaseActionProxies(Phase.REGROUP).size());
|
|
||||||
|
|
||||||
scn.SkipToAssignments();
|
|
||||||
scn.FreepsAssignToMinions(
|
|
||||||
new PhysicalCardImpl[] { eomer, pursuer},
|
|
||||||
new PhysicalCardImpl[] { aragorn, seeker}
|
|
||||||
);
|
|
||||||
|
|
||||||
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
|
|
||||||
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
|
|
||||||
|
|
||||||
scn.FreepsResolveSkirmish(eomer);
|
|
||||||
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
|
|
||||||
scn.PassCurrentPhaseActions();
|
|
||||||
|
|
||||||
scn.FreepsResolveSkirmish(aragorn);
|
|
||||||
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
|
|
||||||
scn.PassCurrentPhaseActions();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -194,7 +152,6 @@ public class Card_11_243_Tests
|
|||||||
scn.FreepsPassCurrentPhaseAction();
|
scn.FreepsPassCurrentPhaseAction();
|
||||||
scn.ShadowChooseCardBPFromSelection(harrowdale);
|
scn.ShadowChooseCardBPFromSelection(harrowdale);
|
||||||
|
|
||||||
assertEquals(1, ((DefaultActionsEnvironment) scn._game.getActionsEnvironment()).getUntilStartOfPhaseActionProxies(Phase.REGROUP).size());
|
|
||||||
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
|
assertTrue(scn.hasKeyword(pursuer, Keyword.FIERCE));
|
||||||
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
|
assertTrue(scn.hasKeyword(seeker, Keyword.FIERCE));
|
||||||
|
|
||||||
@@ -236,8 +193,6 @@ public class Card_11_243_Tests
|
|||||||
scn.FreepsChooseToMove();
|
scn.FreepsChooseToMove();
|
||||||
scn.ShadowChooseCardBPFromSelection(shadowSite3);
|
scn.ShadowChooseCardBPFromSelection(shadowSite3);
|
||||||
|
|
||||||
assertEquals(0, ((DefaultActionsEnvironment) scn._game.getActionsEnvironment()).getUntilStartOfPhaseActionProxies(Phase.REGROUP).size());
|
|
||||||
|
|
||||||
scn.SkipToAssignments();
|
scn.SkipToAssignments();
|
||||||
scn.FreepsAssignToMinions(
|
scn.FreepsAssignToMinions(
|
||||||
new PhysicalCardImpl[] { eomer, pursuer},
|
new PhysicalCardImpl[] { eomer, pursuer},
|
||||||
|
|||||||
Reference in New Issue
Block a user