diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroFormat.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroFormat.java index addbc8630..e8bf55396 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroFormat.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroFormat.java @@ -16,6 +16,8 @@ public interface LotroFormat { public boolean winAtEndOfRegroup(); + public boolean winOnControlling5Sites(); + public String getName(); public void validateCard(String cardId) throws DeckInvalidException; diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/WinConditionRule.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/WinConditionRule.java index aad876326..35f57b214 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/WinConditionRule.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/WinConditionRule.java @@ -35,7 +35,7 @@ public class WinConditionRule { && game.getGameState().getCurrentSiteNumber() == 9 && !game.getModifiersQuerying().hasFlagActive(game.getGameState(), ModifierFlag.WIN_CHECK_AFTER_SHADOW_RECONCILE)) game.playerWon(game.getGameState().getCurrentPlayerId(), "Surviving to Regroup phase on site 9"); - else { + else if (game.getFormat().winOnControlling5Sites()) { for (String opponent : GameUtils.getOpponents(game, game.getGameState().getCurrentPlayerId())) { if (Filters.countActive(game.getGameState(), game.getModifiersQuerying(), CardType.SITE, Filters.siteControlled(opponent))>=5) game.playerWon(opponent, "Controls 5 sites"); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/formats/DefaultLotroFormat.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/formats/DefaultLotroFormat.java index 469b2d22a..35b574729 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/formats/DefaultLotroFormat.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/formats/DefaultLotroFormat.java @@ -23,6 +23,7 @@ public class DefaultLotroFormat implements LotroFormat { private boolean _canCancelRingBearerSkirmish; private boolean _hasRuleOfFour; private boolean _winAtEndOfRegroup; + private boolean _winOnControlling5Sites; private int _minimumDeckSize = 60; private List _bannedCards = new ArrayList(); private List _restrictedCards = new ArrayList(); @@ -31,7 +32,7 @@ public class DefaultLotroFormat implements LotroFormat { public DefaultLotroFormat(LotroCardBlueprintLibrary library, String name, Block siteBlock, boolean validateShadowFPCount, int minimumDeckSize, int maximumSameName, boolean mulliganRule, - boolean canCancelRingBearerSkirmish, boolean hasRuleOfFour, boolean winAtEndOfRegroup) { + boolean canCancelRingBearerSkirmish, boolean hasRuleOfFour, boolean winAtEndOfRegroup, boolean winOnControlling5Sites) { _library = library; _name = name; _siteBlock = siteBlock; @@ -42,10 +43,9 @@ public class DefaultLotroFormat implements LotroFormat { _canCancelRingBearerSkirmish = canCancelRingBearerSkirmish; _hasRuleOfFour = hasRuleOfFour; _winAtEndOfRegroup = winAtEndOfRegroup; + _winOnControlling5Sites = winOnControlling5Sites; } - - @Override public final boolean isOrderedSites() { return _siteBlock != Block.SHADOWS; @@ -76,6 +76,11 @@ public class DefaultLotroFormat implements LotroFormat { return _hasRuleOfFour; } + @Override + public boolean winOnControlling5Sites() { + return _winOnControlling5Sites; + } + @Override public List getValidSets() { return Collections.unmodifiableList(_validSets); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/formats/LotroFormatLibrary.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/formats/LotroFormatLibrary.java index eeb2665e9..234a0dcfb 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/formats/LotroFormatLibrary.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/formats/LotroFormatLibrary.java @@ -39,8 +39,12 @@ public class LotroFormatLibrary { Boolean winAtEndOfRegroup = (Boolean) formatDef.get("winAtEndOfRegroup"); if (winAtEndOfRegroup == null) winAtEndOfRegroup = false; + Boolean winOnControlling5Sites = (Boolean) formatDef.get("winOnControlling5Sites"); + if (winOnControlling5Sites == null) + winOnControlling5Sites = false; - final DefaultLotroFormat format = new DefaultLotroFormat(library, name, block, true, 60, 4, true, cancelRingBearerSkirmish, hasRuleOfFour, winAtEndOfRegroup); + final DefaultLotroFormat format = new DefaultLotroFormat(library, name, block, true, 60, 4, true, + cancelRingBearerSkirmish, hasRuleOfFour, winAtEndOfRegroup, winOnControlling5Sites); JSONArray sets = (JSONArray) formatDef.get("set"); for (Object set : sets) diff --git a/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json b/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json index 9f6a004d5..f5188271b 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json +++ b/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json @@ -257,6 +257,7 @@ "cancelRingBearerSkirmish":true, "winAtEndOfRegroup":true, "ruleOfFour":false, + "winOnControlling5Sites":true, "hall":false } ] \ No newline at end of file