package games.strategy.twoIfBySea.delegate;
import games.strategy.engine.data.GameData;
import games.strategy.engine.data.PlayerID;
import games.strategy.engine.data.PlayerList;
import games.strategy.engine.delegate.IDelegateBridge;
import games.strategy.triplea.Constants;
import games.strategy.triplea.MapSupport;
import games.strategy.triplea.attachments.TerritoryAttachment;
import games.strategy.triplea.delegate.AbstractEndTurnDelegate;
@MapSupport
public class EndTurnDelegate extends AbstractEndTurnDelegate {
protected boolean m_gameOver = false;
public EndTurnDelegate() {}
@Override
protected String doNationalObjectivesAndOtherEndTurnEffects(final IDelegateBridge bridge) {
final GameData data = getData();
final PlayerList playerList = data.getPlayerList();
final PlayerID british = playerList.getPlayerID(Constants.PLAYER_NAME_BRITISH);
final PlayerID japanese = playerList.getPlayerID(Constants.PLAYER_NAME_JAPANESE);
// Quick check to see who still owns their own capital
final boolean britain =
TerritoryAttachment.getFirstOwnedCapitalOrFirstUnownedCapital(british, data).getOwner().equals(british);
final boolean japan =
TerritoryAttachment.getFirstOwnedCapitalOrFirstUnownedCapital(japanese, data).getOwner().equals(japanese);
if (!m_gameOver) {
if (britain && !japan) {
m_gameOver = true;
bridge.getHistoryWriter().startEvent("British win.");
}
if (!britain && japan) {
m_gameOver = true;
bridge.getHistoryWriter().startEvent("Japanese win.");
}
}
return "";
}
@Override
protected String addOtherResources(final IDelegateBridge bridge) {
return "";
}
}