From: Stefan F. <ste...@us...> - 2010-05-20 19:57:09
|
Update of /cvsroot/rails/18xx/rails/game/specific/_18AL In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv22874/rails/game/specific/_18AL Modified Files: NamedTrainToken.java Added Files: NamedTrainRevenueModifier.java Log Message: Revenue Calculator support for 18AL and various other fixes Index: NamedTrainToken.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/specific/_18AL/NamedTrainToken.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** NamedTrainToken.java 31 Jan 2010 22:22:33 -0000 1.5 --- NamedTrainToken.java 20 May 2010 19:57:01 -0000 1.6 *************** *** 3,11 **** import java.util.List; import rails.game.*; import rails.util.Tag; import rails.util.Util; ! public class NamedTrainToken extends Token implements ConfigurableComponentI { private String name; --- 3,21 ---- import java.util.List; + import org.apache.log4j.Logger; + + import rails.algorithms.NetworkVertex; + import rails.algorithms.RevenueAdapter; + import rails.algorithms.RevenueBonus; + import rails.algorithms.RevenueManager; + import rails.algorithms.RevenueStaticModifier; import rails.game.*; import rails.util.Tag; import rails.util.Util; ! public class NamedTrainToken extends Token implements ConfigurableComponentI /*, RevenueStaticModifier */ { ! ! protected static Logger log = ! Logger.getLogger(NamedTrainToken.class.getPackage().getName()); private String name; *************** *** 51,54 **** --- 61,68 ---- hexes = gameManager.getMapManager().parseLocations(hexesString); } + + // add them to the call list of the RevenueManager + // GameManager.getInstance().getRevenueManager().addStaticModifier(this); + } *************** *** 74,76 **** --- 88,109 ---- } + // public void modifyCalculator(RevenueAdapter revenueAdapter) { + // + // // 1. check if holder is a NameableTrain + // if (!(this.holder instanceof NameableTrain)) return; + // NameableTrain train = (NameableTrain)this.holder; + // + // // 2. check if operating company is owner of the train + // if (train.getOwner() == revenueAdapter.getCompany()) { + // // 2. define revenue bonus + // RevenueBonus bonus = new RevenueBonus(value, name); + // bonus.addTrain(train); + // for (NetworkVertex vertex:NetworkVertex.getVerticesByHexes(revenueAdapter.getVertices(), hexes)) { + // if (!vertex.isStation()) continue; + // bonus.addVertex(vertex); + // } + // revenueAdapter.addRevenueBonus(bonus); + // } + // } + } --- NEW FILE: NamedTrainRevenueModifier.java --- package rails.game.specific._18AL; import rails.algorithms.NetworkTrain; import rails.algorithms.NetworkVertex; import rails.algorithms.RevenueAdapter; import rails.algorithms.RevenueBonus; import rails.algorithms.RevenueStaticModifier; import rails.game.TrainI; public class NamedTrainRevenueModifier implements RevenueStaticModifier { public void modifyCalculator(RevenueAdapter revenueAdapter) { // 1. check all Trains for name Tokens for (NetworkTrain networkTrain:revenueAdapter.getTrains()) { TrainI train = networkTrain.getRailsTrain(); if (!(train instanceof NameableTrain)) continue; NamedTrainToken token = ((NameableTrain)train).getNameToken(); if (token == null) continue; // 2. define revenue bonus RevenueBonus bonus = new RevenueBonus(token.getValue(), token.getName()); bonus.addTrain(train); for (NetworkVertex vertex:NetworkVertex.getVerticesByHexes(revenueAdapter.getVertices(), token.getHexesToPass())) { if (!vertex.isStation()) continue; bonus.addVertex(vertex); } revenueAdapter.addRevenueBonus(bonus); } } } |