Commit initial work for effect DPS / Target resists

This commit is contained in:
blitzmann
2014-09-03 00:49:53 -04:00
parent 53c4a31334
commit 1ab76a7170
19 changed files with 781 additions and 16 deletions

View File

@@ -3,6 +3,7 @@ from service.fit import Fit
from service.attribute import Attribute
from service.character import Character
from service.damagePattern import DamagePattern
from service.targetResists import TargetResists
from service.settings import SettingsProvider
from service.fleet import Fleet
from service.update import Update

View File

@@ -83,6 +83,7 @@ class Fit(object):
def __init__(self):
self.pattern = DamagePattern.getInstance().getDamagePattern("Uniform")
self.targetResists = None
self.character = Character.getInstance().all5()
self.booster = False
self.dirtyFitIDs = set()
@@ -148,6 +149,7 @@ class Fit(object):
fit.ship = eos.types.Ship(eos.db.getItem(shipID))
fit.name = name if name is not None else "New %s" % fit.ship.item.name
fit.damagePattern = self.pattern
fit.targetResists = self.targetResists
fit.character = self.character
fit.booster = self.booster
eos.db.save(fit)
@@ -683,6 +685,23 @@ class Fit(object):
self.recalc(fit)
def getTargetResists(self, fitID):
if fitID is None:
return
fit = eos.db.getFit(fitID)
return fit.targetResists
def setTargetResists(self, fitID, pattern):
if fitID is None:
return
print "Set target resists: %s"%pattern
fit = eos.db.getFit(fitID)
fit.targetResists = pattern
eos.db.commit()
self.recalc(fit)
def getDamagePattern(self, fitID):
if fitID is None:
return
@@ -760,6 +779,7 @@ class Fit(object):
for fit in fits:
fit.character = self.character
fit.damagePattern = self.pattern
fit.targetResists = self.targetResists
return fits
def importFitFromBuffer(self, bufferStr, activeFit=None):
@@ -767,6 +787,7 @@ class Fit(object):
for fit in fits:
fit.character = self.character
fit.damagePattern = self.pattern
fit.targetResists = self.targetResists
return fits
def saveImportedFits(self, fits):

92
service/targetResists.py Normal file
View File

@@ -0,0 +1,92 @@
#===============================================================================
# Copyright (C) 2014 Ryan Holmes
#
# This file is part of pyfa.
#
# pyfa is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# pyfa is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with pyfa. If not, see <http://www.gnu.org/licenses/>.
#===============================================================================
import eos.db
import eos.types
import copy
class TargetResists():
instance = None
@classmethod
def getInstance(cls):
if cls.instance is None:
cls.instance = TargetResists()
return cls.instance
def __init__(self):
uniform = eos.db.getTargetResists("None")
if uniform is None:
uniform = eos.types.TargetResists(0,0,0,0)
uniform.name = "None"
eos.db.save(uniform)
def getTargetResistsList(self):
return eos.db.getTargetResistsList()
def getTargetResists(self, name):
print "Getting Target Resists: %s"%name
return eos.db.getTargetResists(name)
def newPattern(self):
p = eos.types.TargetResists(0, 0, 0, 0)
p.name = ""
return p
def renamePattern(self, p, newName):
p.name = newName
eos.db.save(p)
def deletePattern(self, p):
eos.db.remove(p)
def copyPattern(self, p):
newP = copy.deepcopy(p)
eos.db.save(newP)
return newP
def saveChanges(self, p):
eos.db.save(p)
def importPatterns(self, text):
lookup = {}
current = self.getTargetResistsList()
for pattern in current:
lookup[pattern.name] = pattern
try:
imports = eos.types.TargetResists.importPatterns(text)
for pattern in imports:
if pattern.name in lookup:
match = lookup[pattern.name]
match.__dict__.update(pattern.__dict__)
else:
eos.db.save(pattern)
eos.db.commit()
except:
pass
def exportPatterns(self):
patterns = self.getTargetResistsList()
for i in xrange(len(patterns) - 1, -1, -1):
if patterns[i].name in ("None"):
del patterns[i]
patterns.sort(key=lambda p: p.name)
return eos.types.TargetResists.exportPatterns(*patterns)