From: <ste...@us...> - 2010-08-18 22:03:07
|
Revision: 1394 http://rails.svn.sourceforge.net/rails/?rev=1394&view=rev Author: stefanfrey Date: 2010-08-18 22:03:00 +0000 (Wed, 18 Aug 2010) Log Message: ----------- - Fixed display issues on the NetworkInfo->RevenueRun - Added static modifier for 1856 CGR leased Diesel Modified Paths: -------------- trunk/18xx/rails/algorithms/RevenueAdapter.java trunk/18xx/rails/algorithms/RevenueTrainRun.java trunk/18xx/rails/game/specific/_1856/PublicCompany_CGR.java trunk/18xx/rails/ui/swing/ORPanel.java Modified: trunk/18xx/rails/algorithms/RevenueAdapter.java =================================================================== --- trunk/18xx/rails/algorithms/RevenueAdapter.java 2010-08-17 20:07:46 UTC (rev 1393) +++ trunk/18xx/rails/algorithms/RevenueAdapter.java 2010-08-18 22:03:00 UTC (rev 1394) @@ -635,10 +635,9 @@ StringBuffer runPrettyPrint = new StringBuffer(); for (RevenueTrainRun run:listRuns) { runPrettyPrint.append(run.prettyPrint(includeDetails)); - if (includeDetails) - runPrettyPrint.append("<BR>"); - else if (run != listRuns.get(listRuns.size()-1)) - runPrettyPrint.append("; "); + if (!includeDetails && run != listRuns.get(listRuns.size()-1)) { + runPrettyPrint.append("; "); + } } if (includeDetails) { for (RevenueDynamicModifier modifier:dynamicModifiers) { Modified: trunk/18xx/rails/algorithms/RevenueTrainRun.java =================================================================== --- trunk/18xx/rails/algorithms/RevenueTrainRun.java 2010-08-17 20:07:46 UTC (rev 1393) +++ trunk/18xx/rails/algorithms/RevenueTrainRun.java 2010-08-18 22:03:00 UTC (rev 1394) @@ -195,7 +195,7 @@ int length = runPrettyPrint.length() - initLength; if (length / PRETTY_PRINT_LENGTH != multiple) { multiple = length / PRETTY_PRINT_LENGTH; - runPrettyPrint.append("<BR>"); + runPrettyPrint.append("\n"); for (int i=0; i < PRETTY_PRINT_INDENT; i++) runPrettyPrint.append(" ") ; } Modified: trunk/18xx/rails/game/specific/_1856/PublicCompany_CGR.java =================================================================== --- trunk/18xx/rails/game/specific/_1856/PublicCompany_CGR.java 2010-08-17 20:07:46 UTC (rev 1393) +++ trunk/18xx/rails/game/specific/_1856/PublicCompany_CGR.java 2010-08-18 22:03:00 UTC (rev 1394) @@ -3,11 +3,13 @@ import java.util.ArrayList; import java.util.List; +import rails.algorithms.RevenueAdapter; +import rails.algorithms.RevenueStaticModifier; import rails.game.*; import rails.game.move.*; import rails.game.state.*; -public class PublicCompany_CGR extends PublicCompany { +public class PublicCompany_CGR extends PublicCompany implements RevenueStaticModifier { public static final String NAME = "CGR"; @@ -29,8 +31,17 @@ // Share price is initially fixed canSharePriceVary.set(false); + } + + @Override + public void finishConfiguration(GameManagerI gameManager) throws ConfigurationException { + super.finishConfiguration(gameManager); + // add revenue modifier for the case that there is no train + gameManager.getRevenueManager().addStaticModifier(this); + } + public boolean hadPermanentTrain() { return hadPermanentTrain.booleanValue(); } @@ -149,4 +160,14 @@ public String getExtraShareMarks () { return (hasTemporaryPresident() ? "T" : ""); } + + public void modifyCalculator(RevenueAdapter revenueAdapter) { + // check if the running company is the cgr + if (revenueAdapter.getCompany() != this) return; + + // add the diesel train + if (runsWithBorrowedTrain()) { + revenueAdapter.addTrainByString("D"); + } + } } Modified: trunk/18xx/rails/ui/swing/ORPanel.java =================================================================== --- trunk/18xx/rails/ui/swing/ORPanel.java 2010-08-17 20:07:46 UTC (rev 1393) +++ trunk/18xx/rails/ui/swing/ORPanel.java 2010-08-18 22:03:00 UTC (rev 1394) @@ -629,33 +629,18 @@ for (String addTrain:addTrainList) { ra.addTrainByString(addTrain); } - ra.initRevenueCalculator(true); - log.info("Revenue Adapter:" + ra); + ra.initRevenueCalculator(true); // true => multigraph, false => simplegraph + log.debug("Revenue Adapter:" + ra); int revenueValue = ra.calculateRevenue(); - log.info("Revenue Value:" + revenueValue); - log.info("Revenue Run:" + ra.getOptimalRunPrettyPrint(true)); + log.debug("Revenue Value:" + revenueValue); + log.debug("Revenue Run:" + ra.getOptimalRunPrettyPrint(true)); ra.drawOptimalRunAsPath(orUIManager.getMap()); orUIManager.getMap().repaint(); JOptionPane.showMessageDialog(orWindow, "RevenueValue = " + revenueValue + "\nRevenueRun = \n" + ra.getOptimalRunPrettyPrint(true)); - // simple - ra = RevenueAdapter.createRevenueAdapter(gm, company, gm.getCurrentPhase()); - for (String addTrain:addTrainList) { - ra.addTrainByString(addTrain); - } - ra.initRevenueCalculator(false); - log.info("Revenue Adapter:" + ra); - revenueValue = ra.calculateRevenue(); - log.info("Revenue Value:" + revenueValue); - log.info("Revenue Run:" + ra.getOptimalRunPrettyPrint(true)); - ra.drawOptimalRunAsPath(orUIManager.getMap()); - orUIManager.getMap().repaint(); - JOptionPane.showMessageDialog(orWindow, "RevenueValue = " + revenueValue + - "\nRevenueRun = \n" + ra.getOptimalRunPrettyPrint(true)); - String trainString = - JOptionPane.showInputDialog(orWindow, "Another train", + JOptionPane.showInputDialog(null, "Enter train string (Examples: 5, 3+3, 4D, 6E, D)", "Add another train to run?", JOptionPane.QUESTION_MESSAGE); if (trainString == null || trainString.equals("")) { @@ -842,8 +827,8 @@ revenueAdapter.drawOptimalRunAsPath(orUIManager.getMap()); orUIManager.getMap().repaint(); orUIManager.addInformation("Best Run Value = " + bestRevenue + - " with " + revenueAdapter.getOptimalRunPrettyPrint(false)); - orUIManager.addDetail(revenueAdapter.getOptimalRunPrettyPrint(true)); + " with " + Util.convertToHtml(revenueAdapter.getOptimalRunPrettyPrint(false))); + orUIManager.addDetail(Util.convertToHtml(revenueAdapter.getOptimalRunPrettyPrint(true))); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |