Der Code für Autobau liegt in der SYSTEMAI.cpp.
- wenn die Moral niedrig ist, wird versucht, ein Moralgebäude bzw. Kriegsrecht zu "bauen". Dadurch wird versucht zu verhindern, dass sich Systeme lossagen.
Für den Autobau werden Prioritäten gebildet und danach gebaut:
- wenn die maximale Anzahl an Einwohnern 1.25 mal größer als die aktuelle Anzahl der Einwohner ist, dann werden Gebäudebauprioritäten verdoppelt (im Code auch so umgesetzt??)
- ansonsten werden an Ship-Prios gebildet: Colony - Transport - Combat. Ausgabe in BotE.log: xxShipPrio:
Aus der Prioritätenliste wird derjenige Eintrag ausgewählt, welcher die höchste Priorität aufweist. Dieser wird mit der höchsten Wahrscheinlichkeit ausgewählt. Ausgabe in BotE-log: CSystemAI::ChooseBuilding(): min priority after ships:
- sind Upgrades baubar, so werden die Prioritäten der anderen womöglich etwas verringert, so dass häufiger zuerst die Upgrades gebaut werden. Außer wir haben freie Arbeiter übrig. Ausgabe in BotE-log: CSystemAI::ChooseBuilding(): min priority after ships, updates and workers:
Wenn Gebäude ausgewählt wurden: Ausgabe in BotE-log: CSystemAI::ChooseBuilding(): choosen prio:
- ein Gebäude mit einem höherem Moralmalus als Moralproduktion wird nicht gebaut (Bsp.: Moral aus neuen Gebäude -1, Moralproduktion im System +2 => ok)
- zuerst wird versucht, eine Schiffswerft zu bauen (wenn baubar)
- ansonsten wird versucht, je nach Prio ein Arbeiter-Gebäude für FOOD, INDUSTRY, ENERGY, SECURITY, RESEARCH, TITAN, DEUTERIUM, DURANIUM, CRYSTAL, IRIDIUM zu bauen.
- Konnte kein Gebäude entsprechend der Priorität gefunden werden, so wird vielleicht zufällig ein Gebäude ausgewählt, welches keine Arbeiter benötigt. Dieses wird mit einer gewissen Wahrscheinlichkeit gebaut (aber nicht, wenn Schiffe mit hoher Wahrscheinlichkeit gebaut werden sollten). Dadurch werden dann auch Subraumscanner, Handelszentren usw. errichtet.
|
The code for Auto-build is part of SYSTEMAI.cpp.
- at low morale first try is to build a morale building like "Martial Law". Thereby a rebellion or a secession should be avoided.
For Auto-build priorities are generated and than will be build:
- if maximum population is 1.25 times higher than the current population, then prio for building structures are doubled (really implemented so in the code?)
- otherwise ship prios are generated: Colony - Transport - Combat. (see BotE.log: xxShipPrio:)
From the priority list the item is selected which has the highest priority. This one will be selected with the highest probability. (see BotE.log: CSystemAI:: ChooseBuilding(): min priority after ships:)
- if upgrades are buildable than the priorities of other issues might be slightly reduced so that frequently upgrades will be build at first. But not if there are free workers. (see BotE.log: CSystemAI ChooseBuilding :: (): min after priority ships, updates and workers:)
When buildings was selected: (see BotE.log: CSystemAI ChooseBuilding :: (): choosen prio:)
- a building with a higher morale penalty than moral production in system is will not be build (example: -1 morale from the new building, morale production in system is +2 => ok)
- firstly it will be attempted to build a shipyard (if buildable)
- otherwise it will be tried to build a worker-building for FOOD, INDUSTRY, ENERGY, SECURITY, RESEARCH, TITAN, DEUTERIUM, DURANIUM, CRYSTAL, IRIDIUM, depending on priority.
- if no building according to the priority can be found, perhaps a building is selected by random, which does not require workers. This one will be build with a certain probability (but not if ships are to be build with high probability). By this also Continuum Scanner etc. get constructed.
|