Implement fighter ability resistance support into dps graph

This commit is contained in:
DarkPhoenix
2019-08-22 12:38:39 +03:00
parent 46ae2a006e
commit 3d3bf4ce2c

View File

@@ -24,6 +24,7 @@ from functools import lru_cache
from eos.const import FittingHardpoint from eos.const import FittingHardpoint
from eos.utils.float import floatUnerr from eos.utils.float import floatUnerr
from graphs.calc import calculateRangeFactor from graphs.calc import calculateRangeFactor
from service.attribute import Attribute
from service.const import GraphDpsDroneMode from service.const import GraphDpsDroneMode
from service.settings import GraphSettings from service.settings import GraphSettings
@@ -97,6 +98,7 @@ def getApplicationPerKey(src, tgt, atkSpeed, atkAngle, distance, tgtSpeed, tgtAn
fighter=fighter, fighter=fighter,
ability=ability, ability=ability,
src=src, src=src,
tgt=tgt,
distance=distance, distance=distance,
tgtSpeed=tgtSpeed, tgtSpeed=tgtSpeed,
tgtSigRadius=tgtSigRadius) tgtSigRadius=tgtSigRadius)
@@ -237,7 +239,7 @@ def getDroneMult(drone, src, tgt, atkSpeed, atkAngle, distance, tgtSpeed, tgtAng
return mult return mult
def getFighterAbilityMult(fighter, ability, src, distance, tgtSpeed, tgtSigRadius): def getFighterAbilityMult(fighter, ability, src, tgt, distance, tgtSpeed, tgtSigRadius):
fighterSpeed = fighter.getModifiedItemAttr('maxVelocity') fighterSpeed = fighter.getModifiedItemAttr('maxVelocity')
attrPrefix = ability.attrPrefix attrPrefix = ability.attrPrefix
# It's bomb attack # It's bomb attack
@@ -273,7 +275,14 @@ def getFighterAbilityMult(fighter, ability, src, distance, tgtSpeed, tgtSigRadiu
atkDrf=_calcAggregatedDrf(reductionFactor=drf, reductionSensitivity=drs), atkDrf=_calcAggregatedDrf(reductionFactor=drf, reductionSensitivity=drs),
tgtSpeed=tgtSpeed, tgtSpeed=tgtSpeed,
tgtSigRadius=tgtSigRadius) tgtSigRadius=tgtSigRadius)
mult = rangeFactor * missileFactor resistMult = 1
if tgt.isFit:
resistAttrID = fighter.getModifiedItemAttr('{}ResistanceID'.format(attrPrefix))
if resistAttrID:
resistAttrInfo = Attribute.getInstance().getAttributeInfo(resistAttrID)
if resistAttrInfo is not None:
resistMult = tgt.item.ship.getModifiedItemAttr(resistAttrInfo.name, 1)
mult = rangeFactor * missileFactor * resistMult
return mult return mult