X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=plomrogue-server.py;h=82e2cbc87c2823f4ce3bc1164a4b74fdc64bc4e8;hb=2ad562cb7cdf2dc2cf93c5e8996209884a2e02d9;hp=d0c0e0c58d82cb3d0db038896ab436e926c59145;hpb=49769c980ccccfee67754b7bcc83c3b42588ded8;p=plomrogue diff --git a/plomrogue-server.py b/plomrogue-server.py index d0c0e0c..82e2cbc 100755 --- a/plomrogue-server.py +++ b/plomrogue-server.py @@ -468,13 +468,16 @@ def update_map_memory(t): t["T_MEMMAP"] = bytearray(b' ' * (world_db["MAP_LENGTH"] ** 2)) if not t["T_MEMDEPTHMAP"]: t["T_MEMDEPTHMAP"] = bytearray(b' ' * (world_db["MAP_LENGTH"] ** 2)) - for pos in [pos for pos in range(world_db["MAP_LENGTH"] ** 2) - if "v" == chr(t["fovmap"][pos])]: + for pos in range(world_db["MAP_LENGTH"] ** 2): + if "v" == chr(t["fovmap"][pos]): t["T_MEMDEPTHMAP"][pos] = ord("0") if " " == chr(t["T_MEMMAP"][pos]): t["T_MEMMAP"][pos] = world_db["MAP"][pos] continue - # TODO: Aging of MEMDEPTHMAP. + if ord('0') <= t["T_MEMDEPTHMAP"][pos] \ + and ord('9') >= t["T_MEMDEPTHMAP"][pos] \ + and not rand.next() % (2 ** (t["T_MEMDEPTHMAP"][pos] - 48)): + t["T_MEMDEPTHMAP"][pos] += 1 for mt in [mt for mt in t["T_MEMTHING"] if "v" == chr(t["fovmap"][(mt[1] * world_db["MAP_LENGTH"]) + mt[2]])]: @@ -703,6 +706,27 @@ def thingproliferation(t): world_db["Things"][id] = newT +def try_healing(t): + """Grow t's HP to a 1/32 chance if < HP max, satiation > 0, and waiting. + + On success, decrease satiation score by 32. + """ + if t["T_SATIATION"] > 0 \ + and t["T_LIFEPOINTS"] < \ + world_db["ThingTypes"][t["T_TYPE"]]["TT_LIFEPOINTS"] \ + and 0 == (rand.next() % 31) \ + and t["T_COMMAND"] == [id for id in world_db["ThingActions"] + if world_db["ThingActions"][id]["TA_NAME"] == + "wait"][0]: + t["T_LIFEPOINTS"] += 1 + t["T_SATIATION"] -= 32 + if t == world_db["Things"][0]: + strong_write(io_db["file_out"], "LOG You heal.\n") + else: + name = world_db["ThingTypes"][t["T_TYPE"]]["TT_NAME"] + strong_write(io_db["file_out"], "LOG " + name + "heals.\n") + + def hunger(t): """Decrement t's satiation, dependent on it trigger lifepoint dec chance.""" if t["T_SATIATION"] > -32768: @@ -736,7 +760,7 @@ def turn_over(): break # DUMMY: ai(thing) Thing["T_COMMAND"] = 1 - # DUMMY: try_healing + try_healing(Thing) Thing["T_PROGRESS"] += 1 taid = [a for a in world_db["ThingActions"] if a == Thing["T_COMMAND"]][0]