Merge pull request #489 from PlayersCouncil/bug/corsair-boatswain
Fixing Corsair Boatswain being a little too inclusive
This commit is contained in:
@@ -81,7 +81,7 @@
|
|||||||
}
|
}
|
||||||
effect: {
|
effect: {
|
||||||
type: playCardFromDrawDeck
|
type: playCardFromDrawDeck
|
||||||
select: choose(support area,possession)
|
select: choose(culture(raider),support area,possession)
|
||||||
showAll: true
|
showAll: true
|
||||||
shuffle: true
|
shuffle: true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -248,7 +248,7 @@ public class DefaultLotroGame implements LotroGame {
|
|||||||
if (_losers.size() + 1 == _allPlayers.size()) {
|
if (_losers.size() + 1 == _allPlayers.size()) {
|
||||||
List<String> allPlayers = new LinkedList<>(_allPlayers);
|
List<String> allPlayers = new LinkedList<>(_allPlayers);
|
||||||
allPlayers.removeAll(_losers.keySet());
|
allPlayers.removeAll(_losers.keySet());
|
||||||
gameWon(allPlayers.get(0), "Last remaining player in game");
|
gameWon(allPlayers.getFirst(), "Last remaining player in game");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,7 @@
|
|||||||
package com.gempukku.lotro.cards.official.set04;
|
package com.gempukku.lotro.cards.official.set04;
|
||||||
|
|
||||||
import com.gempukku.lotro.cards.GenericCardTestHelper;
|
import com.gempukku.lotro.cards.GenericCardTestHelper;
|
||||||
import com.gempukku.lotro.common.CardType;
|
import com.gempukku.lotro.common.*;
|
||||||
import com.gempukku.lotro.common.Culture;
|
|
||||||
import com.gempukku.lotro.common.Side;
|
|
||||||
import com.gempukku.lotro.common.Timeword;
|
|
||||||
import com.gempukku.lotro.game.CardNotFoundException;
|
import com.gempukku.lotro.game.CardNotFoundException;
|
||||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -20,8 +17,13 @@ public class Card_04_032_Tests
|
|||||||
return new GenericCardTestHelper(
|
return new GenericCardTestHelper(
|
||||||
new HashMap<>()
|
new HashMap<>()
|
||||||
{{
|
{{
|
||||||
put("card", "4_32");
|
put("ravage", "4_32");
|
||||||
// put other cards in here as needed for the test case
|
put("brigand", "4_10");
|
||||||
|
put("weary", "4_212");
|
||||||
|
|
||||||
|
put("sword", "1_299");
|
||||||
|
put("coat", "2_105");
|
||||||
|
put("stone", "1_314");
|
||||||
}},
|
}},
|
||||||
GenericCardTestHelper.FellowshipSites,
|
GenericCardTestHelper.FellowshipSites,
|
||||||
GenericCardTestHelper.FOTRFrodo,
|
GenericCardTestHelper.FOTRFrodo,
|
||||||
@@ -46,7 +48,7 @@ public class Card_04_032_Tests
|
|||||||
|
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
|
|
||||||
var card = scn.GetFreepsCard("card");
|
var card = scn.GetFreepsCard("ravage");
|
||||||
|
|
||||||
assertEquals("Ravage the Defeated", card.getBlueprint().getTitle());
|
assertEquals("Ravage the Defeated", card.getBlueprint().getTitle());
|
||||||
assertNull(card.getBlueprint().getSubtitle());
|
assertNull(card.getBlueprint().getSubtitle());
|
||||||
@@ -58,18 +60,50 @@ public class Card_04_032_Tests
|
|||||||
assertEquals(1, card.getBlueprint().getTwilightCost());
|
assertEquals(1, card.getBlueprint().getTwilightCost());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uncomment any @Test markers below once this is ready to be used
|
@Test
|
||||||
//@Test
|
public void RavagetheDefeatedDiscardsFreepsCardsAttachedToLoser() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
public void RavagetheDefeatedTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
|
||||||
//Pre-game setup
|
//Pre-game setup
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
|
|
||||||
var card = scn.GetFreepsCard("card");
|
//A freeps possession, artifact, and condition
|
||||||
scn.FreepsMoveCardToHand(card);
|
var sword = scn.GetFreepsCard("sword");
|
||||||
|
var coat = scn.GetFreepsCard("coat");
|
||||||
|
var stone = scn.GetFreepsCard("stone");
|
||||||
|
var frodo = scn.GetRingBearer();
|
||||||
|
scn.AttachCardsTo(frodo, sword, coat, stone);
|
||||||
|
|
||||||
|
var ravage = scn.GetShadowCard("ravage");
|
||||||
|
var brigand = scn.GetShadowCard("brigand");
|
||||||
|
var weary = scn.GetShadowCard("weary");
|
||||||
|
scn.ShadowMoveCardToHand(ravage);
|
||||||
|
scn.AttachCardsTo(frodo, weary);
|
||||||
|
scn.ShadowMoveCharToTable(brigand);
|
||||||
|
|
||||||
scn.StartGame();
|
scn.StartGame();
|
||||||
scn.FreepsPlayCard(card);
|
scn.SkipToAssignments();
|
||||||
|
scn.FreepsAssignToMinions(frodo, brigand);
|
||||||
|
scn.FreepsResolveSkirmish(frodo);
|
||||||
|
|
||||||
assertEquals(1, scn.GetTwilight());
|
assertEquals(Zone.ATTACHED, sword.getZone());
|
||||||
|
assertEquals(frodo, sword.getAttachedTo());
|
||||||
|
assertEquals(Zone.ATTACHED, coat.getZone());
|
||||||
|
assertEquals(frodo, coat.getAttachedTo());
|
||||||
|
assertEquals(Zone.ATTACHED, stone.getZone());
|
||||||
|
assertEquals(frodo, stone.getAttachedTo());
|
||||||
|
assertEquals(Zone.ATTACHED, weary.getZone());
|
||||||
|
assertEquals(frodo, weary.getAttachedTo());
|
||||||
|
|
||||||
|
scn.FreepsPassCurrentPhaseAction();
|
||||||
|
scn.ShadowPassCurrentPhaseAction();
|
||||||
|
|
||||||
|
scn.FreepsDeclineOptionalTrigger(); //One Ring converting wound on frodo
|
||||||
|
assertTrue(scn.ShadowPlayAvailable(ravage));
|
||||||
|
scn.ShadowPlayCard(ravage);
|
||||||
|
|
||||||
|
assertEquals(Zone.DISCARD, sword.getZone());
|
||||||
|
assertEquals(Zone.DISCARD, coat.getZone());
|
||||||
|
assertEquals(Zone.DISCARD, stone.getZone());
|
||||||
|
assertEquals(Zone.ATTACHED, weary.getZone());
|
||||||
|
assertEquals(frodo, weary.getAttachedTo());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,8 +20,9 @@ public class Card_01_311_ErrataTests
|
|||||||
put("rosie", "1_309");
|
put("rosie", "1_309");
|
||||||
put("proudfoot", "1_301");
|
put("proudfoot", "1_301");
|
||||||
put("gaffer", "1_291");
|
put("gaffer", "1_291");
|
||||||
|
put("stealth", "1_298");
|
||||||
|
|
||||||
put("orc", "1_272");
|
put("twk", "1_237");
|
||||||
}},
|
}},
|
||||||
GenericCardTestHelper.FellowshipSites,
|
GenericCardTestHelper.FellowshipSites,
|
||||||
GenericCardTestHelper.FOTRFrodo,
|
GenericCardTestHelper.FOTRFrodo,
|
||||||
@@ -167,4 +168,64 @@ public class Card_01_311_ErrataTests
|
|||||||
assertSame(scn.GetRingBearer(), sam);
|
assertSame(scn.GetRingBearer(), sam);
|
||||||
assertFalse(scn.GameIsFinished());
|
assertFalse(scn.GameIsFinished());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void RBOverwhelmMakesSamTheRB() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
|
//Pre-game setup
|
||||||
|
var scn = GetScenario();
|
||||||
|
|
||||||
|
var frodo = scn.GetRingBearer();
|
||||||
|
var sam = scn.GetFreepsCard("sam");
|
||||||
|
scn.FreepsMoveCharToTable(sam);
|
||||||
|
|
||||||
|
var twk = scn.GetShadowCard("twk");
|
||||||
|
scn.ShadowMoveCharToTable(twk);
|
||||||
|
|
||||||
|
scn.StartGame();
|
||||||
|
|
||||||
|
scn.SkipToAssignments();
|
||||||
|
scn.FreepsAssignToMinions(frodo, twk);
|
||||||
|
scn.FreepsResolveSkirmish(frodo);
|
||||||
|
scn.PassCurrentPhaseActions();
|
||||||
|
|
||||||
|
assertNotSame(scn.GetRingBearer(), sam);
|
||||||
|
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
|
||||||
|
scn.FreepsAcceptOptionalTrigger();
|
||||||
|
assertSame(scn.GetRingBearer(), sam);
|
||||||
|
assertFalse(scn.GameIsFinished());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void RBFierceOverwhelmMakesSamTheRB() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
|
//Pre-game setup
|
||||||
|
var scn = GetScenario();
|
||||||
|
|
||||||
|
var frodo = scn.GetRingBearer();
|
||||||
|
var sam = scn.GetFreepsCard("sam");
|
||||||
|
var stealth = scn.GetFreepsCard("stealth");
|
||||||
|
scn.FreepsMoveCharToTable(sam);
|
||||||
|
scn.FreepsMoveCardToHand(stealth);
|
||||||
|
|
||||||
|
var twk = scn.GetShadowCard("twk");
|
||||||
|
scn.ShadowMoveCharToTable(twk);
|
||||||
|
|
||||||
|
scn.StartGame();
|
||||||
|
|
||||||
|
scn.SkipToAssignments();
|
||||||
|
scn.FreepsAssignToMinions(sam, twk);
|
||||||
|
scn.FreepsResolveSkirmish(sam);
|
||||||
|
scn.FreepsPlayCard(stealth);
|
||||||
|
|
||||||
|
//Fierce
|
||||||
|
scn.PassCurrentPhaseActions();
|
||||||
|
scn.FreepsAssignToMinions(frodo, twk);
|
||||||
|
scn.FreepsResolveSkirmish(frodo);
|
||||||
|
scn.PassCurrentPhaseActions();
|
||||||
|
|
||||||
|
assertNotSame(scn.GetRingBearer(), sam);
|
||||||
|
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
|
||||||
|
scn.FreepsAcceptOptionalTrigger();
|
||||||
|
assertSame(scn.GetRingBearer(), sam);
|
||||||
|
assertFalse(scn.GameIsFinished());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user