home · contact · privacy
Server, plugin: Refactor actor_drop plugin hooking.
authorChristian Heller <c.heller@plomlompom.de>
Sun, 28 Feb 2016 21:07:43 +0000 (22:07 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Sun, 28 Feb 2016 21:07:43 +0000 (22:07 +0100)
plugins/server/PleaseTheIslandGod.py
server/actions.py

index d28e235458ea0439a321f51745239f72117d35e5..b3afc6a3888808947bc823a1625a989dbbf4ee64 100644 (file)
@@ -91,14 +91,10 @@ def actor_pickup_test_hook(t, tid):
             (tt["TT_TOOLPOWER"] <= eat_vs_hunger_threshold(t["T_TYPE"]))))
 
 def actor_drop(t):
-    """Make t rop Thing from inventory to ground indexed by T_ARGUMENT."""
-    if len(t["T_CARRIES"]):
-        id = t["T_CARRIES"][t["T_ARGUMENT"]]
-        t["T_CARRIES"].remove(id)
-        world_db["Things"][id]["carried"] = False
-        if t == world_db["Things"][0]:
-            log("You DROP an object.")
-            world_db["Things"][id]["T_PLAYERDROP"] = 1
+    from server.actions import actor_drop
+    dropped = actor_drop(t)
+    if dropped != None:
+        dropped["T_PLAYERDROP"] = 1
 
 def actor_use(t):
     if len(t["T_CARRIES"]):
index 5492dbe97b2f9bbcb62cb79b5cbe4b852b9ba181..7f1f657452ea00a30a044c783b868f34593ac24a 100644 (file)
@@ -79,7 +79,7 @@ def actor_pickup(t):
         return world_db["Things"][id]
 
 def actor_drop(t):
-    """Make t rop Thing from inventory to ground indexed by T_ARGUMENT."""
+    """Drop to ground from t's inventory, return T_ARGUMENT-indexed Thing."""
     # TODO: Handle case where T_ARGUMENT matches nothing.
     if len(t["T_CARRIES"]):
         id = t["T_CARRIES"][t["T_ARGUMENT"]]
@@ -87,7 +87,7 @@ def actor_drop(t):
         world_db["Things"][id]["carried"] = False
         if t == world_db["Things"][0]:
             log("You DROP an object.")
-
+            return world_db["Things"][id]
 
 def actor_use(t):
     """Make t use (for now: consume) T_ARGUMENT-indexed Thing in inventory."""