Beispiel #1
0
 def _calculatePoint(self, x, miscParams, src, tgt, commonData):
     distance = x
     inLockRange = checkLockRange(src=src, distance=distance)
     inDroneRange = checkDroneControlRange(src=src, distance=distance)
     velocityStrMults = {}
     timeStrMults = {}
     for velocityStr, timeStr, optimal, falloff, stackingGroup, needsLock, needsDcr in commonData[
             'gds']:
         if (needsLock and not inLockRange) or (needsDcr
                                                and not inDroneRange):
             continue
         rangeFactor = calculateRangeFactor(srcOptimalRange=optimal,
                                            srcFalloffRange=falloff,
                                            distance=distance)
         velocityStr *= rangeFactor
         timeStr *= rangeFactor
         velocityStrMults.setdefault(stackingGroup, []).append(
             (1 + velocityStr / 100, None))
         timeStrMults.setdefault(stackingGroup, []).append(
             (1 + timeStr / 100, None))
     velocityStrMult = calculateMultiplier(velocityStrMults)
     timeStrMult = calculateMultiplier(timeStrMults)
     strength = (1 - velocityStrMult * timeStrMult) * 100
     return strength
Beispiel #2
0
 def getSigRadius(self, extraMultipliers=None, ignoreAfflictors=()):
     if self.isFit:
         if extraMultipliers or ignoreAfflictors:
             sigRadius = self.item.ship.getModifiedItemAttrExtended(
                 'signatureRadius',
                 extraMultipliers=extraMultipliers,
                 ignoreAfflictors=ignoreAfflictors)
         else:
             sigRadius = self.item.ship.getModifiedItemAttr('signatureRadius')
     elif self.isProfile:
         sigRadius = self.item.signatureRadius
         if extraMultipliers:
             sigRadius *= calculateMultiplier(extraMultipliers)
     else:
         sigRadius = None
     return sigRadius
Beispiel #3
0
 def getMaxVelocity(self, extraMultipliers=None, ignoreAfflictors=()):
     if self.isFit:
         if extraMultipliers or ignoreAfflictors:
             maxVelocity = self.item.ship.getModifiedItemAttrExtended(
                 'maxVelocity',
                 extraMultipliers=extraMultipliers,
                 ignoreAfflictors=ignoreAfflictors)
         else:
             maxVelocity = self.item.ship.getModifiedItemAttr('maxVelocity')
     elif self.isProfile:
         maxVelocity = self.item.maxVelocity
         if extraMultipliers:
             maxVelocity *= calculateMultiplier(extraMultipliers)
     else:
         maxVelocity = None
     return maxVelocity
Beispiel #4
0
 def _calculatePoint(self, x, miscParams, src, tgt, commonData):
     distance = x
     inLockRange = checkLockRange(src=src, distance=distance)
     inDroneRange = checkDroneControlRange(src=src, distance=distance)
     strMults = {}
     for strength, optimal, falloff, stackingGroup, needsLock, needsDcr in commonData[
             'tps']:
         if (needsLock and not inLockRange) or (needsDcr
                                                and not inDroneRange):
             continue
         strength *= calculateRangeFactor(srcOptimalRange=optimal,
                                          srcFalloffRange=falloff,
                                          distance=distance)
         strMults.setdefault(stackingGroup, []).append(
             (1 + strength / 100, None))
     strMult = calculateMultiplier(strMults)
     strength = (strMult - 1) * 100
     return strength