From: Erik V. <eri...@xs...> - 2019-05-02 12:40:36
|
Op 30-4-2019 om 22:59 schreef Martin Brumm: >> On Tue, Apr 30, 2019 at 9:49 AM Chris Moore >> <cmo...@gm... <mailto:cmo...@gm...>> wrote: >> >> In 1861 minor companies are auctioned during the stock >> round. A player may select a minor company to auction and >> place an opening bid, and other players may then bid on it. >> >> As far as I've seen this is unique - I think the other >> games only do auctions during the start round. >> >> Is that correct? Would this be a good candidate for a new >> game-specific PossibleAction, handled in a game-specific >> version of StockRound? >> >> Thanks, >> Chris >> > Hi > in 18EU this is handled in the Startround_18EU Class. > I think it would be easy to add the special action to a native > StockRound Class specific to a game. Specially the 1822?? Games use the > mechanismn in each StockRound so maybe we could build a new baseclass > StockRoundBidding but again if you do it theres no harm in that either > way to make it gamespecific or a Class just make sure its documented and > reuseable generic, i.e. configurable via the data configuration for > different games :) > Regards, > Martin. Although it is many years ago that I actively contributed to Rails, I haven't lost my interest in its fate, and so it happened that I started pondering about this matter. Indeed 1861 is the first game implemented in Rails that features stock round auctions, but as many newer games also have this feature, a generic solution would be preferrable. Adding Stock round auctions will blur the existing strict separation between StartRound and StockRound classes. In 1861, the same auction style applies to both privates and minors. This will get even worse in a game like 1822, where even private companies are auctioned in stock rounds. So the my first question is: should we maintain the distinction between Start and Stock rounds, or work towards an integration of these two? For now, I would think it is better to keep these separate, if only because existing StartRounds have the characteristic that all its items (the StartPacket) must be sold before the "normal" rounds can take off. In 1861, this applies to the private companies and the N minor. 1822 does not even have a start packet. However, as the 1861 auction mechanism is the same for all auctionable items, such an approach would call for abstracting the auction mechanism as such, or its specific 1861 form, from the StartRound into a new Auction class hierarchy. I'm not sure if that is possible, but I think it is an approach worth thinking about. For the 1861 StockRound, it may be worth while to create a new StockRoundWithAuctions subclass, that adds generic auction handling, deferring actual auction handling to some Auction subclass. The 1861 specifics (such as the initial unavailablity of the green minors) would then go to StockRound_1861, being a subclass of StockRoundWithAuctions. Another, perhaps simpler, approach for 1861, at least for now, could be to bypass the StartRound entirely, and add some StartPacket functionality to StockRound_1861 or (as an optional feature) to StartRoundWithAuctions. Looking into the Rails 2.0 code, I notice that someone has added an abstract StartRound_AuctionOnly class, as a superclass for StartRound_1862. I'm not sure if I like that approach, but it may be worth investigating in the context of the present discussion. Erik |