diff --git a/doc/befehle.txt b/doc/befehle.txt new file mode 100644 index 000000000..0c725fb7b --- /dev/null +++ b/doc/befehle.txt @@ -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. + diff --git a/scripts/tests/common.lua b/scripts/tests/common.lua index 96069d4a5..70ff2527d 100644 --- a/scripts/tests/common.lua +++ b/scripts/tests/common.lua @@ -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') diff --git a/scripts/tests/e2/buildings.lua b/scripts/tests/e2/buildings.lua index 845c4ba7d..a2407335b 100644 --- a/scripts/tests/e2/buildings.lua +++ b/scripts/tests/e2/buildings.lua @@ -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() diff --git a/scripts/tests/e2/spells.lua b/scripts/tests/e2/spells.lua index 9cdc28b96..02d2de7cd 100644 --- a/scripts/tests/e2/spells.lua +++ b/scripts/tests/e2/spells.lua @@ -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) diff --git a/scripts/tests/e2/undead.lua b/scripts/tests/e2/undead.lua index f7586ee4b..b283d1fcc 100644 --- a/scripts/tests/e2/undead.lua +++ b/scripts/tests/e2/undead.lua @@ -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