path_tmp = path + tmp_suffix
msg = "Found file '" + path_tmp + "' that may be a leftover from an " \
"aborted previous attempt to write '" + path + "'. Aborting " \
- "until matter is resolved by removing it from its current path."
+ "until matter is resolved by removing it from its current path."
if os.access(path_tmp, os.F_OK):
raise SystemExit(msg)
io_db["teststring"] = str(os.getpid()) + " " + str(time.time())
for i in range(length):
line = map[i * length:(i * length) + length].decode()
string = string + key + " " + str(i) + " " + quote(line) \
- + "\n"
+ + "\n"
return string
return helper
string = ""
for memthing in world_db["Things"][id]["T_MEMTHING"]:
string = string + "T_MEMTHING " + str(memthing[0]) + " " + \
- str(memthing[1]) + " " + str(memthing[2]) + "\n"
+ str(memthing[1]) + " " + str(memthing[2]) + "\n"
return string
def helper(category, id_string, special_keys={}):
string = ""
for key in sorted(world_db.keys()):
- if dict != type(world_db[key]) and key != "MAP" and \
+ if (not isinstance(world_db[key], dict)) 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("ThingTypes", "TT_ID", {"TT_CORPSE_ID": False})
for id in sorted(world_db["ThingTypes"].keys()):
string = string + "TT_ID " + str(id) + "\n" + "TT_CORPSE_ID " + \
- str(world_db["ThingTypes"][id]["TT_CORPSE_ID"]) + "\n"
+ str(world_db["ThingTypes"][id]["TT_CORPSE_ID"]) + "\n"
string = string + helper("Things", "T_ID",
{"T_CARRIES": False, "carried": False,
"T_MEMMAP": mapsetter("T_MEMMAP"),
for carried in sorted(world_db["Things"][id]["T_CARRIES"].keys()):
string = string + "T_CARRIES " + str(carried) + "\n"
string = string + "SEED_RANDOMNESS " + str(rand.seed) + "\n" + \
- "WORLD_ACTIVE " + str(world_db["WORLD_ACTIVE"])
+ "WORLD_ACTIVE " + str(world_db["WORLD_ACTIVE"])
atomic_write(io_db["path_save"], string)
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" + \
- inventory + "%\n" + \
- str(world_db["Things"][0]["T_POSY"]) + "\n" + \
- str(world_db["Things"][0]["T_POSX"]) + "\n" + \
- str(world_db["MAP_LENGTH"]) + "\n"
+ str(world_db["Things"][0]["T_LIFEPOINTS"]) + "\n" + \
+ str(world_db["Things"][0]["T_SATIATION"]) + "\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"
length = world_db["MAP_LENGTH"]
fov = bytearray(b' ' * (length ** 2))
for pos in range(length ** 2):
x = rand.next() % length
pos = (y * length) + x
if "." == chr(world_db["MAP"][pos]) \
- and ((not single_allowed) or is_neighbor((y, x), "X")):
+ and ((not single_allowed) or is_neighbor((y, x), "X")):
world_db["MAP"][pos] = ord("X")
i_trees += 1
rand.seed = store_seed
for mt in [mt for mt in t["T_MEMTHING"]
if "v" == chr(t["fovmap"][(mt[1] * world_db["MAP_LENGTH"])
+ mt[2]])]:
- t["T_MEMTHING"].remove(mt)
+ t["T_MEMTHING"].remove(mt)
for id in [id for id in world_db["Things"]
if not world_db["Things"][id]["carried"]]:
type = world_db["Things"][id]["T_TYPE"]
"""Return val_string if integer >= min & (if max set) <= max, else None."""
try:
val = int(val_string)
- if val < min or (max != None and val > max):
+ if val < min or (max is not None and val > max):
raise ValueError
return val
except ValueError:
msg = "Ignoring: Please use integer >= " + str(min)
- if max != None:
+ if max is not None:
msg += " and <= " + str(max)
msg += "."
print(msg)
"""
if t["T_SATIATION"] > 0 \
and t["T_LIFEPOINTS"] < \
- world_db["ThingTypes"][t["T_TYPE"]]["TT_LIFEPOINTS"] \
+ world_db["ThingTypes"][t["T_TYPE"]]["TT_LIFEPOINTS"] \
and 0 == (rand.next() % 31) \
and t["T_COMMAND"] == [id for id in world_db["ThingActions"]
if world_db["ThingActions"][id]["TA_NAME"] ==
- "wait"][0]:
+ "wait"][0]:
t["T_LIFEPOINTS"] += 1
t["T_SATIATION"] -= 32
if t == world_db["Things"][0]:
+ Thing["T_POSX"]]):
ThingType = world_db["ThingTypes"][Thing["T_TYPE"]]
if ("f" == filter and ThingType["TT_LIFEPOINTS"] >=
- t["T_LIFEPOINTS"]) \
+ t["T_LIFEPOINTS"]) \
or ("a" == filter and ThingType["TT_LIFEPOINTS"] <
- t["T_LIFEPOINTS"]):
+ t["T_LIFEPOINTS"]):
return True
elif t["T_MEMMAP"] and "c" == filter:
for mt in t["T_MEMTHING"]:
if ' ' != chr(t["T_MEMMAP"][(mt[1] * world_db["MAP_LENGTH"])
- + mt[2]]) \
+ + mt[2]]) \
and world_db["ThingTypes"][mt[0]]["TT_CONSUMABLE"]:
return True
return False
# set_map_score(i, 65534) # i.e. 65535-1
map = c_pointer_to_bytearray(t["T_MEMMAP"])
if libpr.set_cells_passable_on_memmap_to_65534_on_scoremap(map):
- raise RuntimeError("No score map allocated for "
- "set_cells_passable_on_memmap_to_65534_on_scoremap().")
+ raise RuntimeError("No score map allocated for set_cells_passable"
+ "_on_memmap_to_65534_on_scoremap().")
def init_score_map():
test = libpr.init_score_map()
for id in world_db["Things"]:
Thing = world_db["Things"][id]
pos = Thing["T_POSY"] * world_db["MAP_LENGTH"] \
- + Thing["T_POSX"]
+ + Thing["T_POSX"]
if t != Thing and Thing["T_LIFEPOINTS"] and \
t["T_TYPE"] != Thing["T_TYPE"] and \
ord_v == t["fovmap"][pos] and \
if world_db["Things"][id]["T_LIFEPOINTS"]]:
Thing = world_db["Things"][id]
pos = Thing["T_POSY"] * world_db["MAP_LENGTH"] \
- + Thing["T_POSX"]
+ + Thing["T_POSX"]
if t["T_TYPE"] != Thing["T_TYPE"] and \
ord_v == t["fovmap"][pos] and \
t["T_LIFEPOINTS"] <= \
elif "c" == filter:
for mt in [mt for mt in t["T_MEMTHING"]
if ord_blank != t["T_MEMMAP"][mt[1]
- * world_db["MAP_LENGTH"]
- + mt[2]]
+ * world_db["MAP_LENGTH"]
+ + mt[2]]
if world_db["ThingTypes"][mt[0]]["TT_CONSUMABLE"]]:
set_map_score(mt[1] * world_db["MAP_LENGTH"] + mt[2], 0)
elif "s" == filter:
for i in range(len(dirs)):
mv_yx_in_dir_legal(dirs[i], t["T_POSY"], t["T_POSX"])
pos_cmp = libpr.result_y() * world_db["MAP_LENGTH"] \
- + libpr.result_x()
+ + libpr.result_x()
for pos in [pos for pos in inhabited if pos == pos_cmp]:
neighbors[i] = 65535
break
t["T_COMMAND"] = [id for id in world_db["ThingActions"]
if
world_db["ThingActions"][id]["TA_NAME"]
- == "wait"][0]
+ == "wait"][0]
return 1
elif dir_to_target and 3 < get_map_score(eye_pos):
dir_to_target = 0
run_i -= 1
init_score_map()
mem_depth_c = b'9' if b' ' == mem_depth_c \
- else bytes([mem_depth_c[0] - 1])
+ else bytes([mem_depth_c[0] - 1])
if libpr.dijkstra_map():
raise RuntimeError("No score map allocated for dijkstra_map().")
dir_to_target = get_dir_from_neighbors()
if dir_to_target and str == type(dir_to_target):
t["T_COMMAND"] = [id for id in world_db["ThingActions"]
if world_db["ThingActions"][id]["TA_NAME"]
- == "move"][0]
+ == "move"][0]
t["T_ARGUMENT"] = ord(dir_to_target)
return dir_to_target
if -1 != sel:
t["T_COMMAND"] = [id for id in world_db["ThingActions"]
if world_db["ThingActions"][id]["TA_NAME"]
- == "use"][0]
+ == "use"][0]
t["T_ARGUMENT"] = sel
elif standing_on_consumable(t):
t["T_COMMAND"] = [id for id in world_db["ThingActions"]
if world_db["ThingActions"][id]["TA_NAME"]
- == "pick_up"][0]
+ == "pick_up"][0]
elif (not get_dir_to_target(t, "c")) and \
(not get_dir_to_target(t, "a")):
get_dir_to_target(t, "s")
try_healing(Thing)
Thing["T_PROGRESS"] += 1
taid = [a for a in world_db["ThingActions"]
- if a == Thing["T_COMMAND"]][0]
+ if a == Thing["T_COMMAND"]][0]
ThingAction = world_db["ThingActions"][taid]
if Thing["T_PROGRESS"] == ThingAction["TA_EFFORT"]:
eval("actor_" + ThingAction["TA_NAME"])(Thing)
def set_command():
id = [x for x in world_db["ThingActions"]
- if world_db["ThingActions"][x]["TA_NAME"] == action][0]
+ if world_db["ThingActions"][x]["TA_NAME"] == action][0]
world_db["Things"][0]["T_COMMAND"] = id
turn_over()
if val == command_tid.id:
print("Ignoring: Thing cannot carry itself.")
elif val in world_db["Things"] \
- and not world_db["Things"][val]["carried"]:
+ and not world_db["Things"][val]["carried"]:
world_db["Things"][command_tid.id]["T_CARRIES"].append(val)
world_db["Things"][val]["carried"] = True
else: