|
From: Stefan F. <ste...@us...> - 2012-03-17 06:59:45
|
data/1851/Game.xml | 2
data/1880/Game.xml | 2
data/18EU/Game.xml | 2
rails/game/specific/_1851/OffBoardRevenueModifier.java | 54 -------
rails/game/specific/_1851/OffBoardRevenueModifier_1851.java | 54 +++++++
rails/game/specific/_1880/OffBoardRevenueModifier.java | 61 --------
rails/game/specific/_1880/OffBoardRevenueModifier_1880.java | 61 ++++++++
rails/game/specific/_1880/PublicCompany_1880.java | 16 +-
rails/game/specific/_18EU/OffBoardRevenueModifier.java | 91 ------------
rails/game/specific/_18EU/OffBoardRevenueModifier_18EU.java | 91 ++++++++++++
10 files changed, 218 insertions(+), 216 deletions(-)
New commits:
commit c04dd80f6970197d123f1493f4f3c0d5f602d560
Author: Stefan Frey <ste...@we...>
Date: Sat Mar 17 07:58:42 2012 +0100
Added missing check for running company to 1880 public company modifier
Changed OffBoardRevenueModifier names that the contain game name
diff --git a/data/1851/Game.xml b/data/1851/Game.xml
index b11fe1f..ea507f0 100644
--- a/data/1851/Game.xml
+++ b/data/1851/Game.xml
@@ -116,7 +116,7 @@
</Phase>
</Component>
<Component name="RevenueManager" class="rails.algorithms.RevenueManager">
- <Modifier class="rails.game.specific._1851.OffBoardRevenueModifier" />
+ <Modifier class="rails.game.specific._1851.OffBoardRevenueModifier_1851" />
<Modifier class="rails.game.specific._1851.BirminghamTileModifier" />
</Component>
</ComponentManager>
\ No newline at end of file
diff --git a/data/1880/Game.xml b/data/1880/Game.xml
index 47f58c5..3e738ec 100644
--- a/data/1880/Game.xml
+++ b/data/1880/Game.xml
@@ -163,7 +163,7 @@
</Phase>
</Component>
<Component name="RevenueManager" class="rails.algorithms.RevenueManager">
- <Modifier class="rails.game.specific._1880.OffBoardRevenueModifier"/>
+ <Modifier class="rails.game.specific._1880.OffBoardRevenueModifier_1880"/>
</Component>
</ComponentManager>
\ No newline at end of file
diff --git a/data/18EU/Game.xml b/data/18EU/Game.xml
index 01e39f5..4ac5fff 100644
--- a/data/18EU/Game.xml
+++ b/data/18EU/Game.xml
@@ -131,7 +131,7 @@
</Phase>
</Component>
<Component name="RevenueManager" class="rails.algorithms.RevenueManager">
- <Modifier class="rails.game.specific._18EU.OffBoardRevenueModifier"/>
+ <Modifier class="rails.game.specific._18EU.OffBoardRevenueModifier_18EU"/>
<Modifier class="rails.game.specific._18EU.PullmanRevenueModifier"/>
</Component>
</ComponentManager>
\ No newline at end of file
diff --git a/rails/game/specific/_1851/OffBoardRevenueModifier.java b/rails/game/specific/_1851/OffBoardRevenueModifier.java
deleted file mode 100644
index 6956f3c..0000000
--- a/rails/game/specific/_1851/OffBoardRevenueModifier.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package rails.game.specific._1851;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import rails.algorithms.NetworkVertex;
-import rails.algorithms.RevenueAdapter;
-import rails.algorithms.RevenueBonus;
-import rails.algorithms.RevenueStaticModifier;
-import rails.game.Station;
-
-public class OffBoardRevenueModifier implements RevenueStaticModifier {
-
- private static final int BONUS_VALUE = 10;
-
- public boolean modifyCalculator(RevenueAdapter revenueAdapter) {
- // 1. get all off-board type stations and all other stations
- Set<NetworkVertex> offBoard = new HashSet<NetworkVertex>();
- Set<NetworkVertex> otherStations = new HashSet<NetworkVertex>();
- for (NetworkVertex vertex:revenueAdapter.getVertices()) {
- if (vertex.isStation()) {
- if (vertex.getStation().getType().equals(Station.OFF_MAP_AREA)){
- offBoard.add(vertex);
- } else {
- otherStations.add(vertex);
- }
- }
- }
- // 2. combine those to revenueBonuses
- // always two offboard areas and one other
- Set<NetworkVertex> destOffBoard = new HashSet<NetworkVertex>(offBoard);
- RevenueBonus bonus;
- for (NetworkVertex offA:offBoard) {
- destOffBoard.remove(offA);
- for (NetworkVertex offB:destOffBoard) {
- bonus = new RevenueBonus(2*BONUS_VALUE, "Red-To-Red");
- bonus.addVertex(offA); bonus.addVertex(offB);;
- revenueAdapter.addRevenueBonus(bonus);
- for (NetworkVertex station:otherStations) {
- bonus = new RevenueBonus(BONUS_VALUE, "Red-To-Red");
- bonus.addVertex(offA); bonus.addVertex(offB); bonus.addVertex(station);
- revenueAdapter.addRevenueBonus(bonus);
- }
- }
- }
- // no additional text required
- return false;
- }
-
- public String prettyPrint(RevenueAdapter revenueAdapter) {
- // nothing to print
- return null;
- }
-}
diff --git a/rails/game/specific/_1851/OffBoardRevenueModifier_1851.java b/rails/game/specific/_1851/OffBoardRevenueModifier_1851.java
new file mode 100644
index 0000000..5b93edb
--- /dev/null
+++ b/rails/game/specific/_1851/OffBoardRevenueModifier_1851.java
@@ -0,0 +1,54 @@
+package rails.game.specific._1851;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import rails.algorithms.NetworkVertex;
+import rails.algorithms.RevenueAdapter;
+import rails.algorithms.RevenueBonus;
+import rails.algorithms.RevenueStaticModifier;
+import rails.game.Station;
+
+public class OffBoardRevenueModifier_1851 implements RevenueStaticModifier {
+
+ private static final int BONUS_VALUE = 10;
+
+ public boolean modifyCalculator(RevenueAdapter revenueAdapter) {
+ // 1. get all off-board type stations and all other stations
+ Set<NetworkVertex> offBoard = new HashSet<NetworkVertex>();
+ Set<NetworkVertex> otherStations = new HashSet<NetworkVertex>();
+ for (NetworkVertex vertex:revenueAdapter.getVertices()) {
+ if (vertex.isStation()) {
+ if (vertex.getStation().getType().equals(Station.OFF_MAP_AREA)){
+ offBoard.add(vertex);
+ } else {
+ otherStations.add(vertex);
+ }
+ }
+ }
+ // 2. combine those to revenueBonuses
+ // always two offboard areas and one other
+ Set<NetworkVertex> destOffBoard = new HashSet<NetworkVertex>(offBoard);
+ RevenueBonus bonus;
+ for (NetworkVertex offA:offBoard) {
+ destOffBoard.remove(offA);
+ for (NetworkVertex offB:destOffBoard) {
+ bonus = new RevenueBonus(2*BONUS_VALUE, "Red-To-Red");
+ bonus.addVertex(offA); bonus.addVertex(offB);;
+ revenueAdapter.addRevenueBonus(bonus);
+ for (NetworkVertex station:otherStations) {
+ bonus = new RevenueBonus(BONUS_VALUE, "Red-To-Red");
+ bonus.addVertex(offA); bonus.addVertex(offB); bonus.addVertex(station);
+ revenueAdapter.addRevenueBonus(bonus);
+ }
+ }
+ }
+ // no additional text required
+ return false;
+ }
+
+ public String prettyPrint(RevenueAdapter revenueAdapter) {
+ // nothing to print
+ return null;
+ }
+}
diff --git a/rails/game/specific/_1880/OffBoardRevenueModifier.java b/rails/game/specific/_1880/OffBoardRevenueModifier.java
deleted file mode 100644
index 28b34e8..0000000
--- a/rails/game/specific/_1880/OffBoardRevenueModifier.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- *
- */
-package rails.game.specific._1880;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.log4j.Logger;
-
-import rails.algorithms.NetworkVertex;
-import rails.algorithms.RevenueAdapter;
-import rails.algorithms.RevenueBonus;
-import rails.algorithms.RevenueStaticModifier;
-import rails.game.Station;
-
-/**
- * @author Martin
- *
- */
-public class OffBoardRevenueModifier implements RevenueStaticModifier {
-
-
- protected static Logger log =
- Logger.getLogger(OffBoardRevenueModifier.class.getPackage().getName());
-
- public boolean modifyCalculator(RevenueAdapter revenueAdapter) {
-
- // 1. get the two off-board type stations (Russia and Wladiwostok)
- Set<NetworkVertex> offBoard = new HashSet<NetworkVertex>();
- for (NetworkVertex vertex:revenueAdapter.getVertices()) { // We just need the two offboard Cities
- if (vertex.isStation() && ((vertex.getStation().getName().equals("Russia") ||(vertex.getStation().getName().equals("Wladiwostok"))))) {
- offBoard.add(vertex);
- }
- }
- // 2. get all base tokens (=> start vertices)
- Set<NetworkVertex> bases = revenueAdapter.getStartVertices();
-
- // 3. combine those to revenueBonuses
- // always two offboard areas and one base
- Set<NetworkVertex> destOffBoard = new HashSet<NetworkVertex>(offBoard);
- for (NetworkVertex offA:offBoard) {
- destOffBoard.remove(offA);
- for (NetworkVertex offB:destOffBoard) {
- for (NetworkVertex base:bases) {
- RevenueBonus bonus = new RevenueBonus(50, "Red-To-Red");
- bonus.addVertex(offA); bonus.addVertex(offB); bonus.addVertex(base);
- revenueAdapter.addRevenueBonus(bonus);
- }
- }
- }
-
- return false;
- }
-
- public String prettyPrint(RevenueAdapter revenueAdapter) {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/rails/game/specific/_1880/OffBoardRevenueModifier_1880.java b/rails/game/specific/_1880/OffBoardRevenueModifier_1880.java
new file mode 100644
index 0000000..7580a5c
--- /dev/null
+++ b/rails/game/specific/_1880/OffBoardRevenueModifier_1880.java
@@ -0,0 +1,61 @@
+/**
+ *
+ */
+package rails.game.specific._1880;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+
+import rails.algorithms.NetworkVertex;
+import rails.algorithms.RevenueAdapter;
+import rails.algorithms.RevenueBonus;
+import rails.algorithms.RevenueStaticModifier;
+import rails.game.Station;
+
+/**
+ * @author Martin
+ *
+ */
+public class OffBoardRevenueModifier_1880 implements RevenueStaticModifier {
+
+
+ protected static Logger log =
+ Logger.getLogger(OffBoardRevenueModifier_1880.class.getPackage().getName());
+
+ public boolean modifyCalculator(RevenueAdapter revenueAdapter) {
+
+ // 1. get the two off-board type stations (Russia and Wladiwostok)
+ Set<NetworkVertex> offBoard = new HashSet<NetworkVertex>();
+ for (NetworkVertex vertex:revenueAdapter.getVertices()) { // We just need the two offboard Cities
+ if (vertex.isStation() && ((vertex.getStation().getName().equals("Russia") ||(vertex.getStation().getName().equals("Wladiwostok"))))) {
+ offBoard.add(vertex);
+ }
+ }
+ // 2. get all base tokens (=> start vertices)
+ Set<NetworkVertex> bases = revenueAdapter.getStartVertices();
+
+ // 3. combine those to revenueBonuses
+ // always two offboard areas and one base
+ Set<NetworkVertex> destOffBoard = new HashSet<NetworkVertex>(offBoard);
+ for (NetworkVertex offA:offBoard) {
+ destOffBoard.remove(offA);
+ for (NetworkVertex offB:destOffBoard) {
+ for (NetworkVertex base:bases) {
+ RevenueBonus bonus = new RevenueBonus(50, "Red-To-Red");
+ bonus.addVertex(offA); bonus.addVertex(offB); bonus.addVertex(base);
+ revenueAdapter.addRevenueBonus(bonus);
+ }
+ }
+ }
+
+ return false;
+ }
+
+ public String prettyPrint(RevenueAdapter revenueAdapter) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/rails/game/specific/_1880/PublicCompany_1880.java b/rails/game/specific/_1880/PublicCompany_1880.java
index 0b8e369..887d362 100644
--- a/rails/game/specific/_1880/PublicCompany_1880.java
+++ b/rails/game/specific/_1880/PublicCompany_1880.java
@@ -220,19 +220,21 @@ public class PublicCompany_1880 extends PublicCompany implements RevenueStaticMo
}
public boolean modifyCalculator(RevenueAdapter revenueAdapter) {
- // check if the running company is a minor
- if (revenueAdapter.getCompany().getTypeName().equals("Minor")) {
-
- // add the current Available train from the IPO and not the last train in Use
- TrainManager trainManager=gameManager.getTrainManager();
- revenueAdapter.addTrainByString(trainManager.getAvailableNewTrains().get(0).getName());
+ // check if running company is this company, otherwise quit
+ if (revenueAdapter.getCompany() != this) return false;
+
+ // check if company is a minor
+ if (this.getTypeName().equals("Minor")) {
+ // add the current Available train from the IPO and not the last train in Use
+ TrainManager trainManager=gameManager.getTrainManager();
+ revenueAdapter.addTrainByString(trainManager.getAvailableNewTrains().get(0).getName());
} else {
int additionalStockRevenue = revenueAdapter.getCompany().getCurrentSpace().getType().hasAddRevenue()*10;
RevenueBonus bonus = new RevenueBonus(additionalStockRevenue, "StockPosition");
revenueAdapter.addRevenueBonus(bonus);
}
+ // no text needed
return false;
-
}
/* (non-Javadoc)
diff --git a/rails/game/specific/_18EU/OffBoardRevenueModifier.java b/rails/game/specific/_18EU/OffBoardRevenueModifier.java
deleted file mode 100644
index ce0d0ae..0000000
--- a/rails/game/specific/_18EU/OffBoardRevenueModifier.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package rails.game.specific._18EU;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.log4j.Logger;
-
-import rails.algorithms.NetworkVertex;
-import rails.algorithms.RevenueAdapter;
-import rails.algorithms.RevenueBonus;
-import rails.algorithms.RevenueStaticModifier;
-import rails.algorithms.RevenueAdapter.VertexVisit;
-import rails.game.PhaseI;
-import rails.game.Station;
-import rails.game.Tile;
-
-public class OffBoardRevenueModifier implements RevenueStaticModifier {
-
- protected static Logger log =
- Logger.getLogger(OffBoardRevenueModifier.class.getPackage().getName());
-
-
- public boolean modifyCalculator(RevenueAdapter revenueAdapter) {
-
- // 1. define value
- PhaseI phase = revenueAdapter.getPhase();
- int bonusValue;
- if (phase.isTileColourAllowed(Tile.GREY_COLOUR_NAME)) {
- bonusValue = 30;
- } else if (phase.isTileColourAllowed(Tile.BROWN_COLOUR_NAME)) {
- bonusValue = 20;
- } else if (phase.isTileColourAllowed(Tile.GREEN_COLOUR_NAME)) {
- bonusValue = 10;
- } else {
- return false;
- }
-
- log.info("OffBoardRevenueModifier: bonusValue = " + bonusValue);
-
- // 2. get all off-board type stations and Hamburg
- Set<NetworkVertex> offBoard = new HashSet<NetworkVertex>();
- for (NetworkVertex vertex:revenueAdapter.getVertices()) {
- if (vertex.isStation() && vertex.getStation().getType().equals(Station.OFF_MAP_AREA)){
- offBoard.add(vertex);
- }
- }
-
- // 3. get Hamburg ...
- NetworkVertex hamburgCity = NetworkVertex.getVertexByIdentifier(revenueAdapter.getVertices(), "B7.-1");
- if (hamburgCity != null) {
- // ... and duplicate the vertex
- NetworkVertex hamburgTerminal = NetworkVertex.duplicateVertex(revenueAdapter.getGraph(), hamburgCity, "B7", true);
- hamburgTerminal.setSink(true);
- offBoard.add(hamburgTerminal);
-
- // vertexVisitSet for the two Hamburgs
- VertexVisit hamburgSet = revenueAdapter.new VertexVisit();
- hamburgSet.set.add(hamburgCity);
- hamburgSet.set.add(hamburgTerminal);
- revenueAdapter.addVertexVisitSet(hamburgSet);
- }
-
- log.info("OffBoardRevenueModifier: offBoard = " + offBoard);
-
- // 4. get all base tokens (=> start vertices)
- Set<NetworkVertex> bases = revenueAdapter.getStartVertices();
-
-
- // 5. combine those to revenueBonuses
- // always two offboard areas and one base
- Set<NetworkVertex> destOffBoard = new HashSet<NetworkVertex>(offBoard);
- for (NetworkVertex offA:offBoard) {
- destOffBoard.remove(offA);
- for (NetworkVertex offB:destOffBoard) {
- for (NetworkVertex base:bases) {
- RevenueBonus bonus = new RevenueBonus(bonusValue, "Red-To-Red");
- bonus.addVertex(offA); bonus.addVertex(offB); bonus.addVertex(base);
- revenueAdapter.addRevenueBonus(bonus);
- }
- }
- }
- // no additional text required
- return false;
- }
-
-
- public String prettyPrint(RevenueAdapter revenueAdapter) {
- // nothing to do
- return null;
- }
-}
diff --git a/rails/game/specific/_18EU/OffBoardRevenueModifier_18EU.java b/rails/game/specific/_18EU/OffBoardRevenueModifier_18EU.java
new file mode 100644
index 0000000..ae2e2d7
--- /dev/null
+++ b/rails/game/specific/_18EU/OffBoardRevenueModifier_18EU.java
@@ -0,0 +1,91 @@
+package rails.game.specific._18EU;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+
+import rails.algorithms.NetworkVertex;
+import rails.algorithms.RevenueAdapter;
+import rails.algorithms.RevenueBonus;
+import rails.algorithms.RevenueStaticModifier;
+import rails.algorithms.RevenueAdapter.VertexVisit;
+import rails.game.PhaseI;
+import rails.game.Station;
+import rails.game.Tile;
+
+public class OffBoardRevenueModifier_18EU implements RevenueStaticModifier {
+
+ protected static Logger log =
+ Logger.getLogger(OffBoardRevenueModifier_18EU.class.getPackage().getName());
+
+
+ public boolean modifyCalculator(RevenueAdapter revenueAdapter) {
+
+ // 1. define value
+ PhaseI phase = revenueAdapter.getPhase();
+ int bonusValue;
+ if (phase.isTileColourAllowed(Tile.GREY_COLOUR_NAME)) {
+ bonusValue = 30;
+ } else if (phase.isTileColourAllowed(Tile.BROWN_COLOUR_NAME)) {
+ bonusValue = 20;
+ } else if (phase.isTileColourAllowed(Tile.GREEN_COLOUR_NAME)) {
+ bonusValue = 10;
+ } else {
+ return false;
+ }
+
+ log.info("OffBoardRevenueModifier: bonusValue = " + bonusValue);
+
+ // 2. get all off-board type stations and Hamburg
+ Set<NetworkVertex> offBoard = new HashSet<NetworkVertex>();
+ for (NetworkVertex vertex:revenueAdapter.getVertices()) {
+ if (vertex.isStation() && vertex.getStation().getType().equals(Station.OFF_MAP_AREA)){
+ offBoard.add(vertex);
+ }
+ }
+
+ // 3. get Hamburg ...
+ NetworkVertex hamburgCity = NetworkVertex.getVertexByIdentifier(revenueAdapter.getVertices(), "B7.-1");
+ if (hamburgCity != null) {
+ // ... and duplicate the vertex
+ NetworkVertex hamburgTerminal = NetworkVertex.duplicateVertex(revenueAdapter.getGraph(), hamburgCity, "B7", true);
+ hamburgTerminal.setSink(true);
+ offBoard.add(hamburgTerminal);
+
+ // vertexVisitSet for the two Hamburgs
+ VertexVisit hamburgSet = revenueAdapter.new VertexVisit();
+ hamburgSet.set.add(hamburgCity);
+ hamburgSet.set.add(hamburgTerminal);
+ revenueAdapter.addVertexVisitSet(hamburgSet);
+ }
+
+ log.info("OffBoardRevenueModifier: offBoard = " + offBoard);
+
+ // 4. get all base tokens (=> start vertices)
+ Set<NetworkVertex> bases = revenueAdapter.getStartVertices();
+
+
+ // 5. combine those to revenueBonuses
+ // always two offboard areas and one base
+ Set<NetworkVertex> destOffBoard = new HashSet<NetworkVertex>(offBoard);
+ for (NetworkVertex offA:offBoard) {
+ destOffBoard.remove(offA);
+ for (NetworkVertex offB:destOffBoard) {
+ for (NetworkVertex base:bases) {
+ RevenueBonus bonus = new RevenueBonus(bonusValue, "Red-To-Red");
+ bonus.addVertex(offA); bonus.addVertex(offB); bonus.addVertex(base);
+ revenueAdapter.addRevenueBonus(bonus);
+ }
+ }
+ }
+ // no additional text required
+ return false;
+ }
+
+
+ public String prettyPrint(RevenueAdapter revenueAdapter) {
+ // nothing to do
+ return null;
+ }
+}
|