home · contact · privacy
Server/py: Undummify actor_use.
[plomrogue] / plomrogue-server.py
index cb7f9b0cbb31b81d006330528971d99ec56a7151..fc0a82a853066c5006e4e304a2ec3dcc2064c125 100755 (executable)
@@ -455,7 +455,7 @@ def actor_wait(t):
         strong_write(io_db["file_out"], "LOG You wait.\n")
 
 
-def actor_move(Thing):
+def actor_move(t):
     pass
 
 
@@ -484,13 +484,30 @@ def actor_drop(t):
         t["T_CARRIES"].remove(id)
         world_db["Things"][id]["carried"] = False
         if t == world_db["Things"][0]:
-            print("You drop an object.")
+            strong_write(io_db["file_out"], "LOG You drop an object.\n")
     elif t == world_db["Things"][0]:
-        print("You try to drop an object, but you own none.")
+        err = "You try to drop an object, but you own none."
+        strong_write(io_db["file_out"], "LOG " + err + "\n")
 
 
-def actor_use(Thing):
-    pass
+def actor_use(t):
+    """Make t use (for now: consume) T_ARGUMENT-indexed Thing in inventory."""
+    # Original wrongly featured lifepoints increase through consumable!
+    # TODO: Handle case where T_ARGUMENT matches nothing.
+    if len(t["T_CARRIES"]):
+        id = t["T_CARRIES"][t["T_ARGUMENT"]]
+        type = world_db["Things"][id]["T_TYPE"]
+        if world_db["ThingTypes"][type]["TT_CONSUMABLE"]:
+            t["T_CARRIES"].remove(id)
+            del world_db["Things"][id]
+            t["T_SATIATION"] += world_db["ThingTypes"][type]["TT_CONSUMABLE"]
+            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")
 
 
 def turn_over():