From 5dc092ace5d65d26e839d5ec832148e728da90f7 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 28 Oct 2017 19:25:10 -0400 Subject: [PATCH 1/7] bump dev --- config.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.py b/config.py index 0d051fc05..93ca58d52 100644 --- a/config.py +++ b/config.py @@ -19,8 +19,8 @@ debug = False saveInRoot = False # Version data -version = "1.33.0" -tag = "Stable" +version = "1.34.0" +tag = "git" expansionName = "Lifeblood" expansionVersion = "1.0" evemonMinVersion = "4081" From 3b61a07c5579ece2d6bca4cccec5ed8d450485f6 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 28 Oct 2017 18:49:46 -0400 Subject: [PATCH 2/7] Fix for #1321 - make sure we have attribute on ship --- .../shipbonusforceauxiliaryc1remoteboostandcapamount.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eos/effects/shipbonusforceauxiliaryc1remoteboostandcapamount.py b/eos/effects/shipbonusforceauxiliaryc1remoteboostandcapamount.py index 144ef28dc..f4d1939eb 100644 --- a/eos/effects/shipbonusforceauxiliaryc1remoteboostandcapamount.py +++ b/eos/effects/shipbonusforceauxiliaryc1remoteboostandcapamount.py @@ -7,6 +7,9 @@ type = "passive" def handler(fit, src, context): + if src.getModifiedItemAttr("shipBonusForceAuxiliaryC1") is None: + return # See GH Issue 1321 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capacitor Emission Systems") or mod.item.requiresSkill("Capital Capacitor Emission Systems"), "powerTransferAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryC1"), From 266b3ce98502fb5a4e1282a56b6883d9dc4ad366 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 28 Oct 2017 19:17:41 -0400 Subject: [PATCH 3/7] Set Victor and Virtuso to not published, and fix bug which allowed user fits to return in search even if ship isn't published (#1310) --- gui/shipBrowser.py | 4 ++++ service/market.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/gui/shipBrowser.py b/gui/shipBrowser.py index 5eea8029b..935797718 100644 --- a/gui/shipBrowser.py +++ b/gui/shipBrowser.py @@ -378,6 +378,10 @@ class ShipBrowser(wx.Panel): for ID, name, shipID, shipName, booster, timestamp, notes in fitList: ship = sMkt.getItem(shipID) + + if not sMkt.getPublicityByItem(ship): + continue + shipTrait = ship.traits.traitText if (ship.traits is not None) else "" # empty string if no traits self.lpane.AddWidget(FitItem(self.lpane, ID, (shipName, shipTrait, name, booster, timestamp, notes), shipID)) diff --git a/service/market.py b/service/market.py index 0e8205b98..962094b4a 100644 --- a/service/market.py +++ b/service/market.py @@ -203,6 +203,8 @@ class Market(object): "Fiend" : self.les_grp, # AT13 prize "Caedes" : self.les_grp, # AT14 prize "Rabisu" : self.les_grp, # AT14 prize + "Victor" : self.les_grp, # AT prize + "Virtuoso" : self.les_grp, # AT prize } self.ITEMS_FORCEGROUP_R = self.__makeRevDict(self.ITEMS_FORCEGROUP) @@ -226,6 +228,8 @@ class Market(object): "Guristas Shuttle" : False, "Mobile Decoy Unit" : False, # Seems to be left over test mod for deployables "Tournament Micro Jump Unit" : False, # Normally seen only on tournament arenas + "Victor": False, # See GH Issue 1323 + "Virtuoso": False, # See GH Issue 1323 } # do not publish ships that we convert From d9800dcf1928c757aed7a280d3c82ef2868eabbe Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 28 Oct 2017 19:45:09 -0400 Subject: [PATCH 4/7] Fix some effects for #1320 --- ...hipbonusdreadnoughtg1kinthermdamagebonus.py | 12 ++++++------ .../shipbonustitang1kinthermdamagebonus.py | 12 ++++++------ eos/effects/shipbonustitang2alldamagebonus.py | 18 +++++++++--------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/eos/effects/shipbonusdreadnoughtg1kinthermdamagebonus.py b/eos/effects/shipbonusdreadnoughtg1kinthermdamagebonus.py index 1aa835fdc..e79593c44 100644 --- a/eos/effects/shipbonusdreadnoughtg1kinthermdamagebonus.py +++ b/eos/effects/shipbonusdreadnoughtg1kinthermdamagebonus.py @@ -6,15 +6,15 @@ type = "passive" def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "kineticDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "kineticDamage", src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "thermalDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "thermalDamage", src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "kineticDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "kineticDamage", src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "thermalDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "thermalDamage", src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "thermalDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "thermalDamage", src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "kineticDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "kineticDamage", src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") diff --git a/eos/effects/shipbonustitang1kinthermdamagebonus.py b/eos/effects/shipbonustitang1kinthermdamagebonus.py index e2cda411d..7e8745859 100644 --- a/eos/effects/shipbonustitang1kinthermdamagebonus.py +++ b/eos/effects/shipbonustitang1kinthermdamagebonus.py @@ -6,15 +6,15 @@ type = "passive" def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "thermalDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "thermalDamage", src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "kineticDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "kineticDamage", src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "thermalDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "thermalDamage", src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "kineticDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "kineticDamage", src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "thermalDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "thermalDamage", src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "kineticDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "kineticDamage", src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") diff --git a/eos/effects/shipbonustitang2alldamagebonus.py b/eos/effects/shipbonustitang2alldamagebonus.py index f8e475305..42525d080 100644 --- a/eos/effects/shipbonustitang2alldamagebonus.py +++ b/eos/effects/shipbonustitang2alldamagebonus.py @@ -6,21 +6,21 @@ type = "passive" def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "thermalDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "thermalDamage", src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "explosiveDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "explosiveDamage", src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "emDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "emDamage", src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "thermalDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "thermalDamage", src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "emDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "emDamage", src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "explosiveDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "explosiveDamage", src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "emDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "emDamage", src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "thermalDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "thermalDamage", src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "explosiveDamage", + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "explosiveDamage", src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") From efea46006aa282b083b78b9a3abdaa817506724a Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 28 Oct 2017 20:37:29 -0400 Subject: [PATCH 5/7] Better include all missiles in the MISC column (#1325) --- gui/builtinViewColumns/misc.py | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/gui/builtinViewColumns/misc.py b/gui/builtinViewColumns/misc.py index 88122903f..cb8f8480f 100644 --- a/gui/builtinViewColumns/misc.py +++ b/gui/builtinViewColumns/misc.py @@ -543,25 +543,7 @@ class Miscellanea(ViewColumn): return text, tooltip elif stuff.charge is not None: chargeGroup = stuff.charge.group.name - if chargeGroup in ( - "Rocket", - "Advanced Rocket", - "Light Missile", - "Advanced Light Missile", - "Auto-Targeting Light Missile", - "Heavy Assault Missile", - "Advanced Heavy Assault Missile", - "Heavy Missile", - "Advanced Heavy Missile", - "Auto-Targeting Heavy Missile", - "Torpedo", - "Advanced Torpedo", - "Cruise Missile", - "Advanced Cruise Missile", - "Auto-Targeting Cruise Missile", - "XL Torpedo", - "XL Cruise Missile" - ): + if chargeGroup.endswith("Rocket") or chargeGroup.endswith("Missile") or chargeGroup.endswith("Torpedo"): cloudSize = stuff.getModifiedChargeAttr("aoeCloudSize") aoeVelocity = stuff.getModifiedChargeAttr("aoeVelocity") if not cloudSize or not aoeVelocity: From 82d50cfa0ddbdfdbdb0e78cb7d4ea0d3ef125c64 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 28 Oct 2017 20:40:33 -0400 Subject: [PATCH 6/7] Fix effect that used to only be for skill, but is now for a booster (#1324) --- eos/effects/missileskillwarheadupgradesemdamagebonus.py | 5 +++-- .../missileskillwarheadupgradesexplosivedamagebonus.py | 5 +++-- eos/effects/missileskillwarheadupgradeskineticdamagebonus.py | 5 +++-- eos/effects/missileskillwarheadupgradesthermaldamagebonus.py | 5 +++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/eos/effects/missileskillwarheadupgradesemdamagebonus.py b/eos/effects/missileskillwarheadupgradesemdamagebonus.py index 854f4d906..360b4d070 100644 --- a/eos/effects/missileskillwarheadupgradesemdamagebonus.py +++ b/eos/effects/missileskillwarheadupgradesemdamagebonus.py @@ -6,6 +6,7 @@ type = "passive" -def handler(fit, skill, context): +def handler(fit, src, context): + mod = src.level if "skill" in context else 1 fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "emDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + "emDamage", src.getModifiedItemAttr("damageMultiplierBonus") * mod) diff --git a/eos/effects/missileskillwarheadupgradesexplosivedamagebonus.py b/eos/effects/missileskillwarheadupgradesexplosivedamagebonus.py index bf03efac6..213c334eb 100644 --- a/eos/effects/missileskillwarheadupgradesexplosivedamagebonus.py +++ b/eos/effects/missileskillwarheadupgradesexplosivedamagebonus.py @@ -6,6 +6,7 @@ type = "passive" -def handler(fit, skill, context): +def handler(fit, src, context): + mod = src.level if "skill" in context else 1 fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "explosiveDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + "explosiveDamage", src.getModifiedItemAttr("damageMultiplierBonus") * mod) diff --git a/eos/effects/missileskillwarheadupgradeskineticdamagebonus.py b/eos/effects/missileskillwarheadupgradeskineticdamagebonus.py index b3fd502e6..5496877de 100644 --- a/eos/effects/missileskillwarheadupgradeskineticdamagebonus.py +++ b/eos/effects/missileskillwarheadupgradeskineticdamagebonus.py @@ -6,6 +6,7 @@ type = "passive" -def handler(fit, skill, context): +def handler(fit, src, context): + mod = src.level if "skill" in context else 1 fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + "kineticDamage", src.getModifiedItemAttr("damageMultiplierBonus") * mod) diff --git a/eos/effects/missileskillwarheadupgradesthermaldamagebonus.py b/eos/effects/missileskillwarheadupgradesthermaldamagebonus.py index cc2e7f70e..c42b27a90 100644 --- a/eos/effects/missileskillwarheadupgradesthermaldamagebonus.py +++ b/eos/effects/missileskillwarheadupgradesthermaldamagebonus.py @@ -6,6 +6,7 @@ type = "passive" -def handler(fit, skill, context): +def handler(fit, src, context): + mod = src.level if "skill" in context else 1 fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + "thermalDamage", src.getModifiedItemAttr("damageMultiplierBonus") * mod) From a4950e901571b80d1c0c7761852148ac065a5ad1 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 28 Oct 2017 22:36:00 -0400 Subject: [PATCH 7/7] Remove the rifter test as it's not properly mocked out and recent balancing passes have since made it useless --- tests/test_smoketests/test_rifter.py | 235 --------------------------- 1 file changed, 235 deletions(-) delete mode 100644 tests/test_smoketests/test_rifter.py diff --git a/tests/test_smoketests/test_rifter.py b/tests/test_smoketests/test_rifter.py deleted file mode 100644 index b6bb63ca5..000000000 --- a/tests/test_smoketests/test_rifter.py +++ /dev/null @@ -1,235 +0,0 @@ -# Add root folder to python paths -# This must be done on every test in order to pass in Travis -import os -import sys -script_dir = os.path.dirname(os.path.abspath(__file__)) -sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..'))) - -# noinspection PyPackageRequirements -from _development.helpers import DBInMemory as DB, Gamedata, Saveddata -from _development.helpers_fits import RifterFit - - -# noinspection PyShadowingNames -def test_rifter_empty_char0(DB, Saveddata, RifterFit): - """ - We test an empty ship because if we use this as a base for testing our V skills, - and CCP ever fucks with the base states, all our derived stats will be wrong. - """ - char0 = Saveddata['Character'].getAll0() - - RifterFit.character = char0 - RifterFit.calculateModifiedAttributes() - - assert RifterFit.ship.getModifiedItemAttr("agility") == 3.2 - assert RifterFit.ship.getModifiedItemAttr("armorEmDamageResonance") == 0.4 - assert RifterFit.ship.getModifiedItemAttr("armorExplosiveDamageResonance") == 0.9 - assert RifterFit.ship.getModifiedItemAttr("armorHP") == 450.0 - assert RifterFit.ship.getModifiedItemAttr("armorKineticDamageResonance") == 0.75 - assert RifterFit.ship.getModifiedItemAttr("armorThermalDamageResonance") == 0.65 - assert RifterFit.ship.getModifiedItemAttr("armorUniformity") == 0.75 - assert RifterFit.ship.getModifiedItemAttr("baseWarpSpeed") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("capacitorCapacity") == 250.0 - assert RifterFit.ship.getModifiedItemAttr("capacity") == 140.0 - assert RifterFit.ship.getModifiedItemAttr("cpuLoad") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 130.0 - assert RifterFit.ship.getModifiedItemAttr("damage") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("droneBandwidth") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("droneCapacity") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("emDamageResonance") == 0.67 - assert RifterFit.ship.getModifiedItemAttr("explosiveDamageResonance") == 0.67 - assert RifterFit.ship.getModifiedItemAttr("fwLpKill") == 25.0 - assert RifterFit.ship.getModifiedItemAttr("gfxBoosterID") == 397.0 - assert RifterFit.ship.getModifiedItemAttr("heatAttenuationHi") == 0.63 - assert RifterFit.ship.getModifiedItemAttr("heatAttenuationLow") == 0.5 - assert RifterFit.ship.getModifiedItemAttr("heatAttenuationMed") == 0.5 - assert RifterFit.ship.getModifiedItemAttr("heatCapacityHi") == 100.0 - assert RifterFit.ship.getModifiedItemAttr("heatCapacityLow") == 100.0 - assert RifterFit.ship.getModifiedItemAttr("heatCapacityMed") == 100.0 - assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateHi") == 0.01 - assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateLow") == 0.01 - assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateMed") == 0.01 - assert RifterFit.ship.getModifiedItemAttr("heatGenerationMultiplier") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("hiSlots") == 4.0 - assert RifterFit.ship.getModifiedItemAttr("hp") == 350.0 - assert RifterFit.ship.getModifiedItemAttr("hullEmDamageResonance") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("hullExplosiveDamageResonance") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("hullKineticDamageResonance") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("hullThermalDamageResonance") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("kineticDamageResonance") == 0.67 - assert RifterFit.ship.getModifiedItemAttr("launcherSlotsLeft") == 2.0 - assert RifterFit.ship.getModifiedItemAttr("lowSlots") == 3.0 - assert RifterFit.ship.getModifiedItemAttr("mainColor") == 16777215.0 - assert RifterFit.ship.getModifiedItemAttr("mass") == 1067000.0 - assert RifterFit.ship.getModifiedItemAttr("maxDirectionalVelocity") == 3000.0 - assert RifterFit.ship.getModifiedItemAttr("maxLockedTargets") == 4.0 - assert RifterFit.ship.getModifiedItemAttr("maxPassengers") == 2.0 - assert RifterFit.ship.getModifiedItemAttr("maxTargetRange") == 22500.0 - assert RifterFit.ship.getModifiedItemAttr("maxVelocity") == 365.0 - assert RifterFit.ship.getModifiedItemAttr("medSlots") == 3.0 - assert RifterFit.ship.getModifiedItemAttr("metaLevel") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("minTargetVelDmgMultiplier") == 0.05 - assert RifterFit.ship.getModifiedItemAttr("powerLoad") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("powerOutput") == 41.0 - assert RifterFit.ship.getModifiedItemAttr("powerToSpeed") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("propulsionGraphicID") == 397.0 - assert RifterFit.ship.getModifiedItemAttr("radius") == 31.0 - assert RifterFit.ship.getModifiedItemAttr("rechargeRate") == 125000.0 - assert RifterFit.ship.getModifiedItemAttr("requiredSkill1") == 3329.0 - assert RifterFit.ship.getModifiedItemAttr("requiredSkill1Level") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("rigSize") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("rigSlots") == 3.0 - assert RifterFit.ship.getModifiedItemAttr("scanGravimetricStrength") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("scanLadarStrength") == 8.0 - assert RifterFit.ship.getModifiedItemAttr("scanMagnetometricStrength") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("scanRadarStrength") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("scanResolution") == 660.0 - assert RifterFit.ship.getModifiedItemAttr("scanSpeed") == 1500.0 - assert RifterFit.ship.getModifiedItemAttr("shieldCapacity") == 450.0 - assert RifterFit.ship.getModifiedItemAttr("shieldEmDamageResonance") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("shieldExplosiveDamageResonance") == 0.5 - assert RifterFit.ship.getModifiedItemAttr("shieldKineticDamageResonance") == 0.6 - assert RifterFit.ship.getModifiedItemAttr("shieldRechargeRate") == 625000.0 - assert RifterFit.ship.getModifiedItemAttr("shieldThermalDamageResonance") == 0.8 - assert RifterFit.ship.getModifiedItemAttr("shieldUniformity") == 0.75 - assert RifterFit.ship.getModifiedItemAttr("shipBonusMF") == 5.0 - assert RifterFit.ship.getModifiedItemAttr("shipBonusMF2") == 10.0 - assert RifterFit.ship.getModifiedItemAttr("shipScanResistance") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("signatureRadius") == 35.0 - assert RifterFit.ship.getModifiedItemAttr("structureUniformity") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("techLevel") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("thermalDamageResonance") == 0.67 - assert RifterFit.ship.getModifiedItemAttr("turretSlotsLeft") == 3.0 - assert RifterFit.ship.getModifiedItemAttr("typeColorScheme") == 11342.0 - assert RifterFit.ship.getModifiedItemAttr("uniformity") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("upgradeCapacity") == 400.0 - assert RifterFit.ship.getModifiedItemAttr("upgradeSlotsLeft") == 3.0 - assert RifterFit.ship.getModifiedItemAttr("volume") == 27289.0 - assert RifterFit.ship.getModifiedItemAttr("warpCapacitorNeed") == 2.24e-06 - assert RifterFit.ship.getModifiedItemAttr("warpFactor") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("warpSpeedMultiplier") == 5.0 - - -# noinspection PyShadowingNames -def test_rifter_empty_char5(DB, Saveddata, RifterFit): - """ - Test char skills applying to a ship - """ - char5 = Saveddata['Character'].getAll5() - - RifterFit.character = char5 - RifterFit.calculateModifiedAttributes() - - assert RifterFit.ship.getModifiedItemAttr("agility") == 2.16 - assert RifterFit.ship.getModifiedItemAttr("armorEmDamageResonance") == 0.4 - assert RifterFit.ship.getModifiedItemAttr("armorExplosiveDamageResonance") == 0.9 - assert RifterFit.ship.getModifiedItemAttr("armorHP") == 562.5 - assert RifterFit.ship.getModifiedItemAttr("armorKineticDamageResonance") == 0.75 - assert RifterFit.ship.getModifiedItemAttr("armorThermalDamageResonance") == 0.65 - assert RifterFit.ship.getModifiedItemAttr("armorUniformity") == 0.75 - assert RifterFit.ship.getModifiedItemAttr("baseWarpSpeed") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("capacitorCapacity") == 312.5 - assert RifterFit.ship.getModifiedItemAttr("capacity") == 140.0 - assert RifterFit.ship.getModifiedItemAttr("cpuLoad") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 162.5 - assert RifterFit.ship.getModifiedItemAttr("damage") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("droneBandwidth") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("droneCapacity") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("emDamageResonance") == 0.67 - assert RifterFit.ship.getModifiedItemAttr("explosiveDamageResonance") == 0.67 - assert RifterFit.ship.getModifiedItemAttr("fwLpKill") == 25.0 - assert RifterFit.ship.getModifiedItemAttr("gfxBoosterID") == 397.0 - assert RifterFit.ship.getModifiedItemAttr("heatAttenuationHi") == 0.63 - assert RifterFit.ship.getModifiedItemAttr("heatAttenuationLow") == 0.5 - assert RifterFit.ship.getModifiedItemAttr("heatAttenuationMed") == 0.5 - assert RifterFit.ship.getModifiedItemAttr("heatCapacityHi") == 100.0 - assert RifterFit.ship.getModifiedItemAttr("heatCapacityLow") == 100.0 - assert RifterFit.ship.getModifiedItemAttr("heatCapacityMed") == 100.0 - assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateHi") == 0.01 - assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateLow") == 0.01 - assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateMed") == 0.01 - assert RifterFit.ship.getModifiedItemAttr("heatGenerationMultiplier") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("hiSlots") == 4.0 - assert RifterFit.ship.getModifiedItemAttr("hp") == 437.5 - assert RifterFit.ship.getModifiedItemAttr("hullEmDamageResonance") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("hullExplosiveDamageResonance") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("hullKineticDamageResonance") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("hullThermalDamageResonance") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("kineticDamageResonance") == 0.67 - assert RifterFit.ship.getModifiedItemAttr("launcherSlotsLeft") == 2.0 - assert RifterFit.ship.getModifiedItemAttr("lowSlots") == 3.0 - assert RifterFit.ship.getModifiedItemAttr("mainColor") == 16777215.0 - assert RifterFit.ship.getModifiedItemAttr("mass") == 1067000.0 - assert RifterFit.ship.getModifiedItemAttr("maxDirectionalVelocity") == 3000.0 - assert RifterFit.ship.getModifiedItemAttr("maxLockedTargets") == 4.0 - assert RifterFit.ship.getModifiedItemAttr("maxPassengers") == 2.0 - assert RifterFit.ship.getModifiedItemAttr("maxTargetRange") == 28125.0 - assert RifterFit.ship.getModifiedItemAttr("maxVelocity") == 456.25 - assert RifterFit.ship.getModifiedItemAttr("medSlots") == 3.0 - assert RifterFit.ship.getModifiedItemAttr("metaLevel") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("minTargetVelDmgMultiplier") == 0.05 - assert RifterFit.ship.getModifiedItemAttr("powerLoad") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("powerOutput") == 51.25 - assert RifterFit.ship.getModifiedItemAttr("powerToSpeed") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("propulsionGraphicID") == 397.0 - assert RifterFit.ship.getModifiedItemAttr("radius") == 31.0 - assert RifterFit.ship.getModifiedItemAttr("rechargeRate") == 93750.0 - assert RifterFit.ship.getModifiedItemAttr("requiredSkill1") == 3329.0 - assert RifterFit.ship.getModifiedItemAttr("requiredSkill1Level") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("rigSize") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("rigSlots") == 3.0 - assert RifterFit.ship.getModifiedItemAttr("scanGravimetricStrength") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("scanLadarStrength") == 9.6 - assert RifterFit.ship.getModifiedItemAttr("scanMagnetometricStrength") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("scanRadarStrength") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("scanResolution") == 825.0 - assert RifterFit.ship.getModifiedItemAttr("scanSpeed") == 1500.0 - assert RifterFit.ship.getModifiedItemAttr("shieldCapacity") == 562.5 - assert RifterFit.ship.getModifiedItemAttr("shieldEmDamageResonance") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("shieldExplosiveDamageResonance") == 0.5 - assert RifterFit.ship.getModifiedItemAttr("shieldKineticDamageResonance") == 0.6 - assert RifterFit.ship.getModifiedItemAttr("shieldRechargeRate") == 468750.0 - assert RifterFit.ship.getModifiedItemAttr("shieldThermalDamageResonance") == 0.8 - assert RifterFit.ship.getModifiedItemAttr("shieldUniformity") == 1 - assert RifterFit.ship.getModifiedItemAttr("shipBonusMF") == 5.0 - assert RifterFit.ship.getModifiedItemAttr("shipBonusMF2") == 10.0 - assert RifterFit.ship.getModifiedItemAttr("shipScanResistance") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("signatureRadius") == 35.0 - assert RifterFit.ship.getModifiedItemAttr("structureUniformity") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("techLevel") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("thermalDamageResonance") == 0.67 - assert RifterFit.ship.getModifiedItemAttr("turretSlotsLeft") == 3.0 - assert RifterFit.ship.getModifiedItemAttr("typeColorScheme") == 11342.0 - assert RifterFit.ship.getModifiedItemAttr("uniformity") == 1.0 - assert RifterFit.ship.getModifiedItemAttr("upgradeCapacity") == 400.0 - assert RifterFit.ship.getModifiedItemAttr("upgradeSlotsLeft") == 3.0 - assert RifterFit.ship.getModifiedItemAttr("volume") == 27289.0 - assert RifterFit.ship.getModifiedItemAttr("warpCapacitorNeed") == 1.12e-06 - assert RifterFit.ship.getModifiedItemAttr("warpFactor") == 0.0 - assert RifterFit.ship.getModifiedItemAttr("warpSpeedMultiplier") == 5.0 - - -# noinspection PyShadowingNames -def test_rifter_coprocessor(DB, Saveddata, RifterFit): - char5 = Saveddata['Character'].getAll5() - char0 = Saveddata['Character'].getAll0() - - RifterFit.character = char0 - mod = Saveddata['Module'](DB['db'].getItem("Co-Processor II")) - mod.state = Saveddata['State'].OFFLINE - RifterFit.modules.append(mod) - - assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 130 - - RifterFit.calculateModifiedAttributes() - assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 130 - - mod.state = Saveddata['State'].ONLINE - RifterFit.clear() - RifterFit.calculateModifiedAttributes() - assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 143 - - RifterFit.character = char5 - RifterFit.clear() - RifterFit.calculateModifiedAttributes() - assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 178.75