(self)
| 303 | |
| 304 | @property |
| 305 | def maxRange(self): |
| 306 | attrs = ("maxRange", "shieldTransferRange", "powerTransferRange", |
| 307 | "energyDestabilizationRange", "empFieldRange", |
| 308 | "ecmBurstRange", "warpScrambleRange", "cargoScanRange", |
| 309 | "shipScanRange", "surveyScanRange") |
| 310 | maxRange = None |
| 311 | for attr in attrs: |
| 312 | maxRange = self.getModifiedItemAttr(attr) |
| 313 | if maxRange: |
| 314 | break |
| 315 | if maxRange: |
| 316 | if 'burst projector' in self.item.name.lower(): |
| 317 | maxRange -= self.owner.ship.getModifiedItemAttr("radius") |
| 318 | return maxRange |
| 319 | missileMaxRangeData = self.missileMaxRangeData |
| 320 | if missileMaxRangeData is None: |
| 321 | return None |
| 322 | lowerRange, higherRange, higherChance = missileMaxRangeData |
| 323 | maxRange = lowerRange * (1 - higherChance) + higherRange * higherChance |
| 324 | return maxRange |
| 325 | |
| 326 | @property |
| 327 | def missileMaxRangeData(self): |
nothing calls this directly
no test coverage detected