- Added set 09 (Reflections).
- Added "Movie block" format.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.gempukku.lotro.cards.effects;
|
||||
|
||||
import com.gempukku.lotro.common.Filterable;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.timing.AbstractEffect;
|
||||
@@ -30,7 +31,8 @@ public class CancelSkirmishEffect extends AbstractEffect {
|
||||
public boolean isPlayableInFull(LotroGame game) {
|
||||
return game.getGameState().getSkirmish() != null
|
||||
&& !game.getGameState().getSkirmish().isCancelled()
|
||||
&& (_involvementFilter == null || Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Filters.and(_involvementFilter, Filters.inSkirmish)) > 0);
|
||||
&& (_involvementFilter == null || Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Filters.and(_involvementFilter, Filters.inSkirmish)) > 0)
|
||||
&& (game.getFormat().canCancelRingBearerSkirmish() || !Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Keyword.RING_BEARER, Filters.inSkirmish));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -5,6 +5,8 @@ import com.gempukku.lotro.logic.vo.LotroDeck;
|
||||
public interface LotroFormat {
|
||||
public boolean isOrderedSites();
|
||||
|
||||
public boolean canCancelRingBearerSkirmish();
|
||||
|
||||
public boolean hasMulliganRule();
|
||||
|
||||
public void validateDeck(LotroDeck deck) throws DeckInvalidException;
|
||||
|
||||
@@ -43,7 +43,7 @@ public class LotroServer extends AbstractServer {
|
||||
_lotroCardBlueprintLibrary = library;
|
||||
_chatServer = chatServer;
|
||||
_defaultCollection = new DefaultCardCollection(library);
|
||||
for (int i = 1; i <= 8; i++) {
|
||||
for (int i = 1; i <= 10; i++) {
|
||||
for (int j = 1; j <= 365; j++) {
|
||||
String blueprintId = i + "_" + j;
|
||||
try {
|
||||
@@ -59,40 +59,6 @@ public class LotroServer extends AbstractServer {
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 10; i <= 10; i++) {
|
||||
for (int j = 1; j <= 365; j++) {
|
||||
String blueprintId = i + "_" + j;
|
||||
try {
|
||||
LotroCardBlueprint cardBlueprint = _lotroCardBlueprintLibrary.getLotroCardBlueprint(blueprintId);
|
||||
CardType cardType = cardBlueprint.getCardType();
|
||||
if (cardType == CardType.SITE || cardType == CardType.THE_ONE_RING)
|
||||
_defaultCollection.addCards(blueprintId, cardBlueprint, 1);
|
||||
else
|
||||
_defaultCollection.addCards(blueprintId, cardBlueprint, 4);
|
||||
} catch (IllegalArgumentException exp) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (test) {
|
||||
for (int i = 9; i <= 9; i++) {
|
||||
for (int j = 1; j <= 365; j++) {
|
||||
String blueprintId = i + "_" + j;
|
||||
try {
|
||||
LotroCardBlueprint cardBlueprint = _lotroCardBlueprintLibrary.getLotroCardBlueprint(blueprintId);
|
||||
CardType cardType = cardBlueprint.getCardType();
|
||||
if (cardType == CardType.SITE || cardType == CardType.THE_ONE_RING)
|
||||
_defaultCollection.addCards(blueprintId, cardBlueprint, 1);
|
||||
else
|
||||
_defaultCollection.addCards(blueprintId, cardBlueprint, 4);
|
||||
} catch (IllegalArgumentException exp) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_playerDao = new PlayerDAO(dbAccess);
|
||||
_deckDao = new DeckDAO(dbAccess);
|
||||
|
||||
|
||||
@@ -21,18 +21,20 @@ public abstract class DefaultLotroFormat implements LotroFormat {
|
||||
private boolean _validateShadowFPCount = true;
|
||||
private int _maximumSameName = 4;
|
||||
private boolean _mulliganRule;
|
||||
private boolean _canCancelRingBearerSkirmish;
|
||||
private int _minimumDeckSize = 60;
|
||||
private Set<String> _bannedCards = new HashSet<String>();
|
||||
private Set<String> _restrictedCards = new HashSet<String>();
|
||||
private Set<Integer> _validSets = new HashSet<Integer>();
|
||||
|
||||
public DefaultLotroFormat(LotroCardBlueprintLibrary library, Block siteBlock, boolean validateShadowFPCount, int minimumDeckSize, int maximumSameName, boolean mulliganRule) {
|
||||
public DefaultLotroFormat(LotroCardBlueprintLibrary library, Block siteBlock, boolean validateShadowFPCount, int minimumDeckSize, int maximumSameName, boolean mulliganRule, boolean canCancelRingBearerSkirmish) {
|
||||
_library = library;
|
||||
_siteBlock = siteBlock;
|
||||
_validateShadowFPCount = validateShadowFPCount;
|
||||
_minimumDeckSize = minimumDeckSize;
|
||||
_maximumSameName = maximumSameName;
|
||||
_mulliganRule = mulliganRule;
|
||||
_canCancelRingBearerSkirmish = canCancelRingBearerSkirmish;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -40,6 +42,11 @@ public abstract class DefaultLotroFormat implements LotroFormat {
|
||||
return _mulliganRule;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canCancelRingBearerSkirmish() {
|
||||
return _canCancelRingBearerSkirmish;
|
||||
}
|
||||
|
||||
protected void addBannedCard(String baseBlueprintId) {
|
||||
_bannedCards.add(baseBlueprintId);
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.gempukku.lotro.game.LotroCardBlueprintLibrary;
|
||||
|
||||
public class FotRBlockFormat extends DefaultLotroFormat {
|
||||
public FotRBlockFormat(LotroCardBlueprintLibrary library, boolean mulliganRule) {
|
||||
super(library, Block.FELLOWSHIP, true, 60, 4, mulliganRule);
|
||||
super(library, Block.FELLOWSHIP, true, 60, 4, mulliganRule, true);
|
||||
addRestrictedCard("1_248");
|
||||
addValidSet(1);
|
||||
addValidSet(2);
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.gempukku.lotro.game.LotroCardBlueprintLibrary;
|
||||
|
||||
public class FreeFormat extends DefaultLotroFormat {
|
||||
public FreeFormat(LotroCardBlueprintLibrary library) {
|
||||
super(library, Block.FELLOWSHIP, false, 0, Integer.MAX_VALUE, false);
|
||||
super(library, Block.FELLOWSHIP, false, 0, Integer.MAX_VALUE, false, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.gempukku.lotro.game.LotroCardBlueprintLibrary;
|
||||
|
||||
public class KingBlockFormat extends DefaultLotroFormat {
|
||||
public KingBlockFormat(LotroCardBlueprintLibrary library, boolean mulliganRule) {
|
||||
super(library, Block.KING, true, 60, 4, mulliganRule);
|
||||
super(library, Block.KING, true, 60, 4, mulliganRule, true);
|
||||
addRestrictedCard("7_49");
|
||||
addValidSet(7);
|
||||
addValidSet(8);
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.gempukku.lotro.game.LotroCardBlueprintLibrary;
|
||||
|
||||
public class MovieFormat extends DefaultLotroFormat {
|
||||
public MovieFormat(LotroCardBlueprintLibrary library) {
|
||||
super(library, Block.KING, true, 60, 4, true);
|
||||
super(library, Block.KING, true, 60, 4, true, false);
|
||||
addBannedCard("8_1");
|
||||
addBannedCard("3_38");
|
||||
addBannedCard("3_106");
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.gempukku.lotro.game.LotroCardBlueprintLibrary;
|
||||
|
||||
public class TTTBlockFormat extends DefaultLotroFormat {
|
||||
public TTTBlockFormat(LotroCardBlueprintLibrary library, boolean mulliganRule) {
|
||||
super(library, Block.TWO_TOWERS, true, 60, 4, mulliganRule);
|
||||
super(library, Block.TWO_TOWERS, true, 60, 4, mulliganRule, true);
|
||||
addValidSet(4);
|
||||
addValidSet(5);
|
||||
addValidSet(6);
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.gempukku.lotro.game.LotroCardBlueprintLibrary;
|
||||
|
||||
public class TowersStandardFormat extends DefaultLotroFormat {
|
||||
public TowersStandardFormat(LotroCardBlueprintLibrary library) {
|
||||
super(library, Block.TWO_TOWERS, true, 60, 4, true);
|
||||
super(library, Block.TWO_TOWERS, true, 60, 4, true, true);
|
||||
|
||||
addBannedCard("1_40");
|
||||
addBannedCard("1_45");
|
||||
|
||||
@@ -8,7 +8,7 @@ public class LeagueFormat extends DefaultLotroFormat {
|
||||
private boolean _orderedSites;
|
||||
|
||||
public LeagueFormat(LotroCardBlueprintLibrary library, boolean orderedSites) {
|
||||
super(library, Block.FELLOWSHIP, true, 60, Integer.MAX_VALUE, true);
|
||||
super(library, Block.FELLOWSHIP, true, 60, Integer.MAX_VALUE, true, true);
|
||||
_orderedSites = orderedSites;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
- "Nine-fingered Frodo and the Ring of Doom" no longer freezes the game if removing threats is used.
|
||||
- "Corsair Marauder" and all similar minions from Siege of Gondor now put the tokens on the card with tokens, rather
|
||||
than on itself.
|
||||
- Added set 09 (Reflections).
|
||||
- Added "Movie block" format.
|
||||
|
||||
<b>17 Nov. 2011</b>
|
||||
- "Foul Things" allows to play only MORIA minions now.
|
||||
|
||||
@@ -66,3 +66,18 @@
|
||||
<li>R-list has one card - <i>Steadfast Champion</i>,</li>
|
||||
<li>Mulligan rule IS in effect.</li>
|
||||
</ul>
|
||||
<b>Movie block</b>
|
||||
<ul>
|
||||
<li>cards from sets 01-10 are legal,</li>
|
||||
<li>sites from King block are used,</li>
|
||||
<li>Ring-bearer skirmish CAN NOT be cancelled,</li>
|
||||
<li>X-list contains following cards: <i>Aggression</i>, <i>Aragorn, Heir to the White City</i>, <i>Bill the
|
||||
Pony</i>, <i>Elrond, Lord of Rivendell</i>, <i>Flaming Brand</i>, <i>Forces of Mordor</i>, <i>Frying Pan</i>,
|
||||
<i>Galadriel, Lady of Light</i>, <i>Gondorian Captain</i>, <i>Horn of Boromir</i>, <i>Memories of Darkness</i>,
|
||||
<i>Mordor Fiend</i>, <i>No Stranger to the Shadows</i>, <i>Ottar, Man of Laketown</i>, <i>The Palantir
|
||||
of Orthanc</i>, <i>Relics of Moria</i>, <i>Saruman, Keeper of Isengard</i>, <i>Savagery to Match Their
|
||||
Numbers</i>, <i>Steadfast Champion</i>, <i>Sting</i>, <i>Ulaire Nertea, Messenger of Dol Guldur</i>,
|
||||
</li>
|
||||
<li>there is no R-list,</li>
|
||||
<li>Mulligan rule IS in effect.</li>
|
||||
</ul>
|
||||
|
||||
Reference in New Issue
Block a user