X-Git-Url: https://plomlompom.com/repos/?p=plomrogue;a=blobdiff_plain;f=server%2Fai.py;h=854340958c54a3e2873231176187b44865ccf01a;hp=6c1aab802de6dea0f11b8d93e997767e842d41ca;hb=9db0640a4cebff6c709ede4d3c360a9bcd74cc3f;hpb=8b498ae5ff3688d5921bffeb088ec55d4f1dab41 diff --git a/server/ai.py b/server/ai.py index 6c1aab8..8543409 100644 --- a/server/ai.py +++ b/server/ai.py @@ -86,25 +86,33 @@ def get_dir_to_target(t, filter): def seeing_thing(): maplength = world_db["MAP_LENGTH"] if t["fovmap"] and "a" == filter: - targets = [Thing for Thing in animates_in_fov(maplength) - if good_attack_target(Thing)] - if len(targets): - return True + try: + next((Thing for Thing in animates_in_fov(maplength) + if good_attack_target(Thing))) + except StopIteration: + return False + return True elif t["fovmap"] and "f" == filter: - targets = [Thing for Thing in animates_in_fov(maplength) - if good_flee_target(Thing)] - if len(targets): - return True + try: + next((Thing for Thing in animates_in_fov(maplength) + if good_flee_target(Thing))) + except StopIteration: + return False + return True elif t["T_MEMMAP"] and "c" == filter: eat_cost = eat_vs_hunger_threshold(t["T_TYPE"]) ord_blank = ord(" ") - for mt in t["T_MEMTHING"]: - if ord_blank != chr(t["T_MEMMAP"][(mt[1] * \ - world_db["MAP_LENGTH"]) + mt[2]]) \ - and world_db["ThingTypes"][mt[0]]["TT_TOOL"] == "food" \ - and world_db["ThingTypes"][mt[0]]["TT_TOOLPOWER"] \ - > eat_cost: - return True + 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 False def set_cells_passable_on_memmap_to_65534_on_scoremap():