X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=server%2Fworld.py;h=f0156a355b6519119faaac8f71b5e48a5e3f6100;hb=d3e3ad21ec1da876646952af07d992c054e8739a;hp=6b03d0a6ae83f14110732474eeb304ba2651f851;hpb=f6a1bf0aa76165c104d74fe8dfaf674d3e63b52d;p=plomrogue diff --git a/server/world.py b/server/world.py index 6b03d0a..f0156a3 100644 --- a/server/world.py +++ b/server/world.py @@ -9,32 +9,6 @@ from server.utils import rand from server.utils import id_setter -def decrement_lifepoints(t): - """Decrement t's lifepoints by 1, and if to zero, corpse it. - - 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)) - log("You die.") - log("See README on how to start over.") - else: - t["fovmap"] = False - t["T_MEMMAP"] = False - t["T_MEMDEPTHMAP"] = False - t["T_MEMTHING"] = [] - - def try_healing(t): """If t's HP < max, increment them if well-nourished, maybe waiting.""" if t["T_LIFEPOINTS"] < \ @@ -57,6 +31,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 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"])): @@ -65,7 +40,7 @@ def hunger(t): log("You SUFFER from hunger.") else: log("You SUFFER from over-eating.") - decrement_lifepoints(t) + decrement_lifepoints_func(t) def set_world_inactive(): @@ -78,7 +53,7 @@ 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 + from server.config.misc import thingproliferation_func, calc_effort_func from server.update_map_memory import update_map_memory id = 0 whilebreaker = False @@ -108,7 +83,8 @@ def turn_over(): taid = [a for a in world_db["ThingActions"] if a == Thing["T_COMMAND"]][0] ThingAction = world_db["ThingActions"][taid] - if Thing["T_PROGRESS"] == ThingAction["TA_EFFORT"]: + effort = calc_effort_func(ThingAction, Thing) + if Thing["T_PROGRESS"] == effort: action = action_db["actor_" + ThingAction["TA_NAME"]] action(Thing) Thing["T_COMMAND"] = 0