Do the same treatment to Target Resists as Damage Patterns

This commit is contained in:
blitzmann
2018-02-24 02:01:23 -05:00
parent f442632fbc
commit a9db667c9c
2 changed files with 24 additions and 16 deletions

View File

@@ -19,6 +19,7 @@
import re
from logbook import Logger
import eos.db
pyfalog = Logger(__name__)
@@ -27,7 +28,10 @@ class TargetResists(object):
# also determined import/export order - VERY IMPORTANT
DAMAGE_TYPES = ("em", "thermal", "kinetic", "explosive")
def __init__(self, emAmount=0, thermalAmount=0, kineticAmount=0, explosiveAmount=0):
def __init__(self, *args, **kwargs):
self.update(*args, **kwargs)
def update(self, emAmount=0, thermalAmount=0, kineticAmount=0, explosiveAmount=0):
self.emAmount = emAmount
self.thermalAmount = thermalAmount
self.kineticAmount = kineticAmount
@@ -38,6 +42,14 @@ class TargetResists(object):
lines = re.split('[\n\r]+', text)
patterns = []
numPatterns = 0
# When we import damage profiles, we create new ones and update old ones. To do this, get a list of current
# patterns to allow lookup
lookup = {}
current = eos.db.getTargetResistsList()
for pattern in current:
lookup[pattern.name] = pattern
for line in lines:
try:
if line.strip()[0] == "#": # comments
@@ -66,10 +78,18 @@ class TargetResists(object):
continue
if len(fields) == 4: # Avoid possible blank lines
pattern = TargetResists(**fields)
pattern.name = name.strip()
if name.strip() in lookup:
pattern = lookup[name.strip()]
pattern.update(**fields)
eos.db.save(pattern)
else:
pattern = TargetResists(**fields)
pattern.name = name.strip()
eos.db.save(pattern)
patterns.append(pattern)
eos.db.commit()
return patterns, numPatterns
EXPORT_FORMAT = "TargetResists = %s,%.1f,%.1f,%.1f,%.1f\n"

View File

@@ -72,21 +72,9 @@ class TargetResists(object):
db.save(p)
def importPatterns(self, text):
lookup = {}
current = self.getTargetResistsList()
for pattern in current:
lookup[pattern.name] = pattern
imports, num = es_TargetResists.importPatterns(text)
for pattern in imports:
if pattern.name in lookup:
match = lookup[pattern.name]
match.__dict__.update(pattern.__dict__)
else:
db.save(pattern)
db.commit()
lenImports = len(imports)
if lenImports == 0:
raise ImportError("No patterns found for import")
if lenImports != num: