Fixed ewar on damage graphs, and added a quick formula for module falloff and applied it to Target Painters and Heavy Grapplers.

This commit is contained in:
cwozniak
2016-03-11 16:15:08 -05:00
parent 91980c9f2c
commit 7d658c3f3d

View File

@@ -40,11 +40,14 @@ class FitDpsGraph(Graph):
for mod in fit.modules:
if not mod.isEmpty and mod.state >= State.ACTIVE:
if "ewTargetPaint" in mod.item.effects:
ew['signatureRadius'].append(1+(mod.getModifiedItemAttr("signatureRadiusBonus") / 100))
if "decreaseTargetSpeed" in mod.item.effects:
if "remoteTargetPaintFalloff" in mod.item.effects:
ew['signatureRadius'].append(1+(mod.getModifiedItemAttr("signatureRadiusBonus") / 100) * self.calculateModuleMultiplier(mod, data))
if "remoteWebifierFalloff" in mod.item.effects:
if distance <= mod.getModifiedItemAttr("maxRange"):
ew['velocity'].append(1+(mod.getModifiedItemAttr("speedFactor") / 100))
elif mod.getModifiedItemAttr("falloffEffectiveness") > 0:
#I am affected by falloff
ew['velocity'].append(1+(mod.getModifiedItemAttr("speedFactor") / 100) * self.calculateModuleMultiplier(mod, data))
ew['signatureRadius'].sort(key=abssort)
ew['velocity'].sort(key=abssort)
@@ -122,3 +125,13 @@ class FitDpsGraph(Graph):
rangeEq = ((max(0, distance - turretOptimal)) / turretFalloff) ** 2
return 0.5 ** (trackingEq + rangeEq)
def calculateModuleMultiplier(self, mod, data):
#Simplified formula, we make some assumptions about the module
#This is basically the calculateTurretChanceToHit without tracking values
distance = data["distance"] * 1000
turretOptimal = mod.maxRange
turretFalloff = mod.falloff
rangeEq = ((max(0, distance - turretOptimal)) / turretFalloff) ** 2
return 0.5 ** (rangeEq)