From: Christian Heller <c.heller@plomlompom.de>
Date: Sun, 21 Feb 2016 20:26:25 +0000 (+0100)
Subject: Server: Fix dependences on possibly undefined actions.
X-Git-Tag: tce~192
X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/%7B%7B%20web_path%20%7D%7D/%7B%7Bdb.prefix%7D%7D/%7B%7Bprefix%7D%7D?a=commitdiff_plain;h=54243f78131ceab5aeff854321cb0598abbb8bf2;p=plomrogue

Server: Fix dependences on possibly undefined actions.
---

diff --git a/server/ai.py b/server/ai.py
index 21241fc..3212be0 100644
--- a/server/ai.py
+++ b/server/ai.py
@@ -274,21 +274,26 @@ def ai(t):
     """Determine next command/argment for actor t via AI algorithms."""
     t["T_COMMAND"] = [id for id in world_db["ThingActions"]
                       if world_db["ThingActions"][id]["TA_NAME"] == "wait"][0]
-    if get_dir_to_target(t, "f"):
-        return
-    sel = get_inventory_slot_to_consume(t)
-    if -1 != sel:
-        t["T_COMMAND"] = [id for id in world_db["ThingActions"]
-                          if world_db["ThingActions"][id]["TA_NAME"]
-                             == "use"][0]
-        t["T_ARGUMENT"] = sel
-    elif standing_on_food(t):
+    eating = len([id for id in world_db["ThingActions"]
+                  if world_db["ThingActions"][id]["TA_NAME"] == "use"]) > 0
+    picking = len([id for id in world_db["ThingActions"]
+                   if world_db["ThingActions"][id]["TA_NAME"] == "pickup"]) > 0
+    if eating and picking:
+        if get_dir_to_target(t, "f"):
+            return
+        sel = get_inventory_slot_to_consume(t)
+        if -1 != sel:
             t["T_COMMAND"] = [id for id in world_db["ThingActions"]
                               if world_db["ThingActions"][id]["TA_NAME"]
-                              == "pickup"][0]
-    else:
-        going_to_known_food_spot = get_dir_to_target(t, "c")
-        if not going_to_known_food_spot:
-            aiming_for_walking_food = get_dir_to_target(t, "a")
-            if not aiming_for_walking_food:
-                get_dir_to_target(t, "s")
+                                 == "use"][0]
+            t["T_ARGUMENT"] = sel
+        elif standing_on_food(t):
+                t["T_COMMAND"] = [id for id in world_db["ThingActions"]
+                                  if world_db["ThingActions"][id]["TA_NAME"]
+                                  == "pickup"][0]
+        else:
+            going_to_known_food_spot = get_dir_to_target(t, "c")
+            if not going_to_known_food_spot:
+                aiming_for_walking_food = get_dir_to_target(t, "a")
+                if not aiming_for_walking_food:
+                    get_dir_to_target(t, "s")