def actor_move(t):
"""If passable, move/collide(=attack) thing into T_ARGUMENT's direction."""
from server.build_fov_map import build_fov_map
- from server.world import decrement_lifepoints
+ from server.config.misc import decrement_lifepoints_func
from server.utils import mv_yx_in_dir_legal
from server.config.world_data import directions_db, symbols_passable
passable = False
elif 0 == hit_id:
hitter_name = world_db["ThingTypes"][t["T_TYPE"]]["TT_NAME"]
log(hitter_name +" WOUNDS you.")
- decrement_lifepoints(world_db["Things"][hit_id])
+ decrement_lifepoints_func(world_db["Things"][hit_id])
return
passable = chr(world_db["MAP"][pos]) in symbols_passable
dir = [dir for dir in directions_db
from server.make_map import make_map
from server.thingproliferation import thingproliferation
from server.make_world import make_world
+from server.decrement_lifepoints import decrement_lifepoints
+decrement_lifepoints_func = decrement_lifepoints
make_map_func = make_map
thingproliferation_func = thingproliferation
make_world_func = make_world
--- /dev/null
+# This file is part of PlomRogue. PlomRogue is licensed under the GPL version 3
+# or any later version. For details on its copyright, license, and warranties,
+# see the file NOTICE in the root directory of the PlomRogue source package.
+
+
+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.
+ """
+ from server.config.world_data import world_db
+ from server.io import log
+ 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"] = []
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"] < \
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"])):
log("You SUFFER from hunger.")
else:
log("You SUFFER from over-eating.")
- decrement_lifepoints(t)
+ decrement_lifepoints_func(t)
def set_world_inactive():