From: Erik V. <ev...@us...> - 2010-03-28 20:14:28
|
Update of /cvsroot/rails/18xx/rails/game/specific/_1835 In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv14243/rails/game/specific/_1835 Modified Files: GameManager_1835.java PrussianFormationRound.java Added Files: OperatingRound_1835.java Log Message: Fixes to get excess train discard before prussion formation on buying the first 4-train in 1835. And personalizing the Prussian formation prompts. Index: PrussianFormationRound.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/specific/_1835/PrussianFormationRound.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PrussianFormationRound.java 27 Mar 2010 18:44:24 -0000 1.7 --- PrussianFormationRound.java 28 Mar 2010 20:14:20 -0000 1.8 *************** *** 31,35 **** Step step; ! public static String PR_ID = "Pr"; public static String M2_ID = "M2"; --- 31,35 ---- Step step; ! public static String PR_ID = StockRound_1835.PR_ID; public static String M2_ID = "M2"; *************** *** 352,355 **** --- 352,356 ---- return unissued == null || unissued.isEmpty(); } + @Override public String toString() { Index: GameManager_1835.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/specific/_1835/GameManager_1835.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** GameManager_1835.java 27 Mar 2010 18:44:24 -0000 1.4 --- GameManager_1835.java 28 Mar 2010 20:14:20 -0000 1.5 *************** *** 32,36 **** if (!PrussianFormationRound.prussianIsComplete(this)) { previousRound = round; ! startPrussianFormationRound (); } } else { --- 32,36 ---- if (!PrussianFormationRound.prussianIsComplete(this)) { previousRound = round; ! startPrussianFormationRound (null); } } else { *************** *** 41,57 **** } ! public void newPhaseChecks(RoundI round) { ! PhaseI phase = getCurrentPhase(); ! if (phase.getName().equals("4") || phase.getName().equals("4+4") ! || phase.getName().equals("5")) { ! if (!PrussianFormationRound.prussianIsComplete(this)) { ! interruptedRound = round; ! startPrussianFormationRound (); ! } ! } ! } ! ! private void startPrussianFormationRound() { createRound (PrussianFormationRound.class).start (); } --- 41,47 ---- } ! public void startPrussianFormationRound(OperatingRound_1835 or) { + interruptedRound = or; createRound (PrussianFormationRound.class).start (); } --- NEW FILE: OperatingRound_1835.java --- package rails.game.specific._1835; import rails.game.GameDef; import rails.game.GameManagerI; import rails.game.OperatingRound; import rails.game.PhaseI; import rails.game.action.DiscardTrain; import rails.game.state.BooleanState; public class OperatingRound_1835 extends OperatingRound { private BooleanState needPrussianFormationCall = new BooleanState ("NeedPrussianFormationCall", false); public OperatingRound_1835 (GameManagerI gameManager) { super (gameManager); } protected void newPhaseChecks() { PhaseI phase = getCurrentPhase(); if (phase.getName().equals("4") || phase.getName().equals("4+4") || phase.getName().equals("5")) { if (!PrussianFormationRound.prussianIsComplete(gameManager)) { if (getStep() == GameDef.OrStep.DISCARD_TRAINS) { // Postpone until trains are discarded needPrussianFormationCall.set(true); } else { // Do it immediately ((GameManager_1835)gameManager).startPrussianFormationRound (this); } } } } public boolean discardTrain(DiscardTrain action) { boolean result = super.discardTrain(action); if (result && getStep() == GameDef.OrStep.BUY_TRAIN && needPrussianFormationCall.booleanValue()) { // Do the postponed formation calls ((GameManager_1835)gameManager).startPrussianFormationRound (this); needPrussianFormationCall.set(false); } return result; } } |