X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;ds=sidebyside;f=server%2Fworld.py;h=c6c835fb3cf9735d94df62452a21242b40cda6af;hb=10152e3ef6bac7e1fbc381cc986c45eebccbcc32;hp=8c85d153219b73edafebed56ad5ad12fd8534c2b;hpb=a138cf3250a860e1bdec7f84248577030948d29b;p=plomrogue
diff --git a/server/world.py b/server/world.py
index 8c85d15..c6c835f 100644
--- a/server/world.py
+++ b/server/world.py
@@ -30,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"])):
@@ -39,7 +39,18 @@ def hunger(t):
log("You SUFFER from hunger.")
else:
log("You SUFFER from over-eating.")
- decrement_lifepoints_func(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():
@@ -51,16 +62,19 @@ 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
- id = 0
+ from server.thingproliferation import thingproliferation
+ from server.io import try_worldstate_update
+ from server.config.io import io_db
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 \
@@ -72,7 +86,7 @@ def turn_over():
update_map_memory(Thing)
if 0 == id:
return
- ai_func(Thing)
+ ai(Thing)
try_healing(Thing)
hunger(Thing)
if Thing["T_LIFEPOINTS"]:
@@ -80,11 +94,13 @@ 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)
+ thingproliferation(Thing, proliferable_map)
world_db["TURN"] += 1
+ io_db["worldstate_updateable"] = True
+ try_worldstate_update()