home · contact · privacy
Server: Refactor and fix bugs in in thing proliferation.
[plomrogue] / server / world.py
index f0156a355b6519119faaac8f71b5e48a5e3f6100..a313eae76f916a0b17056a101726bf76dfbbeed8 100644 (file)
@@ -6,7 +6,6 @@
 from server.config.world_data import world_db
 from server.io import log
 from server.utils import rand
-from server.utils import id_setter
 
 
 def try_healing(t):
@@ -31,7 +30,7 @@ def hunger_per_turn(type_id):
 
 def hunger(t):
     """Decrement t's satiation,dependent on it trigger lifepoint dec chance."""
-    from server.config.misc import decrement_lifepoints_func
+    from server.config.misc import decrement_lifepoints
     if t["T_SATIATION"] > -32768:
         t["T_SATIATION"] -= hunger_per_turn(t["T_TYPE"])
     if 0 != t["T_SATIATION"] and 0 == int(rand.next() / abs(t["T_SATIATION"])):
@@ -40,7 +39,7 @@ def hunger(t):
                 log("You SUFFER from hunger.")
             else:
                 log("You SUFFER from over-eating.")
-        decrement_lifepoints_func(t)
+        decrement_lifepoints(t)
 
 
 def set_world_inactive():
@@ -52,17 +51,18 @@ def set_world_inactive():
 
 def turn_over():
     """Run game world and its inhabitants until new player input expected."""
-    from server.config.actions import action_db, ai_func
-    from server.config.misc import thingproliferation_func, calc_effort_func
+    from server.ai import ai
+    from server.config.actions import action_db
+    from server.config.misc import calc_effort
     from server.update_map_memory import update_map_memory
+    from server.thingproliferation import thingproliferation
     id = 0
-    whilebreaker = False
     while world_db["Things"][0]["T_LIFEPOINTS"]:
         proliferable_map = world_db["MAP"][:]
-        for id in [id for id in world_db["Things"]
-                   if not world_db["Things"][id]["carried"]]:
-            y = world_db["Things"][id]["T_POSY"]
-            x = world_db["Things"][id]["T_POSX"]
+        for tid in [tid for tid in world_db["Things"]
+                   if not world_db["Things"][tid]["carried"]]:
+            y = world_db["Things"][tid]["T_POSY"]
+            x = world_db["Things"][tid]["T_POSX"]
             proliferable_map[y * world_db["MAP_LENGTH"] + x] = ord('X')
         for id in [id for id in world_db["Things"]]:  # Only what's from start!
             if not id in world_db["Things"] or \
@@ -73,9 +73,8 @@ def turn_over():
                 if not Thing["T_COMMAND"]:
                     update_map_memory(Thing)
                     if 0 == id:
-                        whilebreaker = True
-                        break
-                    ai_func(Thing)
+                        return
+                    ai(Thing)
                 try_healing(Thing)
                 hunger(Thing)
                 if Thing["T_LIFEPOINTS"]:
@@ -83,13 +82,11 @@ def turn_over():
                     taid = [a for a in world_db["ThingActions"]
                               if a == Thing["T_COMMAND"]][0]
                     ThingAction = world_db["ThingActions"][taid]
-                    effort = calc_effort_func(ThingAction, Thing)
+                    effort = calc_effort(ThingAction, Thing)
                     if Thing["T_PROGRESS"] == effort:
                         action = action_db["actor_" + ThingAction["TA_NAME"]]
                         action(Thing)
                         Thing["T_COMMAND"] = 0
                         Thing["T_PROGRESS"] = 0
-            thingproliferation_func(Thing, proliferable_map)
-        if whilebreaker:
-            break
+            thingproliferation(Thing, proliferable_map)
         world_db["TURN"] += 1