rails.game.specific._18EU
Class OperatingRound_18EU

java.lang.Object
  extended by rails.game.Round
      extended by rails.game.OperatingRound
          extended by rails.game.specific._18EU.OperatingRound_18EU
All Implemented Interfaces:
java.util.Observer, RoundI

public class OperatingRound_18EU
extends OperatingRound

Implements a basic Operating Round.

A new instance must be created for each new Operating Round. At the end of a round, the current instance should be discarded.

Permanent memory is formed by static attributes.


Field Summary
protected  BooleanState hasPullmannAtStart
           
protected  TrainTypeI pullmannType
           
 
Fields inherited from class rails.game.OperatingRound
actionPossible, companiesOperatedThisRound, currentNormalTokenLays, currentSpecialProperties, currentSpecialTokenLays, doneAllowed, excessTrainCompanies, loansThisRound, noMapMode, operatingCompanies, operatingCompany, savedAction, selectedAction, SPLIT_ROUND_DOWN, stepObject, steps, thisOrNumber, tileLaysPerColour, trainManager, trainsBoughtThisTurn
 
Fields inherited from class rails.game.Round
autopasses, bank, canRequestTurn, companyManager, gameManager, guiHints, hasRequestedTurn, ipo, log, mapManager, moveStack, playerManager, pool, possibleActions, scrapHeap, stockMarket, unavailable, wasInterrupted
 
Constructor Summary
OperatingRound_18EU(GameManagerI gameManager)
           
 
Method Summary
 boolean buyTrain(BuyTrain action)
           
protected  boolean canBuyTrainNow()
          In 18EU, a company can (effectively) exchange a Pullmann
 boolean checkForExcessTrains()
          Special rules for Pullmann trains
protected  void initTurn()
           
 void resume()
          Generic stub to resume an interrupted round.
 void setBuyableTrains()
          Modify possibleActions to follow the Pullmann train trading rules.
 
Methods inherited from class rails.game.OperatingRound
areTileLaysPossible, buyBonusToken, buyPrivate, calculateLoanAmount, checkForDeductions, checkForeignSales, checkNormalTileLay, countSharesPerRecipient, discardTrain, done, equals, executeClosePrivate, executeDeductions, executeOperatingCost, executeRepayLoans, executeSetRevenueAndDividend, executeTakeLoans, finishOR, finishTurn, finishTurnSpecials, gameSpecificNextStep, getBeneficiary, getHelp, getNormalTileLays, getOperatingCompanies, getOperatingCompany, getOperatingCompanyIndex, getPrivateMaximumPrice, getPrivateMinimumPrice, getRoundName, getSpecialProperties, getSpecialProperties, getSpecialTileLays, getStep, initNormalTileLays, isBelowTrainLimit, isPrivateSellingAllowed, isTileLayAllowed, isTokenLayAllowed, layBaseToken, layBonusToken, layTile, maySellPrivate, newPhaseChecks, nextStep, nextStep, payLoanInterest, payout, prepareNoMapActions, prepareRevenueAndDividendAction, prepareStep, privatesPayOut, process, processGameSpecificAction, reachDestination, reachDestinations, registerNormalTileLay, repayLoans, setBonusTokenLays, setDestinationActions, setGameSpecificPossibleActions, setNextOperatingCompany, setNormalTokenLays, setOperatingCompany, setPossibleActions, setRevenueAndDividend, setSpecialTokenLays, setStep, setTrainsToDiscard, skip, splitRevenue, start, takeLoans, toString, update, updateAllowedTileColours, validateNormalTileLay, validateRepayLoans, validateSetRevenueAndDividend, validateTakeLoans, withhold
 
Methods inherited from class rails.game.Round
canCompanyOperateThisRound, canRequestTurn, certCountsAsSold, checkFlotation, exchangeTokens, finishRound, floatCompany, getAutopasses, getCurrentPhase, getCurrentPlayer, getCurrentPlayerIndex, getGameManager, getGameOption, getGameParameter, getGameParameterAsBoolean, getGameParameterAsInt, getNumberOfActivePlayers, getNumberOfPlayers, getPlayers, getRoundTypeForUI, getSoldPercentage, hasAutopassed, pay, pay, requestTurn, setAutopass, setCanRequestTurn, setCurrentPlayer, setCurrentPlayerIndex, setOperatingCompanies, setOperatingCompanies, transferCertificate, transferCertificates, wasInterrupted
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

pullmannType

protected TrainTypeI pullmannType

hasPullmannAtStart

protected BooleanState hasPullmannAtStart
Constructor Detail

OperatingRound_18EU

public OperatingRound_18EU(GameManagerI gameManager)
Method Detail

initTurn

protected void initTurn()
Overrides:
initTurn in class OperatingRound

setBuyableTrains

public void setBuyableTrains()
Modify possibleActions to follow the Pullmann train trading rules.

Overrides:
setBuyableTrains in class OperatingRound

canBuyTrainNow

protected boolean canBuyTrainNow()
In 18EU, a company can (effectively) exchange a Pullmann

Overrides:
canBuyTrainNow in class OperatingRound
Returns:

buyTrain

public boolean buyTrain(BuyTrain action)
Overrides:
buyTrain in class OperatingRound

checkForExcessTrains

public boolean checkForExcessTrains()
Special rules for Pullmann trains

Overrides:
checkForExcessTrains in class OperatingRound

resume

public void resume()
Description copied from class: Round
Generic stub to resume an interrupted round. Only valid if implemented in a subclass.

Specified by:
resume in interface RoundI
Overrides:
resume in class OperatingRound