This commit is contained in:
marcins78@gmail.com
2011-09-12 12:08:31 +00:00
parent 29672b021c
commit aae16fd287
3 changed files with 19 additions and 17 deletions

View File

@@ -21,7 +21,7 @@ public class GameState {
private Map<String, List<PhysicalCardImpl>> _inPlay = new HashMap<String, List<PhysicalCardImpl>>(); private Map<String, List<PhysicalCardImpl>> _inPlay = new HashMap<String, List<PhysicalCardImpl>>();
private String _currentPlayerId; private String _currentPlayerId;
private Phase _currentPhase; private Phase _currentPhase = Phase.GAME_SETUP;
private int _twilightPool; private int _twilightPool;
private int _moveCount; private int _moveCount;
@@ -73,6 +73,7 @@ public class GameState {
if (_losers.size() + 1 == _playerOrder.getAllPlayers().size()) { if (_losers.size() + 1 == _playerOrder.getAllPlayers().size()) {
List<String> allPlayers = new LinkedList<String>(_playerOrder.getAllPlayers()); List<String> allPlayers = new LinkedList<String>(_playerOrder.getAllPlayers());
allPlayers.removeAll(_losers); allPlayers.removeAll(_losers);
_winnerPlayerId = allPlayers.get(0);
return allPlayers.get(0); return allPlayers.get(0);
} }
return null; return null;

View File

@@ -122,20 +122,23 @@ public class DefaultLotroGame implements LotroGame {
@Override @Override
public void checkWinLoseConditions() { public void checkWinLoseConditions() {
// Ring-bearer death GameState gameState = getGameState();
if (!Filters.canSpot(getGameState(), getModifiersQuerying(), Filters.keyword(Keyword.RING_BEARER))) { if (gameState != null && gameState.getCurrentPhase() != Phase.GAME_SETUP) {
playerLost(getGameState().getCurrentPlayerId()); // Ring-bearer death
} if (!Filters.canSpot(gameState, getModifiersQuerying(), Filters.keyword(Keyword.RING_BEARER))) {
// Ring-bearer corruption playerLost(getGameState().getCurrentPlayerId());
PhysicalCard ringBearer = Filters.findFirstActive(getGameState(), getModifiersQuerying(), Filters.keyword(Keyword.RING_BEARER)); }
int ringBearerResistance = ringBearer.getBlueprint().getResistance(); // Ring-bearer corruption
if (getGameState().getBurdens() >= ringBearerResistance) { PhysicalCard ringBearer = Filters.findFirstActive(getGameState(), getModifiersQuerying(), Filters.keyword(Keyword.RING_BEARER));
playerLost(getGameState().getCurrentPlayerId()); int ringBearerResistance = ringBearer.getBlueprint().getResistance();
} if (getGameState().getBurdens() >= ringBearerResistance) {
// Fellowship in regroup at the last site playerLost(getGameState().getCurrentPlayerId());
if (getGameState().getCurrentPhase() == Phase.REGROUP }
&& getGameState().getCurrentSiteNumber() == 9) { // Fellowship in regroup at the last site
playerWon(getGameState().getCurrentPlayerId()); if (getGameState().getCurrentPhase() == Phase.REGROUP
&& getGameState().getCurrentSiteNumber() == 9) {
playerWon(getGameState().getCurrentPlayerId());
}
} }
} }

View File

@@ -1,6 +1,5 @@
package com.gempukku.lotro.logic.timing.processes.pregame; package com.gempukku.lotro.logic.timing.processes.pregame;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Zone; import com.gempukku.lotro.common.Zone;
import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
@@ -23,7 +22,6 @@ public class FirstPlayerPlaysSiteGameProcess implements GameProcess {
public void process() { public void process() {
GameState gameState = _game.getGameState(); GameState gameState = _game.getGameState();
PhysicalCard firstSite = Filters.filter(gameState.getAdventureDeck(gameState.getCurrentPlayerId()), gameState, _game.getModifiersQuerying(), Filters.siteNumber(1)).get(0); PhysicalCard firstSite = Filters.filter(gameState.getAdventureDeck(gameState.getCurrentPlayerId()), gameState, _game.getModifiersQuerying(), Filters.siteNumber(1)).get(0);
gameState.setCurrentPhase(Phase.GAME_SETUP);
gameState.removeCardFromZone(firstSite); gameState.removeCardFromZone(firstSite);
gameState.addCardToZone(firstSite, Zone.ADVENTURE_PATH); gameState.addCardToZone(firstSite, Zone.ADVENTURE_PATH);