From: Erik V. <ev...@us...> - 2010-02-16 20:25:46
|
Update of /cvsroot/rails/18xx/rails/game/specific/_1835 In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv32693/rails/game/specific/_1835 Added Files: GameManager_1835.java PrussianFormationRound.java Log Message: New 1835 stuff --- NEW FILE: PrussianFormationRound.java --- package rails.game.specific._1835; import java.util.List; import rails.common.GuiDef; import rails.game.*; import rails.game.action.MergeCompanies; import rails.game.action.NullAction; import rails.game.action.StartCompany; import rails.util.LocalText; public class PrussianFormationRound extends StockRound { private PublicCompanyI prussian; private PhaseI phase; private boolean startPr; private boolean forcedStart; private boolean mergePr; private boolean forcedMerge; private enum Step { START, MERGE }; Step step; public static String PR_ID = "Pr"; public static String M2_ID = "M2"; public PrussianFormationRound (GameManagerI gameManager) { super (gameManager); guiHints.setVisibilityHint(GuiDef.Panel.MAP, true); guiHints.setVisibilityHint(GuiDef.Panel.STATUS, true); } public void start() { prussian = companyManager.getCompanyByName(PR_ID); phase = getCurrentPhase(); startPr = !prussian.hasStarted(); forcedStart = phase.getName().equals("4+4"); mergePr = !prussianIsComplete(gameManager); forcedMerge = phase.getName().equals("5"); ReportBuffer.add(LocalText.getText("StartFormationRound", PR_ID)); log.debug("StartPr="+startPr+" forcedStart="+forcedStart +" mergePr="+mergePr+" forcedMerge="+forcedMerge); step = startPr ? Step.START : Step.MERGE; } public boolean setPossibleActions() { if (step == Step.START) { PublicCompanyI m2 = companyManager.getCompanyByName(M2_ID); Player m2Owner = m2.getPresident(); setCurrentPlayer(m2Owner); ReportBuffer.add(LocalText.getText("StartingPlayer", getCurrentPlayer().getName())); possibleActions.add(new MergeCompanies(m2, prussian)); if (!forcedStart) { possibleActions.add(new NullAction(NullAction.PASS)); } } return true; } public static boolean prussianIsComplete(GameManagerI gameManager) { List<PublicCertificateI> unissued = gameManager.getBank().getUnavailable().getCertificatesPerCompany(PR_ID); return unissued == null || unissued.isEmpty(); } @Override public String toString() { return "1835 PrussianFormationRound"; } } --- NEW FILE: GameManager_1835.java --- /* $Header: /cvsroot/rails/18xx/rails/game/specific/_1835/GameManager_1835.java,v 1.1 2010/02/16 20:25:38 evos Exp $ */ package rails.game.specific._1835; import rails.game.*; public class GameManager_1835 extends GameManager { public static String PR_NAME = PrussianFormationRound.PR_ID; private RoundI previousRound; public GameManager_1835() { super(); } @Override public void nextRound(RoundI round) { if (!(round instanceof PrussianFormationRound)) { PhaseI phase = getCurrentPhase(); if (phase.getName().equals("4") || phase.getName().equals("4+4") || phase.getName().equals("5")) { if (!PrussianFormationRound.prussianIsComplete(this)) { previousRound = round; startPrussianFormationRound (); return; } } } super.nextRound(round); } private void startPrussianFormationRound() { createRound (PrussianFormationRound.class).start (); } } |