diff options
-rw-r--r-- | core/src/ch/asynk/rustanddust/engine/PathBuilder.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/core/src/ch/asynk/rustanddust/engine/PathBuilder.java b/core/src/ch/asynk/rustanddust/engine/PathBuilder.java index cae1d94..994f07d 100644 --- a/core/src/ch/asynk/rustanddust/engine/PathBuilder.java +++ b/core/src/ch/asynk/rustanddust/engine/PathBuilder.java @@ -190,11 +190,17 @@ public class PathBuilder implements Disposable { if (a == null) return b; - if ( (b.fitness > a.fitness) || ( - (b.fitness == a.fitness) && ( - (b.cost < a.cost) || ((b.cost == a.cost) && b.roadMarch && !a.roadMarch) - ) - )) + // better fitness or equal and ... + if ((b.fitness > a.fitness) || ((b.fitness == a.fitness) && + // smaller cost or equal and ... + ((b.cost < a.cost) || ((b.cost == a.cost) && + // roadmarch or same roadmarch and ... + ((b.roadMarch && !a.roadMarch) || ((b.roadMarch == a.roadMarch) && + // smaller + (b.tiles.size() < a.tiles.size()) + )) + )) + )) return b; return a; } |