if "v" == chr(t["fovmap"][(mt[1] * world_db["MAP_LENGTH"])
+ mt[2]])]:
t["T_MEMTHING"].remove(mt)
- for id in world_db["Things"]:
+ for id in [id for id in world_db["Things"]
+ if not world_db["Things"][id]["carried"]]:
type = world_db["Things"][id]["T_TYPE"]
if not world_db["ThingTypes"][type]["TT_LIFEPOINTS"]:
y = world_db["Things"][id]["T_POSY"]
def actor_pick_up(t):
"""Make t pick up (topmost?) Thing from ground into inventory."""
- # Topmostness is actually not defined so far.
+ # Topmostness is actually not defined so far. Picks Thing with highest ID.
ids = [id for id in world_db["Things"] if world_db["Things"][id] != t
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 len(ids):
- world_db["Things"][ids[0]]["carried"] = True
- t["T_CARRIES"].append(ids[0])
+ highest_id = 0
+ for id in ids:
+ if id > highest_id:
+ highest_id = id
+ world_db["Things"][highest_id]["carried"] = True
+ t["T_CARRIES"].append(highest_id)
if t == world_db["Things"][0]:
strong_write(io_db["file_out"], "LOG You pick up an object.\n")
elif t == world_db["Things"][0]:
t["T_CARRIES"].remove(id)
del world_db["Things"][id]
t["T_SATIATION"] += world_db["ThingTypes"][type]["TT_CONSUMABLE"]
- t["T_LIFEPOINTS"] += 1
- # Wrongly increment HPs is a replica of the original code.
- strong_write(io_db["file_out"], "LOG You consume this object.\n")
- else:
- strong_write(io_db["file_out"], "LOG You try to use this object," +
- "but fail.\n")
- else:
- strong_write(io_db["file_out"], "LOG You try to use an object, but " +
- "you own none.\n")
+ if t == world_db["Things"][0]:
+ strong_write(io_db["file_out"],
+ "LOG You consume this object.\n")
+ elif t == world_db["Things"][0]:
+ strong_write(io_db["file_out"],
+ "LOG You try to use this object, but fail.\n")
+ elif t == world_db["Things"][0]:
+ strong_write(io_db["file_out"],
+ "LOG You try to use an object, but you own none.\n")
def thingproliferation(t):