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. |