Fixed V1 The White Council being usable more than twice.
This commit is contained in:
@@ -412,11 +412,8 @@
|
|||||||
{
|
{
|
||||||
type: activated
|
type: activated
|
||||||
phase: regroup
|
phase: regroup
|
||||||
|
limitPerPhase: 2
|
||||||
requires: [
|
requires: [
|
||||||
{
|
|
||||||
type: perPhaseLimit
|
|
||||||
limit: 2
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
type: canSpot
|
type: canSpot
|
||||||
count: 2
|
count: 2
|
||||||
@@ -429,22 +426,9 @@
|
|||||||
count: 2
|
count: 2
|
||||||
}
|
}
|
||||||
effect: {
|
effect: {
|
||||||
type: If
|
|
||||||
check: {
|
|
||||||
type: perPhaseLimit
|
|
||||||
limit: 2
|
|
||||||
}
|
|
||||||
true: [
|
|
||||||
{
|
|
||||||
type: incrementPerPhaseLimit
|
|
||||||
limit: 1
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type: heal
|
type: heal
|
||||||
select: choose(companion,or(name(Gandalf),signet(gandalf)))
|
select: choose(companion,or(name(Gandalf),signet(gandalf)))
|
||||||
}
|
}
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
gametext: While you can spot Gandalf and 2 [elven] allies, the first sentence of Saruman's game text does not apply.<br>Regroup: Exert 2 [elven] allies to heal Gandalf or a companion with the Gandalf signet (limit 2 per phase).
|
gametext: While you can spot Gandalf and 2 [elven] allies, the first sentence of Saruman's game text does not apply.<br>Regroup: Exert 2 [elven] allies to heal Gandalf or a companion with the Gandalf signet (limit 2 per phase).
|
||||||
|
|||||||
@@ -252,6 +252,12 @@ public class GenericCardTestHelper extends AbstractAtTest {
|
|||||||
public AwaitingDecision FreepsGetAwaitingDecision() { return GetAwaitingDecision(P1); }
|
public AwaitingDecision FreepsGetAwaitingDecision() { return GetAwaitingDecision(P1); }
|
||||||
public AwaitingDecision ShadowGetAwaitingDecision() { return GetAwaitingDecision(P2); }
|
public AwaitingDecision ShadowGetAwaitingDecision() { return GetAwaitingDecision(P2); }
|
||||||
public AwaitingDecision GetAwaitingDecision(String playerID) { return _userFeedback.getAwaitingDecision(playerID); }
|
public AwaitingDecision GetAwaitingDecision(String playerID) { return _userFeedback.getAwaitingDecision(playerID); }
|
||||||
|
public AwaitingDecision GetCurrentDecision() {
|
||||||
|
var freeps = FreepsGetAwaitingDecision();
|
||||||
|
if(freeps != null)
|
||||||
|
return freeps;
|
||||||
|
return ShadowGetAwaitingDecision();
|
||||||
|
}
|
||||||
|
|
||||||
public Boolean FreepsDecisionAvailable(String text) { return DecisionAvailable(P1, text); }
|
public Boolean FreepsDecisionAvailable(String text) { return DecisionAvailable(P1, text); }
|
||||||
public Boolean ShadowDecisionAvailable(String text) { return DecisionAvailable(P2, text); }
|
public Boolean ShadowDecisionAvailable(String text) { return DecisionAvailable(P2, text); }
|
||||||
@@ -751,7 +757,7 @@ public class GenericCardTestHelper extends AbstractAtTest {
|
|||||||
ShadowDeclineReconciliation();
|
ShadowDeclineReconciliation();
|
||||||
}
|
}
|
||||||
while(ShadowDecisionAvailable("discard down")) {
|
while(ShadowDecisionAvailable("discard down")) {
|
||||||
ShadowChooseCard((PhysicalCardImpl) GetShadowHand().get(0));
|
ShadowChooseCard((PhysicalCardImpl) GetShadowHand().getFirst());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void SkipToPhase(Phase target) throws DecisionResultInvalidException {
|
public void SkipToPhase(Phase target) throws DecisionResultInvalidException {
|
||||||
@@ -767,9 +773,19 @@ public class GenericCardTestHelper extends AbstractAtTest {
|
|||||||
else if(current == Phase.SHADOW) {
|
else if(current == Phase.SHADOW) {
|
||||||
ShadowPassCurrentPhaseAction();
|
ShadowPassCurrentPhaseAction();
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
var freeps = FreepsGetAwaitingDecision();
|
||||||
|
var shadow = ShadowGetAwaitingDecision();
|
||||||
|
if(freeps != null && freeps.getText().toLowerCase().contains("required")) {
|
||||||
|
FreepsChooseAction("0");
|
||||||
|
}
|
||||||
|
else if(shadow != null && shadow.getText().toLowerCase().contains("required")){
|
||||||
|
ShadowChooseAction("0");
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
PassCurrentPhaseActions();
|
PassCurrentPhaseActions();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(attempts == 20)
|
if(attempts == 20)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -177,8 +177,9 @@ public class Card_V1_018_Tests
|
|||||||
//limit of 2 means it won't let us even with healthy allies
|
//limit of 2 means it won't let us even with healthy allies
|
||||||
assertEquals(1, scn.GetWoundsOn(galadriel));
|
assertEquals(1, scn.GetWoundsOn(galadriel));
|
||||||
assertEquals(2, scn.GetWoundsOn(elrond));
|
assertEquals(2, scn.GetWoundsOn(elrond));
|
||||||
assertTrue(scn.FreepsActionAvailable(council));
|
assertFalse(scn.FreepsActionAvailable(council));
|
||||||
|
|
||||||
|
scn.SkipToSite(3);
|
||||||
scn.SkipToPhase(Phase.REGROUP);
|
scn.SkipToPhase(Phase.REGROUP);
|
||||||
|
|
||||||
assertTrue(scn.FreepsActionAvailable(council));
|
assertTrue(scn.FreepsActionAvailable(council));
|
||||||
|
|||||||
Reference in New Issue
Block a user