From 649db019de917e2f8c77876cfcd21d42d74f81e9 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Fri, 6 Dec 2019 16:58:58 +0300 Subject: [PATCH] Add builtin fetcher for target profiles --- eos/saveddata/damagePattern.py | 6 +++--- eos/saveddata/targetProfile.py | 18 ++++++++++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) 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):