|
From: <ev...@us...> - 2011-05-11 16:20:14
|
Revision: 1556
http://rails.svn.sourceforge.net/rails/?rev=1556&view=rev
Author: evos
Date: 2011-05-11 16:20:08 +0000 (Wed, 11 May 2011)
Log Message:
-----------
Added 1830 Wabash variant
Modified Paths:
--------------
trunk/18xx/data/1830/CompanyManager.xml
trunk/18xx/data/1830/Game.xml
trunk/18xx/data/1830/Map.xml
trunk/18xx/data/1830/TileSet.xml
trunk/18xx/data/1830/Tiles.xml
trunk/18xx/data/GamesList.xml
trunk/18xx/rails/game/MapHex.java
trunk/18xx/rails/game/MapManager.java
trunk/18xx/rails/game/StartRound.java
Modified: trunk/18xx/data/1830/CompanyManager.xml
===================================================================
--- trunk/18xx/data/1830/CompanyManager.xml 2011-05-10 10:25:59 UTC (rev 1555)
+++ trunk/18xx/data/1830/CompanyManager.xml 2011-05-11 16:20:08 UTC (rev 1556)
@@ -82,7 +82,7 @@
</Company>
<Company name="C&O" type="Public" tokens="3" fgColour="000000" bgColour="A0E0FF"
longname="Chesapeake & Ohio">
- <IfOption name="Variant" value="Basegame,Pere Marquette">
+ <IfOption name="Variant" value="Basegame,Pere Marquette,Wabash">
<Home hex="F6"/>
</IfOption>
<IfOption name="Variant" value="Coalfields,Coalfields&Reading">
@@ -131,6 +131,14 @@
<Certificate shares="1" number="7"/>
</Company>
</IfOption>
+ <IfOption name="Variant" value="Wabash">
+ <Company name="WR" type="Public" tokens="2" fgColour="000000" bgColour="FFFFFF"
+ longname="Wabash Railroad">
+ <Home hex="H2"/>
+ <Certificate type="President" shares="2"/>
+ <Certificate shares="1" number="8"/>
+ </Company>
+ </IfOption>
<StartPacket roundClass="rails.game.StartRound_1830">
<Bidding initial="5" minimum="5" increment="1"/>
Modified: trunk/18xx/data/1830/Game.xml
===================================================================
--- trunk/18xx/data/1830/Game.xml 2011-05-10 10:25:59 UTC (rev 1555)
+++ trunk/18xx/data/1830/Game.xml 2011-05-11 16:20:08 UTC (rev 1556)
@@ -15,7 +15,7 @@
<!-- The options in Game.xml are not currently used.
See GamesList.xml for the real ones.
-->
- <GameOption name="Variant" values="Basegame,Pere Marquette,Coalfields,Reading,Coalfields&Reading" default="Basegame" />
+ <GameOption name="Variant" values="Basegame,Pere Marquette,Coalfields,Reading,Coalfields&Reading,Wabash" default="Basegame" />
<GameOption name="NoMapMode" type="toggle" default="no" />
<GameOption name="RouteAwareness" values="Highlight,Deactivate" default="Deactivate" />
<GameOption name="RevenueCalculation" values="Suggest,Deactivate" default="Deactivate" />
@@ -87,6 +87,13 @@
<Players number="5" cash="480" certLimit="15"/>
<Players number="6" cash="400" certLimit="13"/>
</IfOption>
+ <IfOption name="Variant" value="Wabash">
+ <Players number="2" cash="1200" certLimit="29"/>
+ <Players number="3" cash="800" certLimit="22"/>
+ <Players number="4" cash="600" certLimit="17"/>
+ <Players number="5" cash="480" certLimit="15"/>
+ <Players number="6" cash="400" certLimit="13"/>
+ </IfOption>
</Component>
<Component name="Bank" class="rails.game.Bank">
<IfOption name="Variant" value="Basegame,Pere Marquette,Coalfields,Reading">
@@ -95,6 +102,9 @@
<IfOption name="Variant" value="Coalfields&Reading">
<Bank amount="20000"/>
</IfOption>
+ <IfOption name="Variant" value="Wabash">
+ <Bank amount="14000"/>
+ </IfOption>
<Money format="$@"/>
</Component>
<Component name="TileManager" class="rails.game.TileManager"
@@ -124,11 +134,17 @@
<IfOption name="Variant" value="Coalfields,Reading,Coalfields&Reading">
<Attributes obsoleting="yes"/>
</IfOption>
+ <IfOption name="Variant" value="Wabash">
+ <Attributes amount="7"/>
+ </IfOption>
</Train>
<Train name="3" majorStops="3" cost="180" amount="5" startPhase="3">
<IfOption name="Variant" value="Coalfields,Reading,Coalfields&Reading">
<Attributes obsoleting="yes"/>
</IfOption>
+ <IfOption name="Variant" value="Wabash">
+ <Attributes amount="6"/>
+ </IfOption>
</Train>
<Train name="4" majorStops="4" cost="300" amount="4" startPhase="4"
rustedTrain="2">
@@ -138,8 +154,15 @@
<IfOption name="Variant" value="Coalfields&Reading">
<Attributes obsoleting="yes" amount="6"/>
</IfOption>
+ <IfOption name="Variant" value="Wabash">
+ <Attributes amount="5"/>
+ </IfOption>
</Train>
- <Train name="5" majorStops="5" cost="450" amount="3" startPhase="5"/>
+ <Train name="5" majorStops="5" cost="450" amount="3" startPhase="5">
+ <IfOption name="Variant" value="Wabash">
+ <Attributes amount="4"/>
+ </IfOption>
+ </Train>
<Train name="6" majorStops="6" cost="630" startPhase="6"
rustedTrain="3" releasedTrain="D">
<IfOption name="WithOptional6Train" value="yes">
@@ -154,27 +177,35 @@
<IfOption name="Variant" value="Coalfields&Reading">
<Attributes amount="4" releasedTrain="7,D"/>
</IfOption>
+ <IfOption name="Variant" value="Wabash">
+ <Attributes amount="3"/>
+ </IfOption>
</Train>
<IfOption name="Variant" value="Coalfields,Reading,Coalfields&Reading">
<Train name="7" majorStops="7" cost="710" amount="2"/>
</IfOption>
- <Train name="D" majorStops="99" startPhase="D" rustedTrain="4">
- <IfOption name="Variant" value="Basegame,Pere Marquette">
- <Attributes cost="1100"/>
+ <IfOption name="Variant" value="Wabash">
+ <Train name="7" majorStops="7" cost="830" amount="-1"/>
+ </IfOption>
+ <IfOption name="Variant" value="Basegame,Pere Marquette,Reading,Coalfields,Coalfields&Reading">
+ <Train name="D" majorStops="99" startPhase="D" rustedTrain="4">
+ <IfOption name="Variant" value="Basegame,Pere Marquette">
+ <Attributes cost="1100"/>
+ <Exchange cost="800"/>
+ </IfOption>
+ <IfOption name="Variant" value="Coalfields,Reading,Coalfields&Reading">
+ <Attributes cost="900"/>
+ <Exchange cost="750"/>
+ </IfOption>
+ <IfOption name="UnlimitedTopTrains" value="yes">
+ <Attributes amount="-1"/>
+ </IfOption>
+ <IfOption name="UnlimitedTopTrains" value="no">
+ <Attributes amount="6"/>
+ </IfOption>
<Exchange cost="800"/>
- </IfOption>
- <IfOption name="Variant" value="Coalfields,Reading,Coalfields&Reading">
- <Attributes cost="900"/>
- <Exchange cost="750"/>
- </IfOption>
- <IfOption name="UnlimitedTopTrains" value="yes">
- <Attributes amount="-1"/>
- </IfOption>
- <IfOption name="UnlimitedTopTrains" value="no">
- <Attributes amount="6"/>
- </IfOption>
- <Exchange cost="800"/>
- </Train>
+ </Train>
+ </IfOption>
</Component>
<Component name="PhaseManager" class="rails.game.PhaseManager">
<!-- Note: released and rusted trains are now specified per Train
Modified: trunk/18xx/data/1830/Map.xml
===================================================================
--- trunk/18xx/data/1830/Map.xml 2011-05-10 10:25:59 UTC (rev 1555)
+++ trunk/18xx/data/1830/Map.xml 2011-05-11 16:20:08 UTC (rev 1556)
@@ -30,9 +30,14 @@
<Hex name="D14" tile="-102" value="20"/>
<Hex name="D16" tile="0"/>
<Hex name="D18" tile="0"/>
- <Hex name="D20" tile="0"/>
+ <IfOption name="Variant" value="Basegame,Pere Marquette,Coalfields,Reading,Coalfields&Reading">
+ <Hex name="D20" tile="0"/>
+ </IfOption>
+ <IfOption name="Variant" value="Wabash">
+ <Hex name="D20" tile="-25007" orientation="3"/>
+ </IfOption>
<Hex name="D22" tile="0" cost="120"/>
- <IfOption name="Variant" value="Basegame,Pere Marquette">
+ <IfOption name="Variant" value="Basegame,Pere Marquette,Wabash">
<Hex name="D24" tile="-7" orientation="2"/>
</IfOption>
<IfOption name="Variant" value="Coalfields,Reading,Coalfields&Reading">
@@ -55,6 +60,9 @@
<IfOption name="Variant" value="Coalfields,Coalfields&Reading">
<Hex name="F2" tile="-939" orientation="5" value="40,70" city="Chicago"/>
</IfOption>
+ <IfOption name="Variant" value="Wabash">
+ <Hex name="F2" tile="0"/>
+ </IfOption>
<Hex name="F4" tile="-10" cost="80"/>
<Hex name="F6" tile="-105" city="Cleveland"/>
<Hex name="F8" tile="0"/>
@@ -63,7 +71,7 @@
<Hex name="F14" tile="0"/>
<Hex name="F16" tile="-10" cost="120"/>
<Hex name="F18" tile="0"/>
- <IfOption name="Variant" value="Basegame,Pere Marquette,Reading">
+ <IfOption name="Variant" value="Basegame,Pere Marquette,Reading,Wabash">
<Hex name="F20" tile="-2"/>
</IfOption>
<IfOption name="Variant" value="Coalfields,Coalfields&Reading">
@@ -71,6 +79,10 @@
</IfOption>
<Hex name="F22" tile="-10" cost="80"/>
<Hex name="F24" tile="-3" orientation="2"/>
+ <IfOption name="Variant" value="Wabash">
+ <Hex name="G-1" tile="-903" value="40,70" city="Chicago"/>
+ <Hex name="G1" tile="0"/>
+ </IfOption>
<Hex name="G3" tile="0"/>
<Hex name="G5" tile="0"/>
<Hex name="G7" tile="-2"/>
@@ -80,26 +92,37 @@
<Hex name="G15" tile="0" cost="120"/>
<Hex name="G17" tile="-2"/>
<Hex name="G19" tile="-21" orientation="1" cost="80" city="New York"/>
- <Hex name="H2" tile="0"/>
+ <IfOption name="Variant" value="Wabash">
+ <Hex name="H-2" tile="0"/>
+ <Hex name="H0" tile="0"/>
+ <Hex name="H2" tile="-10"/>
+ </IfOption>
+ <IfOption name="Variant" value="Basegame,Pere Marquette,Reading,Coalfields,Coalfields&Reading">
+ <Hex name="H2" tile="0"/>
+ </IfOption>
<Hex name="H4" tile="-10"/>
<Hex name="H6" tile="0"/>
<Hex name="H8" tile="0"/>
<Hex name="H10" tile="-10"/>
- <IfOption name="Variant" value="Basegame,Pere Marquette">
+ <IfOption name="Variant" value="Basegame,Pere Marquette,Wabash">
<Hex name="H12" tile="-101" city="Altoona" runThrough="tokenOnly"/>
</IfOption>
<IfOption name="Variant" value="Coalfields,Reading,Coalfields&Reading">
<Hex name="H12" tile="-30003" pic="-30002" city="Altoona" runThrough="tokenOnly"/>
</IfOption>
- <IfOption name="Variant" value="Basegame,Pere Marquette,Coalfields">
+ <IfOption name="Variant" value="Basegame,Pere Marquette,Coalfields,Wabash">
<Hex name="H14" tile="0"/>
</IfOption>
<IfOption name="Variant" value="Reading,Coalfields&Reading">
<Hex name="H14" tile="-30007" pic="-30006" city="Reading" runThrough="tokenOnly"/>
</IfOption>
-
<Hex name="H16" tile="-10"/>
<Hex name="H18" tile="-20" label="OO"/>
+ <IfOption name="Variant" value="Wabash">
+ <Hex name="I-3" tile="-902" orientation="5" value="30,60" city="West"/>
+ <Hex name="I-1" tile="0"/>
+ <Hex name="I1" tile="0"/>
+ </IfOption>
<IfOption name="Variant" value="Basegame,Pere Marquette,Reading">
<Hex name="I1" tile="-901" orientation="5" value="30,60" city="Gulf"/>
</IfOption>
@@ -115,6 +138,11 @@
<Hex name="I15" tile="-11" label="B" city="Baltimore"/>
<Hex name="I17" tile="0" cost="80"/>
<Hex name="I19" tile="-3" orientation="2"/>
+ <IfOption name="Variant" value="Wabash">
+ <Hex name="J-2" tile="-902" orientation="5" value="30,60" city="West"/>
+ <Hex name="J0" tile="0"/>
+ <Hex name="J2" tile="-10" city="Cincinnati"/>
+ </IfOption>
<IfOption name="Variant" value="Basegame,Pere Marquette,Reading">
<Hex name="J2" tile="-902" orientation="5" value="30,60" city="Gulf"/>
</IfOption>
@@ -127,7 +155,7 @@
<Hex name="J10" tile="0" cost="120"/>
<Hex name="J12" tile="0" cost="120"/>
<Hex name="J14" tile="-10" cost="80" city="Washington"/>
- <IfOption name="Variant" value="Basegame,Pere Marquette">
+ <IfOption name="Variant" value="Basegame,Pere Marquette,Wabash">
<Hex name="K13" tile="-902" orientation="4" value="30,40" city="Deep South"/>
<Hex name="K15" tile="-104" orientation="3"/>
</IfOption>
Modified: trunk/18xx/data/1830/TileSet.xml
===================================================================
--- trunk/18xx/data/1830/TileSet.xml 2011-05-10 10:25:59 UTC (rev 1555)
+++ trunk/18xx/data/1830/TileSet.xml 2011-05-11 16:20:08 UTC (rev 1556)
@@ -16,7 +16,7 @@
<Upgrade id="57"/>
</Tile>
<Tile id="-11"><!-- B yellow -->
- <IfOption name="Variant" value="Basegame,Pere Marquette">
+ <IfOption name="Variant" value="Basegame,Pere Marquette,Wabash">
<Upgrade id="53"/>
</IfOption>
<IfOption name="Variant" value="Coalfields,Reading,Coalfields&Reading">
@@ -40,6 +40,7 @@
<Tile id="-903"/>
<Tile id="-908"/><!-- Coalfields: K1 -->
<Tile id="-939"/><!-- Coalfields: Chicago -->
+ <Tile id="-25007"/><!-- Wabash: D20-->
<Tile id="-30001"/><!-- Coalfields: N of Boston -->
<Tile id="-30003" pic="-30002"/><!-- Coalfields: Altoona -->
<Tile id="-30004"/><!-- Coalfields: Coalfields -->
@@ -82,6 +83,9 @@
<IfOption name="Variant" value="Basegame,Pere Marquette,Reading">
<Attributes quantity="4"/>
</IfOption>
+ <IfOption name="Variant" value="Wabash">
+ <Attributes quantity="5"/>
+ </IfOption>
<IfOption name="Variant" value="Coalfields,Coalfields&Reading">
<Attributes quantity="6"/>
</IfOption>
@@ -96,7 +100,7 @@
<!-- Green tiles -->
<Tile id="14">
- <IfOption name="Variant" value="Basegame,Pere Marquette,Reading">
+ <IfOption name="Variant" value="Basegame,Pere Marquette,Reading,Wabash">
<Attributes quantity="3"/>
</IfOption>
<IfOption name="Variant" value="Coalfields,Coalfields&Reading">
@@ -105,13 +109,15 @@
<Upgrade id="63" />
</Tile>
<Tile id="15" quantity="2">
- <IfOption name="Variant" value="Basegame,Pere Marquette,Reading">
- <Attributes quantity="2"/>
- </IfOption>
- <IfOption name="Variant" value="Coalfields,Coalfields&Reading">
+ <IfOption name="Variant" value="Coalfields,Coalfields&Reading,Wabash">
<Attributes quantity="3"/>
</IfOption>
- <Upgrade id="63" />
+ <IfOption name="Variant" value="Wabash">
+ <Upgrade id="63,448"/>
+ </IfOption>
+ <IfOption name="Variant" value="Basegame,Pere Marquette,Coalfields,Coalfields&Reading">
+ <Upgrade id="63" />
+ </IfOption>
</Tile>
<Tile id="16" quantity="1">
<Upgrade id="43,70" />
@@ -217,4 +223,7 @@
<IfOption name="Variant" value="Coalfields,Coalfields&Reading">
<Tile id="1717" extId="G17" quantity="1" />
</IfOption>
+ <IfOption name="Variant" value="Wabash">
+ <Tile id="448" quantity="2" />
+ </IfOption>
</TileManager>
\ No newline at end of file
Modified: trunk/18xx/data/1830/Tiles.xml
===================================================================
--- trunk/18xx/data/1830/Tiles.xml 2011-05-10 10:25:59 UTC (rev 1555)
+++ trunk/18xx/data/1830/Tiles.xml 2011-05-11 16:20:08 UTC (rev 1556)
@@ -93,6 +93,13 @@
<Track from="side3" gauge="normal" to="side2"/>
<Track from="side2" gauge="normal" to="side1"/>
</Tile>
+ <Tile colour="fixed" id="-25007" name="Bournemouth">
+ <Station id="city1" position="0" slots="1" type="City" value="20"/>
+ <Station id="city2" position="0" slots="1" type="City" value="20"/>
+ <Track from="side4" gauge="normal" to="city2"/>
+ <Track from="side5" gauge="normal" to="city2"/>
+ <Track from="side0" gauge="normal" to="city2"/>
+ </Tile>
<Tile colour="fixed" id="-30001" name="N of Boston">
<Track from="side3" gauge="normal" to="side5"/>
<Track from="side3" gauge="normal" to="side4"/>
@@ -433,4 +440,11 @@
<Track from="city1" gauge="normal" to="side3"/>
<Track from="city1" gauge="normal" to="side4"/>
</Tile>
+ <Tile colour="brown" id="448" name="1889 dc K brown">
+ <Station id="city1" position="0" slots="2" type="City" value="40"/>
+ <Track from="city1" gauge="normal" to="side0"/>
+ <Track from="city1" gauge="normal" to="side1"/>
+ <Track from="city1" gauge="normal" to="side2"/>
+ <Track from="city1" gauge="normal" to="side3"/>
+ </Tile>
</Tiles>
\ No newline at end of file
Modified: trunk/18xx/data/GamesList.xml
===================================================================
--- trunk/18xx/data/GamesList.xml 2011-05-10 10:25:59 UTC (rev 1555)
+++ trunk/18xx/data/GamesList.xml 2011-05-11 16:20:08 UTC (rev 1556)
@@ -28,7 +28,7 @@
- optionally, a default value (only affects a toggle;
in a dropdown the first item is always the default).
-->
- <Option name="Variant" values="Basegame,Pere Marquette,Coalfields,Reading,Coalfields&Reading" default="Basegame" />
+ <Option name="Variant" values="Basegame,Pere Marquette,Coalfields,Reading,Coalfields&Reading,Wabash" default="Basegame" />
<Option name="RouteAwareness" values="Highlight,Deactivate" default="Highlight" />
<Option name="RevenueCalculation" values="Suggest,Deactivate" default="Suggest" />
<Option name="NoMapMode" type="toggle" default="no" />
Modified: trunk/18xx/rails/game/MapHex.java
===================================================================
--- trunk/18xx/rails/game/MapHex.java 2011-05-10 10:25:59 UTC (rev 1555)
+++ trunk/18xx/rails/game/MapHex.java 2011-05-11 16:20:08 UTC (rev 1556)
@@ -205,8 +205,8 @@
if (getTileOrientation() == MapHex.EW) {
// Tiles with flat EW sides, letters go vertically.
// Most common case.
- // Tested for 1830 and 1870.
- x = (column + (letterAHasEvenNumbers() ? 1 : 0)) / 2;
+ // Tested for 1830 and 1870. OK with 1830 Wabash and 1825R2 (negative column numbers)
+ x = (column + 8 + (letterAHasEvenNumbers() ? 1 : 0)) / 2 - 4; // Divisor must be >0
y = row;
} else {
// Tiles with flat NS sides, letters go vertically.
@@ -389,6 +389,16 @@
public int getY() {
return y;
}
+
+ /** Add an X offset. Required to avoid negative coordinate values, as arise in 1830 Wabash. */
+ public void addX (int offset) {
+ x += offset;
+ }
+
+ /** Add an Y offset. Required to avoid negative coordinate values. */
+ public void addY (int offset) {
+ y += offset;
+ }
/**
* @return Returns the preprintedTileId.
Modified: trunk/18xx/rails/game/MapManager.java
===================================================================
--- trunk/18xx/rails/game/MapManager.java 2011-05-10 10:25:59 UTC (rev 1555)
+++ trunk/18xx/rails/game/MapManager.java 2011-05-11 16:20:08 UTC (rev 1556)
@@ -97,18 +97,35 @@
minRow = Math.min(minRow, hex.getRow());
maxCol = Math.max(maxCol, hex.getColumn());
maxRow = Math.max(maxRow, hex.getRow());
+ //log.debug("+++ Hex "+hex.getName()+" x="+hex.getX()+" y="+hex.getY()+" row="+hex.getRow()+" col="+hex.getColumn());
int[] tileCosts = hex.getTileCostAsArray();
for (int i=0; i<tileCosts.length; i++){
possibleTileCosts.add(tileCosts[i]);
}
}
log.debug("Possible tileCosts on map are "+possibleTileCosts);
+
+ int xOffset = 0;
+ int yOffset = 0;
+ if (minX < 0) {
+ xOffset = -minX;
+ maxX += xOffset;
+ minX = 0;
+ }
+ if (minY < 0) {
+ yOffset = -minY;
+ maxY += yOffset;
+ minY = 0;
+ }
hexes = new MapHex[1 + maxX][1 + maxY];
for (String hexName : mHexes.keySet()) {
hex = mHexes.get(hexName);
+ if (xOffset > 0) hex.addX(xOffset);
+ if (yOffset > 0) hex.addY(yOffset);
hexes[hex.getX()][hex.getY()] = hex;
+ //log.debug("--- Hex "+hex.getName()+" x="+hex.getX()+" y="+hex.getY()+" row="+hex.getRow()+" col="+hex.getColumn());
}
}
Modified: trunk/18xx/rails/game/StartRound.java
===================================================================
--- trunk/18xx/rails/game/StartRound.java 2011-05-10 10:25:59 UTC (rev 1555)
+++ trunk/18xx/rails/game/StartRound.java 2011-05-11 16:20:08 UTC (rev 1556)
@@ -150,7 +150,7 @@
return result;
}
- /** Stub to allow start packets cleanups in subclasses */
+ /** Stub to allow start packet cleanups in subclasses */
protected void startPacketChecks() {
return;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|