You can subscribe to this list here.
2005 |
Jan
|
Feb
(25) |
Mar
(84) |
Apr
(76) |
May
(25) |
Jun
(1) |
Jul
(28) |
Aug
(23) |
Sep
(50) |
Oct
(46) |
Nov
(65) |
Dec
(76) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(60) |
Feb
(33) |
Mar
(4) |
Apr
(17) |
May
(16) |
Jun
(18) |
Jul
(131) |
Aug
(11) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
(5) |
2007 |
Jan
(71) |
Feb
|
Mar
|
Apr
|
May
(6) |
Jun
(19) |
Jul
(40) |
Aug
(38) |
Sep
(7) |
Oct
(58) |
Nov
|
Dec
(10) |
2008 |
Jan
(17) |
Feb
(27) |
Mar
(12) |
Apr
(1) |
May
(50) |
Jun
(10) |
Jul
|
Aug
(15) |
Sep
(24) |
Oct
(64) |
Nov
(115) |
Dec
(47) |
2009 |
Jan
(30) |
Feb
(1) |
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
(5) |
Aug
|
Sep
|
Oct
(4) |
Nov
(132) |
Dec
(93) |
2010 |
Jan
(266) |
Feb
(120) |
Mar
(168) |
Apr
(127) |
May
(83) |
Jun
(93) |
Jul
(77) |
Aug
(77) |
Sep
(86) |
Oct
(30) |
Nov
(4) |
Dec
(22) |
2011 |
Jan
(48) |
Feb
(81) |
Mar
(198) |
Apr
(174) |
May
(72) |
Jun
(101) |
Jul
(236) |
Aug
(144) |
Sep
(54) |
Oct
(132) |
Nov
(94) |
Dec
(111) |
2012 |
Jan
(135) |
Feb
(166) |
Mar
(86) |
Apr
(85) |
May
(137) |
Jun
(83) |
Jul
(54) |
Aug
(29) |
Sep
(49) |
Oct
(37) |
Nov
(8) |
Dec
(6) |
2013 |
Jan
(2) |
Feb
|
Mar
(1) |
Apr
(14) |
May
(5) |
Jun
(15) |
Jul
|
Aug
(38) |
Sep
(44) |
Oct
(45) |
Nov
(40) |
Dec
(23) |
2014 |
Jan
(22) |
Feb
(63) |
Mar
(43) |
Apr
(60) |
May
(10) |
Jun
(5) |
Jul
(13) |
Aug
(57) |
Sep
(36) |
Oct
(2) |
Nov
(30) |
Dec
(27) |
2015 |
Jan
(5) |
Feb
(2) |
Mar
(14) |
Apr
(3) |
May
|
Jun
(3) |
Jul
(10) |
Aug
(63) |
Sep
(31) |
Oct
(26) |
Nov
(11) |
Dec
(6) |
2016 |
Jan
|
Feb
(11) |
Mar
|
Apr
|
May
(1) |
Jun
(16) |
Jul
|
Aug
(4) |
Sep
|
Oct
(1) |
Nov
(4) |
Dec
(1) |
2017 |
Jan
(2) |
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
(20) |
Jul
(4) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(6) |
Nov
|
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
(10) |
May
(10) |
Jun
(1) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
(3) |
Apr
(9) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(7) |
Dec
(4) |
2021 |
Jan
(5) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Mark S. <mar...@gm...> - 2008-10-31 20:56:35
|
Erik, Note in the PublicCompany Class, the routine to get the ParPrice, and hasParPrice are checking the boolean flag 'hasParPrice. What I really don't understand is why have this boolean at all? If the company has a Par Price, the variable 'parPrice' will NOT be null. If it is null, than there is no Par Price. Now, if you are trying to use the boolean hasParPrice to indicate that the Company is available for purchase, then it should be named 'availableForPurchase'. This way you can have a "Fixed" Par Price set before you can actually buy the stock. But your "fix" to change line 178 to 'if (comp.getParPrice() != null) {' moves the test from the PublicCompany Class back out to the setBuyableCerts Class which I feel is not right right way to fix it. If you have the 'hasParPrice' routine perform the test instead it would be a better solution. Mark On Fri, Oct 31, 2008 at 3:41 PM, Erik Vos <eri...@hc...> wrote: > I have provisionally fixed the bug reported by Mark. Company starts now > seem > to work again. > Over the weekend I will try to rationalise the company price routines. It's > indeed a bit of a mess. > > Erik. > > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > |
From: Erik V. <eri...@hc...> - 2008-10-31 20:41:40
|
I have provisionally fixed the bug reported by Mark. Company starts now seem to work again. Over the weekend I will try to rationalise the company price routines. It's indeed a bit of a mess. Erik. |
From: Brett L. <wak...@gm...> - 2008-10-31 20:22:22
|
On Fri, 2008-10-31 at 15:16 -0500, Mark Smith wrote: > OK -- Remind silly me how to subscribe to the mailing list. > To subscribe, go here: https://lists.sourceforge.net/lists/listinfo/rails-commits > I thought it was as simple as sending an e-mail to > rai...@li... with the subject of 'Subscribe' > and body containing 'Subscribe'. I tried that, and it bounced because > I did not know of the destination address. > > Alternatively, which I feel would be better is how do I set up an RSS > Reader if I had the proper URL that would spit out that results... > like those listed on > > https://sourceforge.net/export/rss2_project.php?group_id=132173 > > Would that be possible? > Unfortunately, there's not a clear way to provide an rss feed of the mailing list. I'm sure it's technically possible, but the amount of effort involved makes it impractical. Also, as a mailing list, it allows you to quickly compose a reply e-mail without ever leaving your mail client. > Mark ---Brett. Did you know that clones never use mirrors? -- Ambrose Bierce, "The Devil's Dictionary" > On Fri, Oct 31, 2008 at 1:09 PM, Brett Lentz <wak...@gm...> > wrote: > On Fri, 2008-10-31 at 10:50 -0700, Brett Lentz wrote: > > Note: I *just* submitted the request to create the mailing > list, so > > it'll take 6-24 hours to actually show up and allow people > to subscribe. > > > > It appears that the mailing list is up and running. Subscribe > away. > > > ---Brett. > > I'd give my right arm to be ambidextrous. > > > > |
From: Erik V. <eri...@hc...> - 2008-10-31 20:18:31
|
> > I didn't find it worthwhile to invent an XML > > structure to make all these rules configurable. > > I agree -- since Java can load classes dynamically, it is > better to write > code in a real programming language than trying to extend XML to be a > programming language. > > A long time ago I used the same approach for a Java implementation of > Cosmic Encounter (the cards all have arbitrary powers that > alter the rules > of the game). New cards could be loaded by just including additional > jars in a directory, and the game loaded all the cards that > were defined > there. Perhaps Rails could be structured such that support > for new games > could be delivered the same way, once the core supported all the > mechanisms that any of the games might need. Yes, that is more of less my goal as well. I regularly find myself adding more hooks to load classes dynamically. Erik. |
From: Mark S. <mar...@gm...> - 2008-10-31 20:16:42
|
OK -- Remind silly me how to subscribe to the mailing list. I thought it was as simple as sending an e-mail to rai...@li... with the subject of 'Subscribe' and body containing 'Subscribe'. I tried that, and it bounced because I did not know of the destination address. Alternatively, which I feel would be better is how do I set up an RSS Reader if I had the proper URL that would spit out that results... like those listed on https://sourceforge.net/export/rss2_project.php?group_id=132173 Would that be possible? Mark On Fri, Oct 31, 2008 at 1:09 PM, Brett Lentz <wak...@gm...> wrote: > On Fri, 2008-10-31 at 10:50 -0700, Brett Lentz wrote: > > Note: I *just* submitted the request to create the mailing list, so > > it'll take 6-24 hours to actually show up and allow people to subscribe. > > > It appears that the mailing list is up and running. Subscribe away. > > > ---Brett. > > I'd give my right arm to be ambidextrous. > > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > |
From: Erik V. <eri...@hc...> - 2008-10-31 20:14:24
|
I pulled down your latest updates, and went to see if I could resolve the 18AL Bug report about not being able to upgrade tiles... and ran into a bug in your updates, that generates a NULL Pointer when trying to purchase the last Private (giving out the President's Share). It looks like in the StockRound Class, the setBuyableCerts routine (line 179) attempts to get the cost of the purchase with the call: price = comp.getParPrice().getPrice () * cert.getShares (); When I look at the PublicCompany.java Class, and the GetParPrice routine, it is checking the flag "hasParPrice" -- which is set to -TRUE- (this is wrong since the price has not been set yet via dialog). and then it returns: return parPrice != null? parPrice.getPrice() : null; and if -FALSE- it returns: return currentPrice != null ? currentPrice.getPrice () : null; In the -TRUE- Case, it will return the parPrice StockSpace. In the -FALSE- case, it is returning the Current Stock Value, and not the Par Price Value which is implied by the routine name. So if the -hasParPrice- variable is NOT set, it tries to get the currentPrice. And this should not be set either... This routine looks wierd. Yes, I think it actually means "getInitialPrice" or such, although it seems to be used in various ways. But hasParPrice() only means that a company has a fixed price for buying unsold certificates. In many games, all shares are sold at current market price, even from IPO (although I think in most cases unsold shares are moved to the company treasury when a company floats). In that case hasParPrice() is false. Would it make sense to add a routine like: public int getParPrice () { /* Get the ParPrice StockSpace with the first getPrice call, and get the actual int value with the second call */ return parPrice != null ? parPrice.getPrice().getPrice() : 0; } So if you want the Int Value of the Par Price... you call the routine, and allow JAVA to use the appropriate routine? In this case like 179 of StockRound.java would be: price = comp.getParPrice () * cert.getShares (); Note, it Appears in 1830 I can set price for B&O, and buy it, but once the Stock Round starts, I have no stocks available to buy in the IPO. And I get the same NULL Pointer Exception on Line 179 of Stock Round. OK, my recent changes appear to have broken this. In StockRound, I had to move around code a bit to enable buying non-president shares before starting a company, as is allowed in some games for "government companies", like the 1835 Prussian and the 18Scan SJ, but I had not really tested that "normal" company starts would still work :-( I'll sort this out today or tomorrow. This whole matter clearly needs a closer look. I'll look at your suggestions as well. Erik. |
From: Brett L. <wak...@gm...> - 2008-10-31 18:09:46
|
On Fri, 2008-10-31 at 10:50 -0700, Brett Lentz wrote: > Note: I *just* submitted the request to create the mailing list, so > it'll take 6-24 hours to actually show up and allow people to subscribe. It appears that the mailing list is up and running. Subscribe away. ---Brett. I'd give my right arm to be ambidextrous. |
From: Brett L. <wak...@gm...> - 2008-10-31 17:00:10
|
Now that we're seeing more activity, and more discussion about specific commits, I've finally completed one of the more long-standing items on my todo list: I've created a rails-commits mailing list, and set up cvs syncmail to send commits to that list. Note: I *just* submitted the request to create the mailing list, so it'll take 6-24 hours to actually show up and allow people to subscribe. Anyone interested in following our commit activity should subscribe. However, any discussion about the commit should still happen on the rails-devel mailing list. Please consider the rails-commits list a read-only list. ---Brett. Better by far you should forget and smile than that you should remember and be sad. -- Christina Rossetti |
From: Mark S. <mar...@gm...> - 2008-10-31 13:46:03
|
Erik, I pulled down your latest updates, and went to see if I could resolve the 18AL Bug report about not being able to upgrade tiles... and ran into a bug in your updates, that generates a NULL Pointer when trying to purchase the last Private (giving out the President's Share). It looks like in the StockRound Class, the setBuyableCerts routine (line 179) attempts to get the cost of the purchase with the call: price = comp.getParPrice().getPrice () * cert.getShares (); When I look at the PublicCompany.java Class, and the GetParPrice routine, it is checking the flag "hasParPrice" -- which is set to -TRUE- (this is wrong since the price has not been set yet via dialog). and then it returns: return parPrice != null? parPrice.getPrice() : null; and if -FALSE- it returns: return currentPrice != null ? currentPrice.getPrice () : null; In the -TRUE- Case, it will return the parPrice StockSpace. In the -FALSE- case, it is returning the Current Stock Value, and not the Par Price Value which is implied by the routine name. So if the -hasParPrice- variable is NOT set, it tries to get the currentPrice. And this should not be set either... This routine looks wierd. Would it make sense to add a routine like: public int getParPrice () { /* Get the ParPrice StockSpace with the first getPrice call, and get the actual int value with the second call */ return parPrice != null ? parPrice.getPrice().getPrice() : 0; } So if you want the Int Value of the Par Price... you call the routine, and allow JAVA to use the appropriate routine? In this case like 179 of StockRound.java would be: price = comp.getParPrice () * cert.getShares (); Note, it Appears in 1830 I can set price for B&O, and buy it, but once the Stock Round starts, I have no stocks available to buy in the IPO. And I get the same NULL Pointer Exception on Line 179 of Stock Round. Mark On Thu, Oct 30, 2008 at 5:53 PM, John A. Tamplin <ja...@ja...> wrote: > On Thu, 30 Oct 2008, Erik Vos wrote: > > > I didn't find it worthwhile to invent an XML > > structure to make all these rules configurable. > > I agree -- since Java can load classes dynamically, it is better to write > code in a real programming language than trying to extend XML to be a > programming language. > > A long time ago I used the same approach for a Java implementation of > Cosmic Encounter (the cards all have arbitrary powers that alter the rules > of the game). New cards could be loaded by just including additional > jars in a directory, and the game loaded all the cards that were defined > there. Perhaps Rails could be structured such that support for new games > could be delivered the same way, once the core supported all the > mechanisms that any of the games might need. > > -- > John A. Tamplin ja...@ja... > 770/436-5387 HOME 4116 Manson Ave > Smyrna, GA 30082-3723 > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > |
From: John A. T. <ja...@ja...> - 2008-10-30 22:53:55
|
On Thu, 30 Oct 2008, Erik Vos wrote: > I didn't find it worthwhile to invent an XML > structure to make all these rules configurable. I agree -- since Java can load classes dynamically, it is better to write code in a real programming language than trying to extend XML to be a programming language. A long time ago I used the same approach for a Java implementation of Cosmic Encounter (the cards all have arbitrary powers that alter the rules of the game). New cards could be loaded by just including additional jars in a directory, and the game loaded all the cards that were defined there. Perhaps Rails could be structured such that support for new games could be delivered the same way, once the core supported all the mechanisms that any of the games might need. -- John A. Tamplin ja...@ja... 770/436-5387 HOME 4116 Manson Ave Smyrna, GA 30082-3723 |
From: Erik V. <eri...@hc...> - 2008-10-30 21:57:55
|
I have implemented initial unavailability of shares. This applies to 1856 (CGR) and 1835 (most companies). The complex IPO share availability rules of 1835 have been hardcoded in a new class StockRound_1835. This includes the 4 10% Prussian shares that come available when the Badische starts (the Prussian exchange rules have not been implemented yet). I didn't find it worthwhile to invent an XML structure to make all these rules configurable. Testing the share buying rules of 1835 also uncovered several bugs and missing features, so quite a number of classes have been affected. Erik Vos |
From: Erik V. <eri...@hc...> - 2008-10-26 21:01:11
|
I have started work on completing 1856 by configuring part of those private special properties that have been implemented before in other games: those of W&SR and Canada and the Port token. The Bridge and Tunnel tokens are conceptually new and need more work. I have also started to unify the various half-baked approaches in configuring the conditions under which some privates are closed when their special properties are exercised. The new approach is based upon the <ClosingConditions> tag already existing (but unused) in 1835. The syntax has been changed, though. Not all closing condition types have yet been brought under this umbrella, there is still special code for the 1830 M&H/NYC swap and some other cases. Erik Vos |
From: Mark S. <mar...@gm...> - 2008-10-25 21:15:22
|
I have been writing up some documentation about my Tile Definitions, I can post it to a Mail thread or as a separate pair of files. One is a PDF. I will prepare an updated Archive of my functioning code base that will include this documentation, plus a couple of changes. 1. The new archive will draw the map cells without any tiles and a base terrain of CLEAR as a pale green. I have setup the routine to draw based upon a Terrain Color array so that it can be read from an XML Data file. This File could be generic, with an overriding one for each game, and/or each user. 2. The new archive will also draw the Revenue Values in a black circle (no fill). I have gone and looked at my copies, and I see some variations -- For Grey & Yellow tiles it is drawn as black circle with black text. For Green and Brown, it appears to be drawn as White circle with White Text. This is problematical, because by the time the Revenue value is drawn, it is several calls deep within drawing the Tile itself. The base tile type is not currently passed down to it. I have done a couple of tests and for every tile type except BROWN, it is drawn in black and has good contrast (at least to my eye). I tried pushing the tile type down in the various calls and ran into an unexpected clog, so I backed it out to just removing the fill color. 3. The new archive also will not draw the city names. This eliminated several of the overlapping attributes. Commented out one line of code. Given the page of documentation, the PDF File that lays out the various locations, It might be worth me sending in an update to my archive. |
From: Mark S. <mar...@gm...> - 2008-10-25 13:52:56
|
OK from both of your latest responses, and the Blackwater Station site ( 18xx.net) implies that two (or more) trains could come and connect through the junction. Or with alternate drawings of the tiles listed per John David Gault on 18xx all basically re-enforces my original statement that a Junction has no real function, code, or drawing requirements. And depending on how the XML TIle Definition is coded up, I have confidence my current code base can draw them both ways. In fact I already draw both examples in my 1853 Tile Set: Tile 106 - Represents a Junction at Dual Guage, Tile 82 - Represents a Junction type, with Sharp and Gentle Curves. Mark On Sat, Oct 25, 2008 at 8:35 AM, Erik Vos <eri...@hc...> wrote: > With regards to your Junction example, of some games allow re-use, and > some don't. Which ones don't allow a junction re-use? and What tile numbers > (at least one example) so I can tell how it is drawn/represented. Given it > is on Blackwater Station site. > > Tiles 544-546. These can also be drawn as any-to-any plain track > connections with 4 edges, but as that would be ugly, drawing has been > simplified this way. > The XML representation of these tiles in the current Rails Tiles.xml (the > generic one) will show you what I mean. > Here the XML intentionally differs from the drawing, as I thought in > this way route finding would be easier . > > It's the same thing with tiles 80-83, which are drawn in two different ways > that, however, are functionally identical. > (you might also want to look at http://www.18xx.info/tiles/green.html on > John Tamplin's site). > > Erik. > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > > |
From: Erik V. <eri...@hc...> - 2008-10-25 13:35:29
|
With regards to your Junction example, of some games allow re-use, and some don't. Which ones don't allow a junction re-use? and What tile numbers (at least one example) so I can tell how it is drawn/represented. Given it is on Blackwater Station site. Tiles 544-546. These can also be drawn as any-to-any plain track connections with 4 edges, but as that would be ugly, drawing has been simplified this way. The XML representation of these tiles in the current Rails Tiles.xml (the generic one) will show you what I mean. Here the XML intentionally differs from the drawing, as I thought in this way route finding would be easier . It's the same thing with tiles 80-83, which are drawn in two different ways that, however, are functionally identical. (you might also want to look at http://www.18xx.info/tiles/green.html on John Tamplin's site). Erik. |
From: Chris S. <chr...@gm...> - 2008-10-25 13:35:12
|
> With regards to your Junction example, of some games allow re-use, and some > don't. Which ones don't allow a junction re-use? and What tile numbers (at > least one example) so I can tell how it is drawn/represented. Given it is on > Blackwater Station site. Tiles 544, 545, 546 are examples. http://www.18xx.net/tiles/e544.htm The 18Scan rules address such tiles with the following rule: "The junction in the middle of a green or brown plain track tile is not considered part of any track segment." 18EU says "Trains may not use track used by any of the Corporation's or Minor Company's other trains in the same Operating Round, except for junctions." Thus, in 18Scan and 18EU, two trains could run through tile 544. However, now that I go looking, I can't find specific examples of the contrary case. I remember there being a contrary example, but perhaps my memory is faulty. -- Chris Please consider the environment before printing this e-mail. |
From: Mark S. <mar...@gm...> - 2008-10-25 13:17:40
|
OK... the option could certainly be "No Dead End Track Segments on RED Tiles... " With regards to your Junction example, of some games allow re-use, and some don't. Which ones don't allow a junction re-use? and What tile numbers (at least one example) so I can tell how it is drawn/represented. Given it is on Blackwater Station site. On Sat, Oct 25, 2008 at 7:40 AM, Chris Shaffer <chr...@gm...>wrote: > > For the 1844 H Trains, that is yet another train that would have a > > configuration option "No Dead End Track Segments allowed". > > Yup - it's a bit more complicated though - they are allowed to visit > several types of dead end track segments (e.g. mountains and > pre-printed grey hexes) but not *red* dead end track segments. > > -- > Chris > > Please consider the environment before printing this e-mail. > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel > |
From: Chris S. <chr...@gm...> - 2008-10-25 12:40:38
|
> For the 1844 H Trains, that is yet another train that would have a > configuration option "No Dead End Track Segments allowed". Yup - it's a bit more complicated though - they are allowed to visit several types of dead end track segments (e.g. mountains and pre-printed grey hexes) but not *red* dead end track segments. -- Chris Please consider the environment before printing this e-mail. |
From: Mark S. <mar...@gm...> - 2008-10-25 12:14:31
|
Chris, All good points. Given your example games, I will at this point have to plead ignorance. Each of those games came out after I had stopped playing 18xx steadily 10 years ago. Implementing a Junction to allow re-use and preventing re-use would not be a big issue with my code base. My Tile drawing techniques was implemented with the thought of each train a company owns would use independent track, and could be shown in different colors. Probably the TGV train would be a configuration item that would override the track-reuse testing, and draw it not as a colored track, but as maybe a dashed pattern. Or drawn alongside the track... have to think about it more. For the maps I have so far loaded up (1830, 1835, 1853, 1856, 1870) they all do match the printed boards. I have copies of each. I also have 1829 (North and South), and 1837 which I have not coded up yet. But I should work on 18EU and the other maps that Rails currently supports to be sure they work properly also. I am not saying my code will handle all possible variations, but until I come across something that does it differently, I will stand by my claim. (Or it can be fixed) For the 1844 H Trains, that is yet another train that would have a configuration option "No Dead End Track Segments allowed". For 18Scan that requires an off-board token yet another configuration option "Off Board Token Require for Off Board Use" Thanks for the input and new items I had not had privy too. Mark |
From: Chris S. <chr...@gm...> - 2008-10-25 01:23:34
|
> 5. I use the term Revenue Center specifically, because it is an object that > produces revenue. A Junction is simply a connection point between two or > more track segments. I don't see a Junction object as having any real value. > Or put another way, I double a Junction object would have any code at all > associated with it, and no data either. It is purely an abstract concept. Some games allow re-use of the tiny bit of track at the center of a plain track X tile, others do not. Thus, in some cases, a junction is an important concept. > The code base is designed so that when I get to the point of selecting a > track route, you go from point-to-point. If a point has a Revenue Center, > you add that to you run (or not, if the train type and game allows you to > ignore it). The selection code would not allow you to select a track segment > already used by another train in the same operational step. Note that the TGV in 1826 can re-use track. > 9. Erik mentioned the need for a hex name "A1, B2, etc". If you launch my > current product, and then let you mouse hover over a hex, a tool tip shows > you the cell name. Note that it is very important that this matches the notation used on the printed version of the game. I think you might have said you were accounting for that, but wanted to be sure it's included. > 11. I do track Red-Off Board cells as having a special type of location > "dead-end" where the code would allow you to stop (or start) a train at, but > not pass through. They also need to be counted as a location that some trains can't visit - in 1844, H trains cannot go to off-board hexes; in 18Scan, you can only go to an off-board hex if you have a token in it, etc. -- Chris Please consider the environment before printing this e-mail. |
From: Mark S. <mar...@gm...> - 2008-10-25 00:04:41
|
I do seem to have gotten your attention. :-) Lengthy response here: So to answer your various questions: 1. Yes, I should produce some documentation, and a DTD on how to define tiles that are used in my code base. I have written notes, and penciled diagrams that I can use to re-produce this. 2. The 1835 Hamburg Grey Tile with the "Ferry" or "Tunnel", or whatever you want to call it is the one that is critical since the track for the ferry is drawn on top of the tri-city background, rather than on the base grey tile color. I am not sure why it would make a real difference in game implementation. 3. There are a few other tiles that the 18xx.net Tile Encylopedia has that gives me a little trouble, but some of the Tiles I don't currently draw, but should not be difficult to implement: a. S01, S02, S03, S04, etc which has a red # in a grey box, I have no idea what this represents. b. Tiles Straight Ferry Tiles (Red-Dashed Track) c. 1825 Tiles with mixed background color (brown & green, and brown & grey d. Mountain Pass tiles with track as shown at http://18xx.net/tiles/f9.htm, where the Track and the city are outlined d. Tunnel Entrances e. Tiles with the small town grey tick with a label of "l" Lira Symbol 4. Other problem tiles, are the double-hex tiles in 18MEX for Mexico City. 5. I use the term Revenue Center specifically, because it is an object that produces revenue. A Junction is simply a connection point between two or more track segments. I don't see a Junction object as having any real value. Or put another way, I double a Junction object would have any code at all associated with it, and no data either. It is purely an abstract concept. The code base is designed so that when I get to the point of selecting a track route, you go from point-to-point. If a point has a Revenue Center, you add that to you run (or not, if the train type and game allows you to ignore it). The selection code would not allow you to select a track segment already used by another train in the same operational step. 6. I do have a object hierarchy that has worked fairly well, and I need to get that out to you for review. It is a bit detailed, and I have revised it over the years. The basic idea is, that if it needs to be drawn on the hex, it gets a location. 7. The other issue I forsee is the "overlay" tiles for the True Tunnels. This would require allowing two (or maybe more) tiles to be associated with an individual hex. Maybe for the few games that allow this, a special extended class of MapCell that allows two tiles to be played on the same tile is possible... but only for the mapcells that allow a tunnel. 8. Given that I put the Tile Definitions in a set of generic files, that is not game specific, but I have for each game a Tile Set that says which tiles to use, in which quantity, once the tile is defined, it doesn't have to be copied to each game. It can be re-used. 9. Erik mentioned the need for a hex name "A1, B2, etc". If you launch my current product, and then let you mouse hover over a hex, a tool tip shows you the cell name. It is not defined in the XML files, other than the rowStart and colStart values on the first line of the Map.xml files. Every map cell name is deduced from that and the order the cells are shown in the file. It may be counting down, or counting up. But it does work on five maps I have coded up so far. Now, if some games (like 1851 with Cincinatti) have some awkward nameing sequences that may require a change, or at least an option to include them with the map cells definitions. 10. Passes in 1841 would most likely be an extension of a Large City with Zero Revenue to allow for token placement, and counting against. And maybe any other special code needed for Passes. (like drawing the outline around station and track). 11. I do track Red-Off Board cells as having a special type of location "dead-end" where the code would allow you to stop (or start) a train at, but not pass through. And it makes drawing the dead-end properly easier. Some games allows pass through (1856 Goderich hex), and it appears 1854 allows either a pass-through or something to Paris in West, and a city in the east (not sure the name) to add another station. Mark P.S. I will work on writing up a couple of pages that define my Tile Definition structure for posting. |
From: Chris S. <chr...@gm...> - 2008-10-24 23:51:45
|
> 1854 also has something similar, where passing through a particular > section of track results in a -10 reduction in revenue. And 1844 has tunnels, which add +10 to all stations on the route. -- Chris Please consider the environment before printing this e-mail. |
From: John A. T. <ja...@ja...> - 2008-10-24 23:39:20
|
On Fri, 24 Oct 2008, Brett Lentz wrote: >> If a train passes the river on its route, even when only starting from >> or terminating at the token of its company, revenue is reduced by 10 Mark, >> being the cost of using the ferry. >> >> Much fuss for a little difference, but so the designer has decided it. >> > > Ok. I see why it might be difficult with the existing markups. It seems > like this just means that the XML, and the code needs to be aware of > where the cities are positioned in relationship to the hex sides. That > would allow us to calculate "If the entering side is X, and the city is > Y, revenue is Z-10". > > This sounds like it would just be a game-specific exception. It's a > pain to not have a more general solution. However, if it's the only game > that does this, a more general solution isn't necessary. 1854 also has something similar, where passing through a particular section of track results in a -10 reduction in revenue. -- John A. Tamplin ja...@ja... 770/436-5387 HOME 4116 Manson Ave Smyrna, GA 30082-3723 |
From: Brett L. <wak...@gm...> - 2008-10-24 22:53:19
|
On Sat, 2008-10-25 at 00:29 +0200, Erik Vos wrote: > > > > > The 1835 > > > > > Hamburg Tile with the tunnel is something I have not > > quite resolve how > > > > > to draw properly yet. > > > > > > It's actually a ferry. > > > TileDesigner can't handle this one either. I doubt if any > > XML can define > > > this one in a generic way without becoming overly > > complicated. For token > > > placement and revenue calculation we might need to resort > > to special code > > > in an 1835-specific class. For drawing, I don't know... > > > > > > > I don't know the rules around this tile. Can one of you give a > > description of the game mechanics around this tile? > > The green Hamburg (HH) tile has two single-slot cities > east of the river Elbe and one west of it. > In the brown tile, these cities are merged into one 3-slot city, > but the slots and the tokens in it remain located as before: > 2 east and one west of the Elbe. > > If a train passes the river on its route, even when only starting from > or terminating at the token of its company, revenue is reduced by 10 Mark, > being the cost of using the ferry. > > Much fuss for a little difference, but so the designer has decided it. > Ok. I see why it might be difficult with the existing markups. It seems like this just means that the XML, and the code needs to be aware of where the cities are positioned in relationship to the hex sides. That would allow us to calculate "If the entering side is X, and the city is Y, revenue is Z-10". This sounds like it would just be a game-specific exception. It's a pain to not have a more general solution. However, if it's the only game that does this, a more general solution isn't necessary. > Erik. ---Brett. After the game the king and the pawn go in the same box. -- Italian proverb |
From: Erik V. <eri...@hc...> - 2008-10-24 22:29:21
|
> Naming conventions aside, I think there are (at least) two conceptual > directions to choose from: > > A) There's a single object, call it a "location", that has various > potential attributes such as "revenue" and "counts as a stop". When we > need a new feature, we'd just add another attribute or find a > clever use > for our existing attributes (e.g. revenue="0"). Be warned that "counts as a stop" may be different for different train types, which is why I have thought to define it as a train rather than a tile property so far. For instance, in 1841 the passes count as stops for all trains except the largest (8) train. In the current Game.xml files I have used "majorStops" and "minorStops" per train, but actually we should be able to refine that further, to describe what type(s) of location count as major/minor stops. (The difference major/minor refers to the 2+2 etc. trains like we have in e.g. 1835. This is NOT the city/town difference except when it matters for such n+m trains). For instance, in 1830 we might add an attribute major="City,Town,OffBoard" to all trains (or to one general tag). In 1841 we might have major="City,Pass,Tunnel,OffBoard" and minor="Town,Port" (here the minor stations never count as stops) except for 8-trains, which would be different. Then we havs 18Scan and 1826 and others, which have E-trains that skip all towns (no stop, no revenue). > B) We have a hierarchy of objects. Starting with a basic > "location" that > has a minimum set of basic attributes, and building up specific > sub-classes of objects for specific purposes and use-cases. > I personally don't know enough of the 18xx differences to know which > approach would be more maintainable over the long-term. I'll let you > guys weigh in on that. ;-) A) and B) don't exclude each other. I think we should give each type of location/station a type attribute in the XML that gives it a sufficiently descriptive name, as I have tried to do it so far. Whether or not we need separate location (station) subclasses in the Java code is unclear (we'll find out when implementing routes and revenue), but I think not. I own quite a number of games, and from the start I have tried to give some thought to all variations I'm aware of, and to try making things as generic as possible, but with the infinite creativity of our game designers it is impossible to foresee all variations.... > > > I believe 18EU has new tiles. 18KAAS is just 1830 with a new map. > > > > 18Kaas also has new tiles (B+ = B with 2 token slotes, and U). > > > > > > The 1835 > > > > Hamburg Tile with the tunnel is something I have not > quite resolve how > > > > to draw properly yet. > > > > It's actually a ferry. > > TileDesigner can't handle this one either. I doubt if any > XML can define > > this one in a generic way without becoming overly > complicated. For token > > placement and revenue calculation we might need to resort > to special code > > in an 1835-specific class. For drawing, I don't know... > > > > I don't know the rules around this tile. Can one of you give a > description of the game mechanics around this tile? The green Hamburg (HH) tile has two single-slot cities east of the river Elbe and one west of it. In the brown tile, these cities are merged into one 3-slot city, but the slots and the tokens in it remain located as before: 2 east and one west of the Elbe. If a train passes the river on its route, even when only starting from or terminating at the token of its company, revenue is reduced by 10 Mark, being the cost of using the ferry. Much fuss for a little difference, but so the designer has decided it. Erik. |