From b10206b1a3f26498e24ffa0fe6de2058ec3c4e9c Mon Sep 17 00:00:00 2001 From: Freeyorp Date: Tue, 14 May 2013 10:23:14 +1200 Subject: Also consider mob to mob for the attacker count Sort the pie chart the other way. Still doesn't feel right. Perhaps a bar chart would be better. --- public/js/mv/chart.js | 2 +- public/js/mv/parse.js | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/public/js/mv/chart.js b/public/js/mv/chart.js index bb511b9..f3d8282 100644 --- a/public/js/mv/chart.js +++ b/public/js/mv/chart.js @@ -24,7 +24,7 @@ var mv = function(mv) { mv.charts.wpn = pie(monoGroup(dc.pieChart("#wpn-chart"), "wpn")) ; mv.charts.numAttackers = pie(monoGroup(dc.pieChart("#num-attackers-chart"), "numAttackers")) - .sort(function(d1, d2) { return d3.descending(d1.key, d2.key); }) + .sort(function(d1, d2) { return d3.ascending(d1.key, d2.key); }) ; mv.charts.map = monoGroup(margined(wide(dc.bubbleChart("#map-chart"))), "map") .height(500) diff --git a/public/js/mv/parse.js b/public/js/mv/parse.js index 162739f..9c3a250 100644 --- a/public/js/mv/parse.js +++ b/public/js/mv/parse.js @@ -28,6 +28,19 @@ var mv = function(mv) { * mob ID -> { mobClass, numAttackers, player IDs -> { total, weapon names -> { sum damage } } } */ var combat = {}; + function combatPerformed(mobClass, target, pc, wpn, damage) { + /* Update combat state */ + var mobData = combat[target] || (combat[target] = { mobClass: mobClass }); + var pcData; + if (pc in mobData) { + pcData = mobData[pc]; + } else { + (++mobData.numAttackers) || (mobData.numAttackers = 1); + pcData = mobData[pc] = {}; + } + (pcData[wpn] += damage) || (pcData[wpn] = damage); + (pcData.total += damage) || (pcData.total = damage); + } function freeMob() { /* We no longer need detailed information on the mob's combat. */ if (!killedMobID) { @@ -145,17 +158,7 @@ var mv = function(mv) { var pc = parseInt(d[2]); var wpn = d[6] == "SPELL" ? d[10] : item.nameByServerID(d[10]); var damage = parseInt(d[9]); - /* Update combat state */ - var mobData = combat[target] || (combat[target] = { mobClass: mobClass }); - var pcData; - if (pc in mobData) { - pcData = mobData[pc]; - } else { - (++mobData.numAttackers) || (mobData.numAttackers = 1); - pcData = mobData[pc] = {}; - } - (pcData[wpn] += damage) || (pcData[wpn] = damage); - (pcData.total += damage) || (pcData.total = damage); + combatPerformed(mobClass, target, pc, wpn, damage); return true; } function checkMobMobDmg(e) { @@ -170,10 +173,7 @@ var mv = function(mv) { var wpn = mob.nameByServerID(d[7]); var damage = parseInt(d[10]); /* Update combat state */ - var mobData = combat[target] || (combat[target] = { mobClass: mobClass }); - var pcData = mobData[pc] || (mobData[pc] = {}); - (pcData[wpn] += damage) || (pcData[wpn] = damage); - (pcData.total += damage) || (pcData.total = damage); + combatPerformed(mobClass, target, pc, wpn, damage); return true; } function checkMobDeath(e) { -- cgit v1.2.3-60-g2f50