From: Christian Heller Date: Wed, 2 Mar 2016 00:57:24 +0000 (+0100) Subject: Server: Simplify code. X-Git-Tag: tce~104 X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/%7B%7Bprefix%7D%7D/edit?a=commitdiff_plain;h=02d039896bd170cd57fbdaf9408405eabf0d6b54;p=plomrogue Server: Simplify code. --- diff --git a/server/ai.py b/server/ai.py index 8543409..415d533 100644 --- a/server/ai.py +++ b/server/ai.py @@ -84,35 +84,28 @@ def get_dir_to_target(t, filter): return False def seeing_thing(): - maplength = world_db["MAP_LENGTH"] - if t["fovmap"] and "a" == filter: + def exists(gen): try: - next((Thing for Thing in animates_in_fov(maplength) - if good_attack_target(Thing))) + next(gen) except StopIteration: return False return True + maplength = world_db["MAP_LENGTH"] + if t["fovmap"] and "a" == filter: + return exists(Thing for Thing in animates_in_fov(maplength) + if good_attack_target(Thing)) elif t["fovmap"] and "f" == filter: - try: - next((Thing for Thing in animates_in_fov(maplength) - if good_flee_target(Thing))) - except StopIteration: - return False - return True + return exists(Thing for Thing in animates_in_fov(maplength) + if good_flee_target(Thing)) elif t["T_MEMMAP"] and "c" == filter: eat_cost = eat_vs_hunger_threshold(t["T_TYPE"]) ord_blank = ord(" ") map_len = world_db["MAP_LENGTH"] - try: - next(mt for mt in t["T_MEMTHING"] - if ord_blank != t["T_MEMMAP"][mt[1] * map_len + mt[2]] - and world_db["ThingTypes"][mt[0]]["TT_TOOL"] == "food" - and world_db["ThingTypes"][mt[0]]["TT_TOOLPOWER"] - > eat_cost) - except StopIteration: - return False - return True - + return exists(mt for mt in t["T_MEMTHING"] + if ord_blank != t["T_MEMMAP"][mt[1] * map_len + mt[2]] + and world_db["ThingTypes"][mt[0]]["TT_TOOL"] == "food" + and world_db["ThingTypes"][mt[0]]["TT_TOOLPOWER"] + > eat_cost) return False def set_cells_passable_on_memmap_to_65534_on_scoremap():