From: Erik V. <eri...@hc...> - 2007-07-27 22:43:57
|
There is yet another aspect of the M&H/NYC swap in 1830 that we have not implemented entirely according to the rules, but for that aspect it is not so easy to see how to fix it. Perhaps we can better not fix it at all. The rules say, that the M&H/NYC share swap is allowed - during the player's turn of a Stock Round, or - between the turns of other players or Railroads in either Stock or Operating Rounds. We have so far ignored the latter part of this rule. My question is: should we do something about it? Is it worth while? The only sensible reason I can think of doing this in an OR would be that a player would want to hold on the M&H, and swap it just before the first 5-train is bought. Has anyone ever done that or seen it being done? To implement it strictly according to the rules would mean, that the M&H owner would get a turn at each and every player/company turn change, in which the swap must be done or denied. In hotseat and moderator play it would not be a problem: it would be just an extra allowed action (signalled by highlighting the Special menu). The fact that it would be executed by another than the current player is not a problem here. But in internet play I don't see how we can implement this smoothly. Giving one player a turn in between all other turns would be pretty annoying, and slow down the game for an action that is almost never taken at all. So I would propose to make a choice, at least for internet play, between two options: - either ignore the in-between-turn option for the M&H swap, or - always allow it (so the M&H owner can always do the swap without explicitly having a turn). I would prefer to leave the matter as it is, i.e. to ignore the in-between-turns part of the rule. Any comments? Erik Vos |
From: John A. T. <ja...@ja...> - 2007-07-27 22:57:16
|
On Sat, 28 Jul 2007, Erik Vos wrote: > We have so far ignored the latter part of this rule. > My question is: should we do something about it? > Is it worth while? > The only sensible reason I can think of doing this in an OR > would be that a player would want to hold on the M&H, > and swap it just before the first 5-train is bought. > Has anyone ever done that or seen it being done? If you intend to exchange it rather than buy it in, you are better off doing it just before the NYC runs so you get the revenue from the private and from the share you excahnge it for. the only other time I could see it mattering would be if the president has to sell shares to finance a train (unlikely but possible before a 5 is bought), then stealing the company right after he has bought a train for it when you might not have favorable priority position. > To implement it strictly according to the rules would mean, > that the M&H owner would get a turn at each and every player/company > turn change, in which the swap must be done or denied. You are going to find that other games have similar constructs, so it might as well get solved now. > In hotseat and moderator play it would not be a problem: > it would be just an extra allowed action (signalled > by highlighting the Special menu). The fact that it would > be executed by another than the current player is not a problem here. > > But in internet play I don't see how we can implement this > smoothly. Giving one player a turn in between all other turns > would be pretty annoying, and slow down the game > for an action that is almost never taken at all. I think the way the timing is handled in Cosmic Encounter would work here. Basically, you let things go on as usual and the player with the option to do some action at any point or any set of points may backup one action to intervene with their action. The undo facility makes that easy, and you just have to put in a limit of how far back they can go to their action point. -- John A. Tamplin ja...@ja... 770/436-5387 HOME 4116 Manson Ave Smyrna, GA 30082-3723 |
From: Brett L. <wak...@gm...> - 2007-07-27 23:28:35
|
On Fri, 2007-07-27 at 18:56 -0400, John A. Tamplin wrote: > > But in internet play I don't see how we can implement this > > smoothly. Giving one player a turn in between all other turns > > would be pretty annoying, and slow down the game > > for an action that is almost never taken at all. > > I think the way the timing is handled in Cosmic Encounter would work here. > Basically, you let things go on as usual and the player with the option to > do some action at any point or any set of points may backup one action to > intervene with their action. The undo facility makes that easy, and you > just have to put in a limit of how far back they can go to their action > point. > I like that solution. For hotseat play, we can just simply have the exchange option available at all times. For PBEM and Internet play, we have the exchange button available and when selected, it undoes the last action, then performs the exchange. Sounds like we will also need a game type selector during startup, so that we can toggle between these behaviors. ---Brett. 'It must have been Fate that brought you here,' said Twoflower. 'Yes, it's the sort of thing he likes to do,' said Rincewind. (Interesting Times) |
From: Erik V. <eri...@hc...> - 2007-07-29 11:15:43
|
> Sounds like we will also need a game type selector during startup, so > that we can toggle between these behaviors. This is a general subject that we have to face one day, so why not now. We already have a generic variant selection mechanism (see 1835/Game.xml), but currently all it does is assigning a string value to a variable, leaving it to the code to interpret that value. Unboubtedly we will also need toggles which can be set independently of each other. Let's start with a simple case: the 1830 optional 6-train, which we have not implemented yet (leaving it to the user to change the value in Game.xml if so wanted). I think we need a generic mechanism to make values that are explicitly assigned in the XML dependent on variant and toggle settings. We could define the toggle itself like <Option name="WithOptional6Train" default="no"/> which would let the UI show a popup after game selection, but how can we refer to such toggles in the rest of the XML? For the 6-trains we now have <Train name="6" majorStops="6" cost="630" amount="2" startPhase="6" rustedTrain="3" releasedTrain="D"/> This is actually kind of a shorthand for a nested structure like <Train> <Name>6</Name> <MajorStops>6</MajorStops> ... etc. </Train> which I tend to avoid because it is more verbose and needs a little bit more code to parse. The latter structure would be easier to adapt to toggles, though, e.g. like <Train> ... <Amount option="WithOptional6Train" value="yes">3</Amount> <Amount option="WithOptional6Train" value="no">2</Amount> ... etc. </Train> For this project I am rather thinking of a way to configure and code such exceptions that retains the current XML structure. Proposal: <Train name="6" majorStops="6" cost="630" startPhase="6" rustedTrain="3" releasedTrain="D"> <IfOption name="WithOptional6Train" value="yes"> <Attribute amount="3"/> </IfOption> <IfOption name="WithOptional6Train" value="no"> <Attribute amount="2"/> </IfOption> </Train> and for Variant-dependent values we could similarly have <IfVariant name="Standard"> <Attribute .../> </IfVariant> This would give us a generic way to code conditional values. I could then write a common utility method that would take any DOM (parsed XML) element, like <Train> in the above case, and return a map with all its contained attributes (including those contained in inner Attribute nodes), taking variants and all game options into account. This approach would even simplify the current XML parsing code (which is bulky enough as it is). Any other nested elements must of course still be decoded explicitly. Any comments or better proposals? You'll understand that my main consideration is conciseness of the XML parsing code. Erik. |
From: brett l. <wak...@gm...> - 2007-07-29 19:14:47
|
On 7/29/07, Erik Vos <eri...@hc...> wrote: > We could define the toggle itself like > <Option name="WithOptional6Train" default="no"/> > which would let the UI show a popup after game selection, > but how can we refer to such toggles in the rest of the XML? > > Any comments or better proposals? > I think the toggle should start with a top-level <variant> tag. This would allow you to parse the variants specifically and also separates the variant-specific options from the options for the main game. ---Brett |
From: Erik V. <eri...@hc...> - 2007-07-29 20:28:28
|
> On 7/29/07, Erik Vos <eri...@hc...> wrote: > > We could define the toggle itself like > > <Option name="WithOptional6Train" default="no"/> > > which would let the UI show a popup after game selection, > > but how can we refer to such toggles in the rest of the XML? > > > > Any comments or better proposals? > > > > > I think the toggle should start with a top-level <variant> tag. This > would allow you to parse the variants specifically and also separates > the variant-specific options from the options for the main game. OK, indeed we could have variant-specific toggles, although I think that would be pretty exceptional. That means, that we could also have nested <IfVariant> and <IfOption> nodes, so the parsing of that part would be recursive. But that is OK for a generic construct. Erik. |
From: Erik V. <eri...@hc...> - 2007-07-28 15:41:48
|
> > To implement it strictly according to the rules would mean, > > that the M&H owner would get a turn at each and every player/company > > turn change, in which the swap must be done or denied. > > You are going to find that other games have similar constructs, so it > might as well get solved now. Do any examples come to mind? The only comparable case I could find is the C&A private in 18EC, (which can be exchanged against a PRR share), but the rules do not say anything about *when* that privilege may be executed, so I would not count this one. Other player actions may have this in-between-other-player-turns property, but I can't remember any real examples right now. > > In hotseat and moderator play it would not be a problem: > > it would be just an extra allowed action (signalled > > by highlighting the Special menu). The fact that it would > > be executed by another than the current player is not a > problem here. > > > > But in internet play I don't see how we can implement this > > smoothly. Giving one player a turn in between all other turns > > would be pretty annoying, and slow down the game > > for an action that is almost never taken at all. > > I think the way the timing is handled in Cosmic Encounter > would work here. > Basically, you let things go on as usual and the player with > the option to > do some action at any point or any set of points may backup > one action to > intervene with their action. The undo facility makes that > easy, and you > just have to put in a limit of how far back they can go to > their action > point. Sounds doable. Erik. |
From: John A. T. <ja...@ja...> - 2007-07-29 05:39:38
|
Erik Vos wrote: > Do any examples come to mind? > The FO mountain railway private in 1844 may be closed at any point, instantly placing the associated special tiles and giving the owner $80. I am sure there are others I have run into, but I can't think of them off the top of my head right now. -- John A. Tamplin ja...@ja... 770/436-5387 HOME 4116 Manson Ave Smyrna, GA 30082-3723 |
From: Brett L. <wak...@gm...> - 2007-07-27 23:03:59
|
On Sat, 2007-07-28 at 00:44 +0200, Erik Vos wrote: > So I would propose to make a choice, at least for internet play, > between two options: > - either ignore the in-between-turn option for the M&H swap, or > - always allow it (so the M&H owner can always do the swap > without explicitly having a turn). > > I would prefer to leave the matter as it is, i.e. to ignore the > in-between-turns part of the rule. > > Any comments? > > Erik Vos I can see two scenarios that makes this rule important. One is in the case of there only being one share of NYC left available. The holder of the M&H can use this ability to effectively steal the share from a potential buyer. The other is the rare circumstance that this could trigger is the transfer of presidency of the NYC. I personally think that this is such a rare occurrence that it's not worth spending a lot of time on. I'm happy to leave this as-is and only allow the transfer on the owning player's turn. We should probably publish a document of known differences in our implementation of the rules just to keep track of minutiae like this. ---Brett. No man in the world has more courage than the man who can stop after eating one peanut. -- Channing Pollock |