From 6707c2a7b3440f5bc27523f598cdba7be49eb9f3 Mon Sep 17 00:00:00 2001 From: "marcin.sciesinski" Date: Mon, 12 Jun 2017 12:38:19 -0700 Subject: [PATCH] Ring is no longer needed (for Hobbit format games) --- .../main/java/com/gempukku/lotro/game/state/GameState.java | 4 +++- .../PlayRingBearerRingAndAddBurdersGameProcess.java | 3 ++- .../gempukku/lotro/game/formats/DefaultLotroFormat.java | 7 +++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java index b4112fd2f..919b69ab6 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java @@ -105,7 +105,9 @@ public class GameState { addPlayerCards(playerId, decks, library); try { _ringBearers.put(playerId, createPhysicalCardImpl(playerId, library, ringBearers.get(playerId))); - _rings.put(playerId, createPhysicalCardImpl(playerId, library, rings.get(playerId))); + String ringBlueprintId = rings.get(playerId); + if (ringBlueprintId != null) + _rings.put(playerId, createPhysicalCardImpl(playerId, library, ringBlueprintId)); } catch (CardNotFoundException exp) { throw new RuntimeException("Unable to create game, due to either ring-bearer or ring being invalid cards"); } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayRingBearerRingAndAddBurdersGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayRingBearerRingAndAddBurdersGameProcess.java index bfc5bea1a..3dd4f88bc 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayRingBearerRingAndAddBurdersGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/pregame/PlayRingBearerRingAndAddBurdersGameProcess.java @@ -26,7 +26,8 @@ public class PlayRingBearerRingAndAddBurdersGameProcess implements GameProcess { gameState.addCardToZone(game, ringBearer, Zone.FREE_CHARACTERS); PhysicalCard ring = game.getGameState().getRing(playerId); - gameState.attachCard(game, ring, ringBearer); + if (ring != null) + gameState.attachCard(game, ring, ringBearer); gameState.startPlayerTurn(playerId); gameState.addBurdens(_bids.get(playerId)); 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 3d181a341..e25eac627 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 @@ -376,12 +376,11 @@ public class DefaultLotroFormat implements LotroFormat { } private void validateRing(LotroDeck deck) throws DeckInvalidException, CardNotFoundException { + // No Ring needed for Hobbit + if (_siteBlock == Block.HOBBIT) + return; if (deck.getRing() == null) - //Additional Hobbit Draft exception - if (_siteBlock == Block.HOBBIT) { - } else { throw new DeckInvalidException("Deck doesn't have a Ring"); - } LotroCardBlueprint ring = _library.getLotroCardBlueprint(deck.getRing()); if (ring.getCardType() != CardType.THE_ONE_RING) throw new DeckInvalidException("Card assigned as Ring is not The One Ring");