From: John D. G. <jd...@di...> - 2012-05-11 21:05:24
|
I have not yet got Rails to build on my Windows machine, but I have had a look through the code and have started work on a port of 1837, which is one of my favorite 18xx games. It appears to me that most of the elements of 1837 already exist in Rails, but there are one or two items that may not, so I want to ask about them. Specifically, I would want these new abilities which may or may not exist in any of the games previously ported to Rails. 1. To have two different sequences of train types (in this case regular and Goods trains), with each type of trains in the second group made available by specific phase changes that may or may not have anything to do with the trains of the preceding type being exhausted. The only mechanism of this sort that I know Rails supports is the Pullmans in 18EU, but several other games have these double train sequences (whether for narrow-gauge track or alternative train types) -- including the expansion sets for 1825 which has been ported. 2. To have certain areas of the map that are "off limits" in certain phases of the game. 1841 also needs this (and arguably 1835, which has been known to allow a run from one city to the Alsace offboard after a 5-train purchase). 3. To remove all tiles on certain hexes, and/or place specific tiles, as automatic actions caused by a phase change. I'm not sure if any other game uses this ability but it would be nice to have. Also: how should I handle map hexes with preprinted "tiles" that are yellow or green, look like regular tiles, and are upgradeable? Just use the regular tile number in the map XML file, or create a negative number? And are there any preferred number ranges I should use for preprinted tiles? |
From: Erik V. <eri...@xs...> - 2012-05-12 11:06:27
|
In my opinion, the biggest novelty is the hexagonal stock market - unless we settle for a rectangular one featuring diagonal token movements. In any case, some new share price movements must be added. To your questions: 1. Separate train sequences are not supported, and IMO more importantly, separate phase sequences are not supported yet. But neither seem to be required for 1837: the 2G becomes available when the first 3T is bought, etc. That can already very well be handled by the 'released' <Phase> attribute. More important is that we may need to tweak or circumvent the built-in automatic train progression, either by disabling it (requiring *all* new trains to be specified with 'released'), or by putting all G-trains at the end of the list of train types. However, I suspect the main issue is that (to my knowledge) we haven't yet any means to restrict the train types that a company can buy. Per company type we should either add an attribute that specifies the allowed train types (default: all), or define some higher train type (e.g. train class) and link that to the relevant company types. None of this should be a big deal, and I can do the required programming if you like. 2. Off-limits areas do not yet exist as such. I believe the Alsace case and a related case in 1851 are handled by special coding. I suppose we could add an 'area' attribute to the relevant hexes in Map.xml, to be used by one of Stefan's tile modifiers. @Stefan, I vaguely remember we have discussed this briefly before - what are your thoughts? 3. Auto tile actions would be useful, the main question is what specification options we need (per hex? per area? per tile id?) Also: some parts of the Rails code rely on preprinted tiles to have negative numbers, so we really need those. The general rule is that for 18xx games where xx is numeric we use xx for the thousands range. For 1837 that would be -37001 and following. Preprinted tiles that look generic may get a low negative number; in particular, preprinted tiles that exactly duplicate existing layable tiles often get the id of the latter with a minus sign prepended. You can leave actual tile creation to me if you prefer (unless you want to add artwork, like mine symbols; TileDesigner cannot handle that). in most cases, I'll have to do some afterwork anyway. Erik. > -----Original Message----- > From: John David Galt [mailto:jd...@di...] > Sent: Friday, May 11, 2012 11:05 PM > To: rai...@li... > Subject: [Rails-devel] A question or two about the Rails XML interface. > > I have not yet got Rails to build on my Windows machine, but I have had a > look through the code and have started work on a port of 1837, which is one > of my favorite 18xx games. > > It appears to me that most of the elements of 1837 already exist in Rails, but > there are one or two items that may not, so I want to ask about them. > > Specifically, I would want these new abilities which may or may not exist in > any of the games previously ported to Rails. > > 1. To have two different sequences of train types (in this case regular and > Goods trains), with each type of trains in the second group made available by > specific phase changes that may or may not have anything to do with the > trains of the preceding type being exhausted. > > The only mechanism of this sort that I know Rails supports is the Pullmans in > 18EU, but several other games have these double train sequences (whether > for narrow-gauge track or alternative train types) -- including the expansion > sets for 1825 which has been ported. > > 2. To have certain areas of the map that are "off limits" in certain phases of > the game. 1841 also needs this (and arguably 1835, which has been known to > allow a run from one city to the Alsace offboard after a 5-train purchase). > > 3. To remove all tiles on certain hexes, and/or place specific tiles, as > automatic actions caused by a phase change. I'm not sure if any other game > uses this ability but it would be nice to have. > > Also: how should I handle map hexes with preprinted "tiles" that are yellow > or green, look like regular tiles, and are upgradeable? Just use the regular tile > number in the map XML file, or create a negative number? And are there > any preferred number ranges I should use for preprinted tiles? > > ---------------------------------------------------------------------------- -- > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and threat > landscape has changed and how IT managers can respond. Discussions will > include endpoint security, mobile security and the latest in malware threats. > http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: John D. G. <jd...@di...> - 2012-05-12 20:34:03
|
On 2012-05-12 04:06, Erik Vos wrote: > In my opinion, the biggest novelty is the hexagonal stock market - unless we > settle for a rectangular one featuring diagonal token movements. In any > case, some new share price movements must be added. I had planned to "rectangularize" it for now, which would mean adding "up-and-left" and "down-and-right" as possible price movements. > To your questions: > > 1. Separate train sequences are not supported, and IMO more importantly, > separate phase sequences are not supported yet. > But neither seem to be required for 1837: the 2G becomes available when the > first 3T is bought, etc. That can already very well be handled by the > 'released' <Phase> attribute. > More important is that we may need to tweak or circumvent the built-in > automatic train progression, either by disabling it (requiring *all* new > trains to be specified with 'released'), or by putting all G-trains at the > end of the list of train types. Since I wrote I figured this part out for myself. It will work as you say, except that the 1G train has to be the first type listed since the coal companies run (and must buy 1G's) before the minors run and buy the first 2. > However, I suspect the main issue is that (to my knowledge) we haven't yet > any means to restrict the train types that a company can buy. > Per company type we should either add an attribute that specifies the > allowed train types (default: all), or define some higher train type (e.g. > train class) and link that to the relevant company types. > > None of this should be a big deal, and I can do the required programming if > you like. > 2. Off-limits areas do not yet exist as such. I've rethought this too, and I think all I need to accomplish it is the ability to have a phase change cause a bunch of tiles to be automatically laid. I'll start with a map where Bosnia is impassable (blank gray hexes); when it opens I'll simply lay "tile 0" (and one "-10") all over it; and when Italy closes I'll lay a bunch of blank gray hexes over it (and Bozen). > 3. Auto tile actions would be useful, the main question is what > specification options we need (per hex? per area? per tile id?) I suggest this: within <Phase> I'll put several lines like this. <LayTile hex="C25" tile="105" orientation="4" removeToken="yes"/> These should work like normal tile lays except that there's no checking (so negative numbers and otherwise illegal tiles can be placed, and if the tile number <= 0 then it doesn't come from the supply). Any tile already on the hex would get picked up, and removeToken determines whether any tokens on the hex get picked up too (and returned to the company they came from). The most tiles I'd need to lay at one time is 9 (Italy + Bozen). > Also: some parts of the Rails code rely on preprinted tiles to have negative > numbers, so we really need those. I figured that, but I assume it would be OK if I also use negative numbers for automatically placed "tiles" which don't come from the tile inventory and won't be returned there if removed. I'll change over to negative numbers for hexes with preprinted tiles that look like regular tiles. By the way: is there a capability to spell out that certain tiles must be laid in specific orientations? (The "preserve existing track" rule is not enough to limit the brown upgrade of Wien to the right way.) > The general rule is that for 18xx games where xx is numeric we use xx for > the thousands range. For 1837 that would be -37001 and following. > Preprinted tiles that look generic may get a low negative number; in > particular, preprinted tiles that exactly duplicate existing layable tiles > often get the id of the latter with a minus sign prepended. > > You can leave actual tile creation to me if you prefer (unless you want to > add artwork, like mine symbols; TileDesigner cannot handle that). I've gone ahead and done Tiles.xml and TileSet.xml, but haven't messed with TileDesigner. How would I do the mine art? I'm set up to create .gif or .jpg images of any reasonable size, but I have no idea of where or how rails stores image files. I'm going to treat the mines as offboard destinations for calculating runs, which means I need a way to specify that the G trains must start "offboard" and all others can't go there. Graphically, I intend them to look like the actual board (which means that the coal company's token, which will exist for calculating runs, needs to be invisible). |
From: John D. G. <jd...@di...> - 2012-05-12 22:38:19
|
Correction: I'd need to be able to lay 11 tiles at once, and add a cost="70" option to LayTile. |
From: Erik V. <eri...@xs...> - 2012-05-12 22:45:24
|
> -----Original Message----- > From: John David Galt [mailto:jd...@di...] > By the way: is there a capability to spell out that certain tiles must be laid in > specific orientations? (The "preserve existing track" rule is not enough to > limit the brown upgrade of Wien to the right way.) Yes, in TileSet.xml an 'orientation' attribute can be added. It's used for the brown Hamburg tile in 1835. > > The general rule is that for 18xx games where xx is numeric we use xx > > for the thousands range. For 1837 that would be -37001 and following. > > Preprinted tiles that look generic may get a low negative number; in > > particular, preprinted tiles that exactly duplicate existing layable > > tiles often get the id of the latter with a minus sign prepended. > > > > You can leave actual tile creation to me if you prefer (unless you > > want to add artwork, like mine symbols; TileDesigner cannot handle that). > > I've gone ahead and done Tiles.xml and TileSet.xml, but haven't messed with > TileDesigner. How would I do the mine art? I'm set up to create .gif or .jpg > images of any reasonable size, but I have no idea of where or how rails stores > image files. Rails uses .svg (XML) files, and I'm not too familiar with that format myself. The only way I can handle it is by creating a tile with TileDesigner. And calling that messy is almost an understatement. The process I'm using is reasonably well described in the comments in script CombineTiles.pl (included in the Rails repo). Anything that TD cannot do must be dealt with manually (in a text editor) or possibly with Inkscape (with which I have had mixed results). That may include modifying colour names, copying fragments of SVG XML from other tiles, or perhaps created/modified in a text editor or with Inkscape. > I'm going to treat the mines as offboard destinations for calculating runs, > which means I need a way to specify that the G trains must start "offboard" > and all others can't go there. Graphically, I intend them to look like the actual > board (which means that the coal company's token, which will exist for > calculating runs, needs to be invisible). Not sure how to handle inaccessibility based on train type (or train class). I guess Stefan will have to write some special code for that. A way to make it generic would be fine, as other games need this feature as well. Erik. |
From: John D. G. <jd...@di...> - 2012-05-13 05:53:51
|
On 2012-05-12 15:45, Erik Vos wrote: >> I'm going to treat the mines as offboard destinations for calculating >> runs, which means I need a way to specify that the G trains must start >> "offboard" and all others can't go there. Graphically, I intend them to >> look like the actual board (which means that the coal company's token, >> which will exist for calculating runs, needs to be invisible). > Not sure how to handle inaccessibility based on train type (or train class). > I guess Stefan will have to write some special code for that. A way to make > it generic would be fine, as other games need this feature as well. To limit what trains a company can own, I suggest an attribute within either Company or CompanyType of the form <Train canOwnTypes="1G,2G,3G,4G"> But to limit access to map hexes by train type is harder. Maybe you're right and "mine" should be its own type of stop (in which case we would declare the passenger trains as not being allowed to go there, and the goods trains as needing to have exactly one mine on their run). At any rate, here is what I have so far for the six XML files under /1837/data. Game.xml is particularly incomplete. I have the feeling that the whole "merge minor companies into the Prussian" sequence from 1835 is going to move from being game-specific to the common code base, where other games (18MEX? 2038 someday?) will use it, too. 9 of the 10 major companies in 1837 have at least one company that merges into them! I'd like to see what the tile set looks like after TileManager is finished with them. I'll probably need to correct half the orientations in Map.xml. |
From: Erik V. <eri...@xs...> - 2012-05-13 12:09:45
|
Thanks. I have created a (temporary) local branch for 1837 where I will collect the initial bits and pieces. Once the game can at least be started and show the map, I will merge that branch into the master branch and push it to the repository so everybody can access it. I have already fixed some unterminated <LayTile> tags in Game.xml. Next problem is that you have configured a number of game-specific classes without providing these classes. That prevents Rails from starting this game. Possibilities: (1) What we normally do when developing a new game is that we begin with the generic classes only, and only add new ones when the need clearly arises during development. (2) As 1837 presents itself as "a development of 1835", we could also start with the 1835 classes, which could then be modified or extended. But that is a bit dangerous (for 1835), and not my preference. (3) I could also create empty 1837-specific classes according to what you have configured. These could be filled in later where needed, removed if unused, or merged with their 1835 siblings where it appears that generalization is possible. It seems to me, that the 1835 UI classes can be reused unchanged or with minimal changes. On the server side things are less obvious, so we will have to see how that goes. Did you have any particular route in mind? Otherwise I'll follow path (1) and remove the _1837 name parts initially, so we can at least see something happening. In the meantime, I'll try to make initial versions of the 1837 special tiles and the map. Erik. > -----Original Message----- > From: John David Galt [mailto:jd...@di...] > Sent: Sunday, May 13, 2012 7:54 AM > To: Development list for Rails: an 18xx game > Subject: Re: [Rails-devel] A question or two about the Rails XML interface. > > On 2012-05-12 15:45, Erik Vos wrote: > >> I'm going to treat the mines as offboard destinations for calculating > >> runs, which means I need a way to specify that the G trains must > >> start "offboard" and all others can't go there. Graphically, I > >> intend them to look like the actual board (which means that the coal > >> company's token, which will exist for calculating runs, needs to be > invisible). > > > Not sure how to handle inaccessibility based on train type (or train class). > > I guess Stefan will have to write some special code for that. A way > > to make it generic would be fine, as other games need this feature as well. > > To limit what trains a company can own, I suggest an attribute within either > Company or CompanyType of the form > <Train canOwnTypes="1G,2G,3G,4G"> > > But to limit access to map hexes by train type is harder. Maybe you're right > and "mine" should be its own type of stop (in which case we would declare > the passenger trains as not being allowed to go there, and the goods trains as > needing to have exactly one mine on their run). > > At any rate, here is what I have so far for the six XML files under /1837/data. > Game.xml is particularly incomplete. I have the feeling that the whole > "merge minor companies into the Prussian" sequence from 1835 is going to > move from being game-specific to the common code base, where other > games (18MEX? > 2038 someday?) will use it, too. 9 of the 10 major companies in 1837 have at > least one company that merges into them! > > I'd like to see what the tile set looks like after TileManager is finished with > them. I'll probably need to correct half the orientations in Map.xml. |
From: John D. G. <jd...@di...> - 2012-05-13 14:21:16
|
On 2012-05-13 05:09, Erik Vos wrote: > Thanks. > > I have created a (temporary) local branch for 1837 where I will collect the > initial bits and pieces. > Once the game can at least be started and show the map, I will merge that > branch into the master branch and push it to the repository so everybody can > access it. > > I have already fixed some unterminated <LayTile> tags in Game.xml. > > Next problem is that you have configured a number of game-specific classes > without providing these classes. That prevents Rails from starting this > game. > > Possibilities: > (1) What we normally do when developing a new game is that we begin with the > generic classes only, and only add new ones when the need clearly arises > during development. > (2) As 1837 presents itself as "a development of 1835", we could also start > with the 1835 classes, which could then be modified or extended. But that > is a bit dangerous (for 1835), and not my preference. > (3) I could also create empty 1837-specific classes according to what you > have configured. These could be filled in later where needed, removed if > unused, or merged with their 1835 siblings where it appears that > generalization is possible. > > It seems to me, that the 1835 UI classes can be reused unchanged or with > minimal changes. On the server side things are less obvious, so we will have > to see how that goes. > > Did you have any particular route in mind? No, I hadn't thought that far ahead. The Prussian-merger stuff shouldn't need to change much, if at all. The three-column starting packet will be new, though. |
From: John D. G. <jd...@di...> - 2012-05-14 04:34:44
|
Erik Vos wrote: > Next problem is that you have configured a number of game-specific classes > without providing these classes. That prevents Rails from starting this > game. > > Possibilities: > (1) What we normally do when developing a new game is that we begin with the > generic classes only, and only add new ones when the need clearly arises > during development. > (2) As 1837 presents itself as "a development of 1835", we could also start > with the 1835 classes, which could then be modified or extended. But that > is a bit dangerous (for 1835), and not my preference. > (3) I could also create empty 1837-specific classes according to what you > have configured. These could be filled in later where needed, removed if > unused, or merged with their 1835 siblings where it appears that > generalization is possible. > > It seems to me, that the 1835 UI classes can be reused unchanged or with > minimal changes. On the server side things are less obvious, so we will have > to see how that goes. > > Did you have any particular route in mind? I am mostly done with a StartRound_1837 class, but have a few questions. The existing code mentions that more than one Start Packet is possible. I would want to treat the KK and Hungarian minor-company shares as a "second start packet". Is declaring a second <StartPacket> in data/1837/CompanyManager.xml enough? And how can I give each packet a name and have the StartRound class see it? The reason for using two packets is the question of what happens if everyone passes. If the first start packet has items left, the StartRound continues but there is a discount of 10 on the next purchase, which is cumulative until the price reaches zero and the first player is required to take an item. But when a purchase is made, the discount resets to zero. After the first start packet is gone, though, if everyone passes it will cause an operating round. But the KK and Hungarian minor company shares are still a "start packet" in the sense that nobody can buy anything else until they are gone. While I'm on the subject of CompanyManager.xml -- I suggest adding an option like <ExchangesForPresidency company="K1"> to the declarations of state companies, to point back to the minor company that becomes the president's share (and thus starts the formation of the state company). This way, StateRRFormationRound (see below) needs only the name of the state company as an argument. * * * I also spent several hours looking through 1835's Prussian-formation code. I plan to generalize the PrussianFormationRound class, changing its static variables to class members (since there are several RRs that will use the mechanism and they will overlap in time), and call it StateRRFormationRound. It's going a little slowly because I'm not sure of the exact sequence in which some of the calls take place. When this is done it would be possible to use the same code for 1835, but I don't have any plans to touch the 1835 code at all until the whole thing is working for 1837, and even then it would not be a high priority. I propose that the timing of conversions be specified in data/1837/Game.xml. The <Phase> list would get another new type of entry: <StateRR name="KK" action="may_start"/> <StateRR name="KK" action="must_start"/> <StateRR name="KK" action="all_must_merge"/> Each of these would appear in the phase list to indicate when the event occurs for that company. Where there isn't a choice of timing (as for the Southern National, which must form AND all its minors must merge as soon as the first 4-train is purchased), the earlier steps can be skipped; "all_must_merge" will do the whole job in that case. For the coal companies, which also must merge into major companies but they don't cause the formation of the major companies, I plan a "lightweight" version of the same merge mechanism (since for each one there will be an interval where the coal company owner gets asked about merging at the beginning of every round, just like the minor companies). The two will be related since I want to present each player with only one dialog for this purpose per round, even if it grows so large it needs scroll bars. |
From: Erik V. <eri...@xs...> - 2012-05-14 13:26:33
|
Some answers to your questions: > The existing code mentions that more than one Start Packet is possible. > I would want to treat the KK and Hungarian minor-company shares as a > "second start packet". > > Is declaring a second <StartPacket> in data/1837/CompanyManager.xml > enough? > And how can I give each packet a name and have the StartRound class see it? > > The reason for using two packets is the question of what happens if > everyone passes. If the first start packet has items left, the StartRound > continues but there is a discount of 10 on the next purchase, which is > cumulative until the price reaches zero and the first player is required to take > an item. But when a purchase is made, the discount resets to zero. > > After the first start packet is gone, though, if everyone passes it will cause an > operating round. But the KK and Hungarian minor company shares are still a > "start packet" in the sense that nobody can buy anything else until they are > gone. No, different start packets isn't yet implemented, except for the (currently unused) name attribute. The concept was intended for 18US, but I'm not surprised that 1837 also needs it. Other games (like 1844) might also need it, so perhaps it is worthwhile to write generic code for subsequent start packets. The other option is to hardcode it in GameManager_1837 (perhaps temporarily). I'll think about it. For now I would suggest: just create the two packets, then we'll see how we best can deal with these. > While I'm on the subject of CompanyManager.xml -- I suggest adding an > option like > <ExchangesForPresidency company="K1"> to the declarations of state > companies, to point back to the minor company that becomes the > president's share (and thus starts the formation of the state company). This > way, StateRRFormationRound (see below) needs only the name of the state > company as an argument. Hmm, I would rather expect a tag named <ExchangesForPresidency> as part of the declaration for K1. Alternatively, <StartsMajor> or something like that might even be a better name. But maybe your approach is more practical. However, I would propose a less confusing name (at least, to me) like <Precursor> or <StartingMinor>. > * * * > > I also spent several hours looking through 1835's Prussian-formation code. > I plan to generalize the PrussianFormationRound class, changing its static > variables to class members (since there are several RRs that will use the > mechanism and they will overlap in time), and call it StateRRFormationRound. > It's going a little slowly because I'm not sure of the exact sequence in which > some of the calls take place. > > When this is done it would be possible to use the same code for 1835, but I > don't have any plans to touch the 1835 code at all until the whole thing is > working for 1837, and even then it would not be a high priority. Agreed. > I propose that the timing of conversions be specified in > data/1837/Game.xml. > The <Phase> list would get another new type of entry: > > <StateRR name="KK" action="may_start"/> > <StateRR name="KK" action="must_start"/> > <StateRR name="KK" action="all_must_merge"/> > > Each of these would appear in the phase list to indicate when the event > occurs for that company. Where there isn't a choice of timing (as for the > Southern National, which must form AND all its minors must merge as soon > as the first 4-train is purchased), the earlier steps can be skipped; > "all_must_merge" will do the whole job in that case. Sounds good, but perhaps we can better create a more generic <Action> tag for such specials. Something like <Action type="formStateRR" company="KK" step="may_start"/> etc. I remember phase actions have been discussed in the past, but I'll have to refresh my memory on that subject. > For the coal companies, which also must merge into major companies but > they don't cause the formation of the major companies, I plan a "lightweight" > version of the same merge mechanism (since for each one there will be an > interval where the coal company owner gets asked about merging at the > beginning of every round, just like the minor companies). The two will be > related since I want to present each player with only one dialog for this > purpose per round, even if it grows so large it needs scroll bars. Agreed. Erik. |
From: Erik V. <eri...@xs...> - 2012-05-14 15:15:59
|
It turns out that we already have an <Action> tag within <Phase>, with attributes 'name' and 'value' (value is unused). This tag is currently only used for 1880. We could modify or extend that tag, e.g. like <Action name="formStateRR" value="KK;may_start"/>, allowing value to have a sequence of values. Perhaps it is nicer to replace 'value' by more meaningful attributes, such as 'company' for actions that affect a company, and 'step' to specify an action step. Erik > > I propose that the timing of conversions be specified in > > data/1837/Game.xml. > > The <Phase> list would get another new type of entry: > > > > <StateRR name="KK" action="may_start"/> > > <StateRR name="KK" action="must_start"/> > > <StateRR name="KK" action="all_must_merge"/> > > > > Each of these would appear in the phase list to indicate when the > > event occurs for that company. Where there isn't a choice of timing > > (as for the Southern National, which must form AND all its minors must > > merge as soon as the first 4-train is purchased), the earlier steps > > can be skipped; "all_must_merge" will do the whole job in that case. > > Sounds good, but perhaps we can better create a more generic <Action> tag > for such specials. > Something like <Action type="formStateRR" company="KK" > step="may_start"/> etc. > > I remember phase actions have been discussed in the past, but I'll have to > refresh my memory on that subject. |
From: John D. G. <jd...@di...> - 2012-05-14 16:53:32
|
On 2012-05-14 08:15, Erik Vos wrote: > It turns out that we already have an <Action> tag within <Phase>, with > attributes 'name' and 'value' (value is unused). > This tag is currently only used for 1880. > > We could modify or extend that tag, e.g. like > <Action name="formStateRR" value="KK;may_start"/>, allowing value to have a > sequence of values. > Perhaps it is nicer to replace 'value' by more meaningful attributes, such > as 'company' for actions that affect a company, and 'step' to specify an > action step. Good idea. I'll go with <Action name="formStateRR" company="KK" step="may_start"/> >> While I'm on the subject of CompanyManager.xml -- I suggest adding an >> option like >> <ExchangesForPresidency company="K1"> to the declarations of state >> companies, to point back to the minor company that becomes the >> president's share (and thus starts the formation of the state company). >> This way, StateRRFormationRound (see below) needs only the name of the >> state company as an argument. > Hmm, I would rather expect a tag named <ExchangesForPresidency> as part of > the declaration for K1. No reason we can't have that also. I notice that <ExchangeForShare president="yes"> already exists. > Alternatively, <StartsMajor> or something like that might even be a better > name. > But maybe your approach is more practical. However, I would propose a less > confusing name (at least, to me) like <Precursor> or <StartingMinor>. OK, <StartingMinor> it is. |
From: Erik V. <eri...@xs...> - 2012-05-14 16:46:29
|
I have pushed the debugged 1837 initial setup files and the new map tiles to master. Remarks: 1. I have adopted your tile numbers, with a few exceptions, see below. 2. Tiles -37001/2/3 are now represented by simple gray tiles, created by TileDesigner, where the mines are represented by towns. These will be replaced by better SVG tiles, if someone manages to create such tiles. 3. Instead of tiles -37004/5/6 I have created generic yellowish tiles in the -6000 series. These tile numbers (-6000, -6001 and -6007) do not exist in TileDesigner and Tile.xml, but only exist as 'handmade' pictures; all other XML refers to their standard equivalents 0, -1 and -3007. 4. I have added a new attribute 'mapDisplay' to the home tag, to allow suppressing display of company names on the initial map. Otherwise the "KK" and "Ug" markers would overwrite "K1" and "U1" in Wien and Buda/Pest. This problem also existed in 1835 for PR in Berlin. Erik > -----Original Message----- > From: Erik Vos [mailto:eri...@xs...] > In the meantime, I'll try to make initial versions of the 1837 special tiles and > the map. |
From: John D. G. <jd...@di...> - 2012-05-12 21:35:56
|
One more question: is there a way to turn off the "private companies block their hexes" feature at a phase change, without closing the privates? |
From: John D. G. <jd...@di...> - 2012-05-12 22:14:26
|
Here are the three "mine tiles", in the two sizes of .gif that 18xx.net uses. I've left off the names and the values for the "offboard run" in the hope that Rails can generate those dynamically. If some other format would work better, I'll see if I can create it. Let me know. |
From: Erik V. <eri...@xs...> - 2012-05-12 22:56:54
|
Is anyone able to convert .gif to .svg? See below for some requirements that include the required SVG size (copied from CombineTiles.pl as mentioned in my previous reply). Once that has been done, we can use the .svg equivalents in the displays. Internally we still need standard TileDesigner equivalents, for which we can use existing standard off-map city or town tiles (or perhaps we need new ones, with stop type "mine" or such). # Notes on creating new tiles: # 1. In TileDesigner, export SVG tiles with size=170 and filename template=tile<c0>. # Do this with ID checked into directory tiles/TDwithID, and again # with ID unchecked into directory tiles/TDwoID. # 2. If the saved tiles turn out to invisible, use program FixInvisibility.pl # to remove superfluous strings ' xmlns=""'. It is unknown why TileDesigner # sometimes includes this string in the path tags. # 3. If tiles are modified with Inkscape, before saving, set the following properties # via File|DocumentProperties: # - First press 'Fit page to selection'. This should change the size to # Width=393.00 and Height=341.00. # - To add the extra whitespace below the tile image that TileDesigner also adds # (for unknown reasons), change the Height to 357.50. # - Then save the tile. # 4. Use this program to combine tiles from the following directories into tiles/svg: # - From tiles/TDwithID: all tiles with an ID > 0 (not preprinted tiles). # These images have the id on the tile. # - From tiles/TDwoID: all tiles with an ID <= 0 (preprinted tiles). # These images do not have the ID on the tile (create these separately from TD). # - From tiles/handmade: all tiles in that dir will overwrite any of the above. # These are the tiles modified by hand or with Inkscape. > -----Original Message----- > From: John David Galt [mailto:jd...@di...] > Sent: Sunday, May 13, 2012 12:14 AM > To: Development list for Rails: an 18xx game > Subject: Re: [Rails-devel] A question or two about the Rails XML interface. > > Here are the three "mine tiles", in the two sizes of .gif that 18xx.net uses. > I've left off the names and the values for the "offboard run" in the hope that > Rails can generate those dynamically. > > If some other format would work better, I'll see if I can create it. Let me > know. |
From: Mike B. <com...@ip...> - 2012-05-13 04:51:00
|
> Is anyone able to convert .gif to .svg? > See below for some requirements that include the required SVG size (copied > from CombineTiles.pl as mentioned in my previous reply). Attempted to convert them using http://image.online-convert.com/convert-to-svg but the results were unsatisfactory (black and white) even though the option called for color. Downloaded a conversion tool from sourceforge but it would not run on my OS. Sorry! Mike Bourke Campaign Mastery http://www.campaignmastery.com Co-author, Assassin's Amulet http://www.legaciescampaignsetting.com --- avast! Antivirus: Outbound message clean. Virus Database (VPS): 120512-0, 12/05/2012 Tested on: 13/05/2012 2:50:14 PM avast! - copyright (c) 1988-2012 AVAST Software. http://www.avast.com |
From: Stefan F. <ste...@we...> - 2012-05-15 10:34:33
|
Converting from bitmap to a vector graphic unfortunately hardly exceeds, however for simple graphs (like our tiles) there should be working algorithms. I prefer creating a SVG in two ways: A) Edit the SVG file directly. Actually the tile designer svg files are not that difficult to understand after one adds newlines to separate the XML elements. B) Use Inkscape which is an opensource vector graphics program which uses SVG. Most often I combine A) and B). I can create the mine tiles if you like, but be warned I am not an artist at all. I would simply paste the mine symbol from wikipedia http://upload.wikimedia.org/wikipedia/commons/8/8c/Mining_symbol.svg onto the tiles. Stefan On 05/13/2012 12:56 AM, Erik Vos wrote: > Is anyone able to convert .gif to .svg? > See below for some requirements that include the required SVG size (copied > from CombineTiles.pl as mentioned in my previous reply). > > Once that has been done, we can use the .svg equivalents in the displays. > Internally we still need standard TileDesigner equivalents, for which we can > use existing standard off-map city or town tiles > (or perhaps we need new ones, with stop type "mine" or such). > > # Notes on creating new tiles: > # 1. In TileDesigner, export SVG tiles with size=170 and filename > template=tile<c0>. > # Do this with ID checked into directory tiles/TDwithID, and again > # with ID unchecked into directory tiles/TDwoID. > # 2. If the saved tiles turn out to invisible, use program > FixInvisibility.pl > # to remove superfluous strings ' xmlns=""'. It is unknown why > TileDesigner > # sometimes includes this string in the path tags. > # 3. If tiles are modified with Inkscape, before saving, set the following > properties > # via File|DocumentProperties: > # - First press 'Fit page to selection'. This should change the size to > # Width=393.00 and Height=341.00. > # - To add the extra whitespace below the tile image that TileDesigner > also adds > # (for unknown reasons), change the Height to 357.50. > # - Then save the tile. > # 4. Use this program to combine tiles from the following directories into > tiles/svg: > # - From tiles/TDwithID: all tiles with an ID> 0 (not preprinted tiles). > # These images have the id on the tile. > # - From tiles/TDwoID: all tiles with an ID<= 0 (preprinted tiles). > # These images do not have the ID on the tile (create these separately > from TD). > # - From tiles/handmade: all tiles in that dir will overwrite any of the > above. > # These are the tiles modified by hand or with Inkscape. > >> -----Original Message----- >> From: John David Galt [mailto:jd...@di...] >> Sent: Sunday, May 13, 2012 12:14 AM >> To: Development list for Rails: an 18xx game >> Subject: Re: [Rails-devel] A question or two about the Rails XML > interface. >> >> Here are the three "mine tiles", in the two sizes of .gif that 18xx.net > uses. >> I've left off the names and the values for the "offboard run" in the hope > that >> Rails can generate those dynamically. >> >> If some other format would work better, I'll see if I can create it. Let > me >> know. > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: Erik V. <eri...@xs...> - 2012-05-15 11:17:59
|
Modifying existing TileDesigner-created tiles works best. Please remember: # Notes on creating new tiles: (...) # 3. If tiles are modified with Inkscape, before saving, set the following properties # via File|DocumentProperties: # - First press 'Fit page to selection'. This should change the size to # Width=393.00 and Height=341.00. # - To add the extra whitespace below the tile image that TileDesigner also adds # (for unknown reasons), change the Height to 357.50. # - Then save the tile. Erik. > -----Original Message----- > From: Stefan Frey [mailto:ste...@we...] > Sent: Tuesday, May 15, 2012 12:34 PM > To: Development list for Rails: an 18xx game > Subject: Re: [Rails-devel] A question or two about the Rails XML interface. > > Converting from bitmap to a vector graphic unfortunately hardly exceeds, > however for simple graphs (like our tiles) there should be working > algorithms. > > I prefer creating a SVG in two ways: > A) Edit the SVG file directly. Actually the tile designer svg files are not that > difficult to understand after one adds newlines to separate the XML > elements. > B) Use Inkscape which is an opensource vector graphics program which uses > SVG. > Most often I combine A) and B). > > I can create the mine tiles if you like, but be warned I am not an artist at all. > I would simply paste the mine symbol from wikipedia > http://upload.wikimedia.org/wikipedia/commons/8/8c/Mining_symbol.svg > onto the tiles. > > Stefan > > On 05/13/2012 12:56 AM, Erik Vos wrote: > > Is anyone able to convert .gif to .svg? > > See below for some requirements that include the required SVG size > > (copied from CombineTiles.pl as mentioned in my previous reply). > > > > Once that has been done, we can use the .svg equivalents in the displays. > > Internally we still need standard TileDesigner equivalents, for which > > we can use existing standard off-map city or town tiles (or perhaps we > > need new ones, with stop type "mine" or such). > > > > # Notes on creating new tiles: > > # 1. In TileDesigner, export SVG tiles with size=170 and filename > > template=tile<c0>. > > # Do this with ID checked into directory tiles/TDwithID, and again > > # with ID unchecked into directory tiles/TDwoID. > > # 2. If the saved tiles turn out to invisible, use program > > FixInvisibility.pl > > # to remove superfluous strings ' xmlns=""'. It is unknown why > > TileDesigner > > # sometimes includes this string in the path tags. > > # 3. If tiles are modified with Inkscape, before saving, set the > > following properties > > # via File|DocumentProperties: > > # - First press 'Fit page to selection'. This should change the size to > > # Width=393.00 and Height=341.00. > > # - To add the extra whitespace below the tile image that TileDesigner > > also adds > > # (for unknown reasons), change the Height to 357.50. > > # - Then save the tile. > > # 4. Use this program to combine tiles from the following directories > > into > > tiles/svg: > > # - From tiles/TDwithID: all tiles with an ID> 0 (not preprinted tiles). > > # These images have the id on the tile. > > # - From tiles/TDwoID: all tiles with an ID<= 0 (preprinted tiles). > > # These images do not have the ID on the tile (create these separately > > from TD). > > # - From tiles/handmade: all tiles in that dir will overwrite any of the > > above. > > # These are the tiles modified by hand or with Inkscape. > > > >> -----Original Message----- > >> From: John David Galt [mailto:jd...@di...] > >> Sent: Sunday, May 13, 2012 12:14 AM > >> To: Development list for Rails: an 18xx game > >> Subject: Re: [Rails-devel] A question or two about the Rails XML > > interface. > >> > >> Here are the three "mine tiles", in the two sizes of .gif that > >> 18xx.net > > uses. > >> I've left off the names and the values for the "offboard run" in the > >> hope > > that > >> Rails can generate those dynamically. > >> > >> If some other format would work better, I'll see if I can create it. > >> Let > > me > >> know. > > > > > > ---------------------------------------------------------------------- > > -------- > > Live Security Virtual Conference > > Exclusive live event will cover all the ways today's security and > > threat landscape has changed and how IT managers can respond. > > Discussions will include endpoint security, mobile security and the > > latest in malware threats. > > http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > > _______________________________________________ > > Rails-devel mailing list > > Rai...@li... > > https://lists.sourceforge.net/lists/listinfo/rails-devel > > > ---------------------------------------------------------------------------- -- > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and threat > landscape has changed and how IT managers can respond. Discussions will > include endpoint security, mobile security and the latest in malware threats. > http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: Stefan F. <ste...@we...> - 2012-05-31 05:53:16
Attachments:
tile-37001.svg
|
Erik: I have attached a template for 37001 tile that allows to edit and modify the position of the mine symbol easily: Simply modify the tile in a text editor and then check the changes by reloading in a graphic/browser program. The mining symbol is a svg of its own and included as a group into the tile. Then you can adjust the defined transformations like translate, rotate and scale (Every operation uses the left upper corner as reference). <g transform="translate(195,190)rotate(45)scale(0.15)"> You can also replace the mining symbol by one you like better by simply replacing the svg code inside the g element. See other file versions here: http://en.wikipedia.org/wiki/File:Mining_symbol.svg Stefan On 05/15/2012 01:17 PM, Erik Vos wrote: > Modifying existing TileDesigner-created tiles works best. Please remember: > > # Notes on creating new tiles: > (...) > # 3. If tiles are modified with Inkscape, before saving, set the following > properties > # via File|DocumentProperties: > # - First press 'Fit page to selection'. This should change the size to > # Width=393.00 and Height=341.00. > # - To add the extra whitespace below the tile image that TileDesigner > also adds > # (for unknown reasons), change the Height to 357.50. > # - Then save the tile. > > Erik. > >> -----Original Message----- >> From: Stefan Frey [mailto:ste...@we...] >> Sent: Tuesday, May 15, 2012 12:34 PM >> To: Development list for Rails: an 18xx game >> Subject: Re: [Rails-devel] A question or two about the Rails XML > interface. >> >> Converting from bitmap to a vector graphic unfortunately hardly exceeds, >> however for simple graphs (like our tiles) there should be working >> algorithms. >> >> I prefer creating a SVG in two ways: >> A) Edit the SVG file directly. Actually the tile designer svg files are > not that >> difficult to understand after one adds newlines to separate the XML >> elements. >> B) Use Inkscape which is an opensource vector graphics program which uses >> SVG. >> Most often I combine A) and B). >> >> I can create the mine tiles if you like, but be warned I am not an artist > at all. >> I would simply paste the mine symbol from wikipedia >> http://upload.wikimedia.org/wikipedia/commons/8/8c/Mining_symbol.svg >> onto the tiles. >> >> Stefan >> >> On 05/13/2012 12:56 AM, Erik Vos wrote: >>> Is anyone able to convert .gif to .svg? >>> See below for some requirements that include the required SVG size >>> (copied from CombineTiles.pl as mentioned in my previous reply). >>> >>> Once that has been done, we can use the .svg equivalents in the > displays. >>> Internally we still need standard TileDesigner equivalents, for which >>> we can use existing standard off-map city or town tiles (or perhaps we >>> need new ones, with stop type "mine" or such). >>> >>> # Notes on creating new tiles: >>> # 1. In TileDesigner, export SVG tiles with size=170 and filename >>> template=tile<c0>. >>> # Do this with ID checked into directory tiles/TDwithID, and again >>> # with ID unchecked into directory tiles/TDwoID. >>> # 2. If the saved tiles turn out to invisible, use program >>> FixInvisibility.pl >>> # to remove superfluous strings ' xmlns=""'. It is unknown why >>> TileDesigner >>> # sometimes includes this string in the path tags. >>> # 3. If tiles are modified with Inkscape, before saving, set the >>> following properties >>> # via File|DocumentProperties: >>> # - First press 'Fit page to selection'. This should change the size > to >>> # Width=393.00 and Height=341.00. >>> # - To add the extra whitespace below the tile image that > TileDesigner >>> also adds >>> # (for unknown reasons), change the Height to 357.50. >>> # - Then save the tile. >>> # 4. Use this program to combine tiles from the following directories >>> into >>> tiles/svg: >>> # - From tiles/TDwithID: all tiles with an ID> 0 (not preprinted > tiles). >>> # These images have the id on the tile. >>> # - From tiles/TDwoID: all tiles with an ID<= 0 (preprinted tiles). >>> # These images do not have the ID on the tile (create these > separately >>> from TD). >>> # - From tiles/handmade: all tiles in that dir will overwrite any of > the >>> above. >>> # These are the tiles modified by hand or with Inkscape. >>> >>>> -----Original Message----- >>>> From: John David Galt [mailto:jd...@di...] >>>> Sent: Sunday, May 13, 2012 12:14 AM >>>> To: Development list for Rails: an 18xx game >>>> Subject: Re: [Rails-devel] A question or two about the Rails XML >>> interface. >>>> >>>> Here are the three "mine tiles", in the two sizes of .gif that >>>> 18xx.net >>> uses. >>>> I've left off the names and the values for the "offboard run" in the >>>> hope >>> that >>>> Rails can generate those dynamically. >>>> >>>> If some other format would work better, I'll see if I can create it. >>>> Let >>> me >>>> know. >>> >>> >>> ---------------------------------------------------------------------- >>> -------- >>> Live Security Virtual Conference >>> Exclusive live event will cover all the ways today's security and >>> threat landscape has changed and how IT managers can respond. >>> Discussions will include endpoint security, mobile security and the >>> latest in malware threats. >>> http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>> _______________________________________________ >>> Rails-devel mailing list >>> Rai...@li... >>> https://lists.sourceforge.net/lists/listinfo/rails-devel >> >> >> > ---------------------------------------------------------------------------- > -- >> Live Security Virtual Conference >> Exclusive live event will cover all the ways today's security and threat >> landscape has changed and how IT managers can respond. Discussions will >> include endpoint security, mobile security and the latest in malware > threats. >> http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> _______________________________________________ >> Rails-devel mailing list >> Rai...@li... >> https://lists.sourceforge.net/lists/listinfo/rails-devel > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel |