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
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
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
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