From: Erik V. <ev...@us...> - 2009-09-04 18:40:39
|
Update of /cvsroot/rails/18xx/rails/game In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv27615/rails/game Modified Files: PlayerManager.java StockRound.java GameManagerI.java GameManager.java Log Message: Renamed PublicCompany_State to PublicCompany_CGR. Centralized CGR name there. Moved player limits to GameManager. Some method renaming. Index: PlayerManager.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/PlayerManager.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** PlayerManager.java 3 Sep 2009 21:36:53 -0000 1.8 --- PlayerManager.java 4 Sep 2009 18:40:30 -0000 1.9 *************** *** 22,33 **** private int[] playerCertificateLimits = new int[Player.MAX_PLAYERS]; - private int playerCertificateLimit = 0; - public PlayerManager() { ! } public void configureFromXML(Tag tag) throws ConfigurationException { ! int number, startCash, certLimit; --- 22,31 ---- private int[] playerCertificateLimits = new int[Player.MAX_PLAYERS]; public PlayerManager() { ! } public void configureFromXML(Tag tag) throws ConfigurationException { ! int number, startCash, certLimit; *************** *** 41,52 **** certLimit = playerTag.getAttributeAsInteger("certLimit"); playerCertificateLimits[number] = certLimit; ! minPlayers = Math.min(minPlayers, number); maxPlayers = Math.max(maxPlayers, number); } } ! public void setPlayers (List<String> playerNames, int startCash) { ! Player player; --- 39,50 ---- certLimit = playerTag.getAttributeAsInteger("certLimit"); playerCertificateLimits[number] = certLimit; ! minPlayers = Math.min(minPlayers, number); maxPlayers = Math.max(maxPlayers, number); } } ! public void setPlayers (List<String> playerNames, int startCash) { ! Player player; *************** *** 70,75 **** ReportBuffer.add(LocalText.getText("BankHas", Bank.format(Bank.getInstance().getCash()))); - - playerCertificateLimit = playerCertificateLimits[numberOfPlayers]; } --- 68,71 ---- *************** *** 92,106 **** return players.get(index); } ! public int getStartCash () { return playerStartCash[numberOfPlayers]; } ! public int getPlayerCertificateLimit() { ! return playerCertificateLimit; ! } ! ! public void setPlayerCertificateLimit(int playerCertificateLimit) { ! this.playerCertificateLimit = playerCertificateLimit; } --- 88,101 ---- return players.get(index); } ! public int getStartCash () { return playerStartCash[numberOfPlayers]; } ! /** Only to be called at initialisation time. ! * Does not reflect later changes to this limit. ! */ ! public int getInitialPlayerCertificateLimit() { ! return playerCertificateLimits[numberOfPlayers]; } Index: GameManager.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/GameManager.java,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** GameManager.java 3 Sep 2009 21:36:53 -0000 1.46 --- GameManager.java 4 Sep 2009 18:40:30 -0000 1.47 *************** *** 56,59 **** --- 56,61 ---- protected int playerShareLimit = 60; protected int treasuryShareLimit = 50; // For some games + protected IntegerState playerCertificateLimit + = new IntegerState ("PlayerCertificateLimit", 0); protected int currentNumberOfOperatingRounds = 1; protected boolean skipFirstStockRound = false; *************** *** 327,330 **** --- 329,333 ---- numberOfPlayers = players.size(); priorityPlayer.setState(players.get(0)); + setPlayerCertificateLimit (playerManager.getInitialPlayerCertificateLimit()); setGameParameters(); *************** *** 853,857 **** } ! /* (non-Javadoc) * @see rails.game.GameManagerI#getAllPublicCompanies() */ --- 856,872 ---- } ! public int getPlayerCertificateLimit() { ! return playerCertificateLimit.intValue(); ! } ! ! public void setPlayerCertificateLimit(int newLimit) { ! playerCertificateLimit.set (newLimit); ! } ! ! public IntegerState getPlayerCertificateLimitModel () { ! return playerCertificateLimit; ! } ! ! /* (non-Javadoc) * @see rails.game.GameManagerI#getAllPublicCompanies() */ Index: GameManagerI.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/GameManagerI.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** GameManagerI.java 3 Sep 2009 21:36:53 -0000 1.4 --- GameManagerI.java 4 Sep 2009 18:40:30 -0000 1.5 *************** *** 5,8 **** --- 5,9 ---- import rails.common.Defs; import rails.game.action.PossibleAction; + import rails.game.model.ModelObject; import rails.util.Tag; *************** *** 142,149 **** public abstract PhaseManager getPhaseManager(); ! public abstract TrainManagerI getTrainManager (); public PlayerManager getPlayerManager(); public abstract String getHelp(); --- 143,153 ---- public abstract PhaseManager getPhaseManager(); ! public abstract TrainManagerI getTrainManager (); public PlayerManager getPlayerManager(); + public int getPlayerCertificateLimit(); + public void setPlayerCertificateLimit(int newLimit); + public ModelObject getPlayerCertificateLimitModel (); public abstract String getHelp(); *************** *** 158,162 **** public abstract Object getCommonParameter(Defs.Parm key); ! public RoundI getInterruptedRound(); } \ No newline at end of file --- 162,166 ---- public abstract Object getCommonParameter(Defs.Parm key); ! public RoundI getInterruptedRound(); } \ No newline at end of file Index: StockRound.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/StockRound.java,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** StockRound.java 3 Sep 2009 21:36:53 -0000 1.39 --- StockRound.java 4 Sep 2009 18:40:30 -0000 1.40 *************** *** 74,78 **** sequenceRule = gameManager.getStockRoundSequenceRule(); ! } --- 74,78 ---- sequenceRule = gameManager.getStockRoundSequenceRule(); ! } *************** *** 224,232 **** number = 1; /* Would the player exceed the per-company share hold limit? */ ! if (!playerMayBuyCompanyShare(currentPlayer, comp, number)) continue; /* Would the player exceed the total certificate limit? */ if (!stockSpace.isNoCertLimit() ! && !playerMayBuyCertificate(currentPlayer, comp, number)) continue; } --- 224,232 ---- number = 1; /* Would the player exceed the per-company share hold limit? */ ! if (!mayPlayerBuyCompanyShare(currentPlayer, comp, number)) continue; /* Would the player exceed the total certificate limit? */ if (!stockSpace.isNoCertLimit() ! && !mayPlayerBuyCertificate(currentPlayer, comp, number)) continue; } *************** *** 252,261 **** cert = certs.get(0); if (isSaleRecorded(currentPlayer, company)) continue; ! if (!playerMayBuyCompanyShare(currentPlayer, company, 1)) continue; if (currentPlayer.maxAllowedNumberOfSharesToBuy(company, certs.get(0).getShare()) < 1) continue; stockSpace = company.getCurrentSpace(); if (!stockSpace.isNoCertLimit() ! && !playerMayBuyCertificate(currentPlayer, company, 1)) continue; if (company.getMarketPrice() <= playerCash) { possibleActions.add(new BuyCertificate(cert, --- 252,261 ---- cert = certs.get(0); if (isSaleRecorded(currentPlayer, company)) continue; ! if (!mayPlayerBuyCompanyShare(currentPlayer, company, 1)) continue; if (currentPlayer.maxAllowedNumberOfSharesToBuy(company, certs.get(0).getShare()) < 1) continue; stockSpace = company.getCurrentSpace(); if (!stockSpace.isNoCertLimit() ! && !mayPlayerBuyCertificate(currentPlayer, company, 1)) continue; if (company.getMarketPrice() <= playerCash) { possibleActions.add(new BuyCertificate(cert, *************** *** 492,496 **** numberOfCertsToBuy = shares - (cert.getShares() - 1); // Check if the player may buy that many certificates. ! if (!playerMayBuyCertificate(currentPlayer, company, numberOfCertsToBuy)) { errMsg = LocalText.getText("CantBuyMoreCerts"); break; --- 492,496 ---- numberOfCertsToBuy = shares - (cert.getShares() - 1); // Check if the player may buy that many certificates. ! if (!mayPlayerBuyCertificate(currentPlayer, company, numberOfCertsToBuy)) { errMsg = LocalText.getText("CantBuyMoreCerts"); break; *************** *** 665,673 **** // (shortcut: assume 1 cert == 1 certificate) if (!currentSpace.isNoCertLimit() ! && !playerMayBuyCertificate(currentPlayer, company, shares)) { errMsg = currentPlayer.getName() + LocalText.getText("WouldExceedCertLimit", ! String.valueOf(playerManager.getPlayerCertificateLimit())); break; } --- 665,673 ---- // (shortcut: assume 1 cert == 1 certificate) if (!currentSpace.isNoCertLimit() ! && !mayPlayerBuyCertificate(currentPlayer, company, shares)) { errMsg = currentPlayer.getName() + LocalText.getText("WouldExceedCertLimit", ! String.valueOf(gameManager.getPlayerCertificateLimit())); break; } *************** *** 675,679 **** // Check if player would exceed the per-company share limit if (!currentSpace.isNoHoldLimit() ! && !playerMayBuyCompanyShare(currentPlayer, company, shares)) { errMsg = currentPlayer.getName() --- 675,679 ---- // Check if player would exceed the per-company share limit if (!currentSpace.isNoHoldLimit() ! && !mayPlayerBuyCompanyShare(currentPlayer, company, shares)) { errMsg = currentPlayer.getName() *************** *** 1169,1180 **** */ public boolean mayCurrentPlayerBuyAnything() { ! return !playerIsOverLimits(currentPlayer) && companyBoughtThisTurnWrapper.getObject() == null; } ! protected boolean playerIsOverLimits(Player player) { // Over the total certificate hold Limit? ! if (player.getPortfolio().getCertificateCount() > playerManager.getPlayerCertificateLimit()) return true; --- 1169,1180 ---- */ public boolean mayCurrentPlayerBuyAnything() { ! return !isPlayerOverLimits(currentPlayer) && companyBoughtThisTurnWrapper.getObject() == null; } ! protected boolean isPlayerOverLimits(Player player) { // Over the total certificate hold Limit? ! if (player.getPortfolio().getCertificateCount() > gameManager.getPlayerCertificateLimit()) return true; *************** *** 1182,1186 **** for (PublicCompanyI company : Game.getCompanyManager().getAllPublicCompanies()) { if (company.hasStarted() && company.hasStockPrice() ! && !playerMayBuyCompanyShare(player, company, 0)) return true; } --- 1182,1186 ---- for (PublicCompanyI company : Game.getCompanyManager().getAllPublicCompanies()) { if (company.hasStarted() && company.hasStockPrice() ! && !mayPlayerBuyCompanyShare(player, company, 0)) return true; } *************** *** 1195,1202 **** * @return True if it is allowed. */ ! public boolean playerMayBuyCertificate(Player player, PublicCompanyI comp, int number) { if (comp.hasFloated() && comp.getCurrentSpace().isNoCertLimit()) return true; ! if (player.getPortfolio().getCertificateCount() + number > playerManager.getPlayerCertificateLimit()) return false; return true; --- 1195,1202 ---- * @return True if it is allowed. */ ! public boolean mayPlayerBuyCertificate(Player player, PublicCompanyI comp, int number) { if (comp.hasFloated() && comp.getCurrentSpace().isNoCertLimit()) return true; ! if (player.getPortfolio().getCertificateCount() + number > gameManager.getPlayerCertificateLimit()) return false; return true; *************** *** 1212,1216 **** * @return True if it is allowed. */ ! public boolean playerMayBuyCompanyShare(Player player, PublicCompanyI company, int number) { // Check for per-company share limit if (player.getPortfolio().getShare(company) + number * company.getShareUnit() > Player.getShareLimit() --- 1212,1216 ---- * @return True if it is allowed. */ ! public boolean mayPlayerBuyCompanyShare(Player player, PublicCompanyI company, int number) { // Check for per-company share limit if (player.getPortfolio().getShare(company) + number * company.getShareUnit() > Player.getShareLimit() *************** *** 1219,1223 **** } ! public static void setNoSaleInFirstSR() { noSaleInFirstSR = true; --- 1219,1223 ---- } ! public static void setNoSaleInFirstSR() { noSaleInFirstSR = true; |