From 6aacc08a822f090f246ef8259832b9f3efb07436 Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Wed, 27 Jul 2022 23:59:52 -0500 Subject: [PATCH] Updated Bilbo to (hopefully) the final version. Minor adjustments to V1 cards to prefer skirmish pumps going on "skirmishing" characters --- .../cards/set101/set101_gondor_playtest.json | 2 +- .../set101/set101_ringwraith_playtest.json | 2 +- .../lotro/cards/GenericCardTestHelper.java | 12 ++++--- .../pc/vset1/vpack1/Card_V1_023_Tests.java | 3 +- .../pc/vset1/vpack1/Card_V1_050_Tests.java | 34 +++++++------------ 5 files changed, 22 insertions(+), 31 deletions(-) diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_gondor_playtest.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_gondor_playtest.json index ebb7e6893..820ec7275 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_gondor_playtest.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_gondor_playtest.json @@ -238,7 +238,7 @@ }, "effect": { "type": "modifyStrength", - "filter": "choose(companion,signet(aragorn))", + "filter": "choose(companion,signet(aragorn),inSkirmish)", "amount": { "type": "forEachInMemory", "memory": "discardedCards", diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_ringwraith_playtest.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_ringwraith_playtest.json index 474d4da54..144237157 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_ringwraith_playtest.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_ringwraith_playtest.json @@ -258,7 +258,7 @@ "effect": [ { "type": "modifyStrength", - "filter": "choose(twilight,nazgul)", + "filter": "choose(twilight,nazgul,inSkirmish)", "memorize": "chosenNazzy", "amount": { "type": "forEachWound", diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/GenericCardTestHelper.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/GenericCardTestHelper.java index bae4afbc9..87fb7987d 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/GenericCardTestHelper.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/GenericCardTestHelper.java @@ -18,10 +18,13 @@ import com.gempukku.lotro.logic.modifiers.cost.DiscardFromPlayExtraPlayCostModif import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.RuleUtils; import com.gempukku.lotro.logic.vo.LotroDeck; +import junit.framework.Assert; import java.util.*; +import static junit.framework.Assert.assertFalse; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class GenericCardTestHelper extends AbstractAtTest { @@ -135,12 +138,11 @@ public class GenericCardTestHelper extends AbstractAtTest { public PhysicalCardImpl GetShadowSite(int siteNum) { return GetSite(P2, siteNum); } public PhysicalCardImpl GetSite(String playerID, int siteNum) { + PhysicalCardImpl site = (PhysicalCardImpl)_game.getGameState().getSite(siteNum); + if(site != null && site.getOwner() == playerID) + return site; + List advDeck = (List)_game.getGameState().getAdventureDeck(playerID); -// for (PhysicalCardImpl card : advDeck) { -// if (card.getSiteNumber() == siteNum){ -// return card; -// } -// } return advDeck.stream().filter(x -> x.getBlueprint().getSiteNumber() == siteNum).findFirst().get(); } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_023_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_023_Tests.java index fe23f8778..3b2b48b33 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_023_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_023_Tests.java @@ -196,8 +196,7 @@ public class Card_V1_023_Tests assertTrue(scn.FreepsDecisionAvailable("Choose stacked cards to discard")); assertEquals(3, scn.GetStrength(sam)); scn.FreepsChooseCards(gandalfE, elfE, dwarfE); - assertEquals(5, scn.GetFreepsCardChoiceCount()); - scn.FreepsChooseCard(sam); + //lots of candidates, but only one skirmishing, so Sam gets auto-picked assertEquals(6, scn.GetStrength(sam)); assertEquals(1, scn.GetStackedCards(gone).size()); assertTrue(scn.GetStackedCards(gone).stream().anyMatch(x -> x.getBlueprintId() == gondorE.getBlueprintId())); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_050_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_050_Tests.java index 8cbc67024..85b32677a 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_050_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_050_Tests.java @@ -27,7 +27,7 @@ public class Card_V1_050_Tests put("bilbo", "151_50"); put("sam", "1_311"); put("coat", "13_153"); - put("sting", "8_113"); + put("sting", "1_313"); put("phial", "3_24"); put("greenleaf", "1_50"); @@ -91,32 +91,22 @@ public class Card_V1_050_Tests scn.StartGame(); - for(int i = 1; i <= 8; i++) + for(int i = 1; i < 8; i++) { PhysicalCardImpl site = scn.GetCurrentSite(); - if(i == 3 || i == 6 || scn.HasKeyword(scn.GetCurrentSite(), Keyword.SANCTUARY)) { + if(scn.HasKeyword(site, Keyword.SANCTUARY)) { assertTrue(scn.FreepsCardActionAvailable(bilbo)); } else { assertFalse(scn.FreepsCardActionAvailable(bilbo)); } - scn.SkipToPhase(Phase.REGROUP); - if(i == 8) - break; // Game finished - scn.PassCurrentPhaseActions(); - scn.FreepsChooseToStay(); - - //Shadow player - scn.SkipToPhase(Phase.REGROUP); - scn.FreepsPassCurrentPhaseAction(); // actually shadow with the swap - scn.ShadowChoose("1"); // Choose to stay - assertEquals(Phase.FELLOWSHIP, scn.GetCurrentPhase()); + scn.SkipToSite(i+1); } } @Test - public void FellowshipAbilityExertsTwiceToTutor2ItemsOnFrodoSignetCompanions() throws DecisionResultInvalidException, CardNotFoundException { + public void FellowshipAbilityExertsTwiceToTutor2ItemsOnFrodoSignetShireCompanions() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup GenericCardTestHelper scn = GetScenario(); @@ -141,17 +131,17 @@ public class Card_V1_050_Tests scn.FreepsUseCardAction(bilbo); assertEquals(2, scn.GetWoundsOn(bilbo)); assertTrue(scn.FreepsDecisionAvailable("Choose card from deck")); - assertEquals(2, scn.GetFreepsCardChoiceCount()); + assertEquals(3, scn.GetFreepsCardChoiceCount()); // coat, sting, and phial - scn.FreepsChooseCardBPFromSelection(coat); - assertEquals(Zone.ATTACHED, coat.getZone()); - assertEquals(frodo, coat.getAttachedTo()); - - assertTrue(scn.FreepsDecisionAvailable("Choose card from deck")); - assertEquals(1, scn.GetFreepsCardChoiceCount()); scn.FreepsChooseCardBPFromSelection(sting); assertEquals(Zone.ATTACHED, sting.getZone()); assertEquals(frodo, sting.getAttachedTo()); + assertTrue(scn.FreepsDecisionAvailable("Choose card from deck")); + assertEquals(2, scn.GetFreepsCardChoiceCount()); + scn.FreepsChooseCardBPFromSelection(phial); + assertEquals(Zone.ATTACHED, phial.getZone()); + assertEquals(frodo, phial.getAttachedTo()); + } }