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