forked from github/server
documentation for how orders work
remove unit names from tests.
This commit is contained in:
parent
bf867eb2d6
commit
855a989971
|
@ -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.
|
||||||
|
|
|
@ -1187,7 +1187,6 @@ function test_promote_after_recruit()
|
||||||
local r1 = region.create(0, 0, 'plain')
|
local r1 = region.create(0, 0, 'plain')
|
||||||
local r2 = region.create(1, 0, 'plain')
|
local r2 = region.create(1, 0, 'plain')
|
||||||
local u1 = unit.create(f, r1, 1)
|
local u1 = unit.create(f, r1, 1)
|
||||||
u1.name = 'Xolgrim'
|
|
||||||
local u2 = unit.create(f, r2, 55)
|
local u2 = unit.create(f, r2, 55)
|
||||||
u2:add_order('REKRUTIERE 1')
|
u2:add_order('REKRUTIERE 1')
|
||||||
u1:add_order('BEFOERDERE')
|
u1:add_order('BEFOERDERE')
|
||||||
|
|
|
@ -41,7 +41,6 @@ function test_build_tunnel_limited()
|
||||||
u:add_item('iron', 2)
|
u:add_item('iron', 2)
|
||||||
u:add_item('money', 700)
|
u:add_item('money', 700)
|
||||||
u.building = b
|
u.building = b
|
||||||
u.name = 'Xolgrim'
|
|
||||||
u:add_order('MACHE 2 BURG ' .. itoa36(b.id))
|
u:add_order('MACHE 2 BURG ' .. itoa36(b.id))
|
||||||
b.size = 99
|
b.size = 99
|
||||||
process_orders()
|
process_orders()
|
||||||
|
|
|
@ -21,9 +21,6 @@ function test_undead_cannot_enter_holyground()
|
||||||
local u1 = unit.create(f, r1, 1)
|
local u1 = unit.create(f, r1, 1)
|
||||||
local u2 = unit.create(f, r2, 1)
|
local u2 = unit.create(f, r2, 1)
|
||||||
|
|
||||||
u2.name = "Xolgrim's Magier"
|
|
||||||
u1.name = "Xolgrim's Opfer"
|
|
||||||
|
|
||||||
u2.magic = 'gwyrrd'
|
u2.magic = 'gwyrrd'
|
||||||
u2:set_skill('magic', 100)
|
u2:set_skill('magic', 100)
|
||||||
u2.aura = 200
|
u2.aura = 200
|
||||||
|
@ -227,7 +224,6 @@ function test_bug_2517()
|
||||||
local uf = nil
|
local uf = nil
|
||||||
eressea.settings.set("magic.familiar.race", "lynx")
|
eressea.settings.set("magic.familiar.race", "lynx")
|
||||||
f.magic = 'gwyrrd'
|
f.magic = 'gwyrrd'
|
||||||
um.name = 'Xolgrim'
|
|
||||||
um.magic = 'gwyrrd'
|
um.magic = 'gwyrrd'
|
||||||
um.race = 'elf'
|
um.race = 'elf'
|
||||||
um:set_skill('magic', 10)
|
um:set_skill('magic', 10)
|
||||||
|
|
|
@ -28,7 +28,6 @@ function test_undead_reserve_other()
|
||||||
u1.race = "undead"
|
u1.race = "undead"
|
||||||
u1:clear_orders()
|
u1:clear_orders()
|
||||||
u1:add_order("RESERVIERE 1 Holz")
|
u1:add_order("RESERVIERE 1 Holz")
|
||||||
u1.name = 'Xolgrim'
|
|
||||||
process_orders()
|
process_orders()
|
||||||
|
|
||||||
if 0 ~= u1:get_item("log") then
|
if 0 ~= u1:get_item("log") then
|
||||||
|
|
Loading…
Reference in New Issue