MCPcopy Index your code
hub / github.com/pyfa-org/Pyfa / FitDamageEnvelopeGraph

Class FitDamageEnvelopeGraph

graphs/data/fitDamageEnvelope/graph.py:30–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28
29
30class FitDamageEnvelopeGraph(FitGraph):
31 # UI stuff
32 internalName = 'dmgEnvelopeGraph'
33 name = _t('Damage Projection')
34 xDefs = [XDef(handle='distance', unit='km', label=_t('Distance'), mainInput=('distance', 'km'))]
35 inputs = [
36 Input(handle='distance', unit='km', label=_t('Distance'), iconID=1391, defaultValue=None, defaultRange=(0, 100),
37 mainTooltip=_t('Distance between the attacker and the target, as seen in overview (surface-to-surface)'),
38 secondaryTooltip=_t(
39 'Distance between the attacker and the target, as seen in overview (surface-to-surface)')),
40 Input(handle='tgtSpeed', unit='%', label=_t('Target speed'), iconID=1389, defaultValue=100,
41 defaultRange=(0, 100)),
42 Input(handle='tgtSigRad', unit='%', label=_t('Target signature'), iconID=1390, defaultValue=100,
43 defaultRange=(100, 200), conditions=[(('tgtSigRad', 'm'), None), (('tgtSigRad', '%'), None)])]
44 srcVectorDef = VectorDef(lengthHandle='atkSpeed', lengthUnit='%', angleHandle='atkAngle', angleUnit='degrees',
45 label=_t('Attacker'))
46 tgtVectorDef = VectorDef(lengthHandle='tgtSpeed', lengthUnit='%', angleHandle='tgtAngle', angleUnit='degrees',
47 label=_t('Target'))
48 hasTargets = True
49 srcExtraCols = ('Dps', 'Speed', 'Radius')
50
51 @property
52 def yDefs(self):
53 ignoreResists = GraphSettings.getInstance().get('ignoreResists')
54 return [YDef(handle='dps', unit=None, label=_t('Best DPS') if ignoreResists else _t('Best effective DPS'))]
55
56 @property
57 def tgtExtraCols(self):
58 cols = []
59 if not GraphSettings.getInstance().get('ignoreResists'):
60 cols.append('Target Resists')
61 cols.extend(('Speed', 'SigRadius', 'Radius', 'FullHP'))
62 return cols
63
64 # Calculation stuff
65 _normalizers = {('distance', 'km'): lambda v, src, tgt: None if v is None else v * 1000,
66 ('atkSpeed', '%'): lambda v, src, tgt: v / 100 * src.getMaxVelocity(),
67 ('tgtSpeed', '%'): lambda v, src, tgt: v / 100 * tgt.getMaxVelocity(),
68 ('tgtSigRad', '%'): lambda v, src, tgt: v / 100 * tgt.getSigRadius()}
69 _getters = {('distance', 'dps'): Distance2EnvelopeDpsGetter}
70 _denormalizers = {('distance', 'km'): lambda v, src, tgt: None if v is None else v / 1000,
71 ('tgtSpeed', '%'): lambda v, src, tgt: v * 100 / tgt.getMaxVelocity(),
72 ('tgtSigRad', '%'): lambda v, src, tgt: v * 100 / tgt.getSigRadius()}

Callers

nothing calls this directly

Calls 5

XDefClass · 0.90
InputClass · 0.90
getMaxVelocityMethod · 0.80
getSigRadiusMethod · 0.80
_tFunction · 0.50

Tested by

no test coverage detected