Rename multiple entities to reflect that it's target profile rather than target resists

This commit is contained in:
DarkPhoenix
2019-07-25 16:20:41 +03:00
parent 71f1c69f23
commit e34fcb2f9c
25 changed files with 189 additions and 187 deletions

View File

@@ -72,7 +72,7 @@ def DBInMemory_test():
# noinspection PyPep8 # noinspection PyPep8
#from eos.db.gamedata import alphaClones, attribute, category, effect, group, icon, item, marketGroup, metaData, metaGroup, queries, traits, unit #from eos.db.gamedata import alphaClones, attribute, category, effect, group, icon, item, marketGroup, metaData, metaGroup, queries, traits, unit
# noinspection PyPep8 # noinspection PyPep8
#from eos.db.saveddata import booster, cargo, character, crest, damagePattern, databaseRepair, drone, fighter, fit, implant, implantSet, loadDefaultDatabaseValues, miscData, module, override, price, queries, skill, targetResists, user #from eos.db.saveddata import booster, cargo, character, crest, damagePattern, databaseRepair, drone, fighter, fit, implant, implantSet, loadDefaultDatabaseValues, miscData, module, override, price, queries, skill, targetProfile, user
# If using in memory saveddata, you'll want to reflect it so the data structure is good. # If using in memory saveddata, you'll want to reflect it so the data structure is good.
if saveddata_connectionstring == "sqlite:///:memory:": if saveddata_connectionstring == "sqlite:///:memory:":

View File

@@ -81,7 +81,7 @@ sd_lock = threading.RLock()
from eos.db.gamedata import alphaClones, attribute, category, effect, group, item, marketGroup, metaData, metaGroup, queries, traits, unit, dynamicAttributes from eos.db.gamedata import alphaClones, attribute, category, effect, group, item, marketGroup, metaData, metaGroup, queries, traits, unit, dynamicAttributes
# noinspection PyPep8 # noinspection PyPep8
from eos.db.saveddata import booster, cargo, character, damagePattern, databaseRepair, drone, fighter, fit, implant, implantSet, loadDefaultDatabaseValues, \ from eos.db.saveddata import booster, cargo, character, damagePattern, databaseRepair, drone, fighter, fit, implant, implantSet, loadDefaultDatabaseValues, \
miscData, mutator, module, override, price, queries, skill, targetResists, user miscData, mutator, module, override, price, queries, skill, targetProfile, user
# Import queries # Import queries
# noinspection PyPep8 # noinspection PyPep8

View File

