Ich habe natuerlich immer noch Fragen und Sonderfaelle Enno —
Wenn in meiner Vorlage steht:
ARBEITE
// TODO: Kekse
und ich befehle diese Woche:
| function test_give_person_first() | |
| local r = region.create(0, 0, "plain") | |
| local f = faction.create('human') | |
| local u1 = unit.create(f, r, 1) | |
| local u2 = unit.create(f, r, 1) | |
| local u3 = unit.create(f, r, 1) | |
| u3:add_item('sword', 10) | |
| u3:add_order("GIB " .. itoa36(u2.id) .. " ALLES PERSON") | |
| u3:add_order("GIB " .. itoa36(u2.id) .. " ALLES") |
| /** | |
| * `n` persons with skill `sn` are merged into `add` persons with skill `sv` | |
| */ | |
| int merge_skill(const skill* sv, const skill* sn, skill* result, int n, int add) | |
| { | |
| int total = add + n; | |
| /* number of person-weeks the units have already studied: */ | |
| int days, weeks = weeks_from_level(sn ? sn->level : 0) * n | |
| + weeks_from_level(sv ? sv->level : 0) * add; |
| function test_leave_harbour() | |
| local f = faction.create('human') | |
| local r1 = region.create(1, 0, 'ocean') | |
| local r2 = region.create(-1, 0, 'ocean') | |
| local r = region.create(0, 0, 'glacier') | |
| local b = building.create(r, 'harbour', 25) | |
| local sh = ship.create(r1, 'longboat') | |
| local u = unit.create(f, r1, 1) | |
| local u2 = unit.create(f, r, 1) | |
| u2.building = b |
| #include "util/pofile.h" | |
| #include "util/strings.h" | |
| #include <stb_ds.h> | |
| #include <stdlib.h> | |
| #include <stdio.h> | |
| #include <string.h> | |
| typedef struct keyval_t { |
Beispiel: Ich befehle meiner Einheit:
EINHEIT demo
UNTERHALTE
@GIB xol 200 Silber
GIB phy 100 Silber
die Befehle wereden ausgeführt, und in der Zugvorlage steht:
EINHEIT demo
| Das mit den Kodierungen ist so: | |
| Als die Welt nur 127 Zeichen hatte, war noch alles einfach. Wir haben in jedes Byte ein Zeichen kodiert, und die Zuordnung von numerischem Wert zu Zeichen wurde standardisiert: ASCII. Das A hat den Wert 65 bekommen, das B die 66, usw. Kleinbuchstaben fangen bei 97 an, Zahlen bei 48. | |
| Irgendwann haben dann irgendwelche Europäer gemeint, es gäbe ja noch viel mehr Zeichen. | |
| ANSI ist das, was den Europäern als Lösung eingefallen ist. Die haben einfach auf die 127 Zeichen nochmal 128 drauf gesetzt. | |
| 255 Zeichen sollten ja wohl genug sein. | |
| Aber die Russen haben gemeint, sie seien vergessen worden, und haben auf die 127 Zeichen ihre eignen 128 drauf gesetzt. KOI8R hiess das. | |
| Das heisst, wenn man eine 65 in seiner Datei hatte, wurde das jetzt bei Russen, Europäern und Amis als A angezeigt, aber wenn man eine 132 hat, ist das bei Amerikanern ungültig, bei (West-)Europäern ein ä, und bei Russen ... irgendwas kyrillisches. | |
| Man musste also plötzlich wissen, welchem Standard die Datei folgt (E |
| local crs = require 'cr' | |
| function log_error(str) | |
| io.stderr:write(str) | |
| end | |
| local terrains = { | |
| ['Ozean'] = 'ocean', | |
| ['Gletscher'] = 'glacier', | |
| ['Eisberg'] = 'iceberg', |
| require "lunit" | |
| module("tests.e2.trees", package.seeall, lunit.testcase ) | |
| function setup() | |
| eressea.game.reset() | |
| eressea.settings.set("rules.food.flags", "4") -- food is free | |
| eressea.settings.set("NewbieImmunity", "0") | |
| end |