diff --git a/eos/saveddata/damagePattern.py b/eos/saveddata/damagePattern.py index a0b36ab74..3068d4151 100644 --- a/eos/saveddata/damagePattern.py +++ b/eos/saveddata/damagePattern.py @@ -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 = {} diff --git a/eos/saveddata/targetProfile.py b/eos/saveddata/targetProfile.py index 5b3396bd6..cd61e9539 100644 --- a/eos/saveddata/targetProfile.py +++ b/eos/saveddata/targetProfile.py @@ -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):