home · contact · privacy
Server/py: Apply PEP8.
[plomrogue] / plomrogue-server.py
index 5c07f6d73a1acd96a7c3915fc3cac635f8937ce4..06fe20819d1a3a66d293ae99b4a564131d2505a1 100755 (executable)
@@ -604,7 +604,7 @@ def actor_move(t):
             hitted_name = world_db["ThingTypes"][hitted_type]["TT_NAME"]
             hitted = "you" if hit_id == 0 else hitted_name
             verb = " wound " if hitter == "You" else " wounds "
-            strong_write(io_db["file_out"], "LOG " + hitter + verb + hitted + \
+            strong_write(io_db["file_out"], "LOG " + hitter + verb + hitted +
                                             ".\n")
             decrement_lifepoints(world_db["Things"][hit_id])
             return
@@ -687,7 +687,7 @@ def thingproliferation(t):
                        if y == world_db["Things"][id]["T_POSY"]
                        if x == world_db["Things"][id]["T_POSX"]
                        if (t["T_TYPE"] == world_db["Things"][id]["T_TYPE"])
-                       or (t["T_LIFEPOINTS"] and 
+                       or (t["T_LIFEPOINTS"] and
                            world_db["Things"][id]["T_LIFEPOINTS"])]:
                 return False
             return True
@@ -706,8 +706,29 @@ def thingproliferation(t):
             world_db["Things"][id] = newT
 
 
+def try_healing(t):
+    """Grow t's HP to a 1/32 chance if < HP max, satiation > 0, and waiting.
+
+    On success, decrease satiation score by 32.
+    """
+    if t["T_SATIATION"] > 0 \
+       and t["T_LIFEPOINTS"] < \
+           world_db["ThingTypes"][t["T_TYPE"]]["TT_LIFEPOINTS"] \
+       and 0 == (rand.next() % 31) \
+       and t["T_COMMAND"] == [id for id in world_db["ThingActions"]
+                              if world_db["ThingActions"][id]["TA_NAME"] ==
+                                 "wait"][0]:
+        t["T_LIFEPOINTS"] += 1
+        t["T_SATIATION"] -= 32
+        if t == world_db["Things"][0]:
+            strong_write(io_db["file_out"], "LOG You heal.\n")
+        else:
+            name = world_db["ThingTypes"][t["T_TYPE"]]["TT_NAME"]
+            strong_write(io_db["file_out"], "LOG " + name + "heals.\n")
+
+
 def hunger(t):
-    """Decrement t's satiation, dependent on it trigger lifepoint dec chance."""
+    """Decrement t's satiation,dependent on it trigger lifepoint dec chance."""
     if t["T_SATIATION"] > -32768:
         t["T_SATIATION"] -= 1
     testbase = t["T_SATIATION"] if t["T_SATIATION"] >= 0 else -t["T_SATIATION"]
@@ -719,7 +740,7 @@ def hunger(t):
             strong_write(io_db["file_out"], "LOG You suffer from hunger.\n")
         else:
             name = world_db["ThingTypes"][t["T_TYPE"]]["TT_NAME"]
-            strong_write(io_db["file_out"], "LOG " + name + \
+            strong_write(io_db["file_out"], "LOG " + name +
                                             " suffers from hunger.\n")
         decrement_lifepoints(t)
 
@@ -739,7 +760,7 @@ def turn_over():
                         break
                     # DUMMY: ai(thing)
                     Thing["T_COMMAND"] = 1
-                # DUMMY: try_healing
+                try_healing(Thing)
                 Thing["T_PROGRESS"] += 1
                 taid = [a for a in world_db["ThingActions"]
                           if a == Thing["T_COMMAND"]][0]
@@ -755,7 +776,7 @@ def turn_over():
         world_db["TURN"] += 1
 
 
-def new_Thing(type, pos=(0,0)):
+def new_Thing(type, pos=(0, 0)):
     """Return Thing of type T_TYPE, with fovmap if alive and world active."""
     thing = {
         "T_LIFEPOINTS": world_db["ThingTypes"][type]["TT_LIFEPOINTS"],