forked from github/server
419 lines
9.6 KiB
Lua
419 lines
9.6 KiB
Lua
function mkunit(f, r, num)
|
|
u = add_unit(f, r)
|
|
u.number = num
|
|
u:add_item("money", num*10)
|
|
u:clear_orders()
|
|
return u
|
|
end
|
|
|
|
function test_movement()
|
|
west = direction("west")
|
|
east = direction("east")
|
|
|
|
-- im westen ohne strassen
|
|
ocean = terraform(-3, 0, "ocean")
|
|
w2 = terraform(-2, 0, "plain")
|
|
w1 = terraform(-1, 0, "plain")
|
|
|
|
-- im osten mit strassen
|
|
r0 = terraform(0, 0, "plain")
|
|
r1 = terraform(1, 0, "desert")
|
|
r2 = terraform(2, 0, "glacier")
|
|
r3 = terraform(3, 0, "plain")
|
|
r4 = terraform(4, 0, "glacier")
|
|
|
|
r0:add_direction(r4, "Wirbel", "Nimm die Abkürzung, Luke")
|
|
|
|
r0:set_road(east, 1.0)
|
|
r1:set_road(west, 1.0)
|
|
r1:set_road(east, 1.0)
|
|
r2:set_road(west, 1.0)
|
|
r2:set_road(east, 1.0)
|
|
r3:set_road(west, 1.0)
|
|
r3:set_road(east, 1.0)
|
|
r4:set_road(west, 1.0)
|
|
|
|
orcs = add_faction("orcs@eressea.de", "orc", "de")
|
|
orcs.age = 20
|
|
|
|
aqua = add_faction("aqua@eressea.de", "aquarian", "de")
|
|
aqua.age = 20
|
|
|
|
bugs = add_faction("bugz@eressea.de", "insect", "de")
|
|
bugs.age = 20
|
|
|
|
orc = mkunit(orcs, r0, 10)
|
|
orc:add_item("horse", orc.number*3)
|
|
orc:set_skill("riding", 10)
|
|
|
|
-- schiffe zum abtreiben:
|
|
ships = {}
|
|
for i = 1, 100 do
|
|
ships[i] = add_ship("boat", ocean)
|
|
end
|
|
|
|
astra = mkunit(orcs, r0, 1)
|
|
astra:add_order("NACH Wirbel")
|
|
astra:add_order("NUMMER EINHEIT astr")
|
|
|
|
foot = mkunit(orcs, r0, 1)
|
|
foot:add_order("ROUTE W W")
|
|
foot:add_order("NUMMER EINHEIT foot")
|
|
|
|
watch = mkunit(orcs, w2, 1)
|
|
|
|
ship = add_ship("boat", ocean)
|
|
cptn = mkunit(aqua, ocean, 1)
|
|
cptn.ship = ship
|
|
cptn:add_order("NACH O")
|
|
cptn:add_order("NUMMER EINHEIT cptn")
|
|
cptn:add_order("BENENNE EINHEIT Landungsleiter")
|
|
cptn:add_order("BENENNE PARTEI Meermenschen")
|
|
|
|
swim = mkunit(aqua, ocean, 1)
|
|
swim.ship = ship
|
|
swim:add_order("NACH O")
|
|
swim:add_order("NUMMER EINHEIT swim")
|
|
swim:add_order("BENENNE EINHEIT Landungstruppe")
|
|
|
|
-- ein schiff im landesinneren
|
|
ship = add_ship("boat", r0)
|
|
sail = mkunit(aqua, r0, 1)
|
|
sail.ship = ship
|
|
|
|
crew = mkunit(aqua, r0, 1)
|
|
crew.ship = ship
|
|
|
|
bug = mkunit(bugs, r0, 1)
|
|
|
|
crew:add_order("NACH O")
|
|
crew:add_order("NUMMER EINHEIT crew")
|
|
crew:add_order("BENENNE EINHEIT Aussteiger")
|
|
crew:add_order("NUMMER PARTEI aqua")
|
|
|
|
sail:add_order("NACH O")
|
|
sail:add_order("NUMMER EINHEIT saiL")
|
|
sail:add_order("BENENNE EINHEIT Aussteiger")
|
|
|
|
orc:add_order("NUMMER PARTEI orcs")
|
|
orc:add_order("NUMMER EINHEIT orc")
|
|
orc:add_order("BENENNE EINHEIT Orks")
|
|
orc:add_order("ROUTE O O O P P O W W W W")
|
|
orc:add_order("GIB 0 ALLES Steine")
|
|
orc:add_order("GIB 0 ALLES Holz")
|
|
orc:add_order("TRANSPORTIEREN " .. itoa36(bug.id))
|
|
|
|
bug:add_order("NUMMER PARTEI bugs")
|
|
bug:add_order("NUMMER EINHEIT bug")
|
|
bug:add_order("BENENNE EINHEIT Käfer")
|
|
bug:add_order("GIB 0 ALLES Steine")
|
|
bug:add_order("GIB 0 ALLES Holz")
|
|
bug:add_order("FAHREN " .. itoa36(orc.id))
|
|
|
|
u = add_unit(orcs, r0)
|
|
u.number = 1
|
|
u:add_item("horse", u.number*3)
|
|
u:add_item("money", u.number*10)
|
|
u:set_skill("riding", 10)
|
|
u:set_skill("stealth", 2)
|
|
u:clear_orders()
|
|
u:add_order("FOLGEN EINHEIT " .. itoa36(bug.id))
|
|
u:add_order("NACH W")
|
|
u:add_order("NUMMER EINHEIT foLg")
|
|
u:add_order("BENENNE EINHEIT Verfolger")
|
|
|
|
u2 = add_unit(orcs, r0)
|
|
u2.number = 1
|
|
u2:add_item("horse", u2.number*3)
|
|
u2:add_item("money", u.number*10)
|
|
u2:set_skill("riding", 10)
|
|
u2:set_skill("stealth", 2)
|
|
u2:clear_orders()
|
|
u2:add_order("FOLGEN EINHEIT nix")
|
|
u2:add_order("NUMMER EINHEIT Last")
|
|
u2:add_order("BENENNE EINHEIT Verfolger-Verfolger")
|
|
|
|
end
|
|
|
|
|
|
function test_sail()
|
|
r0 = terraform(0, 0, "plain")
|
|
|
|
orcs = add_faction("enno@eressea.de", "orc", "de")
|
|
orcs.age = 20
|
|
|
|
orc = add_unit(orcs, r0)
|
|
orc.number = 1
|
|
orc:add_item("speedsail", orc.number)
|
|
|
|
orc:clear_orders()
|
|
orc:add_order("NUMMER PARTEI orcs")
|
|
orc:add_order("NUMMER EINHEIT orc")
|
|
orc:add_order("BENENNE EINHEIT Orks")
|
|
orc:add_order("ZEIGEN \"Sonnensegel\"")
|
|
end
|
|
|
|
function test_handler()
|
|
|
|
local function msg_handler(u, evt)
|
|
str = evt:get_string(0)
|
|
u2 = evt:get_unit(1)
|
|
print(u)
|
|
print(u2)
|
|
print(str)
|
|
end
|
|
|
|
plain = terraform(0, 0, "plain")
|
|
skill = 8
|
|
|
|
f = add_faction("enno@eressea.de", "orc", "de")
|
|
f.age = 20
|
|
|
|
u = add_unit(f, plain)
|
|
u.number = 1
|
|
u:add_item("money", u.number*100)
|
|
u:clear_orders()
|
|
u:add_order("NUMMER PARTEI test")
|
|
u:add_handler("message", msg_handler)
|
|
msg = "BOTSCHAFT EINHEIT " .. itoa36(u.id) .. " Du~Elf~stinken"
|
|
|
|
f = add_faction("enno@eressea.de", "elf", "de")
|
|
f.age = 20
|
|
|
|
u = add_unit(f, plain)
|
|
u.number = 1
|
|
u:add_item("money", u.number*100)
|
|
u:clear_orders()
|
|
u:add_order("NUMMER PARTEI eviL")
|
|
u:add_order(msg)
|
|
|
|
end
|
|
|
|
function test_combat()
|
|
|
|
plain = terraform(0, 0, "plain")
|
|
skill = 8
|
|
|
|
f = add_faction("enno@eressea.de", "orc", "de")
|
|
f.age = 20
|
|
|
|
u = add_unit(f, plain)
|
|
u.number = 100
|
|
u:add_item("money", u.number*100)
|
|
u:add_item("sword", u.number)
|
|
u:set_skill("melee", skill)
|
|
u:clear_orders()
|
|
u:add_order("NUMMER PARTEI test")
|
|
u:add_order("KÄMPFE")
|
|
u:add_order("BEFÖRDERUNG")
|
|
attack = "ATTACKIERE " .. itoa36(u.id)
|
|
|
|
f = add_faction("enno@eressea.de", "elf", "de")
|
|
f.age = 20
|
|
|
|
u = add_unit(f, plain)
|
|
u.number = 100
|
|
u:add_item("money", u.number*100)
|
|
u:add_item("sword", u.number)
|
|
u:set_skill("melee", skill+2)
|
|
u:clear_orders()
|
|
u:add_order("NUMMER PARTEI eviL")
|
|
u:add_order("KAEMPFE")
|
|
u:add_order(attack)
|
|
|
|
end
|
|
|
|
function test_rewards()
|
|
-- this script tests manufacturing and fighting.
|
|
|
|
plain = terraform(0, 0, "plain")
|
|
skill = 5
|
|
|
|
f = add_faction("enno@eressea.de", "human", "de")
|
|
f.age = 20
|
|
u = add_unit(f, plain)
|
|
u.number = 10
|
|
u:add_item("money", u.number*100)
|
|
u:add_item("greatbow", u.number)
|
|
u:set_skill("bow", skill)
|
|
u:clear_orders()
|
|
u:add_order("KAEMPFE")
|
|
attack = "ATTACKIERE " .. itoa36(u.id)
|
|
|
|
u = add_unit(f, plain)
|
|
u.number = 7
|
|
u:add_item("money", u.number*100)
|
|
u:add_item("mallorn", u.number*10)
|
|
u:set_skill("weaponsmithing", 7)
|
|
u:clear_orders()
|
|
u:add_order("KAEMPFE NICHT")
|
|
u:add_order("MACHEN Elfenbogen")
|
|
u:add_order("NUMMER PARTEI test")
|
|
|
|
f = add_faction("enno@eressea.de", "elf", "de")
|
|
f.age = 20
|
|
u = add_unit(f, plain)
|
|
u.number = 7
|
|
u:add_item("money", u.number*100)
|
|
u:add_item("greatbow", u.number)
|
|
u:set_skill("bow", skill)
|
|
u:clear_orders()
|
|
u:add_order("KAEMPFE HINTEN")
|
|
u:add_order(attack)
|
|
|
|
u = add_unit(f, plain)
|
|
u.number = 7
|
|
u:add_item("money", u.number*100)
|
|
u:add_item("mallorn", u.number*10)
|
|
u:set_skill("weaponsmithing", 7)
|
|
u:clear_orders()
|
|
u:add_order("KAEMPFE NICHT")
|
|
u:add_order("MACHEN Elfenbogen")
|
|
u:add_order("NUMMER PARTEI eviL")
|
|
|
|
u = add_unit(f, plain)
|
|
u.number = 7
|
|
u:add_item("money", u.number*100)
|
|
u:add_item("mallorn", u.number*10)
|
|
u:set_skill("weaponsmithing", 7)
|
|
u:clear_orders()
|
|
u:add_order("KAEMPFE NICHT")
|
|
|
|
items = { "hornofdancing", "trappedairelemental",
|
|
"aurapotion50", "bagpipeoffear",
|
|
"instantartacademy", "instantartsculpture" }
|
|
for index in items do
|
|
u:add_item(items[index], 1)
|
|
u:add_order('@BENUTZEN "' .. get_string("de", items[index]) .. '"')
|
|
end
|
|
u:add_order("NUMMER PARTEI eviL")
|
|
|
|
end
|
|
|
|
function test_give()
|
|
plain = terraform(0, 0, "plain")
|
|
f = add_faction("enno@eressea.de", "human", "de")
|
|
f.age = 20
|
|
u = add_unit(f, plain)
|
|
u.number = 10
|
|
u:add_item("money", u.number*100)
|
|
u:clear_orders()
|
|
u:add_order("MACHE TEMP eins")
|
|
u:add_order("REKRUTIERE 1")
|
|
u:add_order("ENDE")
|
|
u:add_order("GIB TEMP eins ALLES silber")
|
|
u:add_order("NUMMER PARTEI test")
|
|
|
|
end
|
|
|
|
function test_write()
|
|
read_game("24")
|
|
read_orders("befehle")
|
|
end
|
|
|
|
function move_north(u)
|
|
for order in u.orders do
|
|
print(order)
|
|
end
|
|
u:clear_orders()
|
|
u:add_order("NACH NORDEN")
|
|
end
|
|
|
|
function test_monsters()
|
|
read_game("23")
|
|
|
|
-- magrathea = get_region(-67, -5)
|
|
local magrathea = get_region(0, 0)
|
|
if magrathea ~= nil then
|
|
if pcall(dofile, scriptpath .. "/ponnuki.lua") then
|
|
init_ponnuki(magrathea)
|
|
else
|
|
print("could not open ponnuki")
|
|
end
|
|
end
|
|
|
|
set_brain("braineater", move_north)
|
|
plan_monsters()
|
|
end
|
|
|
|
function test_parser()
|
|
-- this script tests the changes to quotes
|
|
|
|
plain = terraform(0, 0, "plain")
|
|
skill = 5
|
|
|
|
f = add_faction("enno@eressea.de", "human", "de")
|
|
f.age = 20
|
|
u = add_unit(f, plain)
|
|
u.number = 10
|
|
u:clear_orders()
|
|
u:add_order("Nummer Partei test")
|
|
u:add_order("BENENNE PARTEI \"Diese Partei heisst \\\"Enno's Schergen\\\".\"")
|
|
u:add_order("BENENNE EINHEIT \"Mein Name ist \\\"Enno\\\".\"")
|
|
end
|
|
|
|
function test_fail()
|
|
plain = terraform(0, 0, "plain")
|
|
skill = 5
|
|
|
|
f = add_faction("enno@eressea.de", "human", "de")
|
|
print(f)
|
|
end
|
|
|
|
function run_scripts()
|
|
scripts = {
|
|
"xmas2004.lua"
|
|
}
|
|
for index in scripts do
|
|
local script = scriptpath .. "/" .. scripts[index]
|
|
print("- loading " .. script)
|
|
if pcall(dofile, script)==0 then
|
|
print("Could not load " .. script)
|
|
end
|
|
end
|
|
end
|
|
|
|
-- test_movement()
|
|
-- test_fail()
|
|
-- test_handler()
|
|
-- test_parser()
|
|
-- test_monsters()
|
|
-- test_combat()
|
|
-- test_rewards()
|
|
-- test_give()
|
|
-- test_write()
|
|
|
|
-- test_sail()
|
|
-- write_game("../testg.txt")
|
|
-- read_game("../testg.txt")
|
|
|
|
test_movement()
|
|
run_scripts()
|
|
process_orders()
|
|
write_reports()
|
|
|
|
if swim.region==ocean then
|
|
print "ERROR: Meermenschen können nicht anschwimmen"
|
|
end
|
|
if sail.region~=r0 then
|
|
print "ERROR: Kapitän kann Schiff mit NACH ohne VERLASSE verlassen"
|
|
end
|
|
if crew.region==r0 then
|
|
print "ERROR: Einheiten kann Schiff nicht mit NACH ohne VERLASSE verlassen"
|
|
end
|
|
drift = false
|
|
for i = 1, 100 do
|
|
if ships[i].region ~= ocean then
|
|
drift = true
|
|
break
|
|
end
|
|
end
|
|
if not drift then
|
|
print "ERROR: Unbemannte Schiffe treiben nicht ab"
|
|
end
|
|
if foot.region ~= w1 then
|
|
print "ERROR: Fusseinheit hat ihr NACH nicht korrekt ausgeführt"
|
|
end
|
|
if astra.region ~= r4 then
|
|
print "ERROR: Astraleinheit konnte Wirbel nicht benutzen"
|
|
end
|