empserver/tests
Markus Armbruster 6fcbc16adf update: Limit avail roll over to about half the update's work
Traditionally, unused unused available work is discarded at the
update.  Since commit d7a054c (v4.2.13), deities can configure (some)
unused work to "roll over", i.e. available work = some unused work +
this update's work.

Not discarding unused work reduces micromanagement incentives.
However, it also leads to unobvious behavior.

For instance, here's the obvious way to build a radar station: move in
enough people to make 200 work.  Half of it is available for sector
building, and increases efficiency to 100%.  Here's a not-so-obvious
way: move in enough people to make 134 work.  67 will be used to
increase efficiency to 67%.  Now move your workers elsewhere.  The
unused available work is enough to finish the job at the next update.

Similarly, neighbors could be surprised by sectors building bridges
despite having no visible workers.

Commit 7f4e59f (v4.2.15) let deities limit the amount rolled over:
unused work above rollover_avail_max is discarded.  This became the
default with a value of 50 in commit 81a3e4c4, v4.3.31.

Limit it further so that "roll over" can increase the update's work by
no more than half, plus one.  The extra point is there so that even a
tiny work force has a chance to eventually eke out the second point of
work needed to increase efficiency.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-06 19:59:59 +02:00
..
actofgod sect: Keep work percentage without civilians at 100% 2017-08-06 19:59:57 +02:00
bridgefall sect: Keep work percentage without civilians at 100% 2017-08-06 19:59:57 +02:00
build sect: Keep work percentage without civilians at 100% 2017-08-06 19:59:57 +02:00
empdump collect: Derive collection value from power value 2017-08-06 19:59:59 +02:00
fairland sect: Keep work percentage without civilians at 100% 2017-08-06 19:59:57 +02:00
files sail: Remove option SAIL 2015-02-28 16:11:28 +01:00
fire sect: Keep work percentage without civilians at 100% 2017-08-06 19:59:57 +02:00
info tests/info: New; checks info and code agree on commands 2014-01-06 20:50:06 +01:00
navi-march sect: Fix revert to deity and "no civilians" corner cases 2017-08-06 19:59:57 +02:00
retreat sect: Keep work percentage without civilians at 100% 2017-08-06 19:59:57 +02:00
smoke update: Limit avail roll over to about half the update's work 2017-08-06 19:59:59 +02:00
torpedo sect: Keep work percentage without civilians at 100% 2017-08-06 19:59:57 +02:00
update update: Limit avail roll over to about half the update's work 2017-08-06 19:59:59 +02:00
version config: Make plains build and mobility cost match wilderness 2017-08-06 19:59:59 +02:00
actofgod-test tests: Define and use some abbreviations 2015-02-01 16:52:59 +01:00
bridgefall-test tests: Define and use some abbreviations 2015-02-01 16:52:59 +01:00
build-test tests: Define and use some abbreviations 2015-02-01 16:52:59 +01:00
empdump-test tests: Rewrite the previous commit's sed_i helper 2015-03-04 08:15:13 +01:00
fairland-test tests/files tests/fairland: Check stderr and exit status 2015-02-01 16:52:59 +01:00
files-test tests/files tests/fairland: Check stderr and exit status 2015-02-01 16:52:59 +01:00
fire-test tests: Define and use some abbreviations 2015-02-01 16:52:59 +01:00
info-test tests: Define and use some abbreviations 2015-02-01 16:52:59 +01:00
navi-march-test navigate: Require all ships to start in the same sector 2015-02-28 16:13:14 +01:00
normalize.pl tests/version: New; exercises config introspection commands 2017-08-06 14:03:55 +02:00
retreat-test tests/retreat: Cover trains 2015-03-02 08:20:48 +01:00
smoke-test tests: Define and use some abbreviations 2015-02-01 16:52:59 +01:00
test-common.sh config: Split table sect-chr for legibility 2017-08-06 19:59:58 +02:00
torpedo-test tests/torpedo: New; exercises torpedo command 2015-03-02 08:20:52 +01:00
update-test tests/update: New; exercises the update 2017-08-06 14:04:15 +02:00
version-test tests/version: New; exercises config introspection commands 2017-08-06 14:03:55 +02:00