Fixed a bug when trying to pathfind when player is surrounded by inaccessible tiles

This commit is contained in:
Nicolas Margulies 2020-12-10 22:28:12 +01:00
parent cc6033e8e4
commit 01cc77e146

View File

@ -133,10 +133,11 @@ class Player(FightingEntity):
# For each tile that is reached by at least one Dijkstra, sort the
# different paths by distance to the player. For the technical bits :
# The reduce function is a fold starting on the first element of the
# iterable, and we associate the points to their distance, sort
# iterable, and we associate the points to their distance, sort
# along the distance, then only keep the points.
self.paths = {}
for y, x in reduce(set.union, [set(p.keys()) for p in predecessors]):
for y, x in reduce(set.union,
[set(p.keys()) for p in predecessors], set()):
self.paths[(y, x)] = [p for d, p in sorted(
[(distances[i][(y, x)], predecessors[i][(y, x)])
for i in range(len(distances)) if (y, x) in predecessors[i]])]