string = ""
for key in world_db:
- if dict != type(world_db[key]) and key != "MAP":
+ if dict != type(world_db[key]) and key != "MAP" and \
+ key != "WORLD_ACTIVE" and key != "SEED_MAP":
string = string + key + " " + str(world_db[key]) + "\n"
+ string = string + "SEED_MAP " + str(world_db["SEED_MAP"]) + "\n"
string = string + helper("ThingActions", "TA_ID")
string = string + helper("ThingTypes", "TT_ID", {"TT_CORPSE_ID": False})
for id in world_db["ThingTypes"]:
def actor_move(t):
"""If passable, move/collide(=attack) thing into T_ARGUMENT's direction."""
passable = False
- move_result = mv_yx_in_dir_legal(t["T_ARGUMENT"], t["T_POSY"], t["T_POSX"])
+ move_result = mv_yx_in_dir_legal(chr(t["T_ARGUMENT"]),
+ t["T_POSY"], t["T_POSX"])
if 1 == move_result[0]:
pos = (move_result[1] * world_db["MAP_LENGTH"]) + move_result[2]
passable = "." == chr(world_db["MAP"][pos])
decrement_lifepoints(world_db["Things"][hit_id])
return
dir = [dir for dir in directions_db
- if directions_db[dir] == t["T_ARGUMENT"]][0]
+ if directions_db[dir] == chr(t["T_ARGUMENT"])][0]
if passable:
t["T_POSY"] = move_result[1]
t["T_POSX"] = move_result[2]
def command_thingshere(str_y, str_x):
"""Write to out file list of Things known to player at coordinate y, x."""
- def write_thing_if_here():
- if y == world_db["Things"][id]["T_POSY"] \
- and x == world_db["Things"][id]["T_POSX"] \
- and not world_db["Things"][id]["carried"]:
- type = world_db["Things"][id]["T_TYPE"]
- name = world_db["ThingTypes"][type]["TT_NAME"]
- strong_write(io_db["file_out"], name + "\n")
if world_db["WORLD_ACTIVE"]:
y = integer_test(str_y, 0, 255)
x = integer_test(str_x, 0, 255)
strong_write(io_db["file_out"], "THINGS_HERE START\n")
if "v" == chr(world_db["Things"][0]["fovmap"][pos]):
for id in world_db["Things"]:
- write_thing_if_here()
+ # write_thing_if_here()
+ if y == world_db["Things"][id]["T_POSY"] \
+ and x == world_db["Things"][id]["T_POSX"] \
+ and not world_db["Things"][id]["carried"]:
+ type = world_db["Things"][id]["T_TYPE"]
+ name = world_db["ThingTypes"][type]["TT_NAME"]
+ strong_write(io_db["file_out"], name + "\n")
else:
- for id in world_db["Things"][0]["T_MEMTHING"]:
- write_thing_if_here()
+ for mt in world_db["Things"][0]["T_MEMTHING"]:
+ if y == mt[1] and x == mt[2]:
+ name = world_db["ThingTypes"][mt[0]]["TT_NAME"]
+ strong_write(io_db["file_out"], name + "\n")
strong_write(io_db["file_out"], "THINGS_HERE END\n")
else:
print("Ignoring: Invalid map coordinates.")
def set_command_and_argument_movestring(str_arg):
if str_arg in directions_db:
- world_db["Things"][0]["T_ARGUMENT"] = directions_db[str_arg]
+ world_db["Things"][0]["T_ARGUMENT"] = ord(directions_db[str_arg])
set_command()
else:
print("Ignoring: Argument must be valid direction string.")
"""World state database. With sane default values. (Randomness is in rand.)"""
world_db = {
"TURN": 0,
+ "MAP_LENGTH": 64,
"SEED_MAP": 0,
"PLAYER_TYPE": 0,
- "MAP_LENGTH": 64,
"WORLD_ACTIVE": 0,
"ThingActions": {},
"ThingTypes": {},