From e34fcb2f9c2cb27a0a33d4565ac2e2ea86b09ed8 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 25 Jul 2019 16:20:41 +0300 Subject: [PATCH] Rename multiple entities to reflect that it's target profile rather than target resists --- _development/helpers.py | 2 +- eos/db/__init__.py | 2 +- eos/db/saveddata/__init__.py | 2 +- eos/db/saveddata/fit.py | 4 +- eos/db/saveddata/loadDefaultDatabaseValues.py | 6 +-- eos/db/saveddata/queries.py | 28 ++++++------- eos/db/saveddata/targetProfile.py | 42 +++++++++++++++++++ eos/db/saveddata/targetResists.py | 42 ------------------- eos/saveddata/drone.py | 18 ++++---- eos/saveddata/fighter.py | 34 +++++++-------- eos/saveddata/fighterAbility.py | 14 +++---- eos/saveddata/fit.py | 24 +++++------ eos/saveddata/module.py | 18 ++++---- .../{targetResists.py => targetProfile.py} | 14 +++---- gui/builtinContextMenus/__init__.py | 2 +- .../{targetResists.py => targetProfile.py} | 15 +++---- .../pyfaDatabasePreferences.py | 12 +++--- gui/builtinStatsViews/firepowerViewFull.py | 2 +- .../attributeDisplayGraph.py | 1 + gui/mainFrame.py | 8 ++-- gui/mainMenuBar.py | 8 ++-- ...esistsEditor.py => targetProfileEditor.py} | 38 ++++++++--------- service/fit.py | 14 +++---- service/port/port.py | 4 +- .../{targetResists.py => targetProfile.py} | 22 +++++----- 25 files changed, 189 insertions(+), 187 deletions(-) create mode 100644 eos/db/saveddata/targetProfile.py delete mode 100644 eos/db/saveddata/targetResists.py rename eos/saveddata/{targetResists.py => targetProfile.py} (92%) rename gui/builtinContextMenus/{targetResists.py => targetProfile.py} (89%) rename gui/{resistsEditor.py => targetProfileEditor.py} (91%) rename service/{targetResists.py => targetProfile.py} (79%) diff --git a/_development/helpers.py b/_development/helpers.py index 3f4635891..2ba4811ed 100644 --- a/_development/helpers.py +++ b/_development/helpers.py @@ -72,7 +72,7 @@ def DBInMemory_test(): # noinspection PyPep8 #from eos.db.gamedata import alphaClones, attribute, category, effect, group, icon, item, marketGroup, metaData, metaGroup, queries, traits, unit # 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 saveddata_connectionstring == "sqlite:///:memory:": diff --git a/eos/db/__init__.py b/eos/db/__init__.py index f02e9d944..ee2248f42 100644 --- a/eos/db/__init__.py +++ b/eos/db/__init__.py @@ -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 # noinspection PyPep8 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 # noinspection PyPep8 diff --git a/eos/db/saveddata/__init__.py b/eos/db/saveddata/__init__.py index c36517623..04d454283 100644 --- a/eos/db/saveddata/__init__.py +++ b/eos/db/saveddata/__init__.py @@ -11,7 +11,7 @@ __all__ = [ "implant", "damagePattern", "miscData", - "targetResists", + "targetProfile", "override", "implantSet", "loadDefaultDatabaseValues" diff --git a/eos/db/saveddata/fit.py b/eos/db/saveddata/fit.py index 57426815f..28e15b1ab 100644 --- a/eos/db/saveddata/fit.py +++ b/eos/db/saveddata/fit.py @@ -41,7 +41,7 @@ from eos.saveddata.fighter import Fighter from eos.saveddata.fit import Fit as es_Fit from eos.saveddata.implant import Implant from eos.saveddata.module import Module -from eos.saveddata.targetResists import TargetResists +from eos.saveddata.targetProfile import TargetProfile from eos.saveddata.user import User @@ -232,7 +232,7 @@ mapper(es_Fit, fits_table, Character, backref="fits"), "_Fit__damagePattern": relation(DamagePattern), - "_Fit__targetResists": relation(TargetResists), + "_Fit__targetProfile": relation(TargetProfile), "projectedOnto": projectedFitSourceRel, "victimOf": relationship( ProjectedFit, diff --git a/eos/db/saveddata/loadDefaultDatabaseValues.py b/eos/db/saveddata/loadDefaultDatabaseValues.py index f329ab2d6..fbaa35acf 100644 --- a/eos/db/saveddata/loadDefaultDatabaseValues.py +++ b/eos/db/saveddata/loadDefaultDatabaseValues.py @@ -19,7 +19,7 @@ import eos.db 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): @@ -188,9 +188,9 @@ class DefaultDatabaseValues: for targetResistProfileRow in targetResistProfileList: name, em, therm, kin, exp = targetResistProfileRow - resistsProfile = eos.db.eos.db.getTargetResists(name) + resistsProfile = eos.db.eos.db.getTargetProfile(name) if resistsProfile is None: - resistsProfile = es_TargetResists(em, therm, kin, exp) + resistsProfile = es_TargetProfile(em, therm, kin, exp) resistsProfile.name = name eos.db.save(resistsProfile) diff --git a/eos/db/saveddata/queries.py b/eos/db/saveddata/queries.py index ae66e9285..122c3fe66 100644 --- a/eos/db/saveddata/queries.py +++ b/eos/db/saveddata/queries.py @@ -30,7 +30,7 @@ from eos.saveddata.price import Price from eos.saveddata.user import User from eos.saveddata.ssocharacter import SsoCharacter 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.implantSet import ImplantSet from eos.saveddata.fit import Fit @@ -366,16 +366,16 @@ def clearDamagePatterns(): return deleted_rows -def getTargetResistsList(eager=None): +def getTargetProfileList(eager=None): eager = processEager(eager) with sd_lock: - patterns = saveddata_session.query(TargetResists).options(*eager).all() + patterns = saveddata_session.query(TargetProfile).options(*eager).all() return patterns -def clearTargetResists(): +def clearTargetProfiles(): with sd_lock: - deleted_rows = saveddata_session.query(TargetResists).delete() + deleted_rows = saveddata_session.query(TargetProfile).delete() commit() return deleted_rows @@ -408,22 +408,22 @@ def getDamagePattern(lookfor, eager=None): return pattern -@cachedQuery(TargetResists, 1, "lookfor") -def getTargetResists(lookfor, eager=None): +@cachedQuery(TargetProfile, 1, "lookfor") +def getTargetProfile(lookfor, eager=None): if isinstance(lookfor, int): if eager is None: with sd_lock: - pattern = saveddata_session.query(TargetResists).get(lookfor) + pattern = saveddata_session.query(TargetProfile).get(lookfor) else: eager = processEager(eager) with sd_lock: - pattern = saveddata_session.query(TargetResists).options(*eager).filter( - TargetResists.ID == lookfor).first() + pattern = saveddata_session.query(TargetProfile).options(*eager).filter( + TargetProfile.ID == lookfor).first() elif isinstance(lookfor, str): eager = processEager(eager) with sd_lock: - pattern = saveddata_session.query(TargetResists).options(*eager).filter( - TargetResists.name == lookfor).first() + pattern = saveddata_session.query(TargetProfile).options(*eager).filter( + TargetProfile.name == lookfor).first() else: raise TypeError("Need integer or string as argument") return pattern @@ -439,11 +439,11 @@ def getImplantSet(lookfor, eager=None): eager = processEager(eager) with sd_lock: pattern = saveddata_session.query(ImplantSet).options(*eager).filter( - TargetResists.ID == lookfor).first() + TargetProfile.ID == lookfor).first() elif isinstance(lookfor, str): eager = processEager(eager) 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: raise TypeError("Improper argument") return pattern diff --git a/eos/db/saveddata/targetProfile.py b/eos/db/saveddata/targetProfile.py new file mode 100644 index 000000000..0f1ba836c --- /dev/null +++ b/eos/db/saveddata/targetProfile.py @@ -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 . +# =============================================================================== + +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) diff --git a/eos/db/saveddata/targetResists.py b/eos/db/saveddata/targetResists.py deleted file mode 100644 index 9e38382bd..000000000 --- a/eos/db/saveddata/targetResists.py +++ /dev/null @@ -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 . -# =============================================================================== - -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) diff --git a/eos/saveddata/drone.py b/eos/saveddata/drone.py index 98d193a6a..21f876b98 100644 --- a/eos/saveddata/drone.py +++ b/eos/saveddata/drone.py @@ -138,7 +138,7 @@ class Drone(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): return True return False - def getVolleyParameters(self, targetResists=None): + def getVolleyParameters(self, targetProfile=None): if not self.dealsDamage or self.amountActive <= 0: return {0: DmgTypes(0, 0, 0, 0)} if self.__baseVolley is None: @@ -150,17 +150,17 @@ class Drone(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): kinetic=(dmgGetter("kineticDamage", 0)) * dmgMult, explosive=(dmgGetter("explosiveDamage", 0)) * dmgMult) volley = DmgTypes( - em=self.__baseVolley.em * (1 - getattr(targetResists, "emAmount", 0)), - thermal=self.__baseVolley.thermal * (1 - getattr(targetResists, "thermalAmount", 0)), - kinetic=self.__baseVolley.kinetic * (1 - getattr(targetResists, "kineticAmount", 0)), - explosive=self.__baseVolley.explosive * (1 - getattr(targetResists, "explosiveAmount", 0))) + em=self.__baseVolley.em * (1 - getattr(targetProfile, "emAmount", 0)), + thermal=self.__baseVolley.thermal * (1 - getattr(targetProfile, "thermalAmount", 0)), + kinetic=self.__baseVolley.kinetic * (1 - getattr(targetProfile, "kineticAmount", 0)), + explosive=self.__baseVolley.explosive * (1 - getattr(targetProfile, "explosiveAmount", 0))) return {0: volley} - def getVolley(self, targetResists=None): - return self.getVolleyParameters(targetResists=targetResists)[0] + def getVolley(self, targetProfile=None): + return self.getVolleyParameters(targetProfile=targetProfile)[0] - def getDps(self, targetResists=None): - volley = self.getVolley(targetResists=targetResists) + def getDps(self, targetProfile=None): + volley = self.getVolley(targetProfile=targetProfile) if not volley: return DmgTypes(0, 0, 0, 0) cycleParams = self.getCycleParameters() diff --git a/eos/saveddata/fighter.py b/eos/saveddata/fighter.py index 96d5e8a9d..c9dbffe0c 100644 --- a/eos/saveddata/fighter.py +++ b/eos/saveddata/fighter.py @@ -183,7 +183,7 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): return True return False - def getVolleyParametersPerEffect(self, targetResists=None): + def getVolleyParametersPerEffect(self, targetProfile=None): if not self.active or self.amountActive <= 0: return {} if self.__baseVolley is None: @@ -196,21 +196,21 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): adjustedVolley[effectID] = {} for volleyTime, volleyValue in effectData.items(): adjustedVolley[effectID][volleyTime] = DmgTypes( - em=volleyValue.em * (1 - getattr(targetResists, "emAmount", 0)), - thermal=volleyValue.thermal * (1 - getattr(targetResists, "thermalAmount", 0)), - kinetic=volleyValue.kinetic * (1 - getattr(targetResists, "kineticAmount", 0)), - explosive=volleyValue.explosive * (1 - getattr(targetResists, "explosiveAmount", 0))) + em=volleyValue.em * (1 - getattr(targetProfile, "emAmount", 0)), + thermal=volleyValue.thermal * (1 - getattr(targetProfile, "thermalAmount", 0)), + kinetic=volleyValue.kinetic * (1 - getattr(targetProfile, "kineticAmount", 0)), + explosive=volleyValue.explosive * (1 - getattr(targetProfile, "explosiveAmount", 0))) return adjustedVolley - def getVolleyPerEffect(self, targetResists=None): - volleyParams = self.getVolleyParametersPerEffect(targetResists=targetResists) + def getVolleyPerEffect(self, targetProfile=None): + volleyParams = self.getVolleyParametersPerEffect(targetProfile=targetProfile) volleyMap = {} for effectID, volleyData in volleyParams.items(): volleyMap[effectID] = volleyData[0] return volleyMap - def getVolley(self, targetResists=None): - volleyParams = self.getVolleyParametersPerEffect(targetResists=targetResists) + def getVolley(self, targetProfile=None): + volleyParams = self.getVolleyParametersPerEffect(targetProfile=targetProfile) em = 0 therm = 0 kin = 0 @@ -222,30 +222,30 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): exp += volleyData[0].explosive return DmgTypes(em, therm, kin, exp) - def getDps(self, targetResists=None): + def getDps(self, targetProfile=None): em = 0 thermal = 0 kinetic = 0 explosive = 0 - for dps in self.getDpsPerEffect(targetResists=targetResists).values(): + for dps in self.getDpsPerEffect(targetProfile=targetProfile).values(): em += dps.em thermal += dps.thermal kinetic += dps.kinetic explosive += dps.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: return {} - cycleParams = self.getCycleParametersPerEffectOptimizedDps(targetResists=targetResists) + cycleParams = self.getCycleParametersPerEffectOptimizedDps(targetProfile=targetProfile) dpsMap = {} for ability in self.abilities: if ability.effectID in cycleParams: 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 - def getCycleParametersPerEffectOptimizedDps(self, targetResists=None, reloadOverride=None): + def getCycleParametersPerEffectOptimizedDps(self, targetProfile=None, reloadOverride=None): cycleParamsInfinite = self.getCycleParametersPerEffectInfinite() cycleParamsReload = self.getCycleParametersPerEffect(reloadOverride=reloadOverride) dpsMapOnlyInfinite = {} @@ -254,10 +254,10 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): for ability in self.abilities: if ability.effectID in cycleParamsInfinite: 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: 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()) totalAllWithReloads = sum(i.total for i in dpsMapAllWithReloads.values()) return cycleParamsInfinite if totalOnlyInfinite >= totalAllWithReloads else cycleParamsReload diff --git a/eos/saveddata/fighterAbility.py b/eos/saveddata/fighterAbility.py index b0640bccd..ea1a1e31a 100644 --- a/eos/saveddata/fighterAbility.py +++ b/eos/saveddata/fighterAbility.py @@ -114,7 +114,7 @@ class FighterAbility: speed = self.fighter.getModifiedItemAttr("{}Duration".format(self.attrPrefix)) return speed - def getVolley(self, targetResists=None): + def getVolley(self, targetProfile=None): if not self.dealsDamage or not self.active: return DmgTypes(0, 0, 0, 0) if self.attrPrefix == "fighterAbilityLaunchBomb": @@ -129,14 +129,14 @@ class FighterAbility: exp = self.fighter.getModifiedItemAttr("{}DamageExp".format(self.attrPrefix), 0) dmgMult = self.fighter.amountActive * self.fighter.getModifiedItemAttr("{}DamageMultiplier".format(self.attrPrefix), 1) volley = DmgTypes( - em=em * dmgMult * (1 - getattr(targetResists, "emAmount", 0)), - thermal=therm * dmgMult * (1 - getattr(targetResists, "thermalAmount", 0)), - kinetic=kin * dmgMult * (1 - getattr(targetResists, "kineticAmount", 0)), - explosive=exp * dmgMult * (1 - getattr(targetResists, "explosiveAmount", 0))) + em=em * dmgMult * (1 - getattr(targetProfile, "emAmount", 0)), + thermal=therm * dmgMult * (1 - getattr(targetProfile, "thermalAmount", 0)), + kinetic=kin * dmgMult * (1 - getattr(targetProfile, "kineticAmount", 0)), + explosive=exp * dmgMult * (1 - getattr(targetProfile, "explosiveAmount", 0))) return volley - def getDps(self, targetResists=None, cycleTimeOverride=None): - volley = self.getVolley(targetResists=targetResists) + def getDps(self, targetProfile=None, cycleTimeOverride=None): + volley = self.getVolley(targetProfile=targetProfile) if not volley: return DmgTypes(0, 0, 0, 0) cycleTime = cycleTimeOverride if cycleTimeOverride is not None else self.cycleTime diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index e786543e7..c548e1b04 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -149,12 +149,12 @@ class Fit: self.__capRecharge = None @property - def targetResists(self): - return self.__targetResists + def targetProfile(self): + return self.__targetProfile - @targetResists.setter - def targetResists(self, targetResists): - self.__targetResists = targetResists + @targetProfile.setter + def targetProfile(self, targetProfile): + self.__targetProfile = targetProfile self.__weaponDpsMap = {} self.__weaponVolleyMap = {} self.__droneDps = None @@ -1497,8 +1497,8 @@ class Fit: weaponDps = DmgTypes(0, 0, 0, 0) for mod in self.modules: - weaponVolley += mod.getVolley(spoolOptions=spoolOptions, targetResists=self.targetResists) - weaponDps += mod.getDps(spoolOptions=spoolOptions, targetResists=self.targetResists) + weaponVolley += mod.getVolley(spoolOptions=spoolOptions, targetProfile=self.targetProfile) + weaponDps += mod.getDps(spoolOptions=spoolOptions, targetProfile=self.targetProfile) self.__weaponVolleyMap[spoolOptions] = weaponVolley self.__weaponDpsMap[spoolOptions] = weaponDps @@ -1508,12 +1508,12 @@ class Fit: droneDps = DmgTypes(0, 0, 0, 0) for drone in self.drones: - droneVolley += drone.getVolley(targetResists=self.targetResists) - droneDps += drone.getDps(targetResists=self.targetResists) + droneVolley += drone.getVolley(targetProfile=self.targetProfile) + droneDps += drone.getDps(targetProfile=self.targetProfile) for fighter in self.fighters: - droneVolley += fighter.getVolley(targetResists=self.targetResists) - droneDps += fighter.getDps(targetResists=self.targetResists) + droneVolley += fighter.getVolley(targetProfile=self.targetProfile) + droneDps += fighter.getDps(targetProfile=self.targetProfile) self.__droneDps = droneDps self.__droneVolley = droneVolley @@ -1557,7 +1557,7 @@ class Fit: fitCopy.mode = deepcopy(self.mode) fitCopy.name = "%s copy" % self.name fitCopy.damagePattern = self.damagePattern - fitCopy.targetResists = self.targetResists + fitCopy.targetProfile = self.targetProfile fitCopy.implantLocation = self.implantLocation fitCopy.systemSecurity = self.systemSecurity fitCopy.notes = self.notes diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index b690d203a..5831bbe1a 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -421,7 +421,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): return True 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): return {0: DmgTypes(0, 0, 0, 0)} if self.__baseVolley is None: @@ -451,24 +451,24 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): adjustedVolley = {} for volleyTime, volleyValue in self.__baseVolley.items(): adjustedVolley[volleyTime] = DmgTypes( - em=volleyValue.em * spoolMultiplier * (1 - getattr(targetResists, "emAmount", 0)), - thermal=volleyValue.thermal * spoolMultiplier * (1 - getattr(targetResists, "thermalAmount", 0)), - kinetic=volleyValue.kinetic * spoolMultiplier * (1 - getattr(targetResists, "kineticAmount", 0)), - explosive=volleyValue.explosive * spoolMultiplier * (1 - getattr(targetResists, "explosiveAmount", 0))) + em=volleyValue.em * spoolMultiplier * (1 - getattr(targetProfile, "emAmount", 0)), + thermal=volleyValue.thermal * spoolMultiplier * (1 - getattr(targetProfile, "thermalAmount", 0)), + kinetic=volleyValue.kinetic * spoolMultiplier * (1 - getattr(targetProfile, "kineticAmount", 0)), + explosive=volleyValue.explosive * spoolMultiplier * (1 - getattr(targetProfile, "explosiveAmount", 0))) return adjustedVolley - def getVolley(self, spoolOptions=None, targetResists=None, ignoreState=False): - volleyParams = self.getVolleyParameters(spoolOptions=spoolOptions, targetResists=targetResists, ignoreState=ignoreState) + def getVolley(self, spoolOptions=None, targetProfile=None, ignoreState=False): + volleyParams = self.getVolleyParameters(spoolOptions=spoolOptions, targetProfile=targetProfile, ignoreState=ignoreState) if len(volleyParams) == 0: return DmgTypes(0, 0, 0, 0) 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) cycleParams = self.getCycleParameters() if cycleParams is None: return dmgDuringCycle - volleyParams = self.getVolleyParameters(spoolOptions=spoolOptions, targetResists=targetResists, ignoreState=ignoreState) + volleyParams = self.getVolleyParameters(spoolOptions=spoolOptions, targetProfile=targetProfile, ignoreState=ignoreState) avgCycleTime = cycleParams.averageTime if len(volleyParams) == 0 or avgCycleTime == 0: return dmgDuringCycle diff --git a/eos/saveddata/targetResists.py b/eos/saveddata/targetProfile.py similarity index 92% rename from eos/saveddata/targetResists.py rename to eos/saveddata/targetProfile.py index 8b364e06e..5e13b2ffe 100644 --- a/eos/saveddata/targetResists.py +++ b/eos/saveddata/targetProfile.py @@ -24,7 +24,7 @@ import eos.db pyfalog = Logger(__name__) -class TargetResists: +class TargetProfile: # also determined import/export order - VERY IMPORTANT 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 # patterns to allow lookup lookup = {} - current = eos.db.getTargetResistsList() + current = eos.db.getTargetProfileList() for pattern in current: lookup[pattern.name] = pattern @@ -64,7 +64,7 @@ class TargetResists: pyfalog.warning("Data isn't in correct format, continue to next line.") continue - if type != "TargetResists": + if type not in ("TargetProfile", "TargetResists"): continue numPatterns += 1 @@ -86,7 +86,7 @@ class TargetResists: pattern.update(**fields) eos.db.save(pattern) else: - pattern = TargetResists(**fields) + pattern = TargetProfile(**fields) pattern.name = name.strip() eos.db.save(pattern) patterns.append(pattern) @@ -95,13 +95,13 @@ class TargetResists: return patterns, numPatterns - EXPORT_FORMAT = "TargetResists = %s,%.1f,%.1f,%.1f,%.1f\n" + EXPORT_FORMAT = "TargetProfile = %s,%.1f,%.1f,%.1f,%.1f\n" @classmethod def exportPatterns(cls, *patterns): out = "# Exported from pyfa\n#\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: out += cls.EXPORT_FORMAT % ( dp.name, @@ -114,7 +114,7 @@ class TargetResists: return out.strip() def __deepcopy__(self, memo): - p = TargetResists( + p = TargetProfile( self.emAmount, self.thermalAmount, self.kineticAmount, self.explosiveAmount, self.maxVelocity, self.signatureRadius, self.radius) p.name = "%s copy" % self.name diff --git a/gui/builtinContextMenus/__init__.py b/gui/builtinContextMenus/__init__.py index af0e5e4ca..ee56a8191 100644 --- a/gui/builtinContextMenus/__init__.py +++ b/gui/builtinContextMenus/__init__.py @@ -39,7 +39,7 @@ from gui.builtinContextMenus import ( # noqa: E402,F401 damagePatternChange, # Firepower panel factorReload, - targetResists, + targetProfile, # Graph extra options graphDmgIgnoreResists, graphDmgApplyProjected, diff --git a/gui/builtinContextMenus/targetResists.py b/gui/builtinContextMenus/targetProfile.py similarity index 89% rename from gui/builtinContextMenus/targetResists.py rename to gui/builtinContextMenus/targetProfile.py index b27c4ceef..7a578f250 100644 --- a/gui/builtinContextMenus/targetResists.py +++ b/gui/builtinContextMenus/targetProfile.py @@ -8,10 +8,10 @@ import gui.mainFrame from gui.bitmap_loader import BitmapLoader from gui.contextMenu import ContextMenuUnconditional 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): self.mainFrame = gui.mainFrame.MainFrame.getInstance() @@ -20,13 +20,14 @@ class TargetResists(ContextMenuUnconditional): if self.mainFrame.getActiveFit() is None or srcContext != "firepowerViewFull": return False - sTR = svc_TargetResists.getInstance() - self.patterns = sTR.getTargetResistsList() + sTR = svc_TargetProfile.getInstance() + self.patterns = sTR.getTargetProfileList() self.patterns.sort(key=lambda p: (p.name in ["None"], p.name)) return len(self.patterns) > 0 def getText(self, itmContext): + # We take into consideration just target resists, so call menu item accordingly return "Target Resists" def handleResistSwitch(self, event): @@ -37,7 +38,7 @@ class TargetResists(ContextMenuUnconditional): sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() - sFit.setTargetResists(fitID, pattern) + sFit.setTargetProfile(fitID, pattern) wx.PostEvent(self.mainFrame, GE.FitChanged(fitIDs=(fitID,))) def addPattern(self, rootMenu, pattern): @@ -55,7 +56,7 @@ class TargetResists(ContextMenuUnconditional): sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() f = sFit.getFit(fitID) - tr = f.targetResists + tr = f.targetProfile if tr == pattern: bitmap = BitmapLoader.getBitmap("state_active_small", "gui") @@ -108,4 +109,4 @@ class TargetResists(ContextMenuUnconditional): return sub -TargetResists.register() +TargetProfile.register() diff --git a/gui/builtinPreferenceViews/pyfaDatabasePreferences.py b/gui/builtinPreferenceViews/pyfaDatabasePreferences.py index a55009f52..8494e68a7 100644 --- a/gui/builtinPreferenceViews/pyfaDatabasePreferences.py +++ b/gui/builtinPreferenceViews/pyfaDatabasePreferences.py @@ -2,7 +2,7 @@ import wx import config 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.preferenceView import PreferenceView from gui.utils import helpers_wxPython as wxHelpers @@ -83,9 +83,9 @@ class PFGeneralPref(PreferenceView): btnSizer.Add(self.btnDeleteDamagePatterns, 0, wx.ALL, 5) 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) - btnSizer.Add(self.btnDeleteTargetResists, 0, wx.ALL, 5) - self.btnDeleteTargetResists.Bind(wx.EVT_BUTTON, self.DeleteTargetResists) + self.btnDeleteTargetProfiles = wx.Button(panel, wx.ID_ANY, "Delete All Target Resist Profiles", wx.DefaultPosition, wx.DefaultSize, 0) + btnSizer.Add(self.btnDeleteTargetProfiles, 0, wx.ALL, 5) + self.btnDeleteTargetProfiles.Bind(wx.EVT_BUTTON, self.DeleteTargetProfiles) self.btnPrices = wx.Button(panel, wx.ID_ANY, "Delete All Prices", wx.DefaultPosition, wx.DefaultSize, 0) btnSizer.Add(self.btnPrices, 0, wx.ALL, 5) @@ -110,10 +110,10 @@ class PFGeneralPref(PreferenceView): if wxHelpers.YesNoDialog(question, "Confirm"): 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?" if wxHelpers.YesNoDialog(question, "Confirm"): - clearTargetResists() + clearTargetProfiles() 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?" diff --git a/gui/builtinStatsViews/firepowerViewFull.py b/gui/builtinStatsViews/firepowerViewFull.py index 05e82eabc..2414b032d 100644 --- a/gui/builtinStatsViews/firepowerViewFull.py +++ b/gui/builtinStatsViews/firepowerViewFull.py @@ -146,7 +146,7 @@ class FirepowerViewFull(StatsView): def refreshPanel(self, fit): # 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() else: self.stEff.Hide() diff --git a/gui/builtinViewColumns/attributeDisplayGraph.py b/gui/builtinViewColumns/attributeDisplayGraph.py index 6ac59a8f0..1f204bbe9 100644 --- a/gui/builtinViewColumns/attributeDisplayGraph.py +++ b/gui/builtinViewColumns/attributeDisplayGraph.py @@ -63,6 +63,7 @@ class GraphColumn(ViewColumn, metaclass=ABCMeta): return self._getFitTooltip() return '' + class DpsColumn(GraphColumn): name = 'Dps' diff --git a/gui/mainFrame.py b/gui/mainFrame.py index 5c4251d6c..dc81bdbfc 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -57,7 +57,7 @@ from gui.marketBrowser import MarketBrowser from gui.multiSwitch import MultiSwitch from gui.patternEditor import DmgPatternEditorDlg from gui.preferenceDialog import PreferenceDialog -from gui.resistsEditor import ResistsEditorDlg +from gui.targetProfileEditor import ResistsEditorDlg from gui.setEditor import ImplantSetEditorDlg from gui.shipBrowser import ShipBrowser from gui.statsPane import StatsPane @@ -397,7 +397,7 @@ class MainFrame(wx.Frame): dlg = AttributeEditor(self) dlg.Show() - def showTargetResistsEditor(self, event): + def showTargetProfileEditor(self, event): ResistsEditorDlg(self) def showDamagePatternEditor(self, event): @@ -472,8 +472,8 @@ class MainFrame(wx.Frame): self.Bind(wx.EVT_MENU, self.showCharacterEditor, id=menuBar.characterEditorId) # Damage pattern editor self.Bind(wx.EVT_MENU, self.showDamagePatternEditor, id=menuBar.damagePatternEditorId) - # Target Resists editor - self.Bind(wx.EVT_MENU, self.showTargetResistsEditor, id=menuBar.targetResistsEditorId) + # Target Profile editor + self.Bind(wx.EVT_MENU, self.showTargetProfileEditor, id=menuBar.targetProfileEditorId) # Implant Set editor self.Bind(wx.EVT_MENU, self.showImplantSetEditor, id=menuBar.implantSetEditorId) # Import dialog diff --git a/gui/mainMenuBar.py b/gui/mainMenuBar.py index 763120e69..625c6a740 100644 --- a/gui/mainMenuBar.py +++ b/gui/mainMenuBar.py @@ -38,7 +38,7 @@ class MainMenuBar(wx.MenuBar): pyfalog.debug("Initialize MainMenuBar") self.characterEditorId = wx.NewId() self.damagePatternEditorId = wx.NewId() - self.targetResistsEditorId = wx.NewId() + self.targetProfileEditorId = wx.NewId() self.implantSetEditorId = wx.NewId() self.graphFrameId = wx.NewId() self.backupFitsId = wx.NewId() @@ -156,9 +156,9 @@ class MainMenuBar(wx.MenuBar): damagePatternEditItem = wx.MenuItem(editorsMenu, self.damagePatternEditorId, "&Damage Pattern Editor") damagePatternEditItem.SetBitmap(BitmapLoader.getBitmap("damagePattern_small", "gui")) editorsMenu.Append(damagePatternEditItem) - targetResistsEditItem = wx.MenuItem(editorsMenu, self.targetResistsEditorId, "&Target Resists Editor") - targetResistsEditItem.SetBitmap(BitmapLoader.getBitmap("explosive_small", "gui")) - editorsMenu.Append(targetResistsEditItem) + targetProfileEditItem = wx.MenuItem(editorsMenu, self.targetProfileEditorId, "&Target Profile Editor") + targetProfileEditItem.SetBitmap(BitmapLoader.getBitmap("explosive_small", "gui")) + editorsMenu.Append(targetProfileEditItem) # Help menu helpMenu = wx.Menu() diff --git a/gui/resistsEditor.py b/gui/targetProfileEditor.py similarity index 91% rename from gui/resistsEditor.py rename to gui/targetProfileEditor.py index 911349639..43c0f1e93 100644 --- a/gui/resistsEditor.py +++ b/gui/targetProfileEditor.py @@ -19,7 +19,7 @@ # noinspection PyPackageRequirements import wx -from service.targetResists import TargetResists +from service.targetProfile import TargetProfile from gui.bitmap_loader import BitmapLoader from gui.utils.clipboard import toClipboard, fromClipboard from gui.builtinViews.entityEditor import EntityEditor, BaseValidator @@ -28,12 +28,12 @@ from logbook import Logger pyfalog = Logger(__name__) -class TargetResistsTextValidor(BaseValidator): +class TargetProfileTextValidor(BaseValidator): def __init__(self): BaseValidator.__init__(self) def Clone(self): - return TargetResistsTextValidor() + return TargetProfileTextValidor() def Validate(self, win): entityEditor = win.parent @@ -42,9 +42,9 @@ class TargetResistsTextValidor(BaseValidator): try: 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]: - 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 except ValueError as e: @@ -54,32 +54,32 @@ class TargetResistsTextValidor(BaseValidator): return False -class TargetResistsEntityEditor(EntityEditor): +class TargetProfileEntityEditor(EntityEditor): def __init__(self, parent): - EntityEditor.__init__(self, parent, "Target Resist Profile") - self.SetEditorValidator(TargetResistsTextValidor) + EntityEditor.__init__(self, parent, "Target Profile") + self.SetEditorValidator(TargetProfileTextValidor) def getEntitiesFromContext(self): - sTR = TargetResists.getInstance() - choices = sorted(sTR.getTargetResistsList(), key=lambda p: p.name) + sTR = TargetProfile.getInstance() + choices = sorted(sTR.getTargetProfileList(), key=lambda p: p.name) return choices def DoNew(self, name): - sTR = TargetResists.getInstance() + sTR = TargetProfile.getInstance() return sTR.newPattern(name) def DoRename(self, entity, name): - sTR = TargetResists.getInstance() + sTR = TargetProfile.getInstance() sTR.renamePattern(entity, name) def DoCopy(self, entity, name): - sTR = TargetResists.getInstance() + sTR = TargetProfile.getInstance() copy = sTR.copyPattern(entity) sTR.renamePattern(copy, name) return copy def DoDelete(self, entity): - sTR = TargetResists.getInstance() + sTR = TargetProfile.getInstance() sTR.deletePattern(entity) @@ -90,7 +90,7 @@ class ResistsEditorDlg(wx.Dialog): wx.Dialog.__init__( self, parent, id=wx.ID_ANY, # 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)) self.block = False @@ -98,7 +98,7 @@ class ResistsEditorDlg(wx.Dialog): mainSizer = wx.BoxSizer(wx.VERTICAL) - self.entityEditor = TargetResistsEntityEditor(self) + self.entityEditor = TargetProfileEntityEditor(self) mainSizer.Add(self.entityEditor, 0, wx.ALL | wx.EXPAND, 2) self.sl = wx.StaticLine(self) @@ -227,7 +227,7 @@ class ResistsEditorDlg(wx.Dialog): if event is not None: event.Skip() - TargetResists.getInstance().saveChanges(p) + TargetProfile.getInstance().saveChanges(p) except ValueError: editObj.SetForegroundColour(wx.RED) @@ -271,7 +271,7 @@ class ResistsEditorDlg(wx.Dialog): text = fromClipboard() if text: - sTR = TargetResists.getInstance() + sTR = TargetProfile.getInstance() try: sTR.importPatterns(text) self.stNotice.SetLabel("Patterns successfully imported from clipboard") @@ -290,7 +290,7 @@ class ResistsEditorDlg(wx.Dialog): def exportPatterns(self, event): """Event fired when export to clipboard button is clicked""" - sTR = TargetResists.getInstance() + sTR = TargetProfile.getInstance() toClipboard(sTR.exportPatterns()) self.stNotice.SetLabel("Patterns exported to clipboard") diff --git a/service/fit.py b/service/fit.py index 0f6e31bf2..1c01d95d6 100644 --- a/service/fit.py +++ b/service/fit.py @@ -69,7 +69,7 @@ class Fit: def __init__(self): pyfalog.debug("Initialize Fit class") self.pattern = DamagePattern.getInstance().getDamagePattern("Uniform") - self.targetResists = None + self.targetProfile = None self.character = saveddata_Character.getAll5() self.booster = False self._loadedFits = WeakSet() @@ -170,7 +170,7 @@ class Fit: fit = FitType(ship) fit.name = name if name is not None else "New %s" % fit.ship.item.name fit.damagePattern = self.pattern - fit.targetResists = self.targetResists + fit.targetProfile = self.targetProfile fit.character = self.character fit.booster = self.booster useCharImplants = self.serviceFittingOptions["useCharacterImplantsByDefault"] @@ -358,21 +358,21 @@ class Fit: self.fill(fit) @staticmethod - def getTargetResists(fitID): - pyfalog.debug("Get target resists for fit ID: {0}", fitID) + def getTargetProfile(fitID): + pyfalog.debug("Get target profile for fit ID: {0}", fitID) if fitID is None: return 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) if fitID is None: return fit = eos.db.getFit(fitID) - fit.targetResists = pattern + fit.targetProfile = pattern eos.db.commit() self.recalc(fit) diff --git a/service/port/port.py b/service/port/port.py index d1468b9fb..38c687c3e 100644 --- a/service/port/port.py +++ b/service/port/port.py @@ -156,7 +156,7 @@ class Port: # Set some more fit attributes and save fit.character = sFit.character fit.damagePattern = sFit.pattern - fit.targetResists = sFit.targetResists + fit.targetProfile = sFit.targetProfile if len(fit.implants) > 0: fit.implantLocation = ImplantLocation.FIT else: @@ -194,7 +194,7 @@ class Port: for fit in importData: fit.character = sFit.character fit.damagePattern = sFit.pattern - fit.targetResists = sFit.targetResists + fit.targetProfile = sFit.targetProfile if len(fit.implants) > 0: fit.implantLocation = ImplantLocation.FIT else: diff --git a/service/targetResists.py b/service/targetProfile.py similarity index 79% rename from service/targetResists.py rename to service/targetProfile.py index fe907f14b..445820d0a 100644 --- a/service/targetResists.py +++ b/service/targetProfile.py @@ -20,34 +20,34 @@ import copy 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): pass -class TargetResists: +class TargetProfile: instance = None @classmethod def getInstance(cls): if cls.instance is None: - cls.instance = TargetResists() + cls.instance = TargetProfile() return cls.instance @staticmethod - def getTargetResistsList(): - return db.getTargetResistsList() + def getTargetProfileList(): + return db.getTargetProfileList() @staticmethod - def getTargetResists(name): - return db.getTargetResists(name) + def getTargetProfile(name): + return db.getTargetProfile(name) @staticmethod 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 db.save(p) return p @@ -72,7 +72,7 @@ class TargetResists: db.save(p) def importPatterns(self, text): - imports, num = es_TargetResists.importPatterns(text) + imports, num = es_TargetProfile.importPatterns(text) lenImports = len(imports) if lenImports == 0: @@ -81,6 +81,6 @@ class TargetResists: raise ImportError("%d patterns imported from clipboard; %d had errors" % (num, num - lenImports)) def exportPatterns(self): - patterns = self.getTargetResistsList() + patterns = self.getTargetProfileList() patterns.sort(key=lambda p: p.name) - return es_TargetResists.exportPatterns(*patterns) + return es_TargetProfile.exportPatterns(*patterns)