X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=roguelike-server;h=483dc22f75171bb588c2d4c471a44637da88938e;hb=858dd9d0785c3d528e3ce8d7111819ef7e572217;hp=adba9bcd586d5873ecd4ed8c2bfec32682401604;hpb=bfff0b6dfed59009ecf7b0ed2f9dabf3aac6f0a7;p=plomrogue diff --git a/roguelike-server b/roguelike-server index adba9bc..483dc22 100755 --- a/roguelike-server +++ b/roguelike-server @@ -578,9 +578,15 @@ def decrement_lifepoints(t): 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)) @@ -625,8 +631,8 @@ def actor_move(t): if t == world_db["Things"][0]: hitted_type = world_db["Things"][hit_id]["T_TYPE"] hitted_name = world_db["ThingTypes"][hitted_type]["TT_NAME"] - strong_write(io_db["file_out"], "LOG You wound " + hitted + - ".\n") + strong_write(io_db["file_out"], "LOG You wound " + + hitted_name + ".\n") elif 0 == hit_id: hitter_name = world_db["ThingTypes"][t["T_TYPE"]]["TT_NAME"] strong_write(io_db["file_out"], "LOG " + hitter_name + @@ -1111,8 +1117,9 @@ def command_ping(): def command_quit(): """Abort server process.""" - save_world() - atomic_write(io_db["path_record"], io_db["record_chunk"], do_append=True) + if None == opts.replay: + save_world() + atomic_write(io_db["path_record"], io_db["record_chunk"], do_append=True) raise SystemExit("received QUIT command")