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;
}
}
|