summaryrefslogtreecommitdiff
path: root/views/stats.pug
diff options
context:
space:
mode:
Diffstat (limited to 'views/stats.pug')
-rw-r--r--views/stats.pug45
1 files changed, 45 insertions, 0 deletions
diff --git a/views/stats.pug b/views/stats.pug
new file mode 100644
index 0000000..7634048
--- /dev/null
+++ b/views/stats.pug
@@ -0,0 +1,45 @@
+//- vim:ts=4:sw=4:
+doctype html
+html
+ head
+ include head
+ title Game Statistics
+ style.
+ table { table-layout: fixed; min-width: auto; }
+ td:nth-child(1) { width: 240px; }
+ td { width: 100px; }
+ tr.blank { height: 2rem; border: none; }
+ body
+ include header
+ article
+ h1 Game Statistics
+ table
+ -
+ function total(t,s) {
+ return stats
+ .filter(entry => entry.title_id === t && entry.scenario === s)
+ .reduce((acc, entry) => acc + entry.count, 0);
+ }
+ function result(t,s,r) {
+ let info = stats.find(entry => entry.title_id === t && entry.scenario === s && entry.result === r);
+ return info ? info.count : 0;
+ }
+ each title_name, title_id in title_name_map
+ unless title_name_map[title_id].hidden
+ - let scenarios = title_rule_map[title_id].scenarios;
+ - let roles = title_role_map[title_id].concat(["Draw"]);
+ tr
+ th= title_name_map[title_id].title_name
+ each role in roles
+ th= role
+ each scenario in scenarios
+ - let t = total(title_id, scenario);
+ tr
+ td #{scenario} (#{t})
+ each role in roles
+ if t > 0
+ -let r = result(title_id, scenario, role);
+ td= Math.round(r * 100 / t) + "%"
+ else
+ td -
+ tr.blank