home · contact · privacy
Let dying actors drop their things.
authorChristian Heller <c.heller@plomlompom.de>
Wed, 26 Aug 2015 03:24:31 +0000 (05:24 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Wed, 26 Aug 2015 03:24:31 +0000 (05:24 +0200)
roguelike-server

index 57f0b6c1bc737dd92c8ebd3e14fa9bca2697c662..483dc22f75171bb588c2d4c471a44637da88938e 100755 (executable)
@@ -578,9 +578,15 @@ def decrement_lifepoints(t):
 
     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.
     """
     t["T_LIFEPOINTS"] -= 1
     if 0 == t["T_LIFEPOINTS"]:
+        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
         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))