Merge branch 'master' into development
Conflicts: config.py
@@ -19,10 +19,10 @@ debug = False
|
||||
saveInRoot = False
|
||||
|
||||
# Version data
|
||||
version = "1.33.0"
|
||||
version = "1.33.2"
|
||||
tag = "git"
|
||||
expansionName = "YC119.9"
|
||||
expansionVersion = "1.3"
|
||||
expansionName = "Lifeblood"
|
||||
expansionVersion = "1.0"
|
||||
evemonMinVersion = "4081"
|
||||
|
||||
pyfaPath = None
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
# ammoInfluenceCapNeed
|
||||
#
|
||||
# Used by:
|
||||
# Items from category: Charge (464 of 910)
|
||||
# Charges from group: Frequency Crystal (184 of 184)
|
||||
# Charges from group: Hybrid Charge (208 of 208)
|
||||
# Items from category: Charge (478 of 924)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# ammoInfluenceRange
|
||||
#
|
||||
# Used by:
|
||||
# Items from category: Charge (568 of 910)
|
||||
# Items from category: Charge (572 of 924)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# boosterArmorHpPenalty
|
||||
#
|
||||
# Used by:
|
||||
# Implants from group: Booster (12 of 49)
|
||||
# Implants from group: Booster (12 of 52)
|
||||
type = "boosterSideEffect"
|
||||
|
||||
# User-friendly name for the side effect
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# boosterMaxVelocityPenalty
|
||||
#
|
||||
# Used by:
|
||||
# Implants from group: Booster (12 of 49)
|
||||
# Implants from group: Booster (12 of 52)
|
||||
type = "boosterSideEffect"
|
||||
|
||||
# User-friendly name for the side effect
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# boosterShieldCapacityPenalty
|
||||
#
|
||||
# Used by:
|
||||
# Implants from group: Booster (12 of 49)
|
||||
# Implants from group: Booster (12 of 52)
|
||||
type = "boosterSideEffect"
|
||||
|
||||
# User-friendly name for the side effect
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
# Ships from group: Carrier (4 of 4)
|
||||
# Ships from group: Combat Battlecruiser (13 of 13)
|
||||
# Ships from group: Command Ship (8 of 8)
|
||||
# Ships from group: Force Auxiliary (5 of 5)
|
||||
# Ships from group: Force Auxiliary (6 of 6)
|
||||
# Ships from group: Supercarrier (6 of 6)
|
||||
# Ships from group: Titan (6 of 6)
|
||||
# Ships from group: Titan (7 of 7)
|
||||
# Subsystems named like: Offensive Support Processor (4 of 4)
|
||||
# Ship: Orca
|
||||
# Ship: Rorqual
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Enforcer
|
||||
# Ship: Marshal
|
||||
# Ship: Pacifier
|
||||
type = "passive"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# covertOpsAndReconOpsCloakModuleDelayBonus
|
||||
#
|
||||
# Used by:
|
||||
# Ships from group: Black Ops (4 of 4)
|
||||
# Ships from group: Black Ops (5 of 5)
|
||||
# Ships from group: Blockade Runner (4 of 4)
|
||||
# Ships from group: Covert Ops (7 of 7)
|
||||
# Ships from group: Expedition Frigate (2 of 2)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# covertOpsStealthBomberTargettingDelayBonus
|
||||
#
|
||||
# Used by:
|
||||
# Ships from group: Black Ops (4 of 4)
|
||||
# Ships from group: Black Ops (5 of 5)
|
||||
# Ships from group: Stealth Bomber (4 of 5)
|
||||
# Ship: Caedes
|
||||
# Ship: Chremoas
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# doHacking
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Data Miners (15 of 16)
|
||||
# Modules from group: Data Miners (17 of 18)
|
||||
type = "active"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# eliteBonusBlackOpsCloakVelocity2
|
||||
#
|
||||
# Used by:
|
||||
# Ships from group: Black Ops (4 of 4)
|
||||
# Ships from group: Black Ops (5 of 5)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
10
eos/effects/elitebonusblackopsscramblerrange4.py
Normal file
@@ -0,0 +1,10 @@
|
||||
# eliteBonusBlackOpsScramblerRange4
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Marshal
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", "maxRange",
|
||||
src.getModifiedItemAttr("eliteBonusBlackOps4"), stackingPenalties=True, skill="Black Ops")
|
||||
9
eos/effects/elitebonusblackopswarpvelocity1.py
Normal file
@@ -0,0 +1,9 @@
|
||||
# eliteBonusBlackOpsWarpVelocity1
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Marshal
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("eliteBonusBlackOps1"), stackingPenalties=True, skill="Black Ops")
|
||||
10
eos/effects/elitebonusblackopswebrange3.py
Normal file
@@ -0,0 +1,10 @@
|
||||
# eliteBonusBlackOpsWebRange3
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Marshal
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "maxRange",
|
||||
src.getModifiedItemAttr("eliteBonusBlackOps3"), stackingPenalties=True, skill="Black Ops")
|
||||
@@ -1,7 +1,7 @@
|
||||
# entosisDurationMultiply
|
||||
#
|
||||
# Used by:
|
||||
# Items from market group: Ships > Capital Ships (28 of 37)
|
||||
# Items from market group: Ships > Capital Ships (31 of 40)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# miningInfoMultiplier
|
||||
#
|
||||
# Used by:
|
||||
# Charges from group: Mining Crystal (30 of 30)
|
||||
# Charges named like: Mining Crystal (32 of 32)
|
||||
# Charges from group: Mining Crystal (40 of 40)
|
||||
# Charges named like: Mining Crystal (42 of 42)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# missileSkillFoFAoeCloudSizeBonus
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: Zainou 'Snapshot' FOF Explosion Radius FR (6 of 6)
|
||||
# Implants named like: Zainou 'Snapshot' Auto Targeting Explosion Radius FR (6 of 6)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
# missileSkillWarheadUpgradesEmDamageBonus
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: Agency Damage Booster (3 of 3)
|
||||
# Skill: Warhead Upgrades
|
||||
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)
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
# missileSkillWarheadUpgradesExplosiveDamageBonus
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: Agency Damage Booster (3 of 3)
|
||||
# Skill: Warhead Upgrades
|
||||
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)
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
# missileSkillWarheadUpgradesKineticDamageBonus
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: Agency Damage Booster (3 of 3)
|
||||
# Skill: Warhead Upgrades
|
||||
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)
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
# missileSkillWarheadUpgradesThermalDamageBonus
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: Agency Damage Booster (3 of 3)
|
||||
# Skill: Warhead Upgrades
|
||||
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)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# overloadSelfDamageBonus
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Energy Weapon (101 of 209)
|
||||
# Modules from group: Energy Weapon (101 of 213)
|
||||
# Modules from group: Hybrid Weapon (105 of 221)
|
||||
# Modules from group: Projectile Weapon (99 of 165)
|
||||
type = "overheat"
|
||||
|
||||
@@ -7,7 +7,8 @@ type = "passive"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
groups = ("Stasis Web", "Stasis Grappler", "Warp Scrambler", "Warp Disrupt Field Generator")
|
||||
|
||||
level = container.level if "skill" in context else 1
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups,
|
||||
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Propulsion Jamming"),
|
||||
"capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# salvaging
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Salvager (2 of 2)
|
||||
# Modules from group: Salvager (3 of 3)
|
||||
type = "active"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# shipAdvancedSpaceshipCommandAgilityBonus
|
||||
#
|
||||
# Used by:
|
||||
# Items from market group: Ships > Capital Ships (37 of 37)
|
||||
# Items from market group: Ships > Capital Ships (40 of 40)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# shipBonusDreadnoughtC2ShieldResists
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Caiman
|
||||
# Ship: Phoenix
|
||||
type = "passive"
|
||||
|
||||
|
||||
20
eos/effects/shipbonusdreadnoughtg1kinthermdamagebonus.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# shipBonusDreadnoughtG1KinThermDamageBonus
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Caiman
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "kineticDamage",
|
||||
src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "thermalDamage",
|
||||
src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "kineticDamage",
|
||||
src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "thermalDamage",
|
||||
src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "thermalDamage",
|
||||
src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "kineticDamage",
|
||||
src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought")
|
||||
@@ -1,11 +1,15 @@
|
||||
# shipBonusForceAuxiliaryC1RemoteBoostAndCapAmount
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Loggerhead
|
||||
# Ship: Minokawa
|
||||
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"),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# shipBonusForceAuxiliaryC2ShieldResists
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Loggerhead
|
||||
# Ship: Minokawa
|
||||
type = "passive"
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
# shipBonusForceAuxiliaryG1RemoteShieldBoostAmount
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Loggerhead
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), "shieldBonus",
|
||||
src.getModifiedItemAttr("shipBonusForceAuxiliaryG1"), skill="Gallente Carrier")
|
||||
@@ -1,6 +1,7 @@
|
||||
# shipBonusLargeEnergyTurretMaxRangeAB
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Marshal
|
||||
# Ship: Paladin
|
||||
type = "passive"
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Abaddon
|
||||
# Ship: Marshal
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
12
eos/effects/shipbonuslargemissileflighttimecb1.py
Normal file
@@ -0,0 +1,12 @@
|
||||
# shipBonusLargeMissileFlightTimeCB1
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Marshal
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "explosionDelay",
|
||||
src.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), "explosionDelay",
|
||||
src.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship")
|
||||
14
eos/effects/shipbonuslauncherrof2cb.py
Normal file
@@ -0,0 +1,14 @@
|
||||
# shipBonusLauncherRoF2CB
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Marshal
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Cruise", "speed",
|
||||
src.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", "speed",
|
||||
src.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Heavy", "speed",
|
||||
src.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship")
|
||||
@@ -1,6 +1,7 @@
|
||||
# shipBonusPTFalloffMB1
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Marshal
|
||||
# Ship: Vargur
|
||||
type = "passive"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# shipBonusRole1CommandBurstCPUBonus
|
||||
#
|
||||
# Used by:
|
||||
# Ships from group: Force Auxiliary (5 of 5)
|
||||
# Ships from group: Force Auxiliary (6 of 6)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# shipBonusRole1NumWarfareLinks
|
||||
#
|
||||
# Used by:
|
||||
# Ships from group: Titan (6 of 6)
|
||||
# Ships from group: Titan (7 of 7)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# shipBonusRole2ArmorPlates&ShieldExtendersBonus
|
||||
#
|
||||
# Used by:
|
||||
# Ships from group: Titan (6 of 6)
|
||||
# Ships from group: Titan (7 of 7)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# shipBonusRole2LogisticDroneRepAmountAndHitpointBonus
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Loggerhead
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Repair Drone Operation"),
|
||||
"structureDamageAmount", src.getModifiedItemAttr("shipBonusRole2"))
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Repair Drone Operation"),
|
||||
"shieldBonus", src.getModifiedItemAttr("shipBonusRole2"))
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Repair Drone Operation"),
|
||||
"armorDamageAmount", src.getModifiedItemAttr("shipBonusRole2"))
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Repair Drone Operation"),
|
||||
"armorHP", src.getModifiedItemAttr("shipBonusRole2"))
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Repair Drone Operation"),
|
||||
"shieldCapacity", src.getModifiedItemAttr("shipBonusRole2"))
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Repair Drone Operation"),
|
||||
"hp", src.getModifiedItemAttr("shipBonusRole2"))
|
||||
@@ -1,7 +1,7 @@
|
||||
# shipBonusRole2LogisticDroneBonus
|
||||
# shipBonusRole2LogisticDroneRepAmountBonus
|
||||
#
|
||||
# Used by:
|
||||
# Ships from group: Force Auxiliary (5 of 5)
|
||||
# Ships from group: Force Auxiliary (5 of 6)
|
||||
type = "passive"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# shipBonusRole3NumWarfareLinks
|
||||
#
|
||||
# Used by:
|
||||
# Ships from group: Force Auxiliary (5 of 5)
|
||||
# Ships from group: Force Auxiliary (6 of 6)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# shipBonusTitanRole3TorpdeoVelocityBonus
|
||||
# shipBonusRole3XLTorpdeoVelocityBonus
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Komodo
|
||||
# Ship: Leviathan
|
||||
type = "passive"
|
||||
|
||||
17
eos/effects/shipbonusrole4fighterdamageandhitpoints.py
Normal file
@@ -0,0 +1,17 @@
|
||||
# shipBonusRole4FighterDamageAndHitpoints
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Caiman
|
||||
# Ship: Komodo
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity",
|
||||
src.getModifiedItemAttr("shipBonusRole4"))
|
||||
fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityAttackTurretDamageMultiplier",
|
||||
src.getModifiedItemAttr("shipBonusRole4"))
|
||||
fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityAttackMissileDamageMultiplier",
|
||||
src.getModifiedItemAttr("shipBonusRole4"))
|
||||
fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesDamageMultiplier",
|
||||
src.getModifiedItemAttr("shipBonusRole4"))
|
||||
12
eos/effects/shipbonustitanc1shieldresists.py
Normal file
@@ -0,0 +1,12 @@
|
||||
# shipBonusTitanC1ShieldResists
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Komodo
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan")
|
||||
fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan")
|
||||
fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan")
|
||||
fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan")
|
||||
@@ -1,6 +1,7 @@
|
||||
# shipBonusTitanC2ROFBonus
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Komodo
|
||||
# Ship: Leviathan
|
||||
type = "passive"
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# shipBonusTitanC3WarpStrength
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Komodo
|
||||
# Ship: Leviathan
|
||||
type = "passive"
|
||||
|
||||
|
||||
20
eos/effects/shipbonustitang1kinthermdamagebonus.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# shipBonusTitanG1KinThermDamageBonus
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Komodo
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "thermalDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "kineticDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "thermalDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "kineticDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "thermalDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "kineticDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan")
|
||||
26
eos/effects/shipbonustitang2alldamagebonus.py
Normal file
@@ -0,0 +1,26 @@
|
||||
# shipBonusTitanG2AllDamageBonus
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Komodo
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "thermalDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "explosiveDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "emDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "thermalDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "emDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "explosiveDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "emDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "thermalDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan")
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "explosiveDamage",
|
||||
src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan")
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Variations of ship: Erebus (2 of 2)
|
||||
# Ship: Komodo
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# shipBonusTitanM3WarpStrength
|
||||
#
|
||||
# Used by:
|
||||
# Ships from group: Titan (3 of 6)
|
||||
# Ships from group: Titan (3 of 7)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# shipCapitalAgilityBonus
|
||||
#
|
||||
# Used by:
|
||||
# Items from market group: Ships > Capital Ships (28 of 37)
|
||||
# Items from market group: Ships > Capital Ships (31 of 40)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
# Ship: Dominix Navy Issue
|
||||
# Ship: Hyperion
|
||||
# Ship: Kronos
|
||||
# Ship: Marshal
|
||||
# Ship: Megathron Federate Issue
|
||||
# Ship: Sin
|
||||
type = "passive"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Ships named like: Megathron (3 of 3)
|
||||
# Ship: Marshal
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -2,11 +2,16 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Remote Capacitor Transmitter (41 of 41)
|
||||
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
||||
type = "projected", "active"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
def handler(fit, src, context, **kwargs):
|
||||
if "projected" in context:
|
||||
amount = src.getModifiedItemAttr("powerTransferAmount")
|
||||
duration = src.getModifiedItemAttr("duration")
|
||||
|
||||
if 'effect' in kwargs:
|
||||
amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect'])
|
||||
|
||||
fit.addDrain(src, duration, -amount, 0)
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
# Used by:
|
||||
# Variations of ship: Tempest (4 of 4)
|
||||
# Ship: Maelstrom
|
||||
# Ship: Marshal
|
||||
# Ship: Panther
|
||||
# Ship: Typhoon Fleet Issue
|
||||
type = "passive"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# surgicalStrikeDamageMultiplierBonusPostPercentDamageMultiplierLocationShipModulesRequiringGunnery
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: Agency Damage Booster (3 of 3)
|
||||
# Implants named like: Eifyr and Co. 'Gunslinger' Surgical Strike SS (6 of 6)
|
||||
# Implant: Standard Cerebral Accelerator
|
||||
type = "passive"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Drones from group: Combat Drone (74 of 74)
|
||||
# Modules from group: Energy Weapon (208 of 209)
|
||||
# Modules from group: Energy Weapon (212 of 213)
|
||||
type = 'active'
|
||||
|
||||
|
||||
|
||||
@@ -1193,8 +1193,7 @@ class Fit(object):
|
||||
if energyNeutralizerSignatureResolution:
|
||||
capNeed = capNeed * min(1, signatureRadius / energyNeutralizerSignatureResolution)
|
||||
|
||||
resistance = self.ship.getModifiedItemAttr("energyWarfareResistance") or 1 if capNeed > 0 else 1
|
||||
self.__extraDrains.append((cycleTime, capNeed * resistance, clipSize))
|
||||
self.__extraDrains.append((cycleTime, capNeed, clipSize))
|
||||
|
||||
def removeDrain(self, i):
|
||||
del self.__extraDrains[i]
|
||||
|
||||
@@ -168,6 +168,9 @@ class CommandView(d.Display):
|
||||
self.update(stuff)
|
||||
|
||||
def get(self, row):
|
||||
if row == -1:
|
||||
return None
|
||||
|
||||
numFits = len(self.fits)
|
||||
|
||||
if numFits == 0:
|
||||
@@ -193,23 +196,21 @@ class CommandView(d.Display):
|
||||
wx.CallAfter(self.spawnMenu)
|
||||
|
||||
def spawnMenu(self):
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
if fitID is None:
|
||||
return
|
||||
|
||||
sel = self.GetFirstSelected()
|
||||
menu = None
|
||||
if sel != -1:
|
||||
item = self.get(sel)
|
||||
if item is None:
|
||||
return
|
||||
context = ()
|
||||
item = self.get(sel)
|
||||
|
||||
if item is not None:
|
||||
fitSrcContext = "commandFit"
|
||||
fitItemContext = item.name
|
||||
context = ((fitSrcContext, fitItemContext),)
|
||||
context += ("commandView",),
|
||||
menu = ContextMenu.getMenu((item,), *context)
|
||||
elif sel == -1:
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
if fitID is None:
|
||||
return
|
||||
context = (("commandView",),)
|
||||
menu = ContextMenu.getMenu([], *context)
|
||||
|
||||
context += (("commandView",),)
|
||||
menu = ContextMenu.getMenu((item,) if item is not None else [], *context)
|
||||
if menu is not None:
|
||||
self.PopupMenu(menu)
|
||||
|
||||
|
||||
@@ -223,6 +223,9 @@ class ProjectedView(d.Display):
|
||||
self.update(stuff)
|
||||
|
||||
def get(self, row):
|
||||
if row == -1:
|
||||
return None
|
||||
|
||||
numMods = len(self.modules)
|
||||
numDrones = len(self.drones)
|
||||
numFighters = len(self.fighters)
|
||||
@@ -260,13 +263,17 @@ class ProjectedView(d.Display):
|
||||
wx.CallAfter(self.spawnMenu)
|
||||
|
||||
def spawnMenu(self):
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
if fitID is None:
|
||||
return
|
||||
|
||||
sel = self.GetFirstSelected()
|
||||
menu = None
|
||||
if sel != -1:
|
||||
item = self.get(sel)
|
||||
if item is None:
|
||||
return
|
||||
context = ()
|
||||
item = self.get(sel)
|
||||
|
||||
if item is not None:
|
||||
sMkt = Market.getInstance()
|
||||
|
||||
if isinstance(item, es_Drone):
|
||||
srcContext = "projectedDrone"
|
||||
itemContext = sMkt.getCategoryByItem(item.item).name
|
||||
@@ -290,14 +297,10 @@ class ProjectedView(d.Display):
|
||||
fitSrcContext = "projectedFit"
|
||||
fitItemContext = item.name
|
||||
context = ((fitSrcContext, fitItemContext),)
|
||||
context += ("projected",),
|
||||
menu = ContextMenu.getMenu((item,), *context)
|
||||
elif sel == -1:
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
if fitID is None:
|
||||
return
|
||||
context = (("projected",),)
|
||||
menu = ContextMenu.getMenu([], *context)
|
||||
|
||||
context += (("projected",),)
|
||||
menu = ContextMenu.getMenu((item,) if item is not None else [], *context)
|
||||
|
||||
if menu is not None:
|
||||
self.PopupMenu(menu)
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ class ChangeAmount(ContextMenu):
|
||||
return srcContext in ("cargoItem", "projectedFit", "fighterItem", "projectedFighter")
|
||||
|
||||
def getText(self, itmContext, selection):
|
||||
return "Change {0} Quantity".format(itmContext)
|
||||
return u"Change {0} Quantity".format(itmContext)
|
||||
|
||||
def activate(self, fullContext, selection, i):
|
||||
srcContext = fullContext[0]
|
||||
|
||||
@@ -25,7 +25,7 @@ class ItemRemove(ContextMenu):
|
||||
"commandFit")
|
||||
|
||||
def getText(self, itmContext, selection):
|
||||
return "Remove {0}".format(itmContext if itmContext is not None else "Item")
|
||||
return u"Remove {0}".format(itmContext if itmContext is not None else "Item")
|
||||
|
||||
def activate(self, fullContext, selection, i):
|
||||
|
||||
|
||||
@@ -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",
|
||||
"FoF Light Missile",
|
||||
"Heavy Assault Missile",
|
||||
"Advanced Heavy Assault Missile",
|
||||
"Heavy Missile",
|
||||
"Advanced Heavy Missile",
|
||||
"FoF Heavy Missile",
|
||||
"Torpedo",
|
||||
"Advanced Torpedo",
|
||||
"Cruise Missile",
|
||||
"Advanced Cruise Missile",
|
||||
"FoF 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:
|
||||
|
||||
@@ -108,16 +108,10 @@ class CharacterSelection(wx.Panel):
|
||||
charID = self.getActiveCharacter()
|
||||
sChar = Character.getInstance()
|
||||
|
||||
skillsMap = {}
|
||||
for item, stuff in self.reqs.iteritems():
|
||||
for things in stuff.values():
|
||||
if things[1] not in skillsMap:
|
||||
skillsMap[things[1]] = things[0]
|
||||
elif things[0] > skillsMap[things[1]]:
|
||||
skillsMap[things[1]] = things[0]
|
||||
skillsMap = self._buildSkillsTooltipCondensed(self.reqs, skillsMap={})
|
||||
|
||||
for skillID, level in skillsMap.iteritems():
|
||||
sChar.changeLevel(charID, skillID, level, ifHigher=True)
|
||||
for index in skillsMap:
|
||||
sChar.changeLevel(charID, skillsMap[index][1], skillsMap[index][0], ifHigher=True)
|
||||
|
||||
self.refreshCharacterList()
|
||||
|
||||
@@ -235,7 +229,7 @@ class CharacterSelection(wx.Panel):
|
||||
if condensed:
|
||||
dict_ = self._buildSkillsTooltipCondensed(self.reqs, skillsMap={})
|
||||
for key in sorted(dict_):
|
||||
tip += "%s: %d\n" % (key, dict_[key])
|
||||
tip += "%s: %d\n" % (key, dict_[key][0])
|
||||
else:
|
||||
tip += self._buildSkillsTooltip(self.reqs)
|
||||
self.skillReqsStaticBitmap.SetBitmap(self.redSkills)
|
||||
@@ -257,7 +251,7 @@ class CharacterSelection(wx.Panel):
|
||||
|
||||
list = ""
|
||||
for key in sorted(skillsMap):
|
||||
list += "%s %d\n" % (key, skillsMap[key])
|
||||
list += "%s %d\n" % (key, skillsMap[key][0])
|
||||
|
||||
toClipboard(list)
|
||||
|
||||
@@ -307,9 +301,9 @@ class CharacterSelection(wx.Panel):
|
||||
})
|
||||
|
||||
if name not in skillsMap:
|
||||
skillsMap[name] = level
|
||||
elif skillsMap[name] < level:
|
||||
skillsMap[name] = level
|
||||
skillsMap[name] = level, ID
|
||||
elif skillsMap[name][0] < level:
|
||||
skillsMap[name] = level, ID
|
||||
|
||||
skillsMap = self._buildSkillsTooltipCondensed(more, currItem, tabulationLevel + 1, skillsMap)
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
BIN
imgs/icons/118_15.png
Normal file
|
After Width: | Height: | Size: 790 B |
BIN
imgs/icons/128_1.png
Normal file
|
After Width: | Height: | Size: 818 B |
|
Before Width: | Height: | Size: 678 B After Width: | Height: | Size: 672 B |
|
Before Width: | Height: | Size: 648 B After Width: | Height: | Size: 647 B |
|
Before Width: | Height: | Size: 731 B After Width: | Height: | Size: 732 B |
BIN
imgs/icons/refinery_boosterreactions.png
Normal file
|
After Width: | Height: | Size: 771 B |
BIN
imgs/icons/refinery_chunkstabilization.png
Normal file
|
After Width: | Height: | Size: 782 B |
BIN
imgs/icons/refinery_hybridreactions.png
Normal file
|
After Width: | Height: | Size: 646 B |
BIN
imgs/icons/refinery_miningyield.png
Normal file
|
After Width: | Height: | Size: 757 B |
BIN
imgs/icons/refinery_t2reactions.png
Normal file
|
After Width: | Height: | Size: 779 B |
BIN
imgs/renders/27299.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
imgs/renders/27301.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
imgs/renders/27303.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
imgs/renders/27305.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
imgs/renders/35835.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
imgs/renders/35836.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
imgs/renders/44996.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
imgs/renders/45530.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
imgs/renders/45531.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
imgs/renders/45645.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
imgs/renders/45647.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
imgs/renders/45649.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
@@ -6332,7 +6332,7 @@
|
||||
description: icon for the station service slot
|
||||
iconFile: res:/UI/Texture/classes/Fitting/stationServiceSlot.png
|
||||
21513:
|
||||
description: Focused Warp Disruption Script
|
||||
description: Focused Warp Scrambling Script
|
||||
iconFile: res:/ui/texture/icons/118_64_12.png
|
||||
21514:
|
||||
description: Upwell Male Jacket
|
||||
@@ -6889,3 +6889,234 @@
|
||||
21742:
|
||||
description: Icon for the Xmas crates
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/holidayCrate.png
|
||||
21743:
|
||||
description: Focused Warp Disruption Script
|
||||
iconFile: res:/ui/texture/icons/118_64_15.png
|
||||
21744:
|
||||
description: SOE Exploration Suit Female
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45514_female_Outer_ExplorationSuit_F01_Types_ExplorationSuit_F01_SOE.png
|
||||
21745:
|
||||
description: Caldari Exploration Suit Female
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45515_female_Outer_ExplorationSuit_F01_Types_ExplorationSuit_F01_Caldari.png
|
||||
21746:
|
||||
description: Minmatar Exploration Suit Female
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45516_female_Outer_ExplorationSuit_F01_Types_ExplorationSuit_F01_Minmatar.png
|
||||
21747:
|
||||
description: Gallente Exploration Suit Female
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45517_female_Outer_ExplorationSuit_F01_Types_ExplorationSuit_F01_Gallente.png
|
||||
21748:
|
||||
description: Amarr Exploration Suit Female
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45518_female_Outer_ExplorationSuit_F01_Types_ExplorationSuit_F01_Amarr.png
|
||||
21749:
|
||||
description: Caldari Orange Exploration Suit Female
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45519_female_Outer_ExplorationSuit_F01_Types_ExplorationSuit_F01_CaldariOrange.png
|
||||
21750:
|
||||
description: ORE Exploration Suit Female
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45520_female_Outer_ExplorationSuit_F01_Types_ExplorationSuit_F01_ORE.png
|
||||
21751:
|
||||
description: Gallente Exploration Suit Male
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45521_male_outer_ExplorationSuit_M01_Types_ExplorationSuit_M01_Gallente.png
|
||||
21752:
|
||||
description: ORE Exploration Suit Male
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45522_male_outer_ExplorationSuit_M01_Types_ExplorationSuit_M01_ORE.png
|
||||
21753:
|
||||
description: SOE Exploration Suit Male
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45523_male_outer_ExplorationSuit_M01_Types_ExplorationSuit_M01_SOE.png
|
||||
21754:
|
||||
description: Caldari Exploration Suit Male
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45524_male_outer_ExplorationSuit_M01_Types_ExplorationSuit_M01_Caldari.png
|
||||
21755:
|
||||
description: Minmatar Exploration Suit Male
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45525_male_outer_ExplorationSuit_M01_Types_ExplorationSuit_M01_Minmatar.png
|
||||
21756:
|
||||
description: Amarr Exploration Suit Male
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45526_male_outer_ExplorationSuit_M01_Types_ExplorationSuit_M01_Amarr.png
|
||||
21757:
|
||||
description: Caldari Orange Exploration Suit Male
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45527_male_outer_ExplorationSuit_M01_Types_ExplorationSuit_M01_CaldariOrange.png
|
||||
21760:
|
||||
description: Project Discovery Crate Icon
|
||||
iconFile: res:/UI/Texture/classes/ItemPacks/SplashImages/ProjectDiscoveryPlaceholder.png
|
||||
21763:
|
||||
description: 45734_female_TopMiddle_TshirtF01_Types_TshirtF01_Exo.png
|
||||
iconFile: res:/UI/Asset/mannequin/topmiddle/45734_female_TopMiddle_TshirtF01_Types_TshirtF01_Exo.png
|
||||
21764:
|
||||
description: 45735_female_Outer_ExplorationSuit_F01_Types_ExplorationSuit_F01_Exo.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45735_female_Outer_ExplorationSuit_F01_Types_ExplorationSuit_F01_Exo.png
|
||||
21765:
|
||||
description: 45737_female_Outer_LabCoatF01_Types_LabCoatF01_Exo.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45737_female_Outer_LabCoatF01_Types_LabCoatF01_Exo.png
|
||||
21766:
|
||||
description: 45738_female_Outer_JacketMilF01_Types_JacketMilF01_exo.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45738_female_Outer_JacketMilF01_Types_JacketMilF01_exo.png
|
||||
21767:
|
||||
description: 45739_female_hair_HeadWear_Cap_F01_Types_HeadWear_Cap_F01_Exo.png
|
||||
iconFile: res:/UI/Asset/mannequin/hair/45739_female_hair_HeadWear_Cap_F01_Types_HeadWear_Cap_F01_Exo.png
|
||||
21768:
|
||||
description: 45740_male_hair_HeadWear_Cap_M01_Types_HeadWear_Cap_M01_Exo.png
|
||||
iconFile: res:/UI/Asset/mannequin/hair/45740_male_hair_HeadWear_Cap_M01_Types_HeadWear_Cap_M01_Exo.png
|
||||
21769:
|
||||
description: 45741_male_outer_ExplorationSuit_M01_Types_ExplorationSuit_M01_Exo.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45741_male_outer_ExplorationSuit_M01_Types_ExplorationSuit_M01_Exo.png
|
||||
21770:
|
||||
description: 45742_male_outer_JacketMilM02_Types_JacketMilM02_exo.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45742_male_outer_JacketMilM02_Types_JacketMilM02_exo.png
|
||||
21771:
|
||||
description: 45743_male_TopMiddle_TshirtM01_Types_TshirtM01_Exo.png
|
||||
iconFile: res:/UI/Asset/mannequin/topmiddle/45743_male_TopMiddle_TshirtM01_Types_TshirtM01_Exo.png
|
||||
21772:
|
||||
description: 45744_male_outer_LabCoatM01_Types_LabCoatM01_Exo.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/45744_male_outer_LabCoatM01_Types_LabCoatM01_Exo.png
|
||||
21773:
|
||||
description: 45745_male_Accessories_Glasses_Glasses_Exo_M01_Types_Glasses_Exo_M01_clear.png
|
||||
iconFile: res:/UI/Asset/mannequin/accessories_glasses/45745_male_Accessories_Glasses_Glasses_Exo_M01_Types_Glasses_Exo_M01_clear.png
|
||||
21774:
|
||||
description: Structure Moon Drilling Service Module
|
||||
iconFile: res:/UI/Texture/Icons/128_64_1.png
|
||||
21775:
|
||||
description: 45736_female_Accessories_Glasses_Glasses_Exo_F01_Types_Glasses_Exo_F01_clear.png
|
||||
iconFile: res:/UI/Asset/mannequin/accessories_glasses/45736_female_Accessories_Glasses_Glasses_Exo_F01_Types_Glasses_Exo_F01_clear.png
|
||||
21778:
|
||||
description: 46038_male_outer_ExplorationSuit_M01_Types_ExplorationSuit_M01_IGC.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46038_male_outer_ExplorationSuit_M01_Types_ExplorationSuit_M01_IGC.png
|
||||
21779:
|
||||
description: 46039_female_Outer_ExplorationSuit_F01_Types_ExplorationSuit_F01_IGC.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46039_female_Outer_ExplorationSuit_F01_Types_ExplorationSuit_F01_IGC.png
|
||||
21780:
|
||||
description: 46274_male_outer_JacketPrtm01_Types_JacketPrtm01_valkyrie
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46274_male_outer_JacketPrtm01_Types_JacketPrtm01_valkyrie.png
|
||||
21781:
|
||||
description: 46273_female_Outer_JacketPrtF01_Types_JacketPrtF01_valkyrie
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46273_female_Outer_JacketPrtF01_Types_JacketPrtF01_valkyrie.png
|
||||
21783:
|
||||
description: ReactionBackdrop
|
||||
iconFile: res:/ui/texture/icons/reaction.png
|
||||
21784:
|
||||
description: Valkyrie Data Core
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/dataCore.png
|
||||
21785:
|
||||
description: Valkyrie Relic Vault
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/relicVault.png
|
||||
21787:
|
||||
description: refinery rig drill
|
||||
iconFile: res:/UI/Texture/Icons/Modules/refinery_ChunkStabilization.png
|
||||
21788:
|
||||
description: refinery rig reactions
|
||||
iconFile: res:/UI/Texture/Icons/Modules/refinery_MiningYield.png
|
||||
21789:
|
||||
description: refinery reaction module booster
|
||||
iconFile: res:/UI/Texture/Icons/Modules/refinery_BoosterReactions.png
|
||||
21790:
|
||||
description: refinery module hybrid reactions
|
||||
iconFile: res:/UI/Texture/Icons/Modules/refinery_HybridReactions.png
|
||||
21791:
|
||||
description: refinery module adv reactions
|
||||
iconFile: res:/UI/Texture/Icons/Modules/refinery_T2Reactions.png
|
||||
21792:
|
||||
description: moon asteroid ubi
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/moonAsteroid_R4.png
|
||||
21793:
|
||||
description: moon asteroid com
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/moonAsteroid_R8.png
|
||||
21794:
|
||||
description: moon asteroid unc
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/moonAsteroid_R16.png
|
||||
21795:
|
||||
description: moon asteroid rar
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/moonAsteroid_R32.png
|
||||
21796:
|
||||
description: moon asteroid exc
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/moonAsteroid_R64.png
|
||||
21797:
|
||||
description: moon asteroid ubi jkpt
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/moonAsteroid_JackpotR4.png
|
||||
21798:
|
||||
description: moon asteroid com jkpt
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/moonAsteroid_JackpotR8.png
|
||||
21799:
|
||||
description: moon asteroid unc jkpt
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/moonAsteroid_JackpotR16.png
|
||||
21800:
|
||||
description: moon asteroid rar jkpt
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/moonAsteroid_JackpotR32.png
|
||||
21801:
|
||||
description: moon asteroid exc jkpt
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/moonAsteroid_JackpotR64.png
|
||||
21802:
|
||||
description: Icon for the Gallente Resource Wars corporation
|
||||
iconFile: res:/ui/texture/corps/federalStrategicMateriel.png
|
||||
21803:
|
||||
description: Icon for the Amarr Resource Wars corporation
|
||||
iconFile: res:/ui/texture/corps/imperialWarReserves.png
|
||||
21804:
|
||||
description: Icon for the Minmatar Resource Wars corporation
|
||||
iconFile: res:/ui/texture/corps/republicFleetOrdnance.png
|
||||
21805:
|
||||
description: Icon for the Caldari Resource Wars corporation
|
||||
iconFile: res:/ui/texture/corps/stateMilitaryStockpile.png
|
||||
21807:
|
||||
description: 46658_female_Outer_JacketAGF01_Types_JacketAGF01_Gallente_RW.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46658_female_Outer_JacketAGF01_Types_JacketAGF01_Gallente_RW.png
|
||||
21808:
|
||||
description: 46659_male_outer_JacketCMM01_Types_JacketCMM01_Caldari.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46659_male_outer_JacketCMM01_Types_JacketCMM01_Caldari.png
|
||||
21809:
|
||||
description: 46660_female_Outer_JacketAGF01_Types_JacketAGF01_Gallente.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46660_female_Outer_JacketAGF01_Types_JacketAGF01_Gallente.png
|
||||
21810:
|
||||
description: 46661_female_Outer_JacketCMF01_Types_JacketCMF01_Minmatar_RW.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46661_female_Outer_JacketCMF01_Types_JacketCMF01_Minmatar_RW.png
|
||||
21811:
|
||||
description: 46662_male_outer_JacketAGM01_Types_JacketAGM01_Amarr.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46662_male_outer_JacketAGM01_Types_JacketAGM01_Amarr.png
|
||||
21812:
|
||||
description: 46663_female_Outer_JacketAGF01_Types_JacketAGF01_Amarr.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46663_female_Outer_JacketAGF01_Types_JacketAGF01_Amarr.png
|
||||
21813:
|
||||
description: 46664_male_outer_JacketCMM01_Types_JacketCMM01_Minmatar.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46664_male_outer_JacketCMM01_Types_JacketCMM01_Minmatar.png
|
||||
21814:
|
||||
description: 46665_male_outer_JacketAGM01_Types_JacketAGM01_Gallente.pn
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46665_male_outer_JacketAGM01_Types_JacketAGM01_Gallente.png
|
||||
21815:
|
||||
description: 46666_male_outer_JacketAGM01_Types_JacketAGM01_Amarr_RW.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46666_male_outer_JacketAGM01_Types_JacketAGM01_Amarr_RW.png
|
||||
21816:
|
||||
description: 46667_male_outer_JacketAGM01_Types_JacketAGM01_Gallente_RW.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46667_male_outer_JacketAGM01_Types_JacketAGM01_Gallente_RW.png
|
||||
21817:
|
||||
description: 46668_female_Outer_JacketAGF01_Types_JacketAGF01_Amarr_RW.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46668_female_Outer_JacketAGF01_Types_JacketAGF01_Amarr_RW.png
|
||||
21818:
|
||||
description: 46669_female_Outer_JacketCMF01_Types_JacketCMF01_Caldari.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46669_female_Outer_JacketCMF01_Types_JacketCMF01_Caldari.png
|
||||
21819:
|
||||
description: 46674_male_outer_JacketCMM01_Types_JacketCMM01_Minmatar_RW.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46674_male_outer_JacketCMM01_Types_JacketCMM01_Minmatar_RW.png
|
||||
21820:
|
||||
description: 46671_female_Outer_JacketCMF01_Types_JacketCMF01_Caldari_RW.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46671_female_Outer_JacketCMF01_Types_JacketCMF01_Caldari_RW.png
|
||||
21821:
|
||||
description: 46672_male_outer_JacketCMM01_Types_JacketCMM01_Caldari_RW.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46672_male_outer_JacketCMM01_Types_JacketCMM01_Caldari_RW.png
|
||||
21822:
|
||||
description: 46673_female_Outer_JacketCMF01_Types_JacketCMF01_Minmatar.png
|
||||
iconFile: res:/UI/Asset/mannequin/outer/46673_female_Outer_JacketCMF01_Types_JacketCMF01_Minmatar.png
|
||||
21823:
|
||||
description: Resource Wars Asteroid Icon
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/rwAsteroid.png
|
||||
21829:
|
||||
description: Biochemical materials
|
||||
iconFile: res:/ui/texture/icons/Inventory/biochemMaterials.png
|
||||
21830:
|
||||
description: Amarr RW reward crate icon
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/crateAmarr.png
|
||||
21831:
|
||||
description: Caldari RW reward crate icon
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/crateCaldari.png
|
||||
21832:
|
||||
description: Gallente RW reward crate icon
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/crateGallente.png
|
||||
21833:
|
||||
description: Minmatar RW reward crate icon
|
||||
iconFile: res:/UI/Texture/Icons/Inventory/crateMinmatar.png
|
||||
|
||||
1
scripts/icons.json
Normal file
@@ -192,7 +192,7 @@ def main(db, json_path):
|
||||
for row in data["evetypes"]:
|
||||
if (row["published"]
|
||||
or row['groupID'] == 1306 # group Ship Modifiers, for items like tactical t3 ship modes
|
||||
or row['typeID'] in (3638, 3634, 3636, 3640) # Civilian weapons
|
||||
or row['typeName'].startswith('Civilian') # Civilian weapons
|
||||
or row['typeID'] in (41549, 41548, 41551,41550) # Micro Bombs (Fighters)
|
||||
):
|
||||
eveTypes.add(row["typeID"])
|
||||
@@ -213,6 +213,9 @@ def main(db, json_path):
|
||||
for row in table:
|
||||
# We don't care about some kind of rows, filter it out if so
|
||||
if not isIgnored(jsonName, row):
|
||||
if jsonName == 'evetypes' and row["typeName"].startswith('Civilian'): # Apparently people really want Civilian modules available
|
||||
row["published"] = True
|
||||
|
||||
instance = tables[jsonName]()
|
||||
# fix for issue 80
|
||||
if jsonName is "icons" and "res:/ui/texture/icons/" in str(row["iconFile"]).lower():
|
||||
|
||||
@@ -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,10 +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
|
||||
"Civilian Gatling Railgun" : True,
|
||||
"Civilian Gatling Pulse Laser" : True,
|
||||
"Civilian Gatling Autocannon" : True,
|
||||
"Civilian Light Electron Blaster" : True,
|
||||
"Victor": False, # See GH Issue 1323
|
||||
"Virtuoso": False, # See GH Issue 1323
|
||||
}
|
||||
|
||||
# do not publish ships that we convert
|
||||
|
||||
@@ -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
|
||||
4
tox.ini
@@ -8,9 +8,9 @@ deps =
|
||||
-rrequirements.txt
|
||||
-rrequirements_test.txt
|
||||
basepython = python2.7
|
||||
commands = py.test -vv --cov Pyfa tests/
|
||||
commands = py.test -vv --cov Pyfa tests2/
|
||||
|
||||
[testenv:pep8]
|
||||
deps = flake8
|
||||
# TODO: Remove E731 and convert lambdas to defs
|
||||
commands = flake8 --exclude=.svn,CVS,.bzr,.hg,.git,__pycache__,venv,tests,.tox,build,dist,__init__.py,floatspin.py --ignore=E121,E126,E127,E128,E203,E731,F401 service gui eos utils config.py pyfa.py --max-line-length=165
|
||||
commands = flake8 --exclude=.svn,CVS,.bzr,.hg,.git,__pycache__,venv,tests,.tox,build,dist,__init__.py,floatspin.py --ignore=E121,E126,E127,E128,E203,E731,F401,E722,E741 service gui eos utils config.py pyfa.py --max-line-length=165
|
||||
|
||||