From: Erik V. <eri...@hc...> - 2005-10-14 13:54:48
|
> > For instance: > > <CompanyType ....> > > .... > > <TrainLimit number="4,4,3,2"/> > > </CompanyType> > > > > where the last number ("2") applies for any later phase as well. > > Keep in mind that companies may change "types" -- ie, in 1826 > a company > starts as a 5-share company then may convert to a 10-share > company once it > reaches its destination (so somewhere there needs to be > descriptions of > the rules for conversion). In 18US, a company may start as a 1-share > company (a private), become a 4-share company as soon as it > has a legal > route, become a 5-share company, then a 10-share, and finally > may become > part of a system that has 20 shares. The train limits for > each of these > may be different (although in practice it is usually 2 or 3 different > values). > This is one of the many aspects we have not yet really thought deeply about. Sure we need to find a way to model that. > You can also have private companies which influence the train > limit for > the owning or assigned company. I think this would be just a PrivateCompany attribute. > My personal feeling is that it will be too difficult to > describe in XML > every possible way this can be done, and a better approach is > to implement > that in Java, with part of the files distributed for a game > being .class > files which can be loaded with ClassLoader. That was the > approach I took > for a partially-completed Cosmic Encounter long ago -- the > basic timing > issues were codified, but all the powers that allow you to > break the rules > in specific ways were implemented directly in Java. Yes, we will have to do the more special stuff in Java classes. We already have two special classes to handle the 1830-style and the 1835-style opening rounds. Game-special classes will certainly be needed for 18US, but IMO the 1826-style minor/major company conversion is now common enough that a generic implementation looks worth while. Probably by creating a special PublicCompany subclass (the company class name must already be specified in the <CompanyType> XML tag). As Brett already mentioned: we are focussing on 1830, while keeping an open eye on other games. But we don't try to solve everything in this stage. Erik. |