@@ -11,7 +11,7 @@ __all__ = [
"implant", "implant",
"damagePattern", "damagePattern",
"miscData", "miscData",
"targetResists", "targetProfile",
"override", "override",
"implantSet", "implantSet",
"loadDefaultDatabaseValues" "loadDefaultDatabaseValues"

View File

@@ -41,7 +41,7 @@ from eos.saveddata.fighter import Fighter
from eos.saveddata.fit import Fit as es_Fit from eos.saveddata.fit import Fit as es_Fit
from eos.saveddata.implant import Implant from eos.saveddata.implant import Implant
from eos.saveddata.module import Module from eos.saveddata.module import Module
from eos.saveddata.targetResists import TargetResists from eos.saveddata.targetProfile import TargetProfile
from eos.saveddata.user import User from eos.saveddata.user import User
@@ -232,7 +232,7 @@ mapper(es_Fit, fits_table,
Character, Character,
backref="fits"), backref="fits"),
"_Fit__damagePattern": relation(DamagePattern), "_Fit__damagePattern": relation(DamagePattern),
"_Fit__targetResists": relation(TargetResists), "_Fit__targetProfile": relation(TargetProfile),
"projectedOnto": projectedFitSourceRel, "projectedOnto": projectedFitSourceRel,
"victimOf": relationship( "victimOf": relationship(
ProjectedFit, ProjectedFit,

View File

@@ -19,7 +19,7 @@
import eos.db import eos.db
from eos.saveddata.damagePattern import DamagePattern as es_DamagePattern from eos.saveddata.damagePattern import DamagePattern as es_DamagePattern
from eos.saveddata.targetResists import TargetResists as es_TargetResists from eos.saveddata.targetProfile import TargetProfile as es_TargetProfile
class ImportError(Exception): class ImportError(Exception):
@@ -188,9 +188,9 @@ class DefaultDatabaseValues:
for targetResistProfileRow in targetResistProfileList: for targetResistProfileRow in targetResistProfileList:
name, em, therm, kin, exp = targetResistProfileRow name, em, therm, kin, exp = targetResistProfileRow
resistsProfile = eos.db.eos.db.getTargetResists(name) resistsProfile = eos.db.eos.db.getTargetProfile(name)
if resistsProfile is None: if resistsProfile is None:
resistsProfile = es_TargetResists(em, therm, kin, exp) resistsProfile = es_TargetProfile(em, therm, kin, exp)
resistsProfile.name = name resistsProfile.name = name
eos.db.save(resistsProfile) eos.db.save(resistsProfile)

View File

@@ -30,7 +30,7 @@ from eos.saveddata.price import Price
from eos.saveddata.user import User from eos.saveddata.user import User
from eos.saveddata.ssocharacter import SsoCharacter from eos.saveddata.ssocharacter import SsoCharacter
from eos.saveddata.damagePattern import DamagePattern from eos.saveddata.damagePattern import DamagePattern
from eos.saveddata.targetResists import TargetResists from eos.saveddata.targetProfile import TargetProfile
from eos.saveddata.character import Character from eos.saveddata.character import Character
from eos.saveddata.implantSet import ImplantSet from eos.saveddata.implantSet import ImplantSet
from eos.saveddata.fit import Fit from eos.saveddata.fit import Fit
@@ -366,16 +366,16 @@ def clearDamagePatterns():
return deleted_rows return deleted_rows
def getTargetResistsList(eager=None): def getTargetProfileList(eager=None):
eager = processEager(eager) eager = processEager(eager)
with sd_lock: with sd_lock:
patterns = saveddata_session.query(TargetResists).options(*eager).all() patterns = saveddata_session.query(TargetProfile).options(*eager).all()
return patterns return patterns
def clearTargetResists(): def clearTargetProfiles():
with sd_lock: with sd_lock:
deleted_rows = saveddata_session.query(TargetResists).delete() deleted_rows = saveddata_session.query(TargetProfile).delete()
commit() commit()
return deleted_rows return deleted_rows
@@ -408,22 +408,22 @@ def getDamagePattern(lookfor, eager=None):
return pattern return pattern
@cachedQuery(TargetResists, 1, "lookfor") @cachedQuery(TargetProfile, 1, "lookfor")
def getTargetResists(lookfor, eager=None): def getTargetProfile(lookfor, eager=None):
if isinstance(lookfor, int): if isinstance(lookfor, int):
if eager is None: if eager is None:
with sd_lock: with sd_lock:
pattern = saveddata_session.query(TargetResists).get(lookfor) pattern = saveddata_session.query(TargetProfile).get(lookfor)
else: else:
eager = processEager(eager) eager = processEager(eager)
with sd_lock: with sd_lock:
pattern = saveddata_session.query(TargetResists).options(*eager).filter( pattern = saveddata_session.query(TargetProfile).options(*eager).filter(
TargetResists.ID == lookfor).first() TargetProfile.ID == lookfor).first()
elif isinstance(lookfor, str): elif isinstance(lookfor, str):
eager = processEager(eager) eager = processEager(eager)
with sd_lock: with sd_lock:
pattern = saveddata_session.query(TargetResists).options(*eager).filter( pattern = saveddata_session.query(TargetProfile).options(*eager).filter(
TargetResists.name == lookfor).first() TargetProfile.name == lookfor).first()
else: else:
raise TypeError("Need integer or string as argument") raise TypeError("Need integer or string as argument")
return pattern return pattern
@@ -439,11 +439,11 @@ def getImplantSet(lookfor, eager=None):
eager = processEager(eager) eager = processEager(eager)
with sd_lock: with sd_lock:
pattern = saveddata_session.query(ImplantSet).options(*eager).filter( pattern = saveddata_session.query(ImplantSet).options(*eager).filter(
TargetResists.ID == lookfor).first() TargetProfile.ID == lookfor).first()
elif isinstance(lookfor, str): elif isinstance(lookfor, str):
eager = processEager(eager) eager = processEager(eager)
with sd_lock: with sd_lock:
pattern = saveddata_session.query(ImplantSet).options(*eager).filter(TargetResists.name == lookfor).first() pattern = saveddata_session.query(ImplantSet).options(*eager).filter(TargetProfile.name == lookfor).first()
else: else:
raise TypeError("Improper argument") raise TypeError("Improper argument")
return pattern return pattern

View File

@@ -0,0 +1,42 @@
# ===============================================================================
# Copyright (C) 2014 Ryan Holmes
#
# This file is part of eos.
#
# eos is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# eos 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 Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with eos. If not, see <http://www.gnu.org/licenses/>.
# ===============================================================================
from sqlalchemy import Table, Column, Integer, Float, ForeignKey, String, DateTime
from sqlalchemy.orm import mapper
import datetime
from eos.db import saveddata_meta
from eos.saveddata.targetProfile import TargetProfile
targetProfiles_table = Table("targetResists", saveddata_meta,
Column("ID", Integer, primary_key=True),
Column("name", String),
Column("emAmount", Float),
Column("thermalAmount", Float),
Column("kineticAmount", Float),
Column("explosiveAmount", Float),
Column("maxVelocity", Float, nullable=True),
Column("signatureRadius", Float, nullable=True),
Column("radius", Float, nullable=True),
Column("ownerID", ForeignKey("users.ID"), nullable=True),
Column("created", DateTime, nullable=True, default=datetime.datetime.now),
Column("modified", DateTime, nullable=True, onupdate=datetime.datetime.now)
)
mapper(TargetProfile, targetProfiles_table)

View File

@@ -1,42 +0,0 @@
# ===============================================================================
# Copyright (C) 2014 Ryan Holmes
#
# This file is part of eos.
#
# eos is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# eos 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 Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with eos. If not, see <http://www.gnu.org/licenses/>.
# ===============================================================================
from sqlalchemy import Table, Column, Integer, Float, ForeignKey, String, DateTime
from sqlalchemy.orm import mapper
import datetime
from eos.db import saveddata_meta
from eos.saveddata.targetResists import TargetResists
targetResists_table = Table("targetResists", saveddata_meta,
Column("ID", Integer, primary_key=True),
Column("name", String),
Column("emAmount", Float),
Column("thermalAmount", Float),
Column("kineticAmount", Float),
Column("explosiveAmount", Float),
Column("maxVelocity", Float, nullable=True),
Column("signatureRadius", Float, nullable=True),
Column("radius", Float, nullable=True),
Column("ownerID", ForeignKey("users.ID"), nullable=True),
Column("created", DateTime, nullable=True, default=datetime.datetime.now),
Column("modified", DateTime, nullable=True, onupdate=datetime.datetime.now)
)
mapper(TargetResists, targetResists_table)

View File

@@ -138,7 +138,7 @@ class Drone(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
return True return True
return False return False
def getVolleyParameters(self, targetResists=None): def getVolleyParameters(self, targetProfile=None):
if not self.dealsDamage or self.amountActive <= 0: if not self.dealsDamage or self.amountActive <= 0:
return {0: DmgTypes(0, 0, 0, 0)} return {0: DmgTypes(0, 0, 0, 0)}
if self.__baseVolley is None: if self.__baseVolley is None:
@@ -150,17 +150,17 @@ class Drone(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
kinetic=(dmgGetter("kineticDamage", 0)) * dmgMult, kinetic=(dmgGetter("kineticDamage", 0)) * dmgMult,
explosive=(dmgGetter("explosiveDamage", 0)) * dmgMult) explosive=(dmgGetter("explosiveDamage", 0)) * dmgMult)
volley = DmgTypes( volley = DmgTypes(
em=self.__baseVolley.em * (1 - getattr(targetResists, "emAmount", 0)), em=self.__baseVolley.em * (1 - getattr(targetProfile, "emAmount", 0)),
thermal=self.__baseVolley.thermal * (1 - getattr(targetResists, "thermalAmount", 0)), thermal=self.__baseVolley.thermal * (1 - getattr(targetProfile, "thermalAmount", 0)),
kinetic=self.__baseVolley.kinetic * (1 - getattr(targetResists, "kineticAmount", 0)), kinetic=self.__baseVolley.kinetic * (1 - getattr(targetProfile, "kineticAmount", 0)),
explosive=self.__baseVolley.explosive * (1 - getattr(targetResists, "explosiveAmount", 0))) explosive=self.__baseVolley.explosive * (1 - getattr(targetProfile, "explosiveAmount", 0)))
return {0: volley} return {0: volley}
def getVolley(self, targetResists=None): def getVolley(self, targetProfile=None):
return self.getVolleyParameters(targetResists=targetResists)[0] return self.getVolleyParameters(targetProfile=targetProfile)[0]
def getDps(self, targetResists=None): def getDps(self, targetProfile=None):
volley = self.getVolley(targetResists=targetResists) volley = self.getVolley(targetProfile=targetProfile)
if not volley: if not volley:
return DmgTypes(0, 0, 0, 0) return DmgTypes(0, 0, 0, 0)
cycleParams = self.getCycleParameters() cycleParams = self.getCycleParameters()

View File

@@ -183,7 +183,7 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
return True return True
return False return False
def getVolleyParametersPerEffect(self, targetResists=None): def getVolleyParametersPerEffect(self, targetProfile=None):
if not self.active or self.amountActive <= 0: if not self.active or self.amountActive <= 0:
return {} return {}
if self.__baseVolley is None: if self.__baseVolley is None:
@@ -196,21 +196,21 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
adjustedVolley[effectID] = {} adjustedVolley[effectID] = {}
for volleyTime, volleyValue in effectData.items(): for volleyTime, volleyValue in effectData.items():
adjustedVolley[effectID][volleyTime] = DmgTypes( adjustedVolley[effectID][volleyTime] = DmgTypes(
em=volleyValue.em * (1 - getattr(targetResists, "emAmount", 0)), em=volleyValue.em * (1 - getattr(targetProfile, "emAmount", 0)),
thermal=volleyValue.thermal * (1 - getattr(targetResists, "thermalAmount", 0)), thermal=volleyValue.thermal * (1 - getattr(targetProfile, "thermalAmount", 0)),
kinetic=volleyValue.kinetic * (1 - getattr(targetResists, "kineticAmount", 0)), kinetic=volleyValue.kinetic * (1 - getattr(targetProfile, "kineticAmount", 0)),
explosive=volleyValue.explosive * (1 - getattr(targetResists, "explosiveAmount", 0))) explosive=volleyValue.explosive * (1 - getattr(targetProfile, "explosiveAmount", 0)))
return adjustedVolley return adjustedVolley
def getVolleyPerEffect(self, targetResists=None): def getVolleyPerEffect(self, targetProfile=None):
volleyParams = self.getVolleyParametersPerEffect(targetResists=targetResists) volleyParams = self.getVolleyParametersPerEffect(targetProfile=targetProfile)
volleyMap = {} volleyMap = {}
for effectID, volleyData in volleyParams.items(): for effectID, volleyData in volleyParams.items():
volleyMap[effectID] = volleyData[0] volleyMap[effectID] = volleyData[0]
return volleyMap return volleyMap
def getVolley(self, targetResists=None): def getVolley(self, targetProfile=None):
volleyParams = self.getVolleyParametersPerEffect(targetResists=targetResists) volleyParams = self.getVolleyParametersPerEffect(targetProfile=targetProfile)
em = 0 em = 0
therm = 0 therm = 0
kin = 0 kin = 0
@@ -222,30 +222,30 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
exp += volleyData[0].explosive exp += volleyData[0].explosive
return DmgTypes(em, therm, kin, exp) return DmgTypes(em, therm, kin, exp)
def getDps(self, targetResists=None): def getDps(self, targetProfile=None):
em = 0 em = 0
thermal = 0 thermal = 0
kinetic = 0 kinetic = 0
explosive = 0 explosive = 0
for dps in self.getDpsPerEffect(targetResists=targetResists).values(): for dps in self.getDpsPerEffect(targetProfile=targetProfile).values():
em += dps.em em += dps.em
thermal += dps.thermal thermal += dps.thermal
kinetic += dps.kinetic kinetic += dps.kinetic
explosive += dps.explosive explosive += dps.explosive
return DmgTypes(em=em, thermal=thermal, kinetic=kinetic, explosive=explosive) return DmgTypes(em=em, thermal=thermal, kinetic=kinetic, explosive=explosive)
def getDpsPerEffect(self, targetResists=None): def getDpsPerEffect(self, targetProfile=None):
if not self.active or self.amountActive <= 0: if not self.active or self.amountActive <= 0:
return {} return {}
cycleParams = self.getCycleParametersPerEffectOptimizedDps(targetResists=targetResists) cycleParams = self.getCycleParametersPerEffectOptimizedDps(targetProfile=targetProfile)
dpsMap = {} dpsMap = {}
for ability in self.abilities: for ability in self.abilities:
if ability.effectID in cycleParams: if ability.effectID in cycleParams:
cycleTime = cycleParams[ability.effectID].averageTime cycleTime = cycleParams[ability.effectID].averageTime
dpsMap[ability.effectID] = ability.getDps(targetResists=targetResists, cycleTimeOverride=cycleTime) dpsMap[ability.effectID] = ability.getDps(targetProfile=targetProfile, cycleTimeOverride=cycleTime)
return dpsMap return dpsMap
def getCycleParametersPerEffectOptimizedDps(self, targetResists=None, reloadOverride=None): def getCycleParametersPerEffectOptimizedDps(self, targetProfile=None, reloadOverride=None):
cycleParamsInfinite = self.getCycleParametersPerEffectInfinite() cycleParamsInfinite = self.getCycleParametersPerEffectInfinite()
cycleParamsReload = self.getCycleParametersPerEffect(reloadOverride=reloadOverride) cycleParamsReload = self.getCycleParametersPerEffect(reloadOverride=reloadOverride)
dpsMapOnlyInfinite = {} dpsMapOnlyInfinite = {}
@@ -254,10 +254,10 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
for ability in self.abilities: for ability in self.abilities:
if ability.effectID in cycleParamsInfinite: if ability.effectID in cycleParamsInfinite:
cycleTime = cycleParamsInfinite[ability.effectID].averageTime cycleTime = cycleParamsInfinite[ability.effectID].averageTime
dpsMapOnlyInfinite[ability.effectID] = ability.getDps(targetResists=targetResists, cycleTimeOverride=cycleTime) dpsMapOnlyInfinite[ability.effectID] = ability.getDps(targetProfile=targetProfile, cycleTimeOverride=cycleTime)
if ability.effectID in cycleParamsReload: if ability.effectID in cycleParamsReload:
cycleTime = cycleParamsReload[ability.effectID].averageTime cycleTime = cycleParamsReload[ability.effectID].averageTime
dpsMapAllWithReloads[ability.effectID] = ability.getDps(targetResists=targetResists, cycleTimeOverride=cycleTime) dpsMapAllWithReloads[ability.effectID] = ability.getDps(targetProfile=targetProfile, cycleTimeOverride=cycleTime)
totalOnlyInfinite = sum(i.total for i in dpsMapOnlyInfinite.values()) totalOnlyInfinite = sum(i.total for i in dpsMapOnlyInfinite.values())
totalAllWithReloads = sum(i.total for i in dpsMapAllWithReloads.values()) totalAllWithReloads = sum(i.total for i in dpsMapAllWithReloads.values())
return cycleParamsInfinite if totalOnlyInfinite >= totalAllWithReloads else cycleParamsReload return cycleParamsInfinite if totalOnlyInfinite >= totalAllWithReloads else cycleParamsReload

View File

@@ -114,7 +114,7 @@ class FighterAbility:
speed = self.fighter.getModifiedItemAttr("{}Duration".format(self.attrPrefix)) speed = self.fighter.getModifiedItemAttr("{}Duration".format(self.attrPrefix))
return speed return speed
def getVolley(self, targetResists=None): def getVolley(self, targetProfile=None):
if not self.dealsDamage or not self.active: if not self.dealsDamage or not self.active:
return DmgTypes(0, 0, 0, 0) return DmgTypes(0, 0, 0, 0)
if self.attrPrefix == "fighterAbilityLaunchBomb": if self.attrPrefix == "fighterAbilityLaunchBomb":
@@ -129,14 +129,14 @@ class FighterAbility:
exp = self.fighter.getModifiedItemAttr("{}DamageExp".format(self.attrPrefix), 0) exp = self.fighter.getModifiedItemAttr("{}DamageExp".format(self.attrPrefix), 0)
dmgMult = self.fighter.amountActive * self.fighter.getModifiedItemAttr("{}DamageMultiplier".format(self.attrPrefix), 1) dmgMult = self.fighter.amountActive * self.fighter.getModifiedItemAttr("{}DamageMultiplier".format(self.attrPrefix), 1)
volley = DmgTypes( volley = DmgTypes(
em=em * dmgMult * (1 - getattr(targetResists, "emAmount", 0)), em=em * dmgMult * (1 - getattr(targetProfile, "emAmount", 0)),
thermal=therm * dmgMult * (1 - getattr(targetResists, "thermalAmount", 0)), thermal=therm * dmgMult * (1 - getattr(targetProfile, "thermalAmount", 0)),
kinetic=kin * dmgMult * (1 - getattr(targetResists, "kineticAmount", 0)), kinetic=kin * dmgMult * (1 - getattr(targetProfile, "kineticAmount", 0)),
explosive=exp * dmgMult * (1 - getattr(targetResists, "explosiveAmount", 0))) explosive=exp * dmgMult * (1 - getattr(targetProfile, "explosiveAmount", 0)))
return volley return volley
def getDps(self, targetResists=None, cycleTimeOverride=None): def getDps(self, targetProfile=None, cycleTimeOverride=None):
volley = self.getVolley(targetResists=targetResists) volley = self.getVolley(targetProfile=targetProfile)
if not volley: if not volley:
return DmgTypes(0, 0, 0, 0) return DmgTypes(0, 0, 0, 0)
cycleTime = cycleTimeOverride if cycleTimeOverride is not None else self.cycleTime cycleTime = cycleTimeOverride if cycleTimeOverride is not None else self.cycleTime

View File

@@ -149,12 +149,12 @@ class Fit:
self.__capRecharge = None self.__capRecharge = None
@property @property
def targetResists(self): def targetProfile(self):
return self.__targetResists return self.__targetProfile
@targetResists.setter @targetProfile.setter
def targetResists(self, targetResists): def targetProfile(self, targetProfile):
self.__targetResists = targetResists self.__targetProfile = targetProfile
self.__weaponDpsMap = {} self.__weaponDpsMap = {}
self.__weaponVolleyMap = {} self.__weaponVolleyMap = {}
self.__droneDps = None self.__droneDps = None
@@ -1497,8 +1497,8 @@ class Fit:
weaponDps = DmgTypes(0, 0, 0, 0) weaponDps = DmgTypes(0, 0, 0, 0)
for mod in self.modules: for mod in self.modules:
weaponVolley += mod.getVolley(spoolOptions=spoolOptions, targetResists=self.targetResists) weaponVolley += mod.getVolley(spoolOptions=spoolOptions, targetProfile=self.targetProfile)
weaponDps += mod.getDps(spoolOptions=spoolOptions, targetResists=self.targetResists) weaponDps += mod.getDps(spoolOptions=spoolOptions, targetProfile=self.targetProfile)
self.__weaponVolleyMap[spoolOptions] = weaponVolley self.__weaponVolleyMap[spoolOptions] = weaponVolley
self.__weaponDpsMap[spoolOptions] = weaponDps self.__weaponDpsMap[spoolOptions] = weaponDps
@@ -1508,12 +1508,12 @@ class Fit:
droneDps = DmgTypes(0, 0, 0, 0) droneDps = DmgTypes(0, 0, 0, 0)
for drone in self.drones: for drone in self.drones:
droneVolley += drone.getVolley(targetResists=self.targetResists) droneVolley += drone.getVolley(targetProfile=self.targetProfile)
droneDps += drone.getDps(targetResists=self.targetResists) droneDps += drone.getDps(targetProfile=self.targetProfile)
for fighter in self.fighters: for fighter in self.fighters:
droneVolley += fighter.getVolley(targetResists=self.targetResists) droneVolley += fighter.getVolley(targetProfile=self.targetProfile)
droneDps += fighter.getDps(targetResists=self.targetResists) droneDps += fighter.getDps(targetProfile=self.targetProfile)
self.__droneDps = droneDps self.__droneDps = droneDps
self.__droneVolley = droneVolley self.__droneVolley = droneVolley
@@ -1557,7 +1557,7 @@ class Fit:
fitCopy.mode = deepcopy(self.mode) fitCopy.mode = deepcopy(self.mode)
fitCopy.name = "%s copy" % self.name fitCopy.name = "%s copy" % self.name
fitCopy.damagePattern = self.damagePattern fitCopy.damagePattern = self.damagePattern
fitCopy.targetResists = self.targetResists fitCopy.targetProfile = self.targetProfile
fitCopy.implantLocation = self.implantLocation fitCopy.implantLocation = self.implantLocation
fitCopy.systemSecurity = self.systemSecurity fitCopy.systemSecurity = self.systemSecurity
fitCopy.notes = self.notes fitCopy.notes = self.notes

View File

@@ -421,7 +421,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
return True return True
return False return False
def getVolleyParameters(self, spoolOptions=None, targetResists=None, ignoreState=False): def getVolleyParameters(self, spoolOptions=None, targetProfile=None, ignoreState=False):
if self.isEmpty or (self.state < FittingModuleState.ACTIVE and not ignoreState): if self.isEmpty or (self.state < FittingModuleState.ACTIVE and not ignoreState):
return {0: DmgTypes(0, 0, 0, 0)} return {0: DmgTypes(0, 0, 0, 0)}
if self.__baseVolley is None: if self.__baseVolley is None:
@@ -451,24 +451,24 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
adjustedVolley = {} adjustedVolley = {}
for volleyTime, volleyValue in self.__baseVolley.items(): for volleyTime, volleyValue in self.__baseVolley.items():
adjustedVolley[volleyTime] = DmgTypes( adjustedVolley[volleyTime] = DmgTypes(
em=volleyValue.em * spoolMultiplier * (1 - getattr(targetResists, "emAmount", 0)), em=volleyValue.em * spoolMultiplier * (1 - getattr(targetProfile, "emAmount", 0)),
thermal=volleyValue.thermal * spoolMultiplier * (1 - getattr(targetResists, "thermalAmount", 0)), thermal=volleyValue.thermal * spoolMultiplier * (1 - getattr(targetProfile, "thermalAmount", 0)),
kinetic=volleyValue.kinetic * spoolMultiplier * (1 - getattr(targetResists, "kineticAmount", 0)), kinetic=volleyValue.kinetic * spoolMultiplier * (1 - getattr(targetProfile, "kineticAmount", 0)),
explosive=volleyValue.explosive * spoolMultiplier * (1 - getattr(targetResists, "explosiveAmount", 0))) explosive=volleyValue.explosive * spoolMultiplier * (1 - getattr(targetProfile, "explosiveAmount", 0)))
return adjustedVolley return adjustedVolley
def getVolley(self, spoolOptions=None, targetResists=None, ignoreState=False): def getVolley(self, spoolOptions=None, targetProfile=None, ignoreState=False):
volleyParams = self.getVolleyParameters(spoolOptions=spoolOptions, targetResists=targetResists, ignoreState=ignoreState) volleyParams = self.getVolleyParameters(spoolOptions=spoolOptions, targetProfile=targetProfile, ignoreState=ignoreState)
if len(volleyParams) == 0: if len(volleyParams) == 0:
return DmgTypes(0, 0, 0, 0) return DmgTypes(0, 0, 0, 0)
return volleyParams[min(volleyParams)] return volleyParams[min(volleyParams)]
def getDps(self, spoolOptions=None, targetResists=None, ignoreState=False): def getDps(self, spoolOptions=None, targetProfile=None, ignoreState=False):
dmgDuringCycle = DmgTypes(0, 0, 0, 0) dmgDuringCycle = DmgTypes(0, 0, 0, 0)
cycleParams = self.getCycleParameters() cycleParams = self.getCycleParameters()
if cycleParams is None: if cycleParams is None:
return dmgDuringCycle return dmgDuringCycle
volleyParams = self.getVolleyParameters(spoolOptions=spoolOptions, targetResists=targetResists, ignoreState=ignoreState) volleyParams = self.getVolleyParameters(spoolOptions=spoolOptions, targetProfile=targetProfile, ignoreState=ignoreState)
avgCycleTime = cycleParams.averageTime avgCycleTime = cycleParams.averageTime
if len(volleyParams) == 0 or avgCycleTime == 0: if len(volleyParams) == 0 or avgCycleTime == 0:
return dmgDuringCycle return dmgDuringCycle

View File

@@ -24,7 +24,7 @@ import eos.db
pyfalog = Logger(__name__) pyfalog = Logger(__name__)
class TargetResists: class TargetProfile:
# also determined import/export order - VERY IMPORTANT # also determined import/export order - VERY IMPORTANT
DAMAGE_TYPES = ("em", "thermal", "kinetic", "explosive") DAMAGE_TYPES = ("em", "thermal", "kinetic", "explosive")
@@ -49,7 +49,7 @@ class TargetResists:
# When we import damage profiles, we create new ones and update old ones. To do this, get a list of current # 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 # patterns to allow lookup
lookup = {} lookup = {}
current = eos.db.getTargetResistsList() current = eos.db.getTargetProfileList()
for pattern in current: for pattern in current:
lookup[pattern.name] = pattern lookup[pattern.name] = pattern
@@ -64,7 +64,7 @@ class TargetResists:
pyfalog.warning("Data isn't in correct format, continue to next line.") pyfalog.warning("Data isn't in correct format, continue to next line.")
continue continue
if type != "TargetResists": if type not in ("TargetProfile", "TargetResists"):
continue continue
numPatterns += 1 numPatterns += 1
@@ -86,7 +86,7 @@ class TargetResists:
pattern.update(**fields) pattern.update(**fields)
eos.db.save(pattern) eos.db.save(pattern)
else: else:
pattern = TargetResists(**fields) pattern = TargetProfile(**fields)
pattern.name = name.strip() pattern.name = name.strip()
eos.db.save(pattern) eos.db.save(pattern)
patterns.append(pattern) patterns.append(pattern)
@@ -95,13 +95,13 @@ class TargetResists:
return patterns, numPatterns return patterns, numPatterns
EXPORT_FORMAT = "TargetResists = %s,%.1f,%.1f,%.1f,%.1f\n" EXPORT_FORMAT = "TargetProfile = %s,%.1f,%.1f,%.1f,%.1f\n"
@classmethod @classmethod
def exportPatterns(cls, *patterns): def exportPatterns(cls, *patterns):
out = "# Exported from pyfa\n#\n" out = "# Exported from pyfa\n#\n"
out += "# Values are in following format:\n" out += "# Values are in following format:\n"
out += "# TargetResists = [name],[EM %],[Thermal %],[Kinetic %],[Explosive %]\n\n" out += "# TargetProfile = [name],[EM %],[Thermal %],[Kinetic %],[Explosive %]\n\n"
for dp in patterns: for dp in patterns:
out += cls.EXPORT_FORMAT % ( out += cls.EXPORT_FORMAT % (
dp.name, dp.name,
@@ -114,7 +114,7 @@ class TargetResists:
return out.strip() return out.strip()
def __deepcopy__(self, memo): def __deepcopy__(self, memo):
p = TargetResists( p = TargetProfile(
self.emAmount, self.thermalAmount, self.kineticAmount, self.explosiveAmount, self.emAmount, self.thermalAmount, self.kineticAmount, self.explosiveAmount,
self.maxVelocity, self.signatureRadius, self.radius) self.maxVelocity, self.signatureRadius, self.radius)
p.name = "%s copy" % self.name p.name = "%s copy" % self.name

View File

@@ -39,7 +39,7 @@ from gui.builtinContextMenus import ( # noqa: E402,F401
damagePatternChange, damagePatternChange,
# Firepower panel # Firepower panel
factorReload, factorReload,
targetResists, targetProfile,
# Graph extra options # Graph extra options
graphDmgIgnoreResists, graphDmgIgnoreResists,
graphDmgApplyProjected, graphDmgApplyProjected,

View File

@@ -8,10 +8,10 @@ import gui.mainFrame
from gui.bitmap_loader import BitmapLoader from gui.bitmap_loader import BitmapLoader
from gui.contextMenu import ContextMenuUnconditional from gui.contextMenu import ContextMenuUnconditional
from service.fit import Fit from service.fit import Fit
from service.targetResists import TargetResists as svc_TargetResists from service.targetProfile import TargetProfile as svc_TargetProfile
class TargetResists(ContextMenuUnconditional): class TargetProfile(ContextMenuUnconditional):
def __init__(self): def __init__(self):
self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.mainFrame = gui.mainFrame.MainFrame.getInstance()
@@ -20,13 +20,14 @@ class TargetResists(ContextMenuUnconditional):
if self.mainFrame.getActiveFit() is None or srcContext != "firepowerViewFull": if self.mainFrame.getActiveFit() is None or srcContext != "firepowerViewFull":
return False return False
sTR = svc_TargetResists.getInstance() sTR = svc_TargetProfile.getInstance()
self.patterns = sTR.getTargetResistsList() self.patterns = sTR.getTargetProfileList()
self.patterns.sort(key=lambda p: (p.name in ["None"], p.name)) self.patterns.sort(key=lambda p: (p.name in ["None"], p.name))
return len(self.patterns) > 0 return len(self.patterns) > 0
def getText(self, itmContext): def getText(self, itmContext):
# We take into consideration just target resists, so call menu item accordingly
return "Target Resists" return "Target Resists"
def handleResistSwitch(self, event): def handleResistSwitch(self, event):
@@ -37,7 +38,7 @@ class TargetResists(ContextMenuUnconditional):
sFit = Fit.getInstance() sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit() fitID = self.mainFrame.getActiveFit()
sFit.setTargetResists(fitID, pattern) sFit.setTargetProfile(fitID, pattern)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitIDs=(fitID,))) wx.PostEvent(self.mainFrame, GE.FitChanged(fitIDs=(fitID,)))
def addPattern(self, rootMenu, pattern): def addPattern(self, rootMenu, pattern):
@@ -55,7 +56,7 @@ class TargetResists(ContextMenuUnconditional):
sFit = Fit.getInstance() sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit() fitID = self.mainFrame.getActiveFit()
f = sFit.getFit(fitID) f = sFit.getFit(fitID)
tr = f.targetResists tr = f.targetProfile
if tr == pattern: if tr == pattern:
bitmap = BitmapLoader.getBitmap("state_active_small", "gui") bitmap = BitmapLoader.getBitmap("state_active_small", "gui")
@@ -108,4 +109,4 @@ class TargetResists(ContextMenuUnconditional):
return sub return sub
TargetResists.register() TargetProfile.register()

View File

@@ -2,7 +2,7 @@ import wx
import config import config
from eos.db.saveddata.loadDefaultDatabaseValues import DefaultDatabaseValues from eos.db.saveddata.loadDefaultDatabaseValues import DefaultDatabaseValues
from eos.db.saveddata.queries import clearPrices, clearDamagePatterns, clearTargetResists from eos.db.saveddata.queries import clearPrices, clearDamagePatterns, clearTargetProfiles
from gui.bitmap_loader import BitmapLoader from gui.bitmap_loader import BitmapLoader
from gui.preferenceView import PreferenceView from gui.preferenceView import PreferenceView
from gui.utils import helpers_wxPython as wxHelpers from gui.utils import helpers_wxPython as wxHelpers
@@ -83,9 +83,9 @@ class PFGeneralPref(PreferenceView):
btnSizer.Add(self.btnDeleteDamagePatterns, 0, wx.ALL, 5) btnSizer.Add(self.btnDeleteDamagePatterns, 0, wx.ALL, 5)
self.btnDeleteDamagePatterns.Bind(wx.EVT_BUTTON, self.DeleteDamagePatterns) self.btnDeleteDamagePatterns.Bind(wx.EVT_BUTTON, self.DeleteDamagePatterns)
self.btnDeleteTargetResists = wx.Button(panel, wx.ID_ANY, "Delete All Target Resist Profiles", wx.DefaultPosition, wx.DefaultSize, 0) self.btnDeleteTargetProfiles = wx.Button(panel, wx.ID_ANY, "Delete All Target Resist Profiles", wx.DefaultPosition, wx.DefaultSize, 0)
btnSizer.Add(self.btnDeleteTargetResists, 0, wx.ALL, 5) btnSizer.Add(self.btnDeleteTargetProfiles, 0, wx.ALL, 5)
self.btnDeleteTargetResists.Bind(wx.EVT_BUTTON, self.DeleteTargetResists) self.btnDeleteTargetProfiles.Bind(wx.EVT_BUTTON, self.DeleteTargetProfiles)
self.btnPrices = wx.Button(panel, wx.ID_ANY, "Delete All Prices", wx.DefaultPosition, wx.DefaultSize, 0) self.btnPrices = wx.Button(panel, wx.ID_ANY, "Delete All Prices", wx.DefaultPosition, wx.DefaultSize, 0)
btnSizer.Add(self.btnPrices, 0, wx.ALL, 5) btnSizer.Add(self.btnPrices, 0, wx.ALL, 5)
@@ -110,10 +110,10 @@ class PFGeneralPref(PreferenceView):
if wxHelpers.YesNoDialog(question, "Confirm"): if wxHelpers.YesNoDialog(question, "Confirm"):
clearDamagePatterns() clearDamagePatterns()
def DeleteTargetResists(self, event): def DeleteTargetProfiles(self, event):
question = "This is a destructive action that will delete all target resist profiles.\nAre you sure you want to do this?" question = "This is a destructive action that will delete all target resist profiles.\nAre you sure you want to do this?"
if wxHelpers.YesNoDialog(question, "Confirm"): if wxHelpers.YesNoDialog(question, "Confirm"):
clearTargetResists() clearTargetProfiles()
def DeletePrices(self, event): def DeletePrices(self, event):
question = "This is a destructive action that will delete all cached prices out of the database.\nAre you sure you want to do this?" question = "This is a destructive action that will delete all cached prices out of the database.\nAre you sure you want to do this?"

View File

@@ -146,7 +146,7 @@ class FirepowerViewFull(StatsView):
def refreshPanel(self, fit): def refreshPanel(self, fit):
# If we did anything intresting, we'd update our labels to reflect the new fit's stats here # If we did anything intresting, we'd update our labels to reflect the new fit's stats here
if fit is not None and fit.targetResists is not None: if fit is not None and fit.targetProfile is not None:
self.stEff.Show() self.stEff.Show()
else: else:
self.stEff.Hide() self.stEff.Hide()

View File

@@ -63,6 +63,7 @@ class GraphColumn(ViewColumn, metaclass=ABCMeta):
return self._getFitTooltip() return self._getFitTooltip()
return '' return ''
class DpsColumn(GraphColumn): class DpsColumn(GraphColumn):
name = 'Dps' name = 'Dps'

View File

@@ -57,7 +57,7 @@ from gui.marketBrowser import MarketBrowser
from gui.multiSwitch import MultiSwitch from gui.multiSwitch import MultiSwitch
from gui.patternEditor import DmgPatternEditorDlg from gui.patternEditor import DmgPatternEditorDlg
from gui.preferenceDialog import PreferenceDialog from gui.preferenceDialog import PreferenceDialog
from gui.resistsEditor import ResistsEditorDlg from gui.targetProfileEditor import ResistsEditorDlg
from gui.setEditor import ImplantSetEditorDlg from gui.setEditor import ImplantSetEditorDlg
from gui.shipBrowser import ShipBrowser from gui.shipBrowser import ShipBrowser
from gui.statsPane import StatsPane from gui.statsPane import StatsPane
@@ -397,7 +397,7 @@ class MainFrame(wx.Frame):
dlg = AttributeEditor(self) dlg = AttributeEditor(self)
dlg.Show() dlg.Show()
def showTargetResistsEditor(self, event): def showTargetProfileEditor(self, event):
ResistsEditorDlg(self) ResistsEditorDlg(self)
def showDamagePatternEditor(self, event): def showDamagePatternEditor(self, event):
@@ -472,8 +472,8 @@ class MainFrame(wx.Frame):
self.Bind(wx.EVT_MENU, self.showCharacterEditor, id=menuBar.characterEditorId) self.Bind(wx.EVT_MENU, self.showCharacterEditor, id=menuBar.characterEditorId)
# Damage pattern editor # Damage pattern editor
self.Bind(wx.EVT_MENU, self.showDamagePatternEditor, id=menuBar.damagePatternEditorId) self.Bind(wx.EVT_MENU, self.showDamagePatternEditor, id=menuBar.damagePatternEditorId)
# Target Resists editor # Target Profile editor
self.Bind(wx.EVT_MENU, self.showTargetResistsEditor, id=menuBar.targetResistsEditorId) self.Bind(wx.EVT_MENU, self.showTargetProfileEditor, id=menuBar.targetProfileEditorId)
# Implant Set editor # Implant Set editor
self.Bind(wx.EVT_MENU, self.showImplantSetEditor, id=menuBar.implantSetEditorId) self.Bind(wx.EVT_MENU, self.showImplantSetEditor, id=menuBar.implantSetEditorId)
# Import dialog # Import dialog

View File

@@ -38,7 +38,7 @@ class MainMenuBar(wx.MenuBar):
pyfalog.debug("Initialize MainMenuBar") pyfalog.debug("Initialize MainMenuBar")
self.characterEditorId = wx.NewId() self.characterEditorId = wx.NewId()
self.damagePatternEditorId = wx.NewId() self.damagePatternEditorId = wx.NewId()
self.targetResistsEditorId = wx.NewId() self.targetProfileEditorId = wx.NewId()
self.implantSetEditorId = wx.NewId() self.implantSetEditorId = wx.NewId()
self.graphFrameId = wx.NewId() self.graphFrameId = wx.NewId()
self.backupFitsId = wx.NewId() self.backupFitsId = wx.NewId()
@@ -156,9 +156,9 @@ class MainMenuBar(wx.MenuBar):
damagePatternEditItem = wx.MenuItem(editorsMenu, self.damagePatternEditorId, "&Damage Pattern Editor") damagePatternEditItem = wx.MenuItem(editorsMenu, self.damagePatternEditorId, "&Damage Pattern Editor")
damagePatternEditItem.SetBitmap(BitmapLoader.getBitmap("damagePattern_small", "gui")) damagePatternEditItem.SetBitmap(BitmapLoader.getBitmap("damagePattern_small", "gui"))
editorsMenu.Append(damagePatternEditItem) editorsMenu.Append(damagePatternEditItem)
targetResistsEditItem = wx.MenuItem(editorsMenu, self.targetResistsEditorId, "&Target Resists Editor") targetProfileEditItem = wx.MenuItem(editorsMenu, self.targetProfileEditorId, "&Target Profile Editor")
targetResistsEditItem.SetBitmap(BitmapLoader.getBitmap("explosive_small", "gui")) targetProfileEditItem.SetBitmap(BitmapLoader.getBitmap("explosive_small", "gui"))
editorsMenu.Append(targetResistsEditItem) editorsMenu.Append(targetProfileEditItem)
# Help menu # Help menu
helpMenu = wx.Menu() helpMenu = wx.Menu()

View File

@@ -19,7 +19,7 @@
# noinspection PyPackageRequirements # noinspection PyPackageRequirements
import wx import wx
from service.targetResists import TargetResists from service.targetProfile import TargetProfile
from gui.bitmap_loader import BitmapLoader from gui.bitmap_loader import BitmapLoader
from gui.utils.clipboard import toClipboard, fromClipboard from gui.utils.clipboard import toClipboard, fromClipboard
from gui.builtinViews.entityEditor import EntityEditor, BaseValidator from gui.builtinViews.entityEditor import EntityEditor, BaseValidator
@@ -28,12 +28,12 @@ from logbook import Logger
pyfalog = Logger(__name__) pyfalog = Logger(__name__)
class TargetResistsTextValidor(BaseValidator): class TargetProfileTextValidor(BaseValidator):
def __init__(self): def __init__(self):
BaseValidator.__init__(self) BaseValidator.__init__(self)
def Clone(self): def Clone(self):
return TargetResistsTextValidor() return TargetProfileTextValidor()
def Validate(self, win): def Validate(self, win):
entityEditor = win.parent entityEditor = win.parent
@@ -42,9 +42,9 @@ class TargetResistsTextValidor(BaseValidator):
try: try:
if len(text) == 0: if len(text) == 0:
raise ValueError("You must supply a name for your Target Resist Profile!") raise ValueError("You must supply a name for your Target Profile!")
elif text in [x.name for x in entityEditor.choices]: elif text in [x.name for x in entityEditor.choices]:
raise ValueError("Target Resist Profile name already in use, please choose another.") raise ValueError("Target Profile name already in use, please choose another.")
return True return True
except ValueError as e: except ValueError as e:
@@ -54,32 +54,32 @@ class TargetResistsTextValidor(BaseValidator):
return False return False
class TargetResistsEntityEditor(EntityEditor): class TargetProfileEntityEditor(EntityEditor):
def __init__(self, parent): def __init__(self, parent):
EntityEditor.__init__(self, parent, "Target Resist Profile") EntityEditor.__init__(self, parent, "Target Profile")
self.SetEditorValidator(TargetResistsTextValidor) self.SetEditorValidator(TargetProfileTextValidor)
def getEntitiesFromContext(self): def getEntitiesFromContext(self):
sTR = TargetResists.getInstance() sTR = TargetProfile.getInstance()
choices = sorted(sTR.getTargetResistsList(), key=lambda p: p.name) choices = sorted(sTR.getTargetProfileList(), key=lambda p: p.name)
return choices return choices
def DoNew(self, name): def DoNew(self, name):
sTR = TargetResists.getInstance() sTR = TargetProfile.getInstance()
return sTR.newPattern(name) return sTR.newPattern(name)
def DoRename(self, entity, name): def DoRename(self, entity, name):
sTR = TargetResists.getInstance() sTR = TargetProfile.getInstance()
sTR.renamePattern(entity, name) sTR.renamePattern(entity, name)
def DoCopy(self, entity, name): def DoCopy(self, entity, name):
sTR = TargetResists.getInstance() sTR = TargetProfile.getInstance()
copy = sTR.copyPattern(entity) copy = sTR.copyPattern(entity)
sTR.renamePattern(copy, name) sTR.renamePattern(copy, name)
return copy return copy
def DoDelete(self, entity): def DoDelete(self, entity):
sTR = TargetResists.getInstance() sTR = TargetProfile.getInstance()
sTR.deletePattern(entity) sTR.deletePattern(entity)
@@ -90,7 +90,7 @@ class ResistsEditorDlg(wx.Dialog):
wx.Dialog.__init__( wx.Dialog.__init__(
self, parent, id=wx.ID_ANY, self, parent, id=wx.ID_ANY,
# Dropdown list widget is scaled to its longest content line on GTK, adapt to that # Dropdown list widget is scaled to its longest content line on GTK, adapt to that
title="Target Resists Editor", title="Target Profile Editor",
size=wx.Size(500, 240) if "wxGTK" in wx.PlatformInfo else wx.Size(350, 240)) size=wx.Size(500, 240) if "wxGTK" in wx.PlatformInfo else wx.Size(350, 240))
self.block = False self.block = False
@@ -98,7 +98,7 @@ class ResistsEditorDlg(wx.Dialog):
mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer = wx.BoxSizer(wx.VERTICAL)
self.entityEditor = TargetResistsEntityEditor(self) self.entityEditor = TargetProfileEntityEditor(self)
mainSizer.Add(self.entityEditor, 0, wx.ALL | wx.EXPAND, 2) mainSizer.Add(self.entityEditor, 0, wx.ALL | wx.EXPAND, 2)
self.sl = wx.StaticLine(self) self.sl = wx.StaticLine(self)
@@ -227,7 +227,7 @@ class ResistsEditorDlg(wx.Dialog):
if event is not None: if event is not None:
event.Skip() event.Skip()
TargetResists.getInstance().saveChanges(p) TargetProfile.getInstance().saveChanges(p)
except ValueError: except ValueError:
editObj.SetForegroundColour(wx.RED) editObj.SetForegroundColour(wx.RED)
@@ -271,7 +271,7 @@ class ResistsEditorDlg(wx.Dialog):
text = fromClipboard() text = fromClipboard()
if text: if text:
sTR = TargetResists.getInstance() sTR = TargetProfile.getInstance()
try: try:
sTR.importPatterns(text) sTR.importPatterns(text)
self.stNotice.SetLabel("Patterns successfully imported from clipboard") self.stNotice.SetLabel("Patterns successfully imported from clipboard")
@@ -290,7 +290,7 @@ class ResistsEditorDlg(wx.Dialog):
def exportPatterns(self, event): def exportPatterns(self, event):
"""Event fired when export to clipboard button is clicked""" """Event fired when export to clipboard button is clicked"""
sTR = TargetResists.getInstance() sTR = TargetProfile.getInstance()
toClipboard(sTR.exportPatterns()) toClipboard(sTR.exportPatterns())
self.stNotice.SetLabel("Patterns exported to clipboard") self.stNotice.SetLabel("Patterns exported to clipboard")

View File

@@ -69,7 +69,7 @@ class Fit:
def __init__(self): def __init__(self):
pyfalog.debug("Initialize Fit class") pyfalog.debug("Initialize Fit class")
self.pattern = DamagePattern.getInstance().getDamagePattern("Uniform") self.pattern = DamagePattern.getInstance().getDamagePattern("Uniform")
self.targetResists = None self.targetProfile = None
self.character = saveddata_Character.getAll5() self.character = saveddata_Character.getAll5()
self.booster = False self.booster = False
self._loadedFits = WeakSet() self._loadedFits = WeakSet()
@@ -170,7 +170,7 @@ class Fit:
fit = FitType(ship) fit = FitType(ship)
fit.name = name if name is not None else "New %s" % fit.ship.item.name fit.name = name if name is not None else "New %s" % fit.ship.item.name
fit.damagePattern = self.pattern fit.damagePattern = self.pattern
fit.targetResists = self.targetResists fit.targetProfile = self.targetProfile
fit.character = self.character fit.character = self.character
fit.booster = self.booster fit.booster = self.booster
useCharImplants = self.serviceFittingOptions["useCharacterImplantsByDefault"] useCharImplants = self.serviceFittingOptions["useCharacterImplantsByDefault"]
@@ -358,21 +358,21 @@ class Fit:
self.fill(fit) self.fill(fit)
@staticmethod @staticmethod
def getTargetResists(fitID): def getTargetProfile(fitID):
pyfalog.debug("Get target resists for fit ID: {0}", fitID) pyfalog.debug("Get target profile for fit ID: {0}", fitID)
if fitID is None: if fitID is None:
return return
fit = eos.db.getFit(fitID) fit = eos.db.getFit(fitID)
return fit.targetResists return fit.targetProfile
def setTargetResists(self, fitID, pattern): def setTargetProfile(self, fitID, pattern):
pyfalog.debug("Set target resist for fit ID: {0}", fitID) pyfalog.debug("Set target resist for fit ID: {0}", fitID)
if fitID is None: if fitID is None:
return return
fit = eos.db.getFit(fitID) fit = eos.db.getFit(fitID)
fit.targetResists = pattern fit.targetProfile = pattern
eos.db.commit() eos.db.commit()
self.recalc(fit) self.recalc(fit)

View File

@@ -156,7 +156,7 @@ class Port:
# Set some more fit attributes and save # Set some more fit attributes and save
fit.character = sFit.character fit.character = sFit.character
fit.damagePattern = sFit.pattern fit.damagePattern = sFit.pattern
fit.targetResists = sFit.targetResists fit.targetProfile = sFit.targetProfile
if len(fit.implants) > 0: if len(fit.implants) > 0:
fit.implantLocation = ImplantLocation.FIT fit.implantLocation = ImplantLocation.FIT
else: else:
@@ -194,7 +194,7 @@ class Port:
for fit in importData: for fit in importData:
fit.character = sFit.character fit.character = sFit.character
fit.damagePattern = sFit.pattern fit.damagePattern = sFit.pattern
fit.targetResists = sFit.targetResists fit.targetProfile = sFit.targetProfile
if len(fit.implants) > 0: if len(fit.implants) > 0:
fit.implantLocation = ImplantLocation.FIT fit.implantLocation = ImplantLocation.FIT
else: else:

View File

@@ -20,34 +20,34 @@
import copy import copy
from eos import db from eos import db
from eos.saveddata.targetResists import TargetResists as es_TargetResists from eos.saveddata.targetProfile import TargetProfile as es_TargetProfile
class ImportError(Exception): class ImportError(Exception):
pass pass
class TargetResists: class TargetProfile:
instance = None instance = None
@classmethod @classmethod
def getInstance(cls): def getInstance(cls):
if cls.instance is None: if cls.instance is None:
cls.instance = TargetResists() cls.instance = TargetProfile()
return cls.instance return cls.instance
@staticmethod @staticmethod
def getTargetResistsList(): def getTargetProfileList():
return db.getTargetResistsList() return db.getTargetProfileList()
@staticmethod @staticmethod
def getTargetResists(name): def getTargetProfile(name):
return db.getTargetResists(name) return db.getTargetProfile(name)
@staticmethod @staticmethod
def newPattern(name): def newPattern(name):
p = es_TargetResists(0.0, 0.0, 0.0, 0.0) p = es_TargetProfile(0.0, 0.0, 0.0, 0.0)
p.name = name p.name = name
db.save(p) db.save(p)
return p return p
@@ -72,7 +72,7 @@ class TargetResists:
db.save(p) db.save(p)
def importPatterns(self, text): def importPatterns(self, text):
imports, num = es_TargetResists.importPatterns(text) imports, num = es_TargetProfile.importPatterns(text)
lenImports = len(imports) lenImports = len(imports)
if lenImports == 0: if lenImports == 0:
@@ -81,6 +81,6 @@ class TargetResists:
raise ImportError("%d patterns imported from clipboard; %d had errors" % (num, num - lenImports)) raise ImportError("%d patterns imported from clipboard; %d had errors" % (num, num - lenImports))
def exportPatterns(self): def exportPatterns(self):
patterns = self.getTargetResistsList() patterns = self.getTargetProfileList()
patterns.sort(key=lambda p: p.name) patterns.sort(key=lambda p: p.name)
return es_TargetResists.exportPatterns(*patterns) return es_TargetProfile.exportPatterns(*patterns)