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

View File

@@ -122,20 +122,23 @@ public class DefaultLotroGame implements LotroGame {
@Override
public void checkWinLoseConditions() {
// Ring-bearer death
if (!Filters.canSpot(getGameState(), getModifiersQuerying(), Filters.keyword(Keyword.RING_BEARER))) {
playerLost(getGameState().getCurrentPlayerId());
}
// Ring-bearer corruption
PhysicalCard ringBearer = Filters.findFirstActive(getGameState(), getModifiersQuerying(), Filters.keyword(Keyword.RING_BEARER));
int ringBearerResistance = ringBearer.getBlueprint().getResistance();
if (getGameState().getBurdens() >= ringBearerResistance) {
playerLost(getGameState().getCurrentPlayerId());
}
// Fellowship in regroup at the last site
if (getGameState().getCurrentPhase() == Phase.REGROUP
&& getGameState().getCurrentSiteNumber() == 9) {
playerWon(getGameState().getCurrentPlayerId());
GameState gameState = getGameState();
if (gameState != null && gameState.getCurrentPhase() != Phase.GAME_SETUP) {
// Ring-bearer death
if (!Filters.canSpot(gameState, getModifiersQuerying(), Filters.keyword(Keyword.RING_BEARER))) {
playerLost(getGameState().getCurrentPlayerId());
}
// Ring-bearer corruption
PhysicalCard ringBearer = Filters.findFirstActive(getGameState(), getModifiersQuerying(), Filters.keyword(Keyword.RING_BEARER));
int ringBearerResistance = ringBearer.getBlueprint().getResistance();
if (getGameState().getBurdens() >= ringBearerResistance) {
playerLost(getGameState().getCurrentPlayerId());
}
// Fellowship in regroup at the last site
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;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Zone;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
@@ -23,7 +22,6 @@ public class FirstPlayerPlaysSiteGameProcess implements GameProcess {
public void process() {
GameState gameState = _game.getGameState();
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.addCardToZone(firstSite, Zone.ADVENTURE_PATH);