- Added set 09 (Reflections).

- Added "Movie block" format.
This commit is contained in:
marcins78@gmail.com
2011-11-20 03:56:34 +00:00
parent d49e3e8bc2
commit 69ced937b6
13 changed files with 38 additions and 44 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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

View File

@@ -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);

View File

@@ -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");

View File

@@ -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);

View File

@@ -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");

View File

@@ -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;
}

View File

@@ -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.

View File

@@ -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>