+def calc_effort(thing_action, thing):
+ from math import sqrt
+ effort = thing_action["TA_EFFORT"]
+ if thing_action["TA_NAME"] == "move":
+ typ = thing["T_TYPE"]
+ max_hp = (world_db["ThingTypes"][typ]["TT_LIFEPOINTS"])
+ effort = int(effort / sqrt(max_hp))
+ effort = 1 if effort == 0 else effort
+ return effort
+
+def play_pickup():
+ """Try "pickup" as player's T_COMMAND"."""
+ if action_exists("pickup"):
+ t = world_db["Things"][0]
+ ids = [id for id in world_db["Things"] if id
+ if not world_db["Things"][id]["carried"]
+ if world_db["Things"][id]["T_POSY"] == t["T_POSY"]
+ if world_db["Things"][id]["T_POSX"] == t["T_POSX"]]
+ if not len(ids):
+ log("NOTHING to pick up.")
+ elif len(t["T_CARRIES"]) >= world_db["ThingTypes"][t["T_TYPE"]] \
+ ["TT_STORAGE"]:
+ log("CAN'T pick up: No storage room to carry anything more.")
+ else:
+ set_command("pickup")
+