home · contact · privacy
Server, plugin: Refactor decrement_lifepoint hooking, add missed files.
[plomrogue] / server / decrement_lifepoints.py
index 827a16ea0616da93fe25c13e2ce412a2f315812b..b8cab9740abd995b4e8938c61644b079c06a45ca 100644 (file)
@@ -4,22 +4,22 @@
 
 
 def decrement_lifepoints(t):
-    """Decrement t's lifepoints by 1, and if to zero, corpse it.
+    """Decrement t's lifepoints by 1; if to zero, corpse it, drop its stuff.
 
     If t is the player avatar, only blank its fovmap, so that the client may
     still display memory data. On non-player things, erase fovmap and memory.
-    Dying actors drop all their things.
+    On kill, return dying type's TT_LIFEPOINTS, else 0.
     """
     from server.config.world_data import world_db
     from server.io import log
     t["T_LIFEPOINTS"] -= 1
     if 0 == t["T_LIFEPOINTS"]:
         live_tid = t["T_TYPE"]
-        for id in t["T_CARRIES"]:
-            t["T_CARRIES"].remove(id)
-            world_db["Things"][id]["T_POSY"] = t["T_POSY"]
-            world_db["Things"][id]["T_POSX"] = t["T_POSX"]
-            world_db["Things"][id]["carried"] = False
+        for tid in t["T_CARRIES"]:
+            t["T_CARRIES"].remove(tid)
+            world_db["Things"][tid]["T_POSY"] = t["T_POSY"]
+            world_db["Things"][tid]["T_POSX"] = t["T_POSX"]
+            world_db["Things"][tid]["carried"] = False
         t["T_TYPE"] = world_db["ThingTypes"][t["T_TYPE"]]["TT_CORPSE_ID"]
         if world_db["Things"][0] == t:
             t["fovmap"] = bytearray(b' ' * (world_db["MAP_LENGTH"] ** 2))