documentation for how orders work

remove unit names from tests.
This commit is contained in:
Enno Rehling 2020-02-02 18:48:33 +01:00
parent bf867eb2d6
commit 855a989971
5 changed files with 15 additions and 7 deletions

15
doc/befehle.txt Normal file
View File

@ -0,0 +1,15 @@
# Befehlsverarbeitung in Eressea
Einheiten haben zwei Listen von Befehlen: orders und old_orders.
1. `read_unit`: Aus dem Datenfile gelesene (Default-)Befehl der Vorwoche werden in u->orders gespeichert.
2. `begin_orders`: Wenn die Einheit neue Befehle erhält, werden "wiederholbare" Befehle (Handel, lange Befehle ausser NACH) aus u->orders nach u->old_orders kopiert.
3. `unitorders`: Die neuen Befehle werden in u->orders gelesen.
4. `update_long_order`: u->thisorder wird auf den ersten "langen" Befehl in u->orders gesetzt.
5. Auswertung: Für lange Befehle wird in u->thisorder geschaut, für kurze und andere (inkl. KAUFE/ATTACKIERE) in u->orders.
6. `movement`: NACH löscht u->thisorder, damit es nicht bei Auswertung der Zielregion ein zweites Mal ausgeführt werden kann. Das hat allerdings keine Auswirkung auf die beiden Listen.
7. `build_building`: Wenn ein MACHE GEBAEUDE Befehl "fertig" ist, wird der Befehl in u->orders durch ein ARBEITE ersetzt (aber u->thisorder nicht geändert, das sollte also nichts tun).
8. `defaultorders`: Nach allen langen Befehlen wird der DEFAULT Befehl gesetzt. Dieser löscht zuerst alle nicht-kurzen Befehle aus u->orders und u->old_orders, und hängt dann den neuen Befehl in u->old_orders an.
9.1: `cr_output_unit`: In den CR werden alle "dauerhaften" Befehle aus u->old_orders geschrieben, d.h. kurze Befehle mit @ Prefix, Kommentare mit // und lange Befehle ausser NACH.
9.2: `cr_output_unit`: In den CR werden alle "dauerhaften" Befehle aus u->orders geschrieben, d.h. kurze Befehle mit @ Prefix, Kommentare mit // und lange Befehle ausser NACH. Wenn u->old_orders nicht leer ist, werden "wiederholbare" Befehle dabei ignoriert.

View File

@ -1187,7 +1187,6 @@ function test_promote_after_recruit()
local r1 = region.create(0, 0, 'plain')
local r2 = region.create(1, 0, 'plain')
local u1 = unit.create(f, r1, 1)
u1.name = 'Xolgrim'
local u2 = unit.create(f, r2, 55)
u2:add_order('REKRUTIERE 1')
u1:add_order('BEFOERDERE')

View File

@ -41,7 +41,6 @@ function test_build_tunnel_limited()
u:add_item('iron', 2)
u:add_item('money', 700)
u.building = b
u.name = 'Xolgrim'
u:add_order('MACHE 2 BURG ' .. itoa36(b.id))
b.size = 99
process_orders()

View File

@ -21,9 +21,6 @@ function test_undead_cannot_enter_holyground()
local u1 = unit.create(f, r1, 1)
local u2 = unit.create(f, r2, 1)
u2.name = "Xolgrim's Magier"
u1.name = "Xolgrim's Opfer"
u2.magic = 'gwyrrd'
u2:set_skill('magic', 100)
u2.aura = 200
@ -227,7 +224,6 @@ function test_bug_2517()
local uf = nil
eressea.settings.set("magic.familiar.race", "lynx")
f.magic = 'gwyrrd'
um.name = 'Xolgrim'
um.magic = 'gwyrrd'
um.race = 'elf'
um:set_skill('magic', 10)

View File

@ -28,7 +28,6 @@ function test_undead_reserve_other()
u1.race = "undead"
u1:clear_orders()
u1:add_order("RESERVIERE 1 Holz")
u1.name = 'Xolgrim'
process_orders()
if 0 ~= u1:get_item("log") then