From: Christian Heller <c.heller@plomlompom.de>
Date: Sun, 28 Feb 2016 21:07:43 +0000 (+0100)
Subject: Server, plugin: Refactor actor_drop plugin hooking.
X-Git-Tag: tce~126
X-Git-Url: https://plomlompom.com/repos/%7B%7Bdb.prefix%7D%7D/static/%7B%7Bprefix%7D%7D/condition?a=commitdiff_plain;h=c29d6ff72609528521634104c636658325a07796;p=plomrogue

Server, plugin: Refactor actor_drop plugin hooking.
---

diff --git a/plugins/server/PleaseTheIslandGod.py b/plugins/server/PleaseTheIslandGod.py
index d28e235..b3afc6a 100644
--- a/plugins/server/PleaseTheIslandGod.py
+++ b/plugins/server/PleaseTheIslandGod.py
@@ -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"]):
diff --git a/server/actions.py b/server/actions.py
index 5492dbe..7f1f657 100644
--- a/server/actions.py
+++ b/server/actions.py
@@ -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."""