|
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.
|