X-Git-Url: https://plomlompom.com/repos/?p=plomrogue;a=blobdiff_plain;f=server%2Factions.py;h=f7edb76767d60602a705ac02e57980587d90495d;hp=22d165a4023c6652cb02706be7b0b01ac3cf79f9;hb=8187ea4f2fb0c07fd141886a418e3b985f663035;hpb=ed80228e423745ebd3c6b510dbfe2afa916aa79f diff --git a/server/actions.py b/server/actions.py index 22d165a..f7edb76 100644 --- a/server/actions.py +++ b/server/actions.py @@ -14,7 +14,11 @@ def actor_wait(t): def actor_move(t): - """If passable, move/collide(=attack) thing into T_ARGUMENT's direction.""" + """If passable, move/collide(=attack) thing into T_ARGUMENT's direction. + + On attack, return 0 on non-kill and TT_LIFEPOINTS of killed type on kill, + plus type id of attacked Thing. On move, return mv_yx_in_dir_legal result. + """ from server.build_fov_map import build_fov_map from server.config.misc import decrement_lifepoints_func from server.utils import mv_yx_in_dir_legal @@ -31,9 +35,9 @@ def actor_move(t): if world_db["Things"][id]["T_POSX"] == move_result[2]] if len(hitted): hit_id = hitted[0] - hitted_type_id = world_db["Things"][hit_id]["T_TYPE"] + hitted_tid = world_db["Things"][hit_id]["T_TYPE"] if t == world_db["Things"][0]: - hitted_name = world_db["ThingTypes"][hitted_type_id]["TT_NAME"] + hitted_name = world_db["ThingTypes"][hitted_tid]["TT_NAME"] log("You WOUND " + hitted_name + ".") elif 0 == hit_id: hitter_name = world_db["ThingTypes"][t["T_TYPE"]]["TT_NAME"] @@ -41,6 +45,10 @@ def actor_move(t): decr_test = decrement_lifepoints_func(world_db["Things"][hit_id]) if decr_test > 0 and t == world_db["Things"][0]: log(hitted_name + " dies.") + return decr_test, hitted_tid + from server.config.actions import actor_move_attempts_hook + if actor_move_attempts_hook(t, move_result, pos): + return passable = chr(world_db["MAP"][pos]) in symbols_passable dir = [dir for dir in directions_db if directions_db[dir] == chr(t["T_ARGUMENT"])][0] @@ -53,6 +61,7 @@ def actor_move(t): build_fov_map(t) if t == world_db["Things"][0]: log("You MOVE " + dir + ".") + return move_result def actor_pickup(t):