summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/src/ch/asynk/rustanddust/engine/PathBuilder.java16
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;
}