home · contact · privacy
Server: Update worldstate during any turn change -> be more responsive.
[plomrogue] / server / world.py
index a313eae76f916a0b17056a101726bf76dfbbeed8..ff8043ed492398fa9ce5947e868696fb738124af 100644 (file)
@@ -42,6 +42,17 @@ def hunger(t):
         decrement_lifepoints(t)
 
 
+def eat_vs_hunger_threshold(thingtype):
+    """Return satiation cost of eating for type. Good food for it must be >."""
+    hunger_unit = hunger_per_turn(thingtype)
+    try:
+        actiontype = next(taid for taid in world_db["ThingActions"] if
+                          world_db["ThingActions"][taid]["TA_NAME"] == "use")
+    except StopIteration:
+        return 0
+    return world_db["ThingActions"][actiontype]["TA_EFFORT"] * hunger_unit
+
+
 def set_world_inactive():
     """Set world_db["WORLD_ACTIVE"] to 0 and remove worldstate file."""
     from server.io import safely_remove_worldstate_file
@@ -56,6 +67,8 @@ def turn_over():
     from server.config.misc import calc_effort
     from server.update_map_memory import update_map_memory
     from server.thingproliferation import thingproliferation
+    from server.io import try_worldstate_update
+    from server.config.io import io_db
     id = 0
     while world_db["Things"][0]["T_LIFEPOINTS"]:
         proliferable_map = world_db["MAP"][:]
@@ -90,3 +103,5 @@ def turn_over():
                         Thing["T_PROGRESS"] = 0
             thingproliferation(Thing, proliferable_map)
         world_db["TURN"] += 1
+        io_db["worldstate_updateable"] = True
+        try_worldstate_update()