data/1835/Game.xml | 3 +
rails/game/specific/_1835/ElsasModifier.java | 41 +++++++++++++++++++++++++++
2 files changed, 44 insertions(+)
New commits:
commit b9e3d4c14a6ef9b2ac3fb50641bb1e4ed38d1b6c
Author: Stefan Frey <ste...@we...>
Date: Tue Apr 3 11:37:01 2012 +0200
added 1835 modifier for elsas to fix wrong revenue calculation reported by jdg
diff --git a/data/1835/Game.xml b/data/1835/Game.xml
index 2f26bbf..d9f62a8 100644
--- a/data/1835/Game.xml
+++ b/data/1835/Game.xml
@@ -114,4 +114,7 @@
<Trains rusted="3+3"/>
</Phase>
</Component>
+ <Component name="RevenueManager" class="rails.algorithms.RevenueManager">
+ <Modifier class="rails.game.specific._1835.ElsasModifier" />
+ </Component>
</ComponentManager>
diff --git a/rails/game/specific/_1835/ElsasModifier.java b/rails/game/specific/_1835/ElsasModifier.java
new file mode 100644
index 0000000..cce0b74
--- /dev/null
+++ b/rails/game/specific/_1835/ElsasModifier.java
@@ -0,0 +1,41 @@
+package rails.game.specific._1835;
+
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.jgrapht.graph.SimpleGraph;
+
+import rails.algorithms.NetworkEdge;
+import rails.algorithms.NetworkGraphBuilder;
+import rails.algorithms.NetworkGraphModifier;
+import rails.algorithms.NetworkVertex;
+import rails.game.GameManager;
+import rails.game.GameManagerI;
+import rails.game.MapHex;
+
+/**
+ * Analogue to the BirminghamTileModifier in 1851
+ * Removes Elsas from the map if value is equal to zero
+ * @author freystef
+ */
+
+public class ElsasModifier implements NetworkGraphModifier {
+
+ protected static Logger log =
+ Logger.getLogger(ElsasModifier.class.getPackage().getName());
+
+ public void modifyGraph(NetworkGraphBuilder graphBuilder) {
+
+ GameManagerI gm = GameManager.getInstance();
+ SimpleGraph<NetworkVertex, NetworkEdge> graph = graphBuilder.getMapGraph();
+
+ // Check if elsasHex has zero value ...
+ MapHex elsasHex = gm.getMapManager().getHex("M5");
+ if (elsasHex.getCurrentValueForPhase(gm.getCurrentPhase()) == 0) {
+ // .. then remove
+ Set<NetworkVertex> elsasVertices = NetworkVertex.getVerticesByHex(graph.vertexSet(), elsasHex);
+ graph.removeAllVertices(elsasVertices);
+ log.debug("Elsas is inactive");
+ }
+ }
+}
|