(weapon, src, tgt, atkSpeed, atkAngle, distance, tgtSpeed, tgtAngle, tgtSigRadius, profile,
inLockRange)
| 235 | |
| 236 | |
| 237 | def _bestWeaponDpsAtDistance(weapon, src, tgt, atkSpeed, atkAngle, distance, tgtSpeed, tgtAngle, tgtSigRadius, profile, |
| 238 | inLockRange): |
| 239 | if not inLockRange: |
| 240 | # Special case: FoF missiles ignore lock range |
| 241 | candidates = [c for c in weapon['candidates'] if c.get('isFoF')] |
| 242 | if not candidates: |
| 243 | return 0 |
| 244 | else: |
| 245 | candidates = weapon['candidates'] |
| 246 | best = 0 |
| 247 | for snap in candidates: |
| 248 | if snap['kind'] == 'turret': |
| 249 | mult = _turretApplication(snap, src, tgt, atkSpeed, atkAngle, distance, tgtSpeed, tgtAngle, tgtSigRadius) |
| 250 | else: |
| 251 | mult = _missileApplication(snap, distance, tgtSpeed, tgtSigRadius) |
| 252 | scalar = _typedDmgScalar(snap['dmg'], mult, profile) |
| 253 | if scalar > best: |
| 254 | best = scalar |
| 255 | return best |
| 256 | |
| 257 | |
| 258 | class Distance2EnvelopeDpsGetter(SmoothPointGetter): |
no test coverage detected