From 02d039896bd170cd57fbdaf9408405eabf0d6b54 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Wed, 2 Mar 2016 01:57:24 +0100 Subject: [PATCH] Server: Simplify code. --- server/ai.py | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) 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(): -- 2.30.2