home · contact · privacy
7DRL: Only player may pick up non-food.(Or AI axe-blocks its inventory.)
authorChristian Heller <c.heller@plomlompom.de>
Sat, 14 Mar 2015 03:32:29 +0000 (04:32 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Sat, 14 Mar 2015 03:32:29 +0000 (04:32 +0100)
roguelike-server

index 29fe11994b79c15bca1ac95536f788cb16345e21..b5468a59c3b91fa675144f63fd9f1cb374df8e8d 100755 (executable)
@@ -903,6 +903,7 @@ def actor_pick_up(t):
     Define topmostness by how low the thing's type ID is.
     """
     # 7DRL: Non-player picking up player-dropped consumable -> GOD_FAVOR gain.
+    # 7DRL: Only player picks up non-food.
     used_slots = len(t["T_CARRIES"]) # #
     if used_slots < world_db["ThingTypes"][t["T_TYPE"]]["TT_STORAGE"]: # #
         ids = [id for id in world_db["Things"] if world_db["Things"][id] != t
@@ -914,6 +915,9 @@ def actor_pick_up(t):
             for iid in ids:
                 tid = world_db["Things"][iid]["T_TYPE"] 
                 if lowest_tid == -1 or tid < lowest_tid:
+                    if (t != world_db["Things"][0] and  # #
+                        world_db["ThingTypes"][tid]["TT_TOOL"] != "food"):
+                        continue
                     id = iid
                     lowest_tid = tid
             world_db["Things"][id]["carried"] = True