Fixed Eowyn, Northwoman and Into the Caves never being usable.
This commit is contained in:
@@ -193,25 +193,38 @@
|
||||
{
|
||||
type: activated
|
||||
phase: assignment
|
||||
requires: [
|
||||
{
|
||||
type: CanSpot
|
||||
filter: ringBearer,AssignableToSkirmishAgainst(minion)
|
||||
}
|
||||
{
|
||||
type: CanSpot
|
||||
filter: minion,AssignableToSkirmishAgainst(ringBearer)
|
||||
}
|
||||
]
|
||||
cost: [
|
||||
{
|
||||
type: exert
|
||||
select: self
|
||||
}
|
||||
{
|
||||
]
|
||||
effect: {
|
||||
type: CostToEffect
|
||||
cost: {
|
||||
type: assignFPCharacterToSkirmish
|
||||
fpCharacter: choose(ringBearer)
|
||||
minion: choose(minion)
|
||||
memorizeMinion: chosenMinion
|
||||
}
|
||||
]
|
||||
effect: {
|
||||
type: addModifier
|
||||
modifier: {
|
||||
type: removeAllKeywords
|
||||
filter: memory(chosenMinion)
|
||||
effect: {
|
||||
type: addModifier
|
||||
modifier: {
|
||||
type: removeAllKeywords
|
||||
filter: memory(chosenMinion)
|
||||
}
|
||||
until: regroup
|
||||
}
|
||||
until: regroup
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -433,40 +446,49 @@
|
||||
{
|
||||
type: activated
|
||||
phase: assignment
|
||||
cost: {
|
||||
type: assignFPCharacterToSkirmish
|
||||
fpCharacter: choose(name(Frodo))
|
||||
minion: choose(minion)
|
||||
memorizeMinion: chosenMinion
|
||||
}
|
||||
effect: {
|
||||
type: doWhile
|
||||
check: {
|
||||
type: memoryIs
|
||||
memory: choice
|
||||
value: yes
|
||||
requires: [
|
||||
{
|
||||
type: CanSpot
|
||||
filter: name(Frodo,AssignableToSkirmishAgainst(minion))
|
||||
}
|
||||
effect: [
|
||||
{
|
||||
type: chooseAKeyword
|
||||
memorize: keyword
|
||||
{
|
||||
type: CanSpot
|
||||
filter: minion,AssignableToSkirmishAgainst(name(Frodo))
|
||||
}
|
||||
]
|
||||
effect: {
|
||||
type: CostToEffect
|
||||
cost: {
|
||||
type: assignFPCharacterToSkirmish
|
||||
fpCharacter: choose(name(Frodo))
|
||||
minion: choose(minion)
|
||||
memorizeMinion: chosenMinion
|
||||
}
|
||||
effect: {
|
||||
type: doWhile
|
||||
check: {
|
||||
type: memoryIs
|
||||
memory: choice
|
||||
value: yes
|
||||
}
|
||||
{
|
||||
type: sendMessage
|
||||
text: '{player} chose "{keyword}"'
|
||||
}
|
||||
{
|
||||
type: removeKeyword
|
||||
select: memory(chosenMinion)
|
||||
keywordFromMemory: keyword
|
||||
until: regroup
|
||||
}
|
||||
{
|
||||
type: chooseYesOrNo
|
||||
text: Would you like to choose more keywords?
|
||||
memorize: choice
|
||||
}
|
||||
]
|
||||
effect: [
|
||||
{
|
||||
type: chooseAKeyword
|
||||
memorize: keyword
|
||||
}
|
||||
{
|
||||
type: removeKeyword
|
||||
select: memory(chosenMinion)
|
||||
keywordFromMemory: keyword
|
||||
until: regroup
|
||||
}
|
||||
{
|
||||
type: chooseYesOrNo
|
||||
text: Would you like to choose more keywords?
|
||||
memorize: choice
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -73,8 +73,7 @@ public class AssignFpCharacterToSkirmish implements EffectAppenderProducer {
|
||||
final Collection<? extends PhysicalCard> fpChar = actionContext.getCardsFromMemory(fpCharacterMemory);
|
||||
final Collection<? extends PhysicalCard> minion = actionContext.getCardsFromMemory(minionMemory);
|
||||
if (fpChar.size() == 1 && minion.size() == 1) {
|
||||
AssignmentEffect effect = new AssignmentEffect(assigningPlayer, fpChar.iterator().next(), minion.iterator().next(), ignoreExistingAssignments, ignoreDefender, ignoreAllyLocation);
|
||||
return effect;
|
||||
return new AssignmentEffect(assigningPlayer, fpChar.iterator().next(), minion.iterator().next(), ignoreExistingAssignments, ignoreDefender, ignoreAllyLocation);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.gempukku.lotro.cards.official.set17;
|
||||
import com.gempukku.lotro.cards.GenericCardTestHelper;
|
||||
import com.gempukku.lotro.common.*;
|
||||
import com.gempukku.lotro.game.CardNotFoundException;
|
||||
import com.gempukku.lotro.game.PhysicalCardImpl;
|
||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -18,8 +17,9 @@ public class Card_17_096_Tests
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<>()
|
||||
{{
|
||||
put("card", "17_96");
|
||||
// put other cards in here as needed for the test case
|
||||
put("eowyn", "17_96");
|
||||
put("scout", "1_270");
|
||||
put("soldier", "1_271");
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
GenericCardTestHelper.FOTRFrodo,
|
||||
@@ -42,12 +42,14 @@ public class Card_17_096_Tests
|
||||
* Strength: 6
|
||||
* Vitality: 3
|
||||
* Resistance: 7
|
||||
* Game Text: While the Ring-bearer is assigned to a skirmish, Éowyn cannot take wounds while skirmishing.<br><b>Assignment:</b> Exert Éowyn and assign a minion to the Ring-bearer to make that minion lose all game text keywords and unable to gain game text keywords until the regroup phase.
|
||||
* Game Text: While the Ring-bearer is assigned to a skirmish, Éowyn cannot take wounds while skirmishing.
|
||||
* <b>Assignment:</b> Exert Éowyn and assign a minion to the Ring-bearer to make that minion lose
|
||||
* all game text keywords and unable to gain game text keywords until the regroup phase.
|
||||
*/
|
||||
|
||||
var scn = GetScenario();
|
||||
|
||||
var card = scn.GetFreepsCard("card");
|
||||
var card = scn.GetFreepsCard("eowyn");
|
||||
|
||||
assertEquals("Éowyn", card.getBlueprint().getTitle());
|
||||
assertEquals("Northwoman", card.getBlueprint().getSubtitle());
|
||||
@@ -62,18 +64,39 @@ public class Card_17_096_Tests
|
||||
assertEquals(7, card.getBlueprint().getResistance());
|
||||
}
|
||||
|
||||
// Uncomment any @Test markers below once this is ready to be used
|
||||
//@Test
|
||||
public void EowynTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
@Test
|
||||
public void EowynAbilityAssignsRingBearerToRemoveGameText() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
var frodo = scn.GetRingBearer();
|
||||
var eowyn = scn.GetFreepsCard("eowyn");
|
||||
scn.FreepsMoveCharToTable(eowyn);
|
||||
|
||||
var scout = scn.GetShadowCard("scout");
|
||||
scn.ShadowMoveCharToTable(scout);
|
||||
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
scn.SkipToPhase(Phase.ASSIGNMENT);
|
||||
|
||||
assertEquals(2, scn.GetTwilight());
|
||||
assertTrue(scn.hasKeyword(scout, Keyword.TRACKER));
|
||||
assertTrue(scn.FreepsActionAvailable(eowyn));
|
||||
assertEquals(0, scn.GetWoundsOn(eowyn));
|
||||
assertFalse(scn.IsCharAssigned(frodo));
|
||||
assertFalse(GetScenario().IsCharAssigned(scout));
|
||||
|
||||
scn.FreepsUseCardAction(eowyn);
|
||||
assertFalse(scn.hasKeyword(scout, Keyword.TRACKER));
|
||||
assertFalse(scn.FreepsActionAvailable(eowyn));
|
||||
assertEquals(1, scn.GetWoundsOn(eowyn));
|
||||
assertTrue(scn.IsCharAssigned(frodo));
|
||||
assertTrue(scn.IsCharAssigned(scout));
|
||||
|
||||
scn.ShadowPassCurrentPhaseAction();
|
||||
scn.FreepsPassCurrentPhaseAction();
|
||||
scn.FreepsResolveSkirmish(frodo);
|
||||
scn.FreepsPassCurrentPhaseAction();
|
||||
|
||||
assertTrue(scn.ShadowAnyActionsAvailable());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user