Fixing inconsistencies with cards changing zones in the test rig

This commit is contained in:
Christian 'ketura' McCarty
2022-07-13 05:16:00 -05:00
parent 26d5c09a6a
commit 07e0a44a61
4 changed files with 88 additions and 23 deletions

View File

@@ -3,7 +3,6 @@ package com.gempukku.lotro.cards;
import com.gempukku.lotro.at.AbstractAtTest;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.common.Zone;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCard;
@@ -94,11 +93,11 @@ public class GenericCardTestHelper extends AbstractAtTest {
String id = cardIDs.get(name);
PhysicalCardImpl card = CreateCard(P1, id);
Cards.get(P1).put(name, card);
FreepsMoveCardToDeck(card);
FreepsMoveCardsToTopOfDeck(card);
card = CreateCard(P2, id);
Cards.get(P2).put(name, card);
FreepsMoveCardToDeck(card);
FreepsMoveCardsToTopOfDeck(card);
}
}
}
@@ -266,15 +265,25 @@ public class GenericCardTestHelper extends AbstractAtTest {
public void FreepsMoveCardToHand(String cardName) { MoveCardToZone(P1, GetFreepsCard(cardName), Zone.HAND); }
public void FreepsMoveCardToHand(String...names) {
for(String name : names) {
FreepsMoveCardToHand(GetFreepsCard(name));
}
}
public void FreepsMoveCardToHand(PhysicalCardImpl...cards) {
for(PhysicalCardImpl card : cards) {
RemoveCardZone(P1, card);
MoveCardToZone(P1, card, Zone.HAND);
}
}
public void ShadowMoveCardToHand(String cardName) { MoveCardToZone(P2, GetShadowCard(cardName), Zone.HAND); }
public void ShadowMoveCardToHand(String...names) {
for(String name : names) {
ShadowMoveCardToHand(GetShadowCard(name));
}
}
public void ShadowMoveCardToHand(PhysicalCardImpl...cards) {
for(PhysicalCardImpl card : cards) {
RemoveCardZone(P2, card);
MoveCardToZone(P2, card, Zone.HAND);
}
}
@@ -286,30 +295,80 @@ public class GenericCardTestHelper extends AbstractAtTest {
Arrays.stream(names).forEach(name -> AttachCardsTo(bearer, GetShadowCard(name)));
}
public void AttachCardsTo(PhysicalCardImpl bearer, PhysicalCardImpl...cards) {
Arrays.stream(cards).forEach(card -> _game.getGameState().attachCard(_game, card, bearer));
Arrays.stream(cards).forEach(card -> {
RemoveCardZone(card.getOwner(), card);
_game.getGameState().attachCard(_game, card, bearer);
});
}
public void FreepsStackCardsOn(PhysicalCardImpl on, String...cardNames) {
Arrays.stream(cardNames).forEach(name -> _game.getGameState().stackCard(_game, GetFreepsCard(name), on));
Arrays.stream(cardNames).forEach(name -> StackCardsOn(on, GetFreepsCard(name)));
}
public void ShadowStackCardsOn(PhysicalCardImpl on, String...cardNames) {
Arrays.stream(cardNames).forEach(name -> _game.getGameState().stackCard(_game, GetShadowCard(name), on));
Arrays.stream(cardNames).forEach(name -> StackCardsOn(on, GetShadowCard(name)));
}
public void StackCardsOn(PhysicalCardImpl on, PhysicalCardImpl...cards) {
Arrays.stream(cards).forEach(card -> _game.getGameState().stackCard(_game, card, on));
Arrays.stream(cards).forEach(card -> {
RemoveCardZone(card.getOwner(), card);
_game.getGameState().stackCard(_game, card, on);
});
}
public void FreepsMoveCardToDeck(String...cardNames) {
Arrays.stream(cardNames).forEach(cardName -> FreepsMoveCardToDeck(GetFreepsCard(cardName)));
public void FreepsMoveCardsToTopOfDeck(String...cardNames) {
Arrays.stream(cardNames).forEach(cardName -> FreepsMoveCardsToTopOfDeck(GetFreepsCard(cardName)));
}
public void FreepsMoveCardToDeck(PhysicalCardImpl...cards) {
Arrays.stream(cards).forEach(card -> MoveCardToZone(P1, card, Zone.DECK));
public void FreepsMoveCardsToTopOfDeck(PhysicalCardImpl...cards) {
Arrays.stream(cards).forEach(card -> {
RemoveCardZone(card.getOwner(), card);
_game.getGameState().putCardOnTopOfDeck(card);
});
}
public void ShadowMoveCardToDeck(String...cardNames) {
Arrays.stream(cardNames).forEach(cardName -> ShadowMoveCardToDeck(GetShadowCard(cardName)));
public void ShadowMoveCardsToTopOfDeck(String...cardNames) {
Arrays.stream(cardNames).forEach(cardName -> ShadowMoveCardsToTopOfDeck(GetShadowCard(cardName)));
}
public void ShadowMoveCardToDeck(PhysicalCardImpl...cards) {
Arrays.stream(cards).forEach(card -> MoveCardToZone(P1, card, Zone.DECK));
public void ShadowMoveCardsToTopOfDeck(PhysicalCardImpl...cards) {
Arrays.stream(cards).forEach(card -> {
RemoveCardZone(card.getOwner(), card);
_game.getGameState().putCardOnTopOfDeck(card);
});
}
public void FreepsMoveCardsToBottomOfDeck(String...cardNames) {
Arrays.stream(cardNames).forEach(cardName -> FreepsMoveCardsToBottomOfDeck(GetFreepsCard(cardName)));
}
public void FreepsMoveCardsToBottomOfDeck(PhysicalCardImpl...cards) {
Arrays.stream(cards).forEach(card -> {
RemoveCardZone(card.getOwner(), card);
_game.getGameState().putCardOnTopOfDeck(card);
});
}
public void ShadowMoveCardsToBottomOfDeck(String...cardNames) {
Arrays.stream(cardNames).forEach(cardName -> ShadowMoveCardsToBottomOfDeck(GetShadowCard(cardName)));
}
public void ShadowMoveCardsToBottomOfDeck(PhysicalCardImpl...cards) {
Arrays.stream(cards).forEach(card -> {
RemoveCardZone(card.getOwner(), card);
_game.getGameState().putCardOnTopOfDeck(card);
});
}
public void FreepsShuffleCardsInDeck(String...cardNames) {
Arrays.stream(cardNames).forEach(cardName -> FreepsShuffleCardsInDeck(GetFreepsCard(cardName)));
}
public void FreepsShuffleCardsInDeck(PhysicalCardImpl...cards) {
Arrays.stream(cards).forEach(card -> {
RemoveCardZone(card.getOwner(), card);
_game.getGameState().putCardOnTopOfDeck(card);
});
}
public void ShadowShuffleCardsInDeck(String...cardNames) {
Arrays.stream(cardNames).forEach(cardName -> ShadowShuffleCardsInDeck(GetShadowCard(cardName)));
}
public void ShadowShuffleCardsInDeck(PhysicalCardImpl...cards) {
Arrays.stream(cards).forEach(card -> {
RemoveCardZone(card.getOwner(), card);
_game.getGameState().putCardOnTopOfDeck(card);
});
}
public void FreepsMoveCharToTable(String...names) {
@@ -345,12 +404,15 @@ public class GenericCardTestHelper extends AbstractAtTest {
}
public void MoveCardToZone(String player, PhysicalCardImpl card, Zone zone) {
public void RemoveCardZone(String player, PhysicalCardImpl card) {
if(card.getZone() != null)
{
_game.getGameState().removeCardsFromZone(player, new ArrayList<PhysicalCard>() {{ add(card); }});
}
}
public void MoveCardToZone(String player, PhysicalCardImpl card, Zone zone) {
RemoveCardZone(player, card);
_game.getGameState().addCardToZone(_game, card, zone);
}

View File

@@ -40,7 +40,6 @@ public class Card2_013Tests
PhysicalCardImpl gimli = scn.GetFreepsCard("gimli");
scn.FreepsMoveCharToTable(gimli);
scn.FreepsMoveCardToHand(tidings);
scn.FreepsMoveCardToDeck("deckcard1", "deckcard2", "deckcard3");
scn.StartGame();
scn.FreepsSkipCurrentPhaseAction();

View File

@@ -76,7 +76,7 @@ public class Card_V1_002Tests
scn.FreepsMoveCardToDiscard("axe");
scn.FreepsMoveCardToDiscard("runner");
scn.FreepsMoveCardToDiscard("plunder");
scn.FreepsMoveCardToDeck(strike);
scn.FreepsMoveCardsToTopOfDeck(strike);
scn.StartGame();
@@ -104,7 +104,7 @@ public class Card_V1_002Tests
scn.FreepsMoveCardToDiscard("axe");
scn.FreepsMoveCardToDiscard("runner");
scn.FreepsMoveCardToDiscard("plunder");
scn.FreepsMoveCardToDeck(strike);
scn.FreepsMoveCardsToTopOfDeck(strike);
scn.ShadowMoveCharToTable("runner");

View File

@@ -254,7 +254,7 @@ public class Card_V1_011Tests
PhysicalCardImpl galadriel = scn.GetFreepsCard("galadriel");
scn.FreepsMoveCardToSupportArea(library);
scn.FreepsStackCardsOn(library, "dwarfart", "elfart", "gandalfart", "gondorart", "shireart");
scn.FreepsMoveCharToTable(gandalf, aragorn, gimli, galadriel);
PhysicalCardImpl savage1 = scn.GetShadowCard("savage1");
@@ -266,6 +266,8 @@ public class Card_V1_011Tests
scn.ShadowMoveCharToTable(savage1, savage2, savage3, savage4, savage5, savage6);
scn.StartGame();
scn.FreepsStackCardsOn(library, "dwarfart", "elfart", "gandalfart", "gondorart", "shireart");
scn.AddWoundsToChar(gandalf, 3);
scn.AddWoundsToChar(aragorn, 3);
@@ -273,6 +275,8 @@ public class Card_V1_011Tests
scn.SkipToPhase(Phase.REGROUP);
assertEquals(5, scn.GetStackedCards(library).size());
assertTrue(scn.FreepsCardActionAvailable(library));
assertEquals(0, scn.GetWoundsOn(galadriel));
scn.FreepsUseCardAction(library);