(self, miscParams, src, tgt)
| 131 | ECM_ATTRS_FIGHTERS = ('fighterAbilityECMStrengthGravimetric', 'fighterAbilityECMStrengthLadar', 'fighterAbilityECMStrengthMagnetometric', 'fighterAbilityECMStrengthRadar') |
| 132 | |
| 133 | def _getCommonData(self, miscParams, src, tgt): |
| 134 | resonance = 1 - (miscParams['resist'] or 0) |
| 135 | ecms = [] |
| 136 | for mod in src.item.activeModulesIter(): |
| 137 | for effectName in ('remoteECMFalloff', 'structureModuleEffectECM'): |
| 138 | if effectName in mod.item.effects: |
| 139 | ecms.append(( |
| 140 | max(mod.getModifiedItemAttr(a) for a in self.ECM_ATTRS_GENERAL) * resonance, |
| 141 | mod.maxRange or 0, mod.falloff or 0, True, False)) |
| 142 | if 'doomsdayAOEECM' in mod.item.effects: |
| 143 | ecms.append(( |
| 144 | max(mod.getModifiedItemAttr(a) for a in self.ECM_ATTRS_GENERAL) * resonance, |
| 145 | max(0, (mod.maxRange or 0) + mod.getModifiedItemAttr('doomsdayAOERange')), |
| 146 | mod.falloff or 0, False, False)) |
| 147 | for drone in src.item.activeDronesIter(): |
| 148 | if 'entityECMFalloff' in drone.item.effects: |
| 149 | ecms.extend(drone.amountActive * (( |
| 150 | max(drone.getModifiedItemAttr(a) for a in self.ECM_ATTRS_GENERAL) * resonance, |
| 151 | math.inf, 0, True, True),)) |
| 152 | for fighter, ability in src.item.activeFighterAbilityIter(): |
| 153 | if ability.effect.name == 'fighterAbilityECM': |
| 154 | ecms.append(( |
| 155 | max(fighter.getModifiedItemAttr(a) for a in self.ECM_ATTRS_FIGHTERS) * fighter.amount * resonance, |
| 156 | math.inf, 0, True, False)) |
| 157 | return {'ecms': ecms} |
| 158 | |
| 159 | def _calculatePoint(self, x, miscParams, src, tgt, commonData): |
| 160 | distance = x |
nothing calls this directly
no test coverage detected