+def actor_wait(Thing):
+ """Do nothing (but loudly, if by player)."""
+ if Thing == world_db["Things"][0]:
+ strong_write(io_db["file_out"], "LOG You wait.\n")
+
+
+def actor_move(Thing):
+ pass
+
+
+def actor_pick_up(Thing):
+ """Pick up (topmost?) thing from ground into inventory."""
+ # Topmostness is actually not defined so far.
+ ids = [id for id in world_db["Things"] if world_db["Things"][id] != Thing
+ if not world_db["Things"][id]["carried"]
+ if world_db["Things"][id]["T_POSY"] == Thing["T_POSY"]
+ if world_db["Things"][id]["T_POSX"] == Thing["T_POSX"]]
+ if ids:
+ world_db["Things"][ids[0]]["carried"] = True
+ Thing["T_CARRIES"].append(ids[0])
+ strong_write(io_db["file_out"], "LOG You pick up an object.\n")
+ else:
+ err = "You try to pick up an object, but there is none."
+ strong_write(io_db["file_out"], "LOG " + err + "\n")
+
+
+def actor_drop(Thing):
+ pass
+
+
+def actor_use(Thing):
+ pass
+
+
+def turn_over():
+ """Run game world and its inhabitants until new player input expected."""
+ id = 0
+ whilebreaker = False
+ while world_db["Things"][0]["T_LIFEPOINTS"]:
+ for id in [id for id in world_db["Things"]
+ if world_db["Things"][id]["T_LIFEPOINTS"]]:
+ Thing = world_db["Things"][id]
+ if Thing["T_LIFEPOINTS"]:
+ if not Thing["T_COMMAND"]:
+ update_map_memory(Thing)
+ if 0 == id:
+ whilebreaker = True
+ break
+ # DUMMY: ai(thing)
+ Thing["T_COMMAND"] = 1
+ # DUMMY: try_healing
+ Thing["T_PROGRESS"] += 1
+ taid = [a for a in world_db["ThingActions"]
+ if a == Thing["T_COMMAND"]][0]
+ ThingAction = world_db["ThingActions"][taid]
+ if Thing["T_PROGRESS"] == ThingAction["TA_EFFORT"]:
+ eval("actor_" + ThingAction["TA_NAME"])(Thing)
+ Thing["T_COMMAND"] = 0
+ Thing["T_PROGRESS"] = 0
+ # DUMMY: hunger
+ # DUMMY: thingproliferation
+ if whilebreaker:
+ break
+ world_db["TURN"] += 1
+
+