From c4f225003a6b75855f049a1dc35abef3f46fb919 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 4 Jul 2019 14:33:28 +0300 Subject: [PATCH] Add fighters to dps vs range graph --- eos/saveddata/fighter.py | 4 ++++ gui/builtinGraphs/fitDamageStats/graph.py | 14 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/eos/saveddata/fighter.py b/eos/saveddata/fighter.py index 9a079bbcd..333ce8def 100644 --- a/eos/saveddata/fighter.py +++ b/eos/saveddata/fighter.py @@ -151,6 +151,10 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): def abilities(self): return self.__abilities or [] + @property + def abilityMap(self): + return {a.effectID: a for a in self.abilities} + @property def charge(self): return self.__charge diff --git a/gui/builtinGraphs/fitDamageStats/graph.py b/gui/builtinGraphs/fitDamageStats/graph.py index 1e7016b9b..54b7bc139 100644 --- a/gui/builtinGraphs/fitDamageStats/graph.py +++ b/gui/builtinGraphs/fitDamageStats/graph.py @@ -117,7 +117,19 @@ class FitDamageStatsGraph(FitGraph): tgtSpeed=miscInputMap['tgtSpeed'], tgtAngle=miscInputMap['tgtAngle'], tgtSigRadius=tgtSigRad) - + for fighter in fit.fighters: + if not fighter.isDealingDamage(): + continue + abilityMap = fighter.abilityMap + for effectID, abilityDps in fighter.getDpsPerEffect().items(): + ability = abilityMap[effectID] + totalDps += abilityDps.total * getFighterAbilityMult( + fighter=fighter, + ability=ability, + fit=fit, + distance=distance, + tgtSpeed=miscInputMap['tgtSpeed'], + tgtSigRadius=tgtSigRad) xs.append(distance) ys.append(totalDps) return xs, ys