From: Christian Heller Date: Wed, 26 Aug 2015 03:29:29 +0000 (+0200) Subject: Let actor_pick_up pick up most nutritious Thing as topmost Thing. X-Git-Tag: tce~312 X-Git-Url: https://plomlompom.com/repos/%7B%7Bdb.prefix%7D%7D/static/blog?a=commitdiff_plain;h=ace34523845848aa82d63ff31d10783ffe0f82aa;p=plomrogue Let actor_pick_up pick up most nutritious Thing as topmost Thing. --- diff --git a/roguelike-server b/roguelike-server index 483dc22..77c53d4 100755 --- a/roguelike-server +++ b/roguelike-server @@ -656,15 +656,18 @@ def actor_move(t): def actor_pick_up(t): """Make t pick up (topmost?) Thing from ground into inventory.""" - # Topmostness is actually not defined so far. Picks Thing with highest ID. + # Topmostness is actually not defined so far. Picks most nutritious Thing. 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): - highest_id = 0 + highest_id = ids[0] + nutritious = 0 for id in ids: - if id > highest_id: + type = world_db["Things"][id]["T_TYPE"] + if world_db["ThingTypes"][type]["TT_CONSUMABLE"] > nutritious: + nutritious = world_db["ThingTypes"][type]["TT_CONSUMABLE"] highest_id = id world_db["Things"][highest_id]["carried"] = True t["T_CARRIES"].append(highest_id)