Altered new deck tutoring setup to first only have the player select valid cards, then look at a list of all cards in the deck afterwards.

b
This commit is contained in:
Christian 'ketura' McCarty
2024-11-08 22:43:24 -06:00
parent 53036ca5dc
commit e608b11625
13 changed files with 43 additions and 18 deletions

View File

@@ -59,23 +59,26 @@ public abstract class ChooseCardsFromDeckEffect extends AbstractEffect {
} else if (cards.size() == minimum) {
cardsSelected(game, cards);
} else {
if (showAll) {
game.getUserFeedback().sendAwaitingDecision(_playerId,
new ArbitraryCardsSelectionDecision(1, "Choose cards from deck", game.getGameState().getDeck(_deckId), new LinkedList<>(cards), minimum, _maximum) {
@Override
public void decisionMade(String result) throws DecisionResultInvalidException {
cardsSelected(game, getSelectedCardsByResponse(result));
game.getUserFeedback().sendAwaitingDecision(_playerId,
new ArbitraryCardsSelectionDecision(1, "Choose cards from deck", new LinkedList<>(cards), minimum, _maximum) {
@Override
public void decisionMade(String result) throws DecisionResultInvalidException {
var actualSelection = getSelectedCardsByResponse(result);
if (showAll) {
game.getUserFeedback().sendAwaitingDecision(_playerId,
new ArbitraryCardsSelectionDecision(2, "You may inspect the contents of your deck while retrieving cards", game.getGameState().getDeck(_deckId), new LinkedList<>(), 0, 0) {
@Override
public void decisionMade(String result2) throws DecisionResultInvalidException {
cardsSelected(game, actualSelection);
}
});
}
});
} else {
game.getUserFeedback().sendAwaitingDecision(_playerId,
new ArbitraryCardsSelectionDecision(1, "Choose cards from deck", new LinkedList<>(cards), minimum, _maximum) {
@Override
public void decisionMade(String result) throws DecisionResultInvalidException {
cardsSelected(game, getSelectedCardsByResponse(result));
else {
cardsSelected(game, actualSelection);
}
});
}
}
});
}
return new FullEffectResult(success);

View File

@@ -20,6 +20,7 @@ public class Card_01_087_Tests
put("late", "1_87");
put("gandalf", "1_72");
put("bb", "1_70");
put("filler", "1_75");
}},
GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo,
@@ -78,6 +79,9 @@ public class Card_01_087_Tests
assertEquals(2, scn.GetFreepsCardChoiceCount());
scn.FreepsChooseCardBPFromSelection(gandalf);
assertTrue(scn.FreepsDecisionAvailable("You may inspect the contents of your deck while retrieving cards"));
scn.FreepsDismissRevealedCards();
assertEquals(Zone.FREE_CHARACTERS, gandalf.getZone());
assertEquals(Zone.DECK, bb.getZone());
}
@@ -103,6 +107,8 @@ public class Card_01_087_Tests
assertTrue(scn.FreepsDecisionAvailable("Choose cards from deck"));
assertEquals(2, scn.GetFreepsCardChoiceCount());
scn.FreepsChooseCardBPFromSelection(bb);
assertTrue(scn.FreepsDecisionAvailable("You may inspect the contents of your deck while retrieving cards"));
scn.FreepsDismissRevealedCards();
assertEquals(Zone.DECK, gandalf.getZone());
assertEquals(Zone.SUPPORT, bb.getZone());

View File

@@ -1,10 +1,11 @@
package com.gempukku.lotro.cards.official.set09;
import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Zone;
import com.gempukku.lotro.game.AbstractActionProxy;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.ActivateCardAction;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
@@ -224,6 +225,7 @@ public class Card_09_001_Tests
scn.FreepsUseCardAction(ring);
assertEquals(2, scn.FreepsGetSelectableCount());
scn.FreepsChooseCardBPFromSelection(ring1);
scn.FreepsDismissRevealedCards();
assertEquals(3, scn.GetBurdens());
assertEquals(Zone.ATTACHED, ring1.getZone());

View File

@@ -100,6 +100,7 @@ public class Card_11_235_Tests
assertEquals(Zone.DECK, dontlook.getZone());
assertEquals(Zone.DECK, smeagol.getZone());
scn.FreepsChooseCardBPFromSelection(dontlook);
scn.FreepsDismissRevealedCards();
assertEquals(Zone.SUPPORT, dontlook.getZone());
assertEquals(Zone.DECK, smeagol.getZone());

View File

@@ -184,6 +184,7 @@ public class Card_18_132_Tests
assertEquals(2, scn.ShadowGetSelectableCount()); // orc + cantea, but not TWK
scn.ShadowChooseCardBPFromSelection(orc);
scn.ShadowDismissRevealedCards();
assertEquals(Zone.SHADOW_CHARACTERS, orc.getZone());
}

View File

