Use normalised distance for average lap.
authorCMDR furrycat <elite@furrycat.net>
Mon, 1 Feb 2016 10:18:37 +0000 (05:18 -0500)
committerCMDR furrycat <elite@furrycat.net>
Mon, 1 Feb 2016 10:18:37 +0000 (05:18 -0500)
entry.js
propel/schema.xml

index e038ab3..065615d 100644 (file)
--- a/entry.js
+++ b/entry.js
@@ -529,11 +529,12 @@ function do_stats(table) {
       total_distance += distance;
     }
   }
+  var partial_laps = total_distance / lap_distance;
 
   /* Lap distance. */
   do_stat('lap_distance', lap_distance, String(lap_distance) + 'Ly');
-  /* Complete laps. */
-  do_stat('complete_laps', complete_laps);
+  /* Complete laps as decimal. */
+  do_stat('complete_laps', format_distance(partial_laps, false));
   /* Total distance. */
   do_stat('total_distance', format_distance(total_distance, false), display_when(total_distance, format_distance(total_distance)));
   /* Times. */
@@ -554,14 +555,8 @@ function do_stats(table) {
     }
     do_stat('fastest_lap', fastest_lap, format_time(fastest_lap));
     /* Average lap. */
-    var average_lap = Math.floor(total_time / complete_laps);
-    var partial_distance = (total_distance - (lap_distance * complete_laps)) / lap_distance;
-    var average_lap_by_distance = Math.floor(total_time / (complete_laps + partial_distance));
-    /* Only if at least one leg completed in the last lap. */
-    var partial_station = (partial_distance) ? (last_station - 1) / (last_row(table) - first_row(table)) : 0;
-    var average_lap_by_station = (total_time / (complete_laps + partial_station));
-    var average_lap_by_complete_laps = Math.floor((complete_time - start_time) / complete_laps);
-    do_stat('average_lap', average_lap, [format_time(average_lap), 'by stations: ' + format_time(average_lap_by_station), 'by distance: ' + format_time(average_lap_by_distance), 'by completed: ' + format_time(average_lap_by_complete_laps)].join(', '));
+    var average_lap = Math.floor(total_time / partial_laps);
+    do_stat('average_lap', average_lap, format_time(average_lap));
     /* Best speed. */
     var best_speed = speed(lap_distance, fastest_lap);
     do_stat('best_speed', format_speed(best_speed, false), format_speed(best_speed));
index 0c6f84b..c325060 100644 (file)
     <column name="ship_id" type="integer" required="true"/>
     <column name="endorsements" type="integer" required="true"/>
     <column name="lap_distance" type="float" required="true"/>
-    <column name="complete_laps" type="integer" required="true"/>
+    <column name="complete_laps" type="float" required="true"/>
     <column name="total_distance" type="float" required="true"/>
     <column name="penalty_time" type="integer"/>
     <column name="bonus_time" type="integer"/>