Ship, plane and land unit repair uses new work, except in sectors owned by countries with a higher country number. This inconsistency is an artifact of how the update is sequenced: we work on countries one after the other. A country's ships, planes and land units get repaired before higher-numbered countries' sectors produce. Any ship, plane and land unit repairs in such sectors use old work instead of new work. Repair work use changed several times during Empire's history. In BSD Empire, repairs use old work, because it updates ships and planes before sectors. Chainsaw added budget priorities and the budget command as option BUDGET. Budget priorities let players choose separately for ships, planes and land units whether to use old or new work for repairs. The option also changed the update to work on countries one after the other, presumably to permit a more efficient implementation of the budget command. Chainsaw also introduced repairs in foreign sectors under option ALLYHARBORWORK. With BUDGET disabled, all repairs still use old work, whether at home or abroad. With BUDGET enabled, work use of repairs at home depends on budget priorities, but work use abroad depend on country numbers. Both options became standard in Empire 2. Since v4.3.6, repairs at home always use new work (commit967299a
and commit520446e
). To make repairs abroad always use new work as well, we need to update all sectors before any ship repair. This is straightforward: split the loop over countries between sectors and unit building. For symmetry, also split it between unit maintenance and sectors. The budget command is differently broken, and will be fixed next. Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
77 lines
2.9 KiB
Perl
77 lines
2.9 KiB
Perl
.TH Concept Update-sequence
|
|
.NA Update-sequence "The order of events at the update"
|
|
.LV Expert
|
|
.s1
|
|
This document gives a rough order of events during the update.
|
|
.s1
|
|
.nf
|
|
1) Prepare
|
|
a) prepare all sectors
|
|
a) fallout is checked, if FALLOUT is defined
|
|
b) guerrilla warfare is checked
|
|
c) if the sector doesn't have the plague, see if it
|
|
catches it
|
|
otherwise plague the people
|
|
d) if there are no civs or mil in the sector, it
|
|
reverts to the deity
|
|
e) taxes are collected from civs & uws; mil are paid.
|
|
f) if the sector is a bank it makes $$ proportional to
|
|
its efficiency
|
|
b) prepare all ships
|
|
a) pay military on board
|
|
c) prepare all planes
|
|
a) pay crew
|
|
d) prepare all land units
|
|
a) pay military on board
|
|
e) pay for military reserves.
|
|
|
|
2) Produce
|
|
a) ship maintenance, in order of country number
|
|
pay maintenance, then feed and plague people on board
|
|
b) plane maintenance, in order of country number
|
|
c) land unit maintenance, in order of country number
|
|
pay maintenance, then feed and plague people on board
|
|
g) sectors, in order of country number
|
|
a) people in non-sanctuary sectors eat
|
|
If not enough is available, the excess people will
|
|
starve off. No more than 50% of the people
|
|
in a sector can die; the uw's die first, then
|
|
the civs, then the mil.
|
|
b) if there was starvation, the work percentage is set
|
|
to 0, otherwise the work rate rises by
|
|
8+(1-15), max of 100
|
|
c) population grows and is truncated
|
|
d) pay sector maintenance
|
|
e) sectors that are stopped are skipped (see info stop)
|
|
f) first increase eff
|
|
g) then make things
|
|
d) ship building, in order of country number
|
|
first increase efficiency, then produce
|
|
stopped ships are started, but not built (see info stop)
|
|
e) plane building, in order of country number
|
|
stopped planes are started, but not built (see info stop)
|
|
f) land unit building, in order of country number
|
|
stopped land units are started, but not built (see info stop)
|
|
|
|
3) Then, do deliveries for all sectors in the world, row by row, going from
|
|
top to bottom, left to right
|
|
|
|
4) Then, do exporting via distribution for all sectors in the world, row by
|
|
row, going from top to bottom, left to right
|
|
|
|
5) Then, do importing via distribution for all sectors in the world, row by
|
|
row, going from top to bottom, left to right
|
|
Also start sectors that are stopped
|
|
|
|
6) modify tech/res/hap/edu levels & do tech bleed
|
|
7) decrease levels due to passing of time
|
|
8) update war declarations (for slow war)
|
|
|
|
9) If MOB_ACCESS is not enabled, mobility is updated as follows:
|
|
a) Add mobility to ships
|
|
b) Add mobility to sectors
|
|
c) Add mobility to planes
|
|
d) Add mobility to land units
|
|
.fi
|
|
.s1
|
|
.SA "Innards, Updates"
|