if len(tokens) > 0 and tokens[0] in commands_db \
and len(tokens) == commands_db[tokens[0]][0] + 1:
if commands_db[tokens[0]][1]:
- commands_db[tokens[0]][2]()
+ commands_db[tokens[0]][2](*tokens[1:])
elif replay:
print("Due to replay mode, reading command as 'go on in record'.")
line = io_db["file_record"].readline()
def try_worldstate_update():
"""Write worldstate file if io_db["worldstate_updateable"] is set."""
if io_db["worldstate_updateable"]:
+ inventory = ""
+ if [] == world_db["Things"][0]["T_CARRIES"]:
+ inventory = "(none)\n"
+ else:
+ for id in world_db["Things"][0]["T_CARRIES"]:
+ type_id = world_db["Things"][id]["T_TYPE"]
+ name = world_db["ThingTypes"][type_id]["TT_NAME"]
+ inventory = inventory + name + "\n"
string = str(world_db["TURN"]) + "\n" + \
str(world_db["Things"][0]["T_LIFEPOINTS"]) + "\n" + \
str(world_db["Things"][0]["T_SATIATION"]) + "\n" + \
- "(none)\n%\n" + \
+ inventory + "%\n" + \
str(world_db["Things"][0]["T_POSY"]) + "\n" + \
str(world_db["Things"][0]["T_POSX"]) + "\n" + \
str(world_db["MAP_LENGTH"]) + "\n"
- # TODO: no inventory so far
length = world_db["MAP_LENGTH"]
for i in range(length):
line = world_db["MAP"][i * length:(i * length) + length].decode()
raise SystemExit("received QUIT command")
+def command_thingshere(y, x):
+ # DUMMY
+ print("Ignoring not-yet implemented THINGS_HERE command.")
+
+
def command_seedmap(seed_string):
"""Set world_db["SEED_MAP"] to int(seed_string), then (re-)make map."""
setter(None, "SEED_MAP", 0, 4294967295)(seed_string)
commands_db = {
"QUIT": (0, True, command_quit),
"PING": (0, True, command_ping),
+ "THINGS_HERE": (2, True, command_thingshere),
"MAKE_WORLD": (1, False, command_makeworld),
"SEED_MAP": (1, False, command_seedmap),
"SEED_RANDOMNESS": (1, False, setter(None, "SEED_RANDOMNESS",