Page 1 of 1
constructors build obsolete bases
Posted: Wed Apr 21, 2010 10:34 pm
by taltamir
at the begining of the game i obsoleted all the research bases. I have not made a new one since. however, my constructor just built an obsolete research base.
RE: constructors build obsolete bases
Posted: Wed Apr 21, 2010 11:08 pm
by Fishman
Yes, this seems to be an ongoing issue: I reported this ages ago, but naturally, it has been tossed into the circular file: Constructors can even build designs that don't exist, and they will do this stupid worthless research base thing even when research is maxed out, and therefore, the base is completely worthless and serves only to mess up the existing research distribution.
RE: constructors build obsolete bases
Posted: Wed Apr 21, 2010 11:11 pm
by Erik Rutins
Was this with 1.0.4 Beta 2?
RE: constructors build obsolete bases
Posted: Wed Apr 21, 2010 11:12 pm
by taltamir
yes. 1.4b2... and I have started a brand new game. also, I wish there was a "general research" station that had an equal amount of research lab.
RE: constructors build obsolete bases
Posted: Thu Apr 22, 2010 12:23 am
by Fishman
Regardless, constructors and shipyards should not be allowed to order nonexistent or obsolete designs unless allowed to design new ones. If the player has explicitly chosen to eliminate a design completely, it means that none should be built.
RE: constructors build obsolete bases
Posted: Thu Apr 22, 2010 6:46 am
by Sliverine
I can confirm that this bug exists in 1.03 too. The automation AI will occasionally attempt to build new structures as it sees fit and if it cannot find the native structure it is looking for (deleted), it adds the native design (albeit upgraded) and builds that. If the native design has been obsoleted, it simply builds the obsolete one.
This has something to do with how the AI identifies and links designs to its build plans. Say you have 3 different mining bases for 3 different purposes, the AI simply is unable to determine which one to use, therefore, it simply uses the default.
Suggested fix: Add an ability to 'earmark' a certain design as the default AI design for automation. Make it compulsory so that the player has to earmark one (and only one!) design for every single role at any given time. The AI will then use that earmarked design for building a structure to fulfill whatever role it wants. Earmarking the design will simply tell the AI that that design is the default building to build for the purpose of the role and it makes it such that the AI will not attempt to build obsolete designs or add in its own default designs so long as it can find a earmarked default.
A global variable list of pointers to default designs can be created via which the AI will access the designs that it builds. Earmarking a design can be simply the action of setting the pointer to point at that particular design. If pointer -> NULL i.e. player deletes earmarked design [hence setting the pointer to NULL as part of that action to prevent dangling pointers] and fails to earmark a new one, have a popup warning when the player closes the design screen and make it such that if the AI fails to find a default earmarked design, the AI will simply cancel any current build orders with regards to that design and move on to the next one. An exception catch can be additionally implemented such that upon cancelling the build order due to lack of default design, the AI will warn the player in the events tab.
i.e. try {check if default design pointer is NULL. If true, throw exception;}
catch (exception) {cancel current build order; warn player;}