summaryrefslogtreecommitdiff
path: root/public/js/mv/parse.js
diff options
context:
space:
mode:
authorFreeyorp <TheFreeYorp@NOSPAM.G.m.a.i.l.replace>2013-05-14 10:10:15 +1200
committerFreeyorp <TheFreeYorp@NOSPAM.G.m.a.i.l.replace>2013-05-14 10:10:15 +1200
commit8804397ff39f142fec4ac13ee193928b639327cf (patch)
tree5748cec705a974513309c2e35d771c16ff388d87 /public/js/mv/parse.js
parentb547523e1964d24c3e3e3e3598fdd67b208e2dfd (diff)
downloadmanavis-8804397ff39f142fec4ac13ee193928b639327cf.tar.gz
manavis-8804397ff39f142fec4ac13ee193928b639327cf.tar.bz2
manavis-8804397ff39f142fec4ac13ee193928b639327cf.tar.xz
manavis-8804397ff39f142fec4ac13ee193928b639327cf.zip
Chart the number of attackers
Diffstat (limited to 'public/js/mv/parse.js')
-rw-r--r--public/js/mv/parse.js14
1 files changed, 11 insertions, 3 deletions
diff --git a/public/js/mv/parse.js b/public/js/mv/parse.js
index ecef612..162739f 100644
--- a/public/js/mv/parse.js
+++ b/public/js/mv/parse.js
@@ -25,7 +25,7 @@ var mv = function(mv) {
*/
var killedMobID = 0;
/*
- * mob ID -> { mobClass, player IDs -> { total, weapon names -> { sum damage } } }
+ * mob ID -> { mobClass, numAttackers, player IDs -> { total, weapon names -> { sum damage } } }
*/
var combat = {};
function freeMob() {
@@ -73,7 +73,8 @@ var mv = function(mv) {
pcstat: pcstat[d[2]],
target: "UNKNOWN",
dmg: 0,
- wpn: "UNKNOWN"
+ wpn: "UNKNOWN",
+ numAttackers: 0
};
if (pcstat[d[2]] == undefined && (!fullyDefinedCutoff || ts > fullyDefinedCutoff)) {
/* Undefined, and newer than any existing definedness cutoff */
@@ -83,6 +84,7 @@ var mv = function(mv) {
if (killedMobID && killedMobID in combat && rec.pc in combat[killedMobID]) {
var mob = combat[killedMobID];
rec.target = mob.mobClass;
+ rec.numAttackers = mob.numAttackers || 0;
var weapons = mob[rec.pc];
/* We have the needed information. */
rec.dmg = weapons.total;
@@ -145,7 +147,13 @@ var mv = function(mv) {
var damage = parseInt(d[9]);
/* Update combat state */
var mobData = combat[target] || (combat[target] = { mobClass: mobClass });
- var pcData = mobData[pc] || (mobData[pc] = {});
+ 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);
return true;