Add lockrange support to DPS graphs

This commit is contained in:
DarkPhoenix
2019-09-27 20:19:29 +03:00
parent 865978fcc1
commit 0ed16b9a6f
4 changed files with 124 additions and 90 deletions

View File

@@ -19,18 +19,17 @@
from eos.utils.float import floatUnerr
from graphs.calc import calculateRangeFactor
from service.settings import GraphSettings
from graphs.calc import calculateRangeFactor, checkLockRange, checkDroneControlRange
def getApplicationPerKey(src, distance):
inLockRange = checkLockRange(src=src, distance=distance)
inDroneRange = checkDroneControlRange(src=src, distance=distance)
applicationMap = {}
for mod in src.item.activeModulesIter():
if not mod.isRemoteRepping():
continue
if distance is None:
applicationMap[mod] = 1
elif not GraphSettings.getInstance().get('ignoreLockRange') and distance > src.item.maxTargetRange:
if not inLockRange:
applicationMap[mod] = 0
else:
applicationMap[mod] = calculateRangeFactor(
@@ -40,11 +39,7 @@ def getApplicationPerKey(src, distance):
for drone in src.item.activeDronesIter():
if not drone.isRemoteRepping():
continue
if distance is None:
applicationMap[drone] = 1
elif not GraphSettings.getInstance().get('ignoreDCR') and distance > src.item.extraAttributes['droneControlRange']:
applicationMap[drone] = 0
elif not GraphSettings.getInstance().get('ignoreLockRange') and distance > src.item.maxTargetRange:
if not inLockRange or not inDroneRange:
applicationMap[drone] = 0
else:
applicationMap[drone] = 1