@@ -117,6 +117,7 @@ public class Card_02_045_ErrataTests
scn.ShadowAcceptOptionalTrigger();
assertEquals(3, scn.GetShadowCardChoiceCount());
scn.ShadowChooseCardBPFromSelection(sauron);
scn.ShadowDismissRevealedCards();
//Decline the prevention
scn.FreepsChooseNo();
assertEquals(Zone.DISCARD, attention.getZone());
@@ -158,6 +159,7 @@ public class Card_02_045_ErrataTests
//Accept the prevention
assertEquals(7, scn.GetFreepsDeckCount());
assertEquals(0, scn.GetFreepsDiscardCount());
scn.ShadowDismissRevealedCards();
scn.FreepsChooseYes();
assertEquals(1, scn.GetFreepsDeckCount());
assertEquals(6, scn.GetFreepsDiscardCount());

View File

@@ -139,6 +139,7 @@ public class Card_18_082_ErrataTests
assertEquals(Zone.DECK, chaff3.getZone());
assertEquals(Zone.DECK, chaff4.getZone());
scn.ShadowChooseCardBPFromSelection(chaff3, chaff4);
scn.ShadowDismissRevealedCards();
assertEquals(Zone.DISCARD, chaff3.getZone());
assertEquals(Zone.DISCARD, chaff4.getZone());
}

View File

@@ -102,6 +102,7 @@ public class Card_18_096_ErrataTests
assertEquals(1, scn.GetWoundsOn(eomer));
scn.FreepsChooseCardBPFromSelection(worker);
scn.FreepsDismissRevealedCards();
assertEquals(Zone.SUPPORT, worker.getZone());
}

View File

@@ -96,6 +96,7 @@ public class Card_V1_013_Tests
// Choices available should be 1 Elrond, 1 Galadriel, 1 Orophin
assertEquals(3, scn.GetFreepsCardChoiceCount());
scn.FreepsChooseCardBPFromSelection(scn.GetFreepsCard("elrond"));
scn.FreepsDismissRevealedCards();
assertTrue(scn.FreepsDecisionAvailable("Would you like to pay"));
scn.FreepsChooseYes();
@@ -128,6 +129,7 @@ public class Card_V1_013_Tests
// Choices available should be 1 Elrond, 1 Galadriel, 1 Orophin
assertEquals(3, scn.GetFreepsCardChoiceCount());
scn.FreepsChooseCardBPFromSelection(scn.GetFreepsCard("elrond"));
scn.FreepsDismissRevealedCards();
assertTrue(scn.FreepsDecisionAvailable("Would you like to pay"));
scn.FreepsChooseNo();

View File

@@ -98,6 +98,7 @@ public class Card_V1_037_Tests
scn.ShadowPlayCard(fell2);
scn.ShadowChooseCardBPFromSelection(blade);
scn.ShadowDismissRevealedCards();
assertEquals(Zone.ATTACHED, blade.getZone());
assertEquals(nazgul, blade.getAttachedTo());

View File

@@ -130,12 +130,14 @@ public class Card_V1_050_Tests
assertEquals(3, scn.GetFreepsCardChoiceCount()); // coat, sting, and phial
scn.FreepsChooseCardBPFromSelection(sting);
scn.FreepsDismissRevealedCards();
assertEquals(Zone.ATTACHED, sting.getZone());
assertEquals(frodo, sting.getAttachedTo());
assertTrue(scn.FreepsDecisionAvailable("Choose cards from deck"));
assertEquals(2, scn.GetFreepsCardChoiceCount());
scn.FreepsChooseCardBPFromSelection(phial);
scn.FreepsDismissRevealedCards();
assertEquals(Zone.ATTACHED, phial.getZone());
assertEquals(frodo, phial.getAttachedTo());

View File

@@ -91,6 +91,7 @@ public class Card_V1_057_Tests
scn.FreepsAcceptOptionalTrigger();
assertEquals(1, scn.GetWoundsOn(frodo));
scn.FreepsChooseCardBPFromSelection(cond);
scn.FreepsDismissRevealedCards();
assertEquals(Zone.ATTACHED, cond.getZone());
}

View File

@@ -3,7 +3,6 @@ package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02;
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;
@@ -133,6 +132,7 @@ public class Card_V2_036_Tests
assertEquals(3, scn.ShadowGetSelectableCount());
assertEquals(Zone.DECK, warg1.getZone());
scn.ShadowChooseCardBPFromSelection(warg1);
scn.ShadowDismissRevealedCards();
assertEquals(Zone.STACKED, warg1.getZone());
assertSame(pit, warg1.getStackedOn());
@@ -143,6 +143,7 @@ public class Card_V2_036_Tests
assertEquals(2, scn.ShadowGetSelectableCount());
assertEquals(Zone.DECK, warg2.getZone());
scn.ShadowChooseCardBPFromSelection(warg2);
scn.ShadowDismissRevealedCards();
assertEquals(Zone.STACKED, warg2.getZone());
assertSame(pit, warg2.getStackedOn());
@@ -177,6 +178,7 @@ public class Card_V2_036_Tests
assertEquals(1, scn.ShadowGetSelectableCount());
assertEquals(Zone.DECK, warg1.getZone());
scn.ShadowChooseCardBPFromSelection(warg1);
scn.ShadowDismissRevealedCards();
assertEquals(Zone.STACKED, warg1.getZone());
assertSame(pit, warg1.getStackedOn());