Fixes
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user