You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
(46) |
Dec
(57) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
(51) |
Feb
(10) |
Mar
|
Apr
|
May
(14) |
Jun
|
Jul
(13) |
Aug
(30) |
Sep
(83) |
Oct
(56) |
Nov
(148) |
Dec
(107) |
2010 |
Jan
(260) |
Feb
(164) |
Mar
(183) |
Apr
(99) |
May
(160) |
Jun
(40) |
Jul
(33) |
Aug
(48) |
Sep
(22) |
Oct
(24) |
Nov
(1) |
Dec
(12) |
2011 |
Jan
(6) |
Feb
(15) |
Mar
(13) |
Apr
(37) |
May
(27) |
Jun
(29) |
Jul
(33) |
Aug
(20) |
Sep
(17) |
Oct
(20) |
Nov
(33) |
Dec
(17) |
2012 |
Jan
(39) |
Feb
(38) |
Mar
(20) |
Apr
(21) |
May
(17) |
Jun
(22) |
Jul
(16) |
Aug
(3) |
Sep
(9) |
Oct
(10) |
Nov
|
Dec
|
From: Erik V. <ev...@us...> - 2010-02-11 21:59:00
|
Update of /cvsroot/rails/18xx/tiles In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv6342/tiles Modified Files: TileDictionary.18t Tiles.xml TileDictionary.xml Log Message: Fixed Toronto tile (rev. was 40, must be 30) Index: TileDictionary.xml =================================================================== RCS file: /cvsroot/rails/18xx/tiles/TileDictionary.xml,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** TileDictionary.xml 3 Feb 2010 19:58:05 -0000 1.15 --- TileDictionary.xml 11 Feb 2010 21:58:41 -0000 1.16 *************** *** 455,458 **** --- 455,462 ---- <junType>jtWhistlestop</junType> <position>tpCenter</position> + <revenue> + <value>10</value> + <position>tp3CornerA</position> + </revenue> </junction> </junctions> *************** *** 18934,18938 **** </connections> </tile> ! <tile> <ID>-89030</ID> <shape>tsHexagon</shape> --- 18938,18971 ---- </connections> </tile> ! <tile> ! <ID>-1143</ID> ! <shape>tsHexagon</shape> ! <level>tlMapFixed</level> ! <name>Bham1851</name> ! <junctions> ! <junction> ! <junType>jtWhistlestop</junType> ! <position>tpCenter</position> ! </junction> ! </junctions> ! <connections> ! <connection> ! <conType>ctNormal</conType> ! <position1>tp4SideF</position1> ! <position2>tpCenter</position2> ! </connection> ! <connection> ! <conType>ctNormal</conType> ! <position1>tpCenter</position1> ! <position2>tp4SideA</position2> ! </connection> ! <connection> ! <conType>ctNormal</conType> ! <position1>tpCenter</position1> ! <position2>tp4SideB</position2> ! </connection> ! </connections> ! </tile> ! <tile> <ID>-89030</ID> <shape>tsHexagon</shape> *************** *** 19097,19101 **** <ID>-89012</ID> <shape>tsHexagon</shape> ! <level>tlYellow</level> <name>1889 Takamatsu K5</name> <category> --- 19130,19134 ---- <ID>-89012</ID> <shape>tsHexagon</shape> ! <level>tlMapUpgradableToGreen</level> <name>1889 Takamatsu K5</name> <category> *************** *** 19134,19138 **** <ID>-89115</ID> <shape>tsHexagon</shape> ! <level>tlYellow</level> <name>1889 Ohzu C4</name> <category> --- 19167,19171 ---- <ID>-89115</ID> <shape>tsHexagon</shape> ! <level>tlMapUpgradableToGreen</level> <name>1889 Ohzu C4</name> <category> *************** *** 19465,19467 **** --- 19498,19540 ---- </connections> </tile> + <tile> + <ID>-56001</ID> + <shape>tsHexagon</shape> + <level>tlMapUpgradableToGreen</level> + <name>Toronto</name> + <category> + <value>Toronto</value> + <position>tp3SideA</position> + </category> + <junctions> + <junction> + <junType>jtCity</junType> + <position>tp2SideB</position> + <revenue> + <value>30</value> + <position>tp3SideF</position> + </revenue> + </junction> + <junction> + <junType>jtCity</junType> + <position>tp2SideE</position> + <revenue> + <value>30</value> + <position>tp3SideC</position> + </revenue> + </junction> + </junctions> + <connections> + <connection> + <conType>ctNormal</conType> + <position1>tp2SideE</position1> + <position2>tp4SideE</position2> + </connection> + <connection> + <conType>ctNormal</conType> + <position1>tp2SideB</position1> + <position2>tp4SideB</position2> + </connection> + </connections> + </tile> </tiles> \ No newline at end of file Index: TileDictionary.18t =================================================================== RCS file: /cvsroot/rails/18xx/tiles/TileDictionary.18t,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** TileDictionary.18t 3 Feb 2010 19:57:44 -0000 1.8 --- TileDictionary.18t 11 Feb 2010 21:58:11 -0000 1.9 *************** *** 14168,14171 **** --- 14168,14200 ---- RevenuePosition = tp3CornerF end> + end + item + Code = -56001 + LongName = 'Toronto' + Category = 'Toronto' + CategoryPosition = tp3SideA + Level = tlMapUpgradableToGreen + Connections = < + item + Position1 = tp2SideE + Position2 = tp4SideE + end + item + Position1 = tp2SideB + Position2 = tp4SideB + end> + Junctions = < + item + JunType = jtCity + Position = tp2SideB + Revenue = 30 + RevenuePosition = tp3SideF + end + item + JunType = jtCity + Position = tp2SideE + Revenue = 30 + RevenuePosition = tp3SideC + end> end> end Index: Tiles.xml =================================================================== RCS file: /cvsroot/rails/18xx/tiles/Tiles.xml,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** Tiles.xml 3 Feb 2010 20:06:05 -0000 1.24 --- Tiles.xml 11 Feb 2010 21:58:19 -0000 1.25 *************** *** 85,89 **** </Tile> <Tile colour="yellow" id="4" name="4"> ! <Station id="city1" position="0" type="Town"/> <Track from="city1" gauge="normal" to="side3"/> <Track from="city1" gauge="normal" to="side0"/> --- 85,89 ---- </Tile> <Tile colour="yellow" id="4" name="4"> ! <Station id="city1" position="0" type="Town" value="10"/> <Track from="city1" gauge="normal" to="side3"/> <Track from="city1" gauge="normal" to="side0"/> *************** *** 3326,3329 **** --- 3326,3335 ---- <Track from="side0" gauge="normal" to="side5"/> </Tile> + <Tile colour="fixed" id="-1143" name="Bham1851"> + <Station id="city1" position="0" type="Town"/> + <Track from="side5" gauge="normal" to="city1"/> + <Track from="city1" gauge="normal" to="side0"/> + <Track from="city1" gauge="normal" to="side1"/> + </Tile> <Tile colour="fixed" id="-89030" name="1889 B3"> <Station id="city1" position="252" type="Town" value="20"/> *************** *** 3413,3415 **** --- 3419,3427 ---- <Track from="city1" gauge="normal" to="side5"/> </Tile> + <Tile colour="yellow" id="-56001" name="Toronto"> + <Station id="city1" position="102" slots="1" type="City" value="30"/> + <Station id="city2" position="402" slots="1" type="City" value="30"/> + <Track from="city2" gauge="normal" to="side4"/> + <Track from="city1" gauge="normal" to="side1"/> + </Tile> </Tiles> \ No newline at end of file |
From: Erik V. <ev...@us...> - 2010-02-11 21:55:44
|
Update of /cvsroot/rails/18xx/rails/game In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv5991/rails/game Modified Files: Game.java Log Message: Added + to version number Index: Game.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/Game.java,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** Game.java 3 Feb 2010 05:17:44 -0000 1.48 --- Game.java 11 Feb 2010 21:55:30 -0000 1.49 *************** *** 12,16 **** public class Game { ! public static final String version = "1.1.3"; /** The component Manager */ --- 12,16 ---- public class Game { ! public static final String version = "1.1.3+"; /** The component Manager */ |
From: Erik V. <ev...@us...> - 2010-02-09 20:03:35
|
Update of /cvsroot/rails/18xx In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv14762 Modified Files: LocalisedText.properties Log Message: Improved sell shares message Index: LocalisedText.properties =================================================================== RCS file: /cvsroot/rails/18xx/LocalisedText.properties,v retrieving revision 1.107 retrieving revision 1.108 diff -C2 -d -r1.107 -r1.108 *** LocalisedText.properties 5 Feb 2010 19:59:12 -0000 1.107 --- LocalisedText.properties 9 Feb 2010 20:03:24 -0000 1.108 *************** *** 384,388 **** SELL_SHARES_LOG={0} sells {1} {2}% shares ({3}%) of {4} to Pool for {5}. SellHowManyShares=Sell how many shares? ! SellShares=Sell {0}% shares of {1} for {2} SET_REVENUE=Set Revenue SET_SCALE=Set Scale --- 384,388 ---- SELL_SHARES_LOG={0} sells {1} {2}% shares ({3}%) of {4} to Pool for {5}. SellHowManyShares=Sell how many shares? ! SellShares=Sell {0} {1}% share(s) ({2}%) of {3} for {4} SET_REVENUE=Set Revenue SET_SCALE=Set Scale |
From: Erik V. <ev...@us...> - 2010-02-09 20:03:32
|
Update of /cvsroot/rails/18xx/rails/ui/swing In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv14762/rails/ui/swing Modified Files: GameStatus.java Log Message: Improved sell shares message Index: GameStatus.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/ui/swing/GameStatus.java,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** GameStatus.java 31 Jan 2010 22:22:34 -0000 1.38 --- GameStatus.java 9 Feb 2010 20:03:24 -0000 1.39 *************** *** 523,527 **** for (int i = 1; i <= sale.getMaximumNumber(); i++) { options.add(LocalText.getText("SellShares", ! (i * sale.getShare()), sale.getCompanyName(), Bank.format(i * sale.getShareUnits() --- 523,529 ---- for (int i = 1; i <= sale.getMaximumNumber(); i++) { options.add(LocalText.getText("SellShares", ! i, ! sale.getShare(), ! i * sale.getShare(), sale.getCompanyName(), Bank.format(i * sale.getShareUnits() |
From: Erik V. <ev...@us...> - 2010-02-09 20:03:08
|
Update of /cvsroot/rails/18xx/rails/game In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv14687/rails/game Modified Files: StockRound.java Log Message: Allowing buying different size shares per company, if available (as in 1835). Index: StockRound.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/StockRound.java,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -d -r1.60 -r1.61 *** StockRound.java 6 Feb 2010 23:48:26 -0000 1.60 --- StockRound.java 9 Feb 2010 20:03:00 -0000 1.61 *************** *** 98,104 **** setSellableShares(); ! if (isPlayerOverLimits (currentPlayer)) return true; ! passAllowed = true; --- 98,104 ---- setSellableShares(); ! if (isPlayerOverLimits (currentPlayer)) return true; ! passAllowed = true; *************** *** 209,225 **** Map<String, List<PublicCertificateI>> map = from.getCertsPerCompanyMap(); for (String compName : map.keySet()) { certs = map.get(compName); if (certs == null || certs.isEmpty()) continue; ! number = certs.size(); ! cert = certs.get(0); ! comp = cert.getCompany(); ! if (isSaleRecorded(currentPlayer, comp)) continue; ! if (maxAllowedNumberOfSharesToBuy(currentPlayer, comp, ! cert.getShare()) < 1) continue; stockSpace = comp.getCurrentSpace(); price = stockSpace.getPrice(); if (companyBoughtThisTurn != null) { // If a cert was bought before, only brown zone ones can be --- 209,233 ---- Map<String, List<PublicCertificateI>> map = from.getCertsPerCompanyMap(); + /* Allow for multiple share unit certificates (e.g. 1835) */ + PublicCertificateI[] uniqueCerts; + int[] numberOfCerts; + int shares; + int shareUnit; + int maxNumberOfSharesToBuy; for (String compName : map.keySet()) { certs = map.get(compName); if (certs == null || certs.isEmpty()) continue; ! ! comp = certs.get(0).getCompany(); stockSpace = comp.getCurrentSpace(); price = stockSpace.getPrice(); + shareUnit = comp.getShareUnit(); + maxNumberOfSharesToBuy + = maxAllowedNumberOfSharesToBuy(currentPlayer, comp, shareUnit); + /* Checks if the player can buy any shares of this company */ + if (maxNumberOfSharesToBuy < 1) continue; + if (isSaleRecorded(currentPlayer, comp)) continue; if (companyBoughtThisTurn != null) { // If a cert was bought before, only brown zone ones can be *************** *** 228,250 **** if (!stockSpace.isNoBuyLimit()) continue; } - /* Only certs in the brown zone may be bought all at once */ - if (!stockSpace.isNoBuyLimit()) { - number = 1; - /* Would the player exceed the per-company share hold limit? */ - if (!mayPlayerBuyCompanyShare(currentPlayer, comp, number)) continue; ! /* Would the player exceed the total certificate limit? */ ! if (!stockSpace.isNoCertLimit() ! && !mayPlayerBuyCertificate(currentPlayer, comp, number)) ! continue; } ! // Does the player have enough cash? ! while (number > 0 && playerCash < number * price) ! number--; ! if (number > 0) { ! possibleActions.add(new BuyCertificate(cert, from, price, ! number)); } } --- 236,280 ---- if (!stockSpace.isNoBuyLimit()) continue; } ! /* Check what share multiples are available ! * Normally only 1, but 1 and 2 in 1835. Allow up to 4. ! */ ! uniqueCerts = new PublicCertificateI[5]; ! numberOfCerts = new int[5]; ! for (PublicCertificateI cert2 : certs) { ! shares = cert2.getShares(); ! if (maxNumberOfSharesToBuy < shares) continue; ! numberOfCerts[shares]++; ! if (uniqueCerts[shares] != null) continue; ! uniqueCerts[shares] = cert2; } ! /* Create a BuyCertificate action per share size */ ! for (shares = 1; shares < 5; shares++) { ! /* Only certs in the brown zone may be bought all at once */ ! number = numberOfCerts[shares]; ! if (number == 0) continue; ! if (!stockSpace.isNoBuyLimit()) { ! number = 1; ! /* Would the player exceed the per-company share hold limit? */ ! if (!mayPlayerBuyCompanyShare(currentPlayer, comp, number)) continue; ! ! /* Would the player exceed the total certificate limit? */ ! if (!stockSpace.isNoCertLimit() ! && !mayPlayerBuyCertificate(currentPlayer, comp, number)) ! continue; ! } ! ! // Does the player have enough cash? ! while (number > 0 && playerCash < number * price * shares) { ! number--; ! } ! ! if (number > 0) { ! possibleActions.add(new BuyCertificate(uniqueCerts[shares], ! from, price, ! number)); ! } } } *************** *** 339,343 **** * (e.g. 1835) companies may have different ordinary shares: 5% and * 10%, or 10% and 20%. The president's share counts as a multiple ! * of the lowest ordinary share unit type. */ // Take care for max. 4 share units per share --- 369,373 ---- * (e.g. 1835) companies may have different ordinary shares: 5% and * 10%, or 10% and 20%. The president's share counts as a multiple ! * of the smallest ordinary share unit type. */ // Take care for max. 4 share units per share |
From: Erik V. <ev...@us...> - 2010-02-09 20:02:10
|
Update of /cvsroot/rails/18xx/rails/game In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv14635/rails/game Modified Files: PublicCompanyI.java PublicCompany.java Log Message: Added canUseSpecialProperties() to enable excluding 1835 minors for using SPs. (Not yet used) Index: PublicCompany.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/PublicCompany.java,v retrieving revision 1.83 retrieving revision 1.84 diff -C2 -d -r1.83 -r1.84 *** PublicCompany.java 5 Feb 2010 19:56:32 -0000 1.83 --- PublicCompany.java 9 Feb 2010 20:02:02 -0000 1.84 *************** *** 148,151 **** --- 148,153 ---- protected boolean canBuyPrivates = false; + protected boolean canUseSpecialProperties = false; + /** * Minimum price for buying privates, to be multiplied by the original price *************** *** 320,323 **** --- 322,328 ---- } + Tag canUseSpecTag = tag.getChild("CanUseSpecialProperties"); + if (canUseSpecTag != null) canUseSpecialProperties = true; + // Extra info text(usually related to extra-share special properties) Tag infoTag = tag.getChild("Info"); *************** *** 1339,1343 **** } ! /** * Get the unit of share. * --- 1344,1352 ---- } ! public boolean canUseSpecialProperties() { ! return canUseSpecialProperties; ! } ! ! /** * Get the unit of share. * Index: PublicCompanyI.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/PublicCompanyI.java,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** PublicCompanyI.java 3 Feb 2010 20:16:40 -0000 1.44 --- PublicCompanyI.java 9 Feb 2010 20:02:02 -0000 1.45 *************** *** 59,62 **** --- 59,63 ---- */ public boolean canBuyPrivates(); + public boolean canUseSpecialProperties(); public boolean mustHaveOperatedToTradeShares(); *************** *** 254,258 **** public void updatePlayersWorth(); ! public boolean isSplitAllowed(); --- 255,259 ---- public void updatePlayersWorth(); ! public boolean isSplitAllowed(); |
From: Erik V. <ev...@us...> - 2010-02-09 20:00:48
|
Update of /cvsroot/rails/18xx/rails/game In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv14471/rails/game Modified Files: MapManager.java Log Message: Added getHexDistance() to calculate the "as a crow with passport flies" distance for 1835. Index: MapManager.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/MapManager.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** MapManager.java 8 Feb 2010 21:20:39 -0000 1.15 --- MapManager.java 9 Feb 2010 20:00:40 -0000 1.16 *************** *** 38,42 **** protected static Logger log = Logger.getLogger(MapManager.class.getPackage().getName()); ! public MapManager() { } --- 38,42 ---- protected static Logger log = Logger.getLogger(MapManager.class.getPackage().getName()); ! public MapManager() { } *************** *** 214,217 **** --- 214,269 ---- } + /** + * Calculate the distance between two hexes as in 1835, + * i.e. as "the crow without a passport flies". + * @param hex1 + * @param hex2 + * @return + */ + public int getHexDistance (MapHex hex1, MapHex hex2) { + Map<MapHex, Integer> passed = new HashMap<MapHex, Integer>(); + return calculateHexDistance (hex1, hex2, 1, passed); + } + + /** Helper method to calculate the distance between two hexes. + * Called recursively. */ + private int calculateHexDistance (MapHex hex1, MapHex hex2, int depth, + Map<MapHex, Integer> passed) { + + /* Map to sort the neighbours (roughly) into decreasing distance */ + SortedMap<Integer, MapHex> neighbours = new TreeMap<Integer, MapHex>(); + + for (MapHex hex3 : hex1.getNeighbors()) { + + if (hex3 == null) continue; + + // Are we finished? + if (hex3 == hex2) { + return 1; + } + + if (passed.containsKey(hex3) && passed.get(hex3) < depth - 1) { + // Backtrack + return -1; + } + // Sort neighbours on decreasing (rough) distance + int distance = Math.abs(hex2.getX() - hex3.getX()) + + Math.abs(hex2.getY() - hex3.getY()); + neighbours.put(distance, hex3); + } + passed.put (hex1, depth); + for (MapHex neighbour : neighbours.values()) { + if (passed.containsKey(neighbour)) continue; + int result = calculateHexDistance (neighbour, hex2, depth+1, passed); + if (result < 0) { + return 0; // Continue backtracking + } else if (result > 0) { + return result + 1; + } + // Continue loop if result == 0 + } + // Should never get here + return 0; + } } |
From: Erik V. <ev...@us...> - 2010-02-08 21:33:43
|
Update of /cvsroot/rails/18xx/.settings In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28690/.settings Modified Files: org.eclipse.core.resources.prefs Log Message: Unneeded Index: org.eclipse.core.resources.prefs =================================================================== RCS file: /cvsroot/rails/18xx/.settings/org.eclipse.core.resources.prefs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** org.eclipse.core.resources.prefs 3 Feb 2010 19:59:49 -0000 1.2 --- org.eclipse.core.resources.prefs 8 Feb 2010 21:33:28 -0000 1.3 *************** *** 1,11 **** - #Fri Jan 29 22:00:25 CET 2010 - eclipse.preferences.version=1 - encoding//tiles/TDwithID/tile0.svg=UTF-8 - encoding//tiles/handmade/tile-901.svg=UTF-8 - encoding//tiles/handmade/tile-902-inkscape.svg=UTF-8 - encoding//tiles/handmade/tile-902.svg=UTF-8 - encoding//tiles/handmade/tile-903-inkscape.svg=UTF-8 - encoding//tiles/handmade/tile-903.svg=UTF-8 - encoding//tiles/svg/tile-89031.svg=UTF-8 - encoding//tiles/svg/tile-902.svg=UTF-8 - encoding//tiles/svg/tile-903.svg=UTF-8 --- 0 ---- |
From: Erik V. <ev...@us...> - 2010-02-08 21:24:09
|
Update of /cvsroot/rails/18xx/rails/ui/swing/hexmap In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv27912/rails/ui/swing/hexmap Modified Files: GUIHex.java Log Message: Fixed buggy check on presence of tokens to prevent drawing the company home marker. This caused the disappearance of East Germany after laying the green Berlin tile in 1835, and also some spurious home marker drawings in other games. Index: GUIHex.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/ui/swing/hexmap/GUIHex.java,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** GUIHex.java 31 Jan 2010 22:22:36 -0000 1.36 --- GUIHex.java 8 Feb 2010 21:24:01 -0000 1.37 *************** *** 332,343 **** // Only draw the company name if there isn't yet a token of that company ! if (city.getTokens() != null) { ! for (TokenI token : city.getTokens()) { ! if (token instanceof BaseToken ! && ((BaseToken)token).getCompany() == company) { ! continue homes; ! } ! } ! } p = getTokenCenter (1, 0, getHexModel().getCities().size(), city.getNumber()-1); --- 332,337 ---- // Only draw the company name if there isn't yet a token of that company ! if (model.hasTokenOfCompany(company)) continue homes; ! p = getTokenCenter (1, 0, getHexModel().getCities().size(), city.getNumber()-1); *************** *** 404,407 **** --- 398,402 ---- private void paintStationTokens(Graphics2D g2) { + if (getHexModel().getCities().size() > 1) { paintSplitStations(g2); |
From: Erik V. <ev...@us...> - 2010-02-08 21:21:39
|
Update of /cvsroot/rails/18xx/rails/game In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv27688/rails/game Modified Files: MapManager.java Log Message: Added logger Index: MapManager.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/MapManager.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** MapManager.java 31 Jan 2010 22:22:28 -0000 1.14 --- MapManager.java 8 Feb 2010 21:20:39 -0000 1.15 *************** *** 4,7 **** --- 4,9 ---- import java.util.*; + import org.apache.log4j.Logger; + import rails.util.Tag; *************** *** 34,37 **** --- 36,42 ---- protected static final int[] yDeltaEW = new int[] { +1, 0, -1, -1, 0, +1 }; + protected static Logger log = + Logger.getLogger(MapManager.class.getPackage().getName()); + public MapManager() { } |
From: Erik V. <ev...@us...> - 2010-02-07 18:28:30
|
Update of /cvsroot/rails/18xx/rails/ui/swing In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv31362/rails/ui/swing Modified Files: ORUIManager.java Log Message: Fixed home tokenlay on (green) OO tiles Index: ORUIManager.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/ui/swing/ORUIManager.java,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** ORUIManager.java 6 Feb 2010 23:48:25 -0000 1.52 --- ORUIManager.java 7 Feb 2010 18:28:22 -0000 1.53 *************** *** 1141,1153 **** orWindow.requestFocus(); - // Check first action. - // If it's to lay a home token, handle that here - LayBaseToken lbt = possibleActions.getType(LayBaseToken.class).get(0); - if (lbt.getType() == LayBaseToken.HOME_CITY) { - map.setSelectedHex(map.getHexByName(lbt.getChosenHex().getName())); - layBaseToken (lbt); - return; - } - // Include bonus tokens List<LayToken> possibleTokenLays = --- 1141,1144 ---- *************** *** 1276,1281 **** possibleActions.getType(LayToken.class); for (LayToken tAction : tokenActions) { SpecialTokenLay stl = tAction.getSpecialProperty(); ! orPanel.addSpecialAction(tAction, stl.toMenu()); } } --- 1267,1282 ---- possibleActions.getType(LayToken.class); for (LayToken tAction : tokenActions) { + + if (tAction instanceof LayBaseToken + && ((LayBaseToken)tAction).getType() == LayBaseToken.HOME_CITY) { + // Forced action: select home city + LayBaseToken lbt = (LayBaseToken)tAction; + map.setSelectedHex(map.getHexByName(lbt.getChosenHex().getName())); + layBaseToken (lbt); + return; + + } SpecialTokenLay stl = tAction.getSpecialProperty(); ! if (stl != null) orPanel.addSpecialAction(tAction, stl.toMenu()); } } |
From: Erik V. <ev...@us...> - 2010-02-06 23:48:34
|
Update of /cvsroot/rails/18xx/rails/game In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9732/rails/game Modified Files: StockRound.java Portfolio.java OperatingRound.java Log Message: Allow special token lays at any time during OR. This has changed the way that OR steps are handled. These can now be used again in the UI. Goal was to enable the extra NF token lay in 1835 Index: Portfolio.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/Portfolio.java,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** Portfolio.java 31 Jan 2010 22:22:28 -0000 1.43 --- Portfolio.java 6 Feb 2010 23:48:26 -0000 1.44 *************** *** 623,629 **** * @return ArrayList of all special properties we have. */ ! public List<SpecialPropertyI> getSpecialProperties() { return specialProperties; } /** --- 623,640 ---- * @return ArrayList of all special properties we have. */ ! public List<SpecialPropertyI> getPersistentSpecialProperties() { return specialProperties; } + + public List<SpecialPropertyI> getAllSpecialProperties() { + List<SpecialPropertyI> sps = new ArrayList<SpecialPropertyI>(); + if (specialProperties != null) sps.addAll(specialProperties); + for (PrivateCompanyI priv : privateCompanies) { + if (priv.getSpecialProperties() != null) { + sps.addAll(priv.getSpecialProperties()); + } + } + return sps; + } /** *************** *** 655,659 **** && (owner instanceof Company && sp.isUsableIfOwnedByCompany() || owner instanceof Player && sp.isUsableIfOwnedByPlayer())) { ! log.debug("Adding private SP: " + sp); result.add((T) sp); } --- 666,670 ---- && (owner instanceof Company && sp.isUsableIfOwnedByCompany() || owner instanceof Player && sp.isUsableIfOwnedByPlayer())) { ! log.debug("Portfolio "+name+" has SP " + sp); result.add((T) sp); } *************** *** 669,673 **** && (owner instanceof Company && sp.isUsableIfOwnedByCompany() || owner instanceof Player && sp.isUsableIfOwnedByPlayer())) { ! log.debug("Adding persistent SP: " + sp); result.add((T) sp); } --- 680,684 ---- && (owner instanceof Company && sp.isUsableIfOwnedByCompany() || owner instanceof Player && sp.isUsableIfOwnedByPlayer())) { ! log.debug("Portfolio "+name+" has persistent SP " + sp); result.add((T) sp); } Index: OperatingRound.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/OperatingRound.java,v retrieving revision 1.97 retrieving revision 1.98 diff -C2 -d -r1.97 -r1.98 *** OperatingRound.java 4 Feb 2010 22:23:01 -0000 1.97 --- OperatingRound.java 6 Feb 2010 23:48:26 -0000 1.98 *************** *** 9,13 **** --- 9,15 ---- import rails.game.move.MapChange; import rails.game.special.*; + import rails.game.state.EnumState; import rails.game.state.IntegerState; + import rails.game.state.State; import rails.util.LocalText; *************** *** 20,24 **** /* Transient memory (per round only) */ ! protected IntegerState stepObject; protected boolean actionPossible = true; --- 22,26 ---- /* Transient memory (per round only) */ ! protected EnumState<GameDef.OrStep> stepObject; protected boolean actionPossible = true; *************** *** 64,90 **** protected PossibleAction savedAction = null; - //protected int cashToBeRaisedByPresident = 0; - public static final int SPLIT_ROUND_DOWN = 2; // More to the treasury ! public static final int STEP_INITIAL = 0; ! ! public static final int STEP_LAY_TRACK = 0; ! ! public static final int STEP_LAY_TOKEN = 1; ! ! public static final int STEP_CALC_REVENUE = 2; ! ! public static final int STEP_PAYOUT = 3; ! ! public static final int STEP_BUY_TRAIN = 4; ! ! public static final int STEP_TRADE_SHARES = 5; ! ! public static int STEP_FINAL = 6; ! ! protected static int[] steps = ! new int[] { STEP_LAY_TRACK, STEP_LAY_TOKEN, STEP_CALC_REVENUE, ! STEP_PAYOUT, STEP_BUY_TRAIN, STEP_TRADE_SHARES, STEP_FINAL }; // side steps --- 66,81 ---- protected PossibleAction savedAction = null; public static final int SPLIT_ROUND_DOWN = 2; // More to the treasury ! protected static GameDef.OrStep[] steps = ! new GameDef.OrStep[] { ! GameDef.OrStep.INITIAL, ! GameDef.OrStep.LAY_TRACK, ! GameDef.OrStep.LAY_TOKEN, ! GameDef.OrStep.CALC_REVENUE, ! GameDef.OrStep.PAYOUT, ! GameDef.OrStep.BUY_TRAIN, ! GameDef.OrStep.TRADE_SHARES, ! GameDef.OrStep.FINAL }; // side steps *************** *** 95,102 **** protected TrainManager trainManager = gameManager.getTrainManager(); - public static String[] stepNames = - new String[] { "LayTrack", "LayToken", "EnterRevenue", "Payout", - "BuyTrain", "TradeShares", "Final" }; - /** * Constructor with no parameters, call the super Class (Round's) Constructor with no parameters --- 86,89 ---- *************** *** 108,112 **** operatingCompanyArray = super.getOperatingCompanies(); ! guiHints.setVisibilityHint(GuiDef.Panel.STOCK_MARKET, false); guiHints.setVisibilityHint(GuiDef.Panel.STATUS, true); guiHints.setActivePanel(GuiDef.Panel.MAP); --- 95,99 ---- operatingCompanyArray = super.getOperatingCompanies(); ! guiHints.setVisibilityHint(GuiDef.Panel.STOCK_MARKET, false); guiHints.setVisibilityHint(GuiDef.Panel.STATUS, true); guiHints.setActivePanel(GuiDef.Panel.MAP); *************** *** 138,142 **** if (operate) { ! StringBuffer msg = new StringBuffer(); for (PublicCompanyI company : operatingCompanyArray) { msg.append(",").append(company.getName()); --- 125,129 ---- if (operate) { ! StringBuilder msg = new StringBuilder(); for (PublicCompanyI company : operatingCompanyArray) { msg.append(",").append(company.getName()); *************** *** 146,150 **** if (stepObject == null) { ! stepObject = new IntegerState("ORStep", -1); stepObject.addObserver(this); } --- 133,137 ---- if (stepObject == null) { ! stepObject = new EnumState<GameDef.OrStep>("ORStep", GameDef.OrStep.INITIAL); stepObject.addObserver(this); } *************** *** 153,157 **** if (setNextOperatingCompany(true)) { ! setStep(STEP_INITIAL); return; } --- 140,144 ---- if (setNextOperatingCompany(true)) { ! setStep(GameDef.OrStep.INITIAL); return; } *************** *** 297,301 **** } // Must be correct step ! if (getStep() != STEP_LAY_TRACK) { errMsg = LocalText.getText("WrongActionNoTileLay"); break; --- 284,288 ---- } // Must be correct step ! if (getStep() != GameDef.OrStep.LAY_TRACK) { errMsg = LocalText.getText("WrongActionNoTileLay"); break; *************** *** 493,498 **** // Checks ! // Must be correct step (exception: home base lay) ! if (getStep() != STEP_LAY_TOKEN && action.getType() != LayBaseToken.HOME_CITY) { errMsg = LocalText.getText("WrongActionNoTokenLay"); break; --- 480,487 ---- // Checks ! // Must be correct step (exception: home base lay & some special token lay) ! if (getStep() != GameDef.OrStep.LAY_TOKEN ! && action.getType() != LayBaseToken.HOME_CITY ! && action.getType() != LayBaseToken.SPECIAL_PROPERTY) { errMsg = LocalText.getText("WrongActionNoTokenLay"); break; *************** *** 589,592 **** --- 578,585 ---- } + + // Jump out if we aren't in the token laying step + if (getStep() != GameDef.OrStep.LAY_TOKEN) return true; + if (!extra) { currentNormalTokenLays.clear(); *************** *** 796,800 **** } // Must be correct step ! if (getStep() != STEP_CALC_REVENUE) { errMsg = LocalText.getText("WrongActionNoRevenue"); break; --- 789,793 ---- } // Must be correct step ! if (getStep() != GameDef.OrStep.CALC_REVENUE) { errMsg = LocalText.getText("WrongActionNoRevenue"); break; *************** *** 915,919 **** // We have done the payout step, so continue from there ! nextStep(STEP_PAYOUT); } --- 908,912 ---- // We have done the payout step, so continue from there ! nextStep(GameDef.OrStep.PAYOUT); } *************** *** 939,943 **** /** Take the next step after a given one (see nextStep()) */ ! protected void nextStep(int step) { // Cycle through the steps until we reach one where a user action is // expected. --- 932,936 ---- /** Take the next step after a given one (see nextStep()) */ ! protected void nextStep(GameDef.OrStep step) { // Cycle through the steps until we reach one where a user action is // expected. *************** *** 948,959 **** while (++stepIndex < steps.length) { step = steps[stepIndex]; ! log.debug("Step " + stepNames[step]); ! if (step == STEP_LAY_TOKEN && operatingCompany.getNumberOfFreeBaseTokens() == 0) { continue; } ! if (step == STEP_CALC_REVENUE) { if (!operatingCompany.canRunTrains()) { --- 941,952 ---- while (++stepIndex < steps.length) { step = steps[stepIndex]; ! log.debug("Step " + step); ! if (step == GameDef.OrStep.LAY_TOKEN && operatingCompany.getNumberOfFreeBaseTokens() == 0) { continue; } ! if (step == GameDef.OrStep.CALC_REVENUE) { if (!operatingCompany.canRunTrains()) { *************** *** 966,975 **** } ! if (step == STEP_PAYOUT) { // This step is now obsolete continue; } ! if (step == STEP_TRADE_SHARES) { // Is company allowed to trade trasury shares? --- 959,968 ---- } ! if (step == GameDef.OrStep.PAYOUT) { // This step is now obsolete continue; } ! if (step == GameDef.OrStep.TRADE_SHARES) { // Is company allowed to trade trasury shares? *************** *** 989,993 **** } ! if (step == STEP_FINAL) { finishTurn(); } else { --- 982,986 ---- } ! if (step == GameDef.OrStep.FINAL) { finishTurn(); } else { *************** *** 998,1002 **** /** Stub, can be overridden in subclasses to check for extra steps */ ! protected boolean gameSpecificNextStep (int step) { return true; } --- 991,995 ---- /** Stub, can be overridden in subclasses to check for extra steps */ ! protected boolean gameSpecificNextStep (GameDef.OrStep step) { return true; } *************** *** 1010,1013 **** --- 1003,1007 ---- operatingCompany.initTurn(); trainsBoughtThisTurn.clear(); + setStep (GameDef.OrStep.LAY_TRACK); } *************** *** 1017,1025 **** */ protected void prepareStep() { ! int step = stepObject.intValue(); ! if (step == STEP_LAY_TRACK) { getNormalTileLays(); ! } else if (step == STEP_LAY_TOKEN) { } else { --- 1011,1019 ---- */ protected void prepareStep() { ! GameDef.OrStep step = stepObject.value(); ! if (step == GameDef.OrStep.LAY_TRACK) { getNormalTileLays(); ! } else if (step == GameDef.OrStep.LAY_TOKEN) { } else { *************** *** 1161,1165 **** public void skip() { ! log.debug("Skip step " + stepObject.intValue()); moveStack.start(true); nextStep(); --- 1155,1159 ---- public void skip() { ! log.debug("Skip step " + stepObject.value()); moveStack.start(true); nextStep(); *************** *** 1193,1197 **** nextStep(); ! if (getStep() == STEP_FINAL) { finishTurn(); } --- 1187,1191 ---- nextStep(); ! if (getStep() == GameDef.OrStep.FINAL) { finishTurn(); } *************** *** 1214,1218 **** if (setNextOperatingCompany(false)) { ! setStep(STEP_INITIAL); } else { finishOR(); --- 1208,1212 ---- if (setNextOperatingCompany(false)) { ! setStep(GameDef.OrStep.INITIAL); } else { finishOR(); *************** *** 1287,1291 **** // Checks // Must be correct step ! if (getStep() != STEP_BUY_TRAIN) { errMsg = LocalText.getText("WrongActionNoTrainBuyingCost"); break; --- 1281,1285 ---- // Checks // Must be correct step ! if (getStep() != GameDef.OrStep.BUY_TRAIN) { errMsg = LocalText.getText("WrongActionNoTrainBuyingCost"); break; *************** *** 1494,1498 **** // Checks // Must be correct step ! if (getStep() != STEP_BUY_TRAIN && getStep() != STEP_DISCARD_TRAINS) { errMsg = LocalText.getText("WrongActionNoDiscardTrain"); break; --- 1488,1493 ---- // Checks // Must be correct step ! if (getStep() != GameDef.OrStep.BUY_TRAIN ! && getStep() != GameDef.OrStep.DISCARD_TRAINS) { errMsg = LocalText.getText("WrongActionNoDiscardTrain"); break; *************** *** 1537,1541 **** // otherwise continue train buying if (!checkForExcessTrains()) { ! stepObject.set(STEP_BUY_TRAIN); } --- 1532,1536 ---- // otherwise continue train buying if (!checkForExcessTrains()) { ! stepObject.set(GameDef.OrStep.BUY_TRAIN); } *************** *** 1890,1895 **** * @return The number that defines the next action. */ ! public int getStep() { ! return stepObject.intValue(); } --- 1885,1890 ---- * @return The number that defines the next action. */ ! public GameDef.OrStep getStep() { ! return (GameDef.OrStep) stepObject.getObject(); } *************** *** 1901,1907 **** * @param step */ ! protected void setStep(int step) { ! if (step == STEP_INITIAL) initTurn(); ! stepObject.set(step); --- 1896,1901 ---- * @param step */ ! protected void setStep(GameDef.OrStep step) { ! stepObject.set(step); *************** *** 1928,1935 **** selectedAction = null; - int step = getStep(); boolean forced = false; ! if (step == STEP_LAY_TRACK) { if (!operatingCompany.hasLaidHomeBaseTokens()) { --- 1922,1934 ---- selectedAction = null; boolean forced = false; + + if (getStep() == GameDef.OrStep.INITIAL) { + initTurn(); + setStep (GameDef.OrStep.LAY_TRACK); + } ! GameDef.OrStep step = getStep(); ! if (step == GameDef.OrStep.LAY_TRACK) { if (!operatingCompany.hasLaidHomeBaseTokens()) { *************** *** 1949,1953 **** } ! } else if (step == STEP_LAY_TOKEN) { setNormalTokenLays(); setSpecialTokenLays(); --- 1948,1952 ---- } ! } else if (step == GameDef.OrStep.LAY_TOKEN) { setNormalTokenLays(); setSpecialTokenLays(); *************** *** 1958,1964 **** possibleActions.addAll(currentSpecialTokenLays); possibleActions.add(new NullAction(NullAction.SKIP)); ! } else if (step == STEP_CALC_REVENUE) { prepareRevenueAndDividendAction(); ! } else if (step == STEP_BUY_TRAIN) { setBuyableTrains(); // TODO Need route checking here. --- 1957,1963 ---- possibleActions.addAll(currentSpecialTokenLays); possibleActions.add(new NullAction(NullAction.SKIP)); ! } else if (step == GameDef.OrStep.CALC_REVENUE) { prepareRevenueAndDividendAction(); ! } else if (step == GameDef.OrStep.BUY_TRAIN) { setBuyableTrains(); // TODO Need route checking here. *************** *** 1968,1972 **** doneAllowed = true; //} ! } else if (step == STEP_DISCARD_TRAINS) { setTrainsToDiscard(); } --- 1967,1973 ---- doneAllowed = true; //} ! } else if (step == GameDef.OrStep.DISCARD_TRAINS) { ! ! forced = true; setTrainsToDiscard(); } *************** *** 1974,1978 **** // The following additional "common" actions are only available if the // primary action is not forced. ! if (step >= 0 && !forced) { setBonusTokenLays(); --- 1975,1979 ---- // The following additional "common" actions are only available if the // primary action is not forced. ! if (!forced) { setBonusTokenLays(); *************** *** 2024,2027 **** --- 2025,2057 ---- } } + + // Are there other step-independent special properties owned by the company? + List<SpecialPropertyI> orsps = operatingCompany.getPortfolio().getAllSpecialProperties(); + if (orsps != null) { + for (SpecialPropertyI sp : orsps) { + if (!sp.isExercised() && sp.isUsableIfOwnedByCompany() + && sp.isUsableDuringOR()) { + if (sp instanceof SpecialTokenLay) { + possibleActions.add(new LayBaseToken((SpecialTokenLay)sp)); + } else { + possibleActions.add(new UseSpecialProperty(sp)); + } + } + } + } + // Are there other step-independent special properties owned by teh president? + orsps = getCurrentPlayer().getPortfolio().getAllSpecialProperties(); + if (orsps != null) { + for (SpecialPropertyI sp : orsps) { + if (!sp.isExercised() && sp.isUsableIfOwnedByPlayer() + && sp.isUsableDuringOR()) { + if (sp instanceof SpecialTokenLay) { + possibleActions.add(new LayBaseToken((SpecialTokenLay)sp)); + } else { + possibleActions.add(new UseSpecialProperty(sp)); + } + } + } + } } *************** *** 2308,2312 **** @Override public String getHelp() { ! int step = getStep(); StringBuffer b = new StringBuffer(); b.append("<big>Operating round: ").append(thisOrNumber).append( --- 2338,2342 ---- @Override public String getHelp() { ! GameDef.OrStep step = getStep(); StringBuffer b = new StringBuffer(); b.append("<big>Operating round: ").append(thisOrNumber).append( *************** *** 2316,2341 **** ") has the turn."); b.append("<br><br>Currently allowed actions:"); ! if (step == STEP_LAY_TRACK) { b.append("<br> - Lay a tile"); b.append("<br> - Press 'Done' if you do not want to lay a tile"); ! } else if (step == STEP_LAY_TOKEN) { b.append("<br> - Lay a base token or press Done"); b.append("<br> - Press 'Done' if you do not want to lay a base"); ! } else if (step == STEP_CALC_REVENUE) { b.append("<br> - Enter new revenue amount"); b.append("<br> - Press 'Done' if your revenue is zero"); ! } else if (step == STEP_PAYOUT) { b.append("<br> - Choose how the revenue will be paid out"); ! } else if (step == STEP_BUY_TRAIN) { b.append("<br> - Buy one or more trains"); b.append("<br> - Press 'Done' to finish your turn"); } /* TODO: The below if needs be refined. */ if (getCurrentPhase().isPrivateSellingAllowed() ! && step != STEP_PAYOUT) { b.append("<br> - Buy one or more Privates"); } ! if (step == STEP_LAY_TRACK) { b.append("<br><br><b>Tile laying</b> proceeds as follows:"); b.append("<br><br> 1. On the map, select the hex that you want to lay a new tile upon."); --- 2346,2378 ---- ") has the turn."); b.append("<br><br>Currently allowed actions:"); ! switch (step) { ! case LAY_TRACK: b.append("<br> - Lay a tile"); b.append("<br> - Press 'Done' if you do not want to lay a tile"); ! break; ! case LAY_TOKEN: b.append("<br> - Lay a base token or press Done"); b.append("<br> - Press 'Done' if you do not want to lay a base"); ! break; ! case CALC_REVENUE: b.append("<br> - Enter new revenue amount"); b.append("<br> - Press 'Done' if your revenue is zero"); ! break; ! case PAYOUT: b.append("<br> - Choose how the revenue will be paid out"); ! break; ! case BUY_TRAIN: b.append("<br> - Buy one or more trains"); b.append("<br> - Press 'Done' to finish your turn"); + break; } + /* TODO: The below if needs be refined. */ if (getCurrentPhase().isPrivateSellingAllowed() ! && step != GameDef.OrStep.PAYOUT) { b.append("<br> - Buy one or more Privates"); } ! if (step == GameDef.OrStep.LAY_TRACK) { b.append("<br><br><b>Tile laying</b> proceeds as follows:"); b.append("<br><br> 1. On the map, select the hex that you want to lay a new tile upon."); Index: StockRound.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/StockRound.java,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -d -r1.59 -r1.60 *** StockRound.java 5 Feb 2010 19:58:45 -0000 1.59 --- StockRound.java 6 Feb 2010 23:48:26 -0000 1.60 *************** *** 384,388 **** SpecialProperty.class, false); for (SpecialPropertyI sp : sps) { ! possibleActions.add(new UseSpecialProperty(sp)); } } --- 384,390 ---- SpecialProperty.class, false); for (SpecialPropertyI sp : sps) { ! if (sp.isUsableDuringSR()) { ! possibleActions.add(new UseSpecialProperty(sp)); ! } } } |
From: Erik V. <ev...@us...> - 2010-02-06 23:48:34
|
Update of /cvsroot/rails/18xx/rails/game/state In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9732/rails/game/state Added Files: EnumState.java Log Message: Allow special token lays at any time during OR. This has changed the way that OR steps are handled. These can now be used again in the UI. Goal was to enable the extra NF token lay in 1835 --- NEW FILE: EnumState.java --- /* $Header: /cvsroot/rails/18xx/rails/game/state/EnumState.java,v 1.1 2010/02/06 23:48:25 evos Exp $*/ package rails.game.state; public class EnumState<E extends Enum> extends State implements StateI { public EnumState(String name, E object) { super (name, object); } public E value() { return (E)object; } } |
From: Erik V. <ev...@us...> - 2010-02-06 23:48:34
|
Update of /cvsroot/rails/18xx/rails/ui/swing In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9732/rails/ui/swing Modified Files: ORUIManager.java Log Message: Allow special token lays at any time during OR. This has changed the way that OR steps are handled. These can now be used again in the UI. Goal was to enable the extra NF token lay in 1835 Index: ORUIManager.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/ui/swing/ORUIManager.java,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** ORUIManager.java 3 Feb 2010 20:21:16 -0000 1.51 --- ORUIManager.java 6 Feb 2010 23:48:25 -0000 1.52 *************** *** 34,38 **** private int orCompIndex; ! private int orStep; private int localStep; --- 34,38 ---- private int orCompIndex; ! private GameDef.OrStep orStep; private int localStep; *************** *** 283,286 **** --- 283,294 ---- prepareBonusToken((LayBonusToken) actions.get(0)); + + } else if (actionType == LayBaseToken.class) { + + /* Only used outside the token laying step */ + // Can currently handle only one location! + LayBaseToken lbt = (LayBaseToken) actions.get(0); + map.selectHex(map.getHexByName(lbt.getLocations().get(0).getName())); + layBaseToken (lbt); } else if (actionType == BuyBonusToken.class) { *************** *** 304,307 **** --- 312,320 ---- repayLoans ((RepayLoans)actions.get(0)); + + } else if (actionType == UseSpecialProperty.class) { + + useSpecialProperty ((UseSpecialProperty)actions.get(0)); + } *************** *** 1071,1074 **** --- 1084,1095 ---- } } + + /** Used to process some special properties from the 'Special' menu */ + /* In fact currently not used */ + protected void useSpecialProperty (UseSpecialProperty action) { + + gameUIManager.processOnServer(action); + + } public void updateStatus() { *************** *** 1093,1098 **** log.debug("Or comp index = " + orCompIndex+" in round "+oRound.getRoundName()); log.debug("OR company = " + orComp.getName()); ! log.debug("OR step=" + orStep + " " ! + (orStep >= 0 ? OperatingRound.stepNames[orStep] : "")); if (oRound.getOperatingCompanyIndex() != orCompIndex) { --- 1114,1118 ---- log.debug("Or comp index = " + orCompIndex+" in round "+oRound.getRoundName()); log.debug("OR company = " + orComp.getName()); ! log.debug("OR step=" + orStep); if (oRound.getOperatingCompanyIndex() != orCompIndex) { *************** *** 1106,1110 **** orPanel.initPrivateBuying(privatesCanBeBoughtNow); ! if (possibleActions.contains(LayTile.class)) { orPanel.initTileLayingStep(); --- 1126,1131 ---- orPanel.initPrivateBuying(privatesCanBeBoughtNow); ! //if (possibleActions.contains(LayTile.class)) { ! if (orStep == GameDef.OrStep.LAY_TRACK) { orPanel.initTileLayingStep(); *************** *** 1115,1119 **** mapRelatedActions.addAll(possibleActions.getType(LayTile.class)); ! } else if (possibleActions.contains(LayBaseToken.class)) { orWindow.requestFocus(); --- 1136,1141 ---- mapRelatedActions.addAll(possibleActions.getType(LayTile.class)); ! //} else if (possibleActions.contains(LayBaseToken.class)) { ! } else if (orStep == GameDef.OrStep.LAY_TOKEN) { orWindow.requestFocus(); *************** *** 1199,1203 **** orPanel.enableLoanRepayment (possibleActions.getType(RepayLoans.class).get(0)); ! } else if (orStep == OperatingRound.STEP_FINAL) { // Does not occur??? orPanel.finishORCompanyTurn(orCompIndex); --- 1221,1225 ---- orPanel.enableLoanRepayment (possibleActions.getType(RepayLoans.class).get(0)); ! } else if (orStep == GameDef.OrStep.FINAL) { // Does not occur??? orPanel.finishORCompanyTurn(orCompIndex); *************** *** 1207,1211 **** orPanel.enableLoanTaking (possibleActions.getType(TakeLoans.class).get(0)); } ! setMapRelatedActions(mapRelatedActions); --- 1229,1233 ---- orPanel.enableLoanTaking (possibleActions.getType(TakeLoans.class).get(0)); } ! setMapRelatedActions(mapRelatedActions); *************** *** 1246,1264 **** orPanel.initSpecialActions(); ! // Bonus tokens can be laid anytime, so we must also handle ! // these outside the token laying step. ! if (possibleActions.contains(LayBonusToken.class) ! && !possibleActions.contains(LayBaseToken.class)) { ! List<LayBonusToken> bonusTokenActions = ! possibleActions.getType(LayBonusToken.class); ! for (LayBonusToken btAction : bonusTokenActions) { ! SpecialTokenLay stl = btAction.getSpecialProperty(); ! //BonusToken token = (BonusToken) stl.getToken(); ! //String text = ! // LocalText.getText("LayBonusToken", ! // token.toString(), ! // stl.getLocationCodeString() ); ! orPanel.addSpecialAction(btAction, stl.toMenu()); } } --- 1268,1281 ---- orPanel.initSpecialActions(); ! // Bonus tokens (and sometimes base tokens) can be laid anytime, ! // so we must also handle these outside the token laying step. ! if (possibleActions.contains(LayToken.class) ! && orStep != GameDef.OrStep.LAY_TOKEN) { ! List<LayToken> tokenActions = ! possibleActions.getType(LayToken.class); ! for (LayToken tAction : tokenActions) { ! SpecialTokenLay stl = tAction.getSpecialProperty(); ! orPanel.addSpecialAction(tAction, stl.toMenu()); } } *************** *** 1284,1287 **** --- 1301,1314 ---- LocalText.getText("DestinationsReached")); } + + // Any other special properties, to be shown in the "Special" menu. + // (Currently not used) + if (possibleActions.contains(UseSpecialProperty.class)) { + for (UseSpecialProperty usp : possibleActions.getType(UseSpecialProperty.class)) { + SpecialPropertyI sp = usp.getSpecialProperty(); + orPanel.addSpecialAction(usp, sp.getInfo()); + } + } + checkForGameSpecificActions(); |
From: Erik V. <ev...@us...> - 2010-02-06 23:48:34
|
Update of /cvsroot/rails/18xx/rails/game/specific/_1856 In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9732/rails/game/specific/_1856 Modified Files: OperatingRound_1856.java Log Message: Allow special token lays at any time during OR. This has changed the way that OR steps are handled. These can now be used again in the UI. Goal was to enable the extra NF token lay in 1835 Index: OperatingRound_1856.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/specific/_1856/OperatingRound_1856.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** OperatingRound_1856.java 31 Jan 2010 22:22:32 -0000 1.29 --- OperatingRound_1856.java 6 Feb 2010 23:48:26 -0000 1.30 *************** *** 20,37 **** private Player playerToStartLoanRepayment = null; - public static final int STEP_REPAY_LOANS = 6; - static { - STEP_FINAL = 7; ! steps = ! new int[] { STEP_LAY_TRACK, STEP_LAY_TOKEN, STEP_CALC_REVENUE, ! STEP_PAYOUT, STEP_BUY_TRAIN, STEP_TRADE_SHARES, ! STEP_REPAY_LOANS, STEP_FINAL }; ! ! stepNames = ! new String[] { "LayTrack", "LayToken", "EnterRevenue", "Payout", ! "BuyTrain", "TradeShares", "RepayLoans", "Final" }; ! } public OperatingRound_1856 (GameManagerI gameManager) { --- 20,37 ---- private Player playerToStartLoanRepayment = null; static { ! steps = new GameDef.OrStep[] { ! GameDef.OrStep.INITIAL, ! GameDef.OrStep.LAY_TRACK, ! GameDef.OrStep.LAY_TOKEN, ! GameDef.OrStep.CALC_REVENUE, ! GameDef.OrStep.PAYOUT, ! GameDef.OrStep.BUY_TRAIN, ! GameDef.OrStep.TRADE_SHARES, ! GameDef.OrStep.REPAY_LOANS, ! GameDef.OrStep.FINAL ! }; ! } public OperatingRound_1856 (GameManagerI gameManager) { *************** *** 319,323 **** } ! if (getStep() == STEP_REPAY_LOANS) { // Has company any outstanding loans to repay? --- 319,323 ---- } ! if (getStep() == GameDef.OrStep.REPAY_LOANS) { // Has company any outstanding loans to repay? *************** *** 421,425 **** // Deduct interest immediately? ! if (stepObject.intValue() > STEP_PAYOUT) { amount -= calculateLoanInterest(numberOfLoans); } --- 421,425 ---- // Deduct interest immediately? ! if (((GameDef.OrStep) stepObject.getObject()).compareTo(GameDef.OrStep.PAYOUT) > 0) { amount -= calculateLoanInterest(numberOfLoans); } *************** *** 436,442 **** @Override ! protected boolean gameSpecificNextStep (int step) { ! if (step == STEP_REPAY_LOANS) { // Has company any outstanding loans to repay? --- 436,442 ---- @Override ! protected boolean gameSpecificNextStep (GameDef.OrStep step) { ! if (step == GameDef.OrStep.REPAY_LOANS) { // Has company any outstanding loans to repay? *************** *** 469,473 **** if (!resetOperatingCompanies(mergingCompanies)) return; if (operatingCompany != null) { ! setStep(STEP_INITIAL); } else { finishOR(); --- 469,473 ---- if (!resetOperatingCompanies(mergingCompanies)) return; if (operatingCompany != null) { ! setStep(GameDef.OrStep.INITIAL); } else { finishOR(); |
From: Erik V. <ev...@us...> - 2010-02-06 23:48:34
|
Update of /cvsroot/rails/18xx/rails/game/specific/_1835 In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9732/rails/game/specific/_1835 Modified Files: StockRound_1835.java Log Message: Allow special token lays at any time during OR. This has changed the way that OR steps are handled. These can now be used again in the UI. Goal was to enable the extra NF token lay in 1835 Index: StockRound_1835.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/specific/_1835/StockRound_1835.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** StockRound_1835.java 31 Jan 2010 22:22:30 -0000 1.5 --- StockRound_1835.java 6 Feb 2010 23:48:26 -0000 1.6 *************** *** 23,27 **** * The company release rules for 1835. * ! * For now these rules are hardcoded (which makes this code vulnerablt * to company name changes!). It did not seem worthwhile to * invent come complex XML for the unique 1835 rules on this matter. --- 23,27 ---- * The company release rules for 1835. * ! * For now these rules are hardcoded (which makes this code vulnerable * to company name changes!). It did not seem worthwhile to * invent come complex XML for the unique 1835 rules on this matter. |
From: Erik V. <ev...@us...> - 2010-02-06 23:48:34
|
Update of /cvsroot/rails/18xx/rails/common In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9732/rails/common Modified Files: GuiDef.java Log Message: Allow special token lays at any time during OR. This has changed the way that OR steps are handled. These can now be used again in the UI. Goal was to enable the extra NF token lay in 1835 Index: GuiDef.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/common/GuiDef.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** GuiDef.java 31 Jan 2010 22:22:27 -0000 1.2 --- GuiDef.java 6 Feb 2010 23:48:26 -0000 1.3 *************** *** 21,25 **** return defaultClassName; } ! } public static String getDefaultClassName (ClassName key) { --- 21,25 ---- return defaultClassName; } ! } public static String getDefaultClassName (ClassName key) { *************** *** 51,53 **** STOCK_MARKET } ! } --- 51,54 ---- STOCK_MARKET } ! ! } |
From: Erik V. <ev...@us...> - 2010-02-06 23:48:33
|
Update of /cvsroot/rails/18xx/rails/game/special In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9732/rails/game/special Modified Files: SpecialPropertyI.java SpecialProperty.java Log Message: Allow special token lays at any time during OR. This has changed the way that OR steps are handled. These can now be used again in the UI. Goal was to enable the extra NF token lay in 1835 Index: SpecialProperty.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/special/SpecialProperty.java,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** SpecialProperty.java 3 Feb 2010 05:37:55 -0000 1.23 --- SpecialProperty.java 6 Feb 2010 23:48:26 -0000 1.24 *************** *** 19,24 **** --- 19,30 ---- protected int closingValue = 0; protected BooleanState exercised; + + /* Usability conditions. Not all of these are already being used. */ protected boolean usableIfOwnedByPlayer = false; protected boolean usableIfOwnedByCompany = false; + protected boolean usableDuringSR = false; + protected boolean usableDuringOR = false; + protected boolean usableDuringTileLayingStep = false; + protected boolean usableDuringTokenLayingStep = false; protected String conditionText = ""; *************** *** 65,69 **** throw new ConfigurationException( "Missing condition in private special property"); ! // to be interpreted... transferText = tag.getAttributeAsString("transfer", ""); --- 71,80 ---- throw new ConfigurationException( "Missing condition in private special property"); ! setUsableDuringSR(whenText.equalsIgnoreCase("anyTurn") ! || whenText.equalsIgnoreCase("srTurn")); ! setUsableDuringOR(whenText.equalsIgnoreCase("anyTurn") ! || whenText.equalsIgnoreCase("orTurn")); ! setUsableDuringTileLayingStep(whenText.equalsIgnoreCase("tileLayingStep")); ! setUsableDuringTokenLayingStep(whenText.equalsIgnoreCase("tokenLayingStep")); transferText = tag.getAttributeAsString("transfer", ""); *************** *** 129,132 **** --- 140,176 ---- this.usableIfOwnedByPlayer = usableIfOwnedByPlayer; } + + + public boolean isUsableDuringOR() { + return usableDuringOR; + } + + public void setUsableDuringOR(boolean usableDuringOR) { + this.usableDuringOR = usableDuringOR; + } + + public boolean isUsableDuringSR() { + return usableDuringSR; + } + + public void setUsableDuringSR(boolean usableDuringSR) { + this.usableDuringSR = usableDuringSR; + } + + public boolean isUsableDuringTileLayingStep() { + return usableDuringTileLayingStep; + } + + public void setUsableDuringTileLayingStep(boolean usableDuringTileLayingStep) { + this.usableDuringTileLayingStep = usableDuringTileLayingStep; + } + + public boolean isUsableDuringTokenLayingStep() { + return usableDuringTokenLayingStep; + } + + public void setUsableDuringTokenLayingStep(boolean usableDuringTokenLayingStep) { + this.usableDuringTokenLayingStep = usableDuringTokenLayingStep; + } public void setExercised() { Index: SpecialPropertyI.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/special/SpecialPropertyI.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** SpecialPropertyI.java 19 Jan 2010 19:54:42 -0000 1.8 --- SpecialPropertyI.java 6 Feb 2010 23:48:26 -0000 1.9 *************** *** 23,26 **** --- 23,42 ---- public void setUsableIfOwnedByPlayer(boolean usableIfOwnedByPlayer); + public boolean isUsableDuringOR(); + + public void setUsableDuringOR(boolean usableDuringOR); + + public boolean isUsableDuringSR(); + + public void setUsableDuringSR(boolean usableDuringSR); + + public boolean isUsableDuringTileLayingStep(); + + public void setUsableDuringTileLayingStep(boolean usableDuringTileLayingStep); + + public boolean isUsableDuringTokenLayingStep(); + + public void setUsableDuringTokenLayingStep(boolean usableDuringTokenLayingStep); + public void setExercised(); |
From: Erik V. <ev...@us...> - 2010-02-06 23:46:06
|
Update of /cvsroot/rails/18xx/data/18Kaas In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9140/data/18Kaas Modified Files: CompanyManager.xml Log Message: Changed value of a when condition Index: CompanyManager.xml =================================================================== RCS file: /cvsroot/rails/18xx/data/18Kaas/CompanyManager.xml,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** CompanyManager.xml 31 Jan 2010 22:16:03 -0000 1.10 --- CompanyManager.xml 6 Feb 2010 23:45:55 -0000 1.11 *************** *** 40,44 **** <Blocking hex="D9"/> <SpecialProperties> ! <SpecialProperty condition="ifOwnedByPlayer" when="anyTime" class="rails.game.special.ExchangeForShare"> <ExchangeForShare company="NYC" share="10"/> </SpecialProperty> --- 40,44 ---- <Blocking hex="D9"/> <SpecialProperties> ! <SpecialProperty condition="ifOwnedByPlayer" when="anyTurn" class="rails.game.special.ExchangeForShare"> <ExchangeForShare company="NYC" share="10"/> </SpecialProperty> |
From: Erik V. <ev...@us...> - 2010-02-06 23:46:03
|
Update of /cvsroot/rails/18xx/data/1830 In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9140/data/1830 Modified Files: CompanyManager.xml Log Message: Changed value of a when condition Index: CompanyManager.xml =================================================================== RCS file: /cvsroot/rails/18xx/data/1830/CompanyManager.xml,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** CompanyManager.xml 4 Feb 2010 21:27:59 -0000 1.33 --- CompanyManager.xml 6 Feb 2010 23:45:55 -0000 1.34 *************** *** 47,51 **** <Blocking hex="D18"/> <SpecialProperties> ! <SpecialProperty condition="ifOwnedByPlayer" when="anyTime" class="rails.game.special.ExchangeForShare"> <ExchangeForShare company="NYC" share="10"/> </SpecialProperty> --- 47,51 ---- <Blocking hex="D18"/> <SpecialProperties> ! <SpecialProperty condition="ifOwnedByPlayer" when="anyTurn" class="rails.game.special.ExchangeForShare"> <ExchangeForShare company="NYC" share="10"/> </SpecialProperty> |
From: Erik V. <ev...@us...> - 2010-02-06 23:46:03
|
Update of /cvsroot/rails/18xx/data/1835 In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9140/data/1835 Modified Files: CompanyManager.xml Log Message: Changed value of a when condition Index: CompanyManager.xml =================================================================== RCS file: /cvsroot/rails/18xx/data/1835/CompanyManager.xml,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** CompanyManager.xml 4 Feb 2010 21:27:59 -0000 1.24 --- CompanyManager.xml 6 Feb 2010 23:45:55 -0000 1.25 *************** *** 30,34 **** <Company name="NF" longname="Nürnberg-Fürth" type="Private" basePrice="100" revenue="5"> <SpecialProperties> ! <SpecialProperty condition="ifOwnedByPlayer" when="tokenLayingStep" class="rails.game.special.SpecialTokenLay"> <SpecialTokenLay location="L14" extra="yes" free="yes"/> </SpecialProperty> --- 30,34 ---- <Company name="NF" longname="Nürnberg-Fürth" type="Private" basePrice="100" revenue="5"> <SpecialProperties> ! <SpecialProperty condition="ifOwnedByPlayer" when="orTurn" class="rails.game.special.SpecialTokenLay"> <SpecialTokenLay location="L14" extra="yes" free="yes"/> </SpecialProperty> *************** *** 56,60 **** <SpecialTileLay location="J6" extra="yes" free="yes" /> </SpecialProperty> ! <SpecialProperty condition="ifOwnedByPlayer" when="tokenLayingStep" class="rails.game.special.SpecialTokenLay"> <SpecialTokenLay location="J6" extra="yes" free="yes"/> </SpecialProperty> --- 56,60 ---- <SpecialTileLay location="J6" extra="yes" free="yes" /> </SpecialProperty> ! <SpecialProperty condition="ifOwnedByPlayer" when="orTurn" class="rails.game.special.SpecialTokenLay"> <SpecialTokenLay location="J6" extra="yes" free="yes"/> </SpecialProperty> |
From: Erik V. <ev...@us...> - 2010-02-06 23:46:03
|
Update of /cvsroot/rails/18xx/data/1889 In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9140/data/1889 Modified Files: CompanyManager.xml Log Message: Changed value of a when condition Index: CompanyManager.xml =================================================================== RCS file: /cvsroot/rails/18xx/data/1889/CompanyManager.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CompanyManager.xml 3 Feb 2010 05:37:54 -0000 1.1 --- CompanyManager.xml 6 Feb 2010 23:45:54 -0000 1.2 *************** *** 83,87 **** longName="Dougo Railway"> <SpecialProperties> ! <SpecialProperty condition="ifOwnedByPlayer" when="anyTime" class="rails.game.special.ExchangeForShare"> <ExchangeForShare company="IR" share="10"/> </SpecialProperty> --- 83,87 ---- longName="Dougo Railway"> <SpecialProperties> ! <SpecialProperty condition="ifOwnedByPlayer" when="anyTurn" class="rails.game.special.ExchangeForShare"> <ExchangeForShare company="IR" share="10"/> </SpecialProperty> |
From: Erik V. <ev...@us...> - 2010-02-06 23:45:32
|
Update of /cvsroot/rails/18xx/rails/game In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9020/rails/game Modified Files: GameDef.java Log Message: Added OrStep enum Index: GameDef.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/GameDef.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** GameDef.java 31 Jan 2010 22:22:28 -0000 1.3 --- GameDef.java 6 Feb 2010 23:45:21 -0000 1.4 *************** *** 30,32 **** --- 30,53 ---- } + /** + * OR step values + * @author Erik + */ + public enum OrStep { + + INITIAL, + LAY_TRACK, + LAY_TOKEN, + CALC_REVENUE, + PAYOUT, + BUY_TRAIN, + TRADE_SHARES, + REPAY_LOANS, + FINAL, + + /* Out-of-sequence steps*/ + DISCARD_TRAINS; + + } + } |
From: Erik V. <ev...@us...> - 2010-02-06 23:45:17
|
Update of /cvsroot/rails/18xx/rails/game/action In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv8890/rails/game/action Modified Files: UseSpecialProperty.java Log Message: Added comment Index: UseSpecialProperty.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/action/UseSpecialProperty.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** UseSpecialProperty.java 31 Oct 2009 17:08:27 -0000 1.5 --- UseSpecialProperty.java 6 Feb 2010 23:45:04 -0000 1.6 *************** *** 13,16 **** --- 13,18 ---- /** + * This class can only be used to offer a Special Property to the UI that does + * NOT need any return parameters. Example: the M&H/NYC swap in 1830. * @author Erik Vos */ |
From: Stefan F. <ste...@us...> - 2010-02-06 14:58:52
|
Update of /cvsroot/rails/18xx/data In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv32667/data Modified Files: GamesList.xml Log Message: Updated 1889 description Index: GamesList.xml =================================================================== RCS file: /cvsroot/rails/18xx/data/GamesList.xml,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** GamesList.xml 3 Feb 2010 05:37:55 -0000 1.22 --- GamesList.xml 6 Feb 2010 14:58:42 -0000 1.23 *************** *** 89,94 **** </Game> ! <Game name="1889"> ! <Note>Only Beginner fully playable</Note> <Description>1889 - History of Shikoku Railways (c) 2003-2006 Yasutaka Ikeda --- 89,94 ---- </Game> ! <Game name="1889"> ! <Note>Fully playable (see Description)</Note> <Description>1889 - History of Shikoku Railways (c) 2003-2006 Yasutaka Ikeda *************** *** 96,105 **** Limitations: ! - Enforced share selling allows change of director in other company (see rule 10.6.2) ! - Special properties of privates not implemented yet (Advanced Game only) ! </Description> <Players minimum="2" maximum="6"/> ! <Option name="BeginnerGame" type="toggle" default="yes" /> <Option name="WithOptional6Train" type="toggle" default="no"/> <Option name="UnlimitedTopTrains" parm="D" type="toggle" default="no"/> --- 96,106 ---- Limitations: ! - Private B: Building of Port tile only possible at the tile laying step of a public company with the same owner. ! - Private C: Laying of green tile on C4 only possible at the tile laying step of the new company owner, not immediately after sale by ! selling player. ! - Forced Selling: Change of director in other company is not prevented by Rails (see rule 10.6.2) </Description> <Players minimum="2" maximum="6"/> ! <Option name="BeginnerGame" type="toggle" default="no" /> <Option name="WithOptional6Train" type="toggle" default="no"/> <Option name="UnlimitedTopTrains" parm="D" type="toggle" default="no"/> |