Add builtin fetcher for target profiles

This commit is contained in:
DarkPhoenix
2019-12-06 16:58:58 +03:00
parent 1d528be0ef
commit 649db019de
2 changed files with 19 additions and 5 deletions

View File

@@ -134,13 +134,13 @@ class DamagePattern:
@classmethod
def getBuiltins(cls):
if cls._builtins is None:
cls._builtins = []
cls._builtins = OrderedDict()
for id, (name, em, therm, kin, explo) in BUILTINS.items():
pattern = DamagePattern(emAmount=em, thermalAmount=therm, kineticAmount=kin, explosiveAmount=explo)
pattern.ID = id
pattern.name = name
cls._builtins.append(pattern)
return cls._builtins
cls._builtins[id] = pattern
return list(cls._builtins.values())
def calculateEhp(self, fit):
ehp = {}

View File

@@ -84,8 +84,11 @@ BUILTINS = OrderedDict([
class TargetProfile:
# also determined import/export order - VERY IMPORTANT
DAMAGE_TYPES = ("em", "thermal", "kinetic", "explosive")
DAMAGE_TYPES = ('em', 'thermal', 'kinetic', 'explosive')
_idealTarget = None
_builtins = None
def __init__(self, *args, **kwargs):
self.update(*args, **kwargs)
@@ -99,7 +102,18 @@ class TargetProfile:
self._signatureRadius = signatureRadius
self._radius = radius
_idealTarget = None
@classmethod
def getBuiltins(cls):
if cls._builtins is None:
cls._builtins = OrderedDict()
for id, data in BUILTINS.items():
name = data[0]
data = data[1:]
profile = TargetProfile(*data)
profile.ID = id
profile.name = name
cls._builtins[id] = profile
return list(cls._builtins.values())
@classmethod
def getIdeal(cls):