Merge branch 'singularity'
This commit is contained in:
@@ -24,10 +24,10 @@ saveInRoot = False
|
||||
|
||||
# Version data
|
||||
|
||||
version = "2.0.2"
|
||||
version = "2.1.0"
|
||||
tag = "Stable"
|
||||
expansionName = "YC120.3"
|
||||
expansionVersion = "1.8"
|
||||
expansionName = "Into the Abyss"
|
||||
expansionVersion = "1.1"
|
||||
evemonMinVersion = "4081"
|
||||
|
||||
minItemSearchLength = 3
|
||||
|
||||
@@ -11,6 +11,7 @@ debug = False
|
||||
gamedataCache = True
|
||||
saveddataCache = True
|
||||
gamedata_version = ""
|
||||
gamedata_date = ""
|
||||
gamedata_connectionstring = 'sqlite:///' + realpath(join(dirname(abspath(__file__)), "..", "eve.db"))
|
||||
pyfalog.debug("Gamedata connection string: {0}", gamedata_connectionstring)
|
||||
|
||||
|
||||
@@ -51,10 +51,14 @@ try:
|
||||
config.gamedata_version = gamedata_session.execute(
|
||||
"SELECT `field_value` FROM `metadata` WHERE `field_name` LIKE 'client_build'"
|
||||
).fetchone()[0]
|
||||
config.gamedata_date = gamedata_session.execute(
|
||||
"SELECT `field_value` FROM `metadata` WHERE `field_name` LIKE 'dump_time'"
|
||||
).fetchone()[0]
|
||||
except Exception as e:
|
||||
pyfalog.warning("Missing gamedata version.")
|
||||
pyfalog.critical(e)
|
||||
config.gamedata_version = None
|
||||
config.gamedata_date = None
|
||||
|
||||
saveddata_connectionstring = config.saveddata_connectionstring
|
||||
if saveddata_connectionstring is not None:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Missile Launcher Bomb (2 of 2)
|
||||
# Modules from group: Shield Extender (33 of 33)
|
||||
# Modules from group: Shield Extender (36 of 36)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# ammoInfluenceCapNeed
|
||||
#
|
||||
# Used by:
|
||||
# Items from category: Charge (478 of 928)
|
||||
# Items from category: Charge (493 of 947)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# ammoInfluenceRange
|
||||
#
|
||||
# Used by:
|
||||
# Items from category: Charge (572 of 928)
|
||||
# Items from category: Charge (587 of 947)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
# Charges from group: Festival Charges (23 of 23)
|
||||
# Charges from group: Interdiction Probe (2 of 2)
|
||||
# Charges from group: Structure Festival Charges (3 of 3)
|
||||
# Special Edition Assetss from group: Festival Charges Expired (2 of 2)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
# ammoTrackingMultiplier
|
||||
#
|
||||
# Used by:
|
||||
# Charges from group: Advanced Artillery Ammo (8 of 8)
|
||||
# Charges from group: Advanced Autocannon Ammo (8 of 8)
|
||||
# Charges from group: Advanced Beam Laser Crystal (8 of 8)
|
||||
# Charges from group: Advanced Blaster Charge (8 of 8)
|
||||
# Charges from group: Advanced Pulse Laser Crystal (8 of 8)
|
||||
# Charges from group: Advanced Railgun Charge (8 of 8)
|
||||
# Items from category: Charge (182 of 947)
|
||||
# Charges from group: Projectile Ammo (128 of 128)
|
||||
type = "passive"
|
||||
|
||||
|
||||
16
eos/effects/aoebeaconbioluminescencecloud.py
Normal file
16
eos/effects/aoebeaconbioluminescencecloud.py
Normal file
@@ -0,0 +1,16 @@
|
||||
# aoe_beacon_bioluminescence_cloud
|
||||
#
|
||||
# Used by:
|
||||
# Celestials named like: Bioluminescence Cloud (3 of 3)
|
||||
runTime = "early"
|
||||
type = ("projected", "passive", "gang")
|
||||
|
||||
|
||||
def handler(fit, beacon, context, **kwargs):
|
||||
for x in range(1, 3):
|
||||
if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)):
|
||||
value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x))
|
||||
id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x))
|
||||
|
||||
if id:
|
||||
fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
|
||||
16
eos/effects/aoebeaconcausticcloud.py
Normal file
16
eos/effects/aoebeaconcausticcloud.py
Normal file
@@ -0,0 +1,16 @@
|
||||
# aoe_beacon_caustic_cloud
|
||||
#
|
||||
# Used by:
|
||||
# Celestials named like: Caustic Cloud (3 of 3)
|
||||
runTime = "early"
|
||||
type = ("projected", "passive", "gang")
|
||||
|
||||
|
||||
def handler(fit, beacon, context, **kwargs):
|
||||
for x in range(1, 3):
|
||||
if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)):
|
||||
value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x))
|
||||
id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x))
|
||||
|
||||
if id:
|
||||
fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
|
||||
16
eos/effects/aoebeaconfilamentcloud.py
Normal file
16
eos/effects/aoebeaconfilamentcloud.py
Normal file
@@ -0,0 +1,16 @@
|
||||
# aoe_beacon_filament_cloud
|
||||
#
|
||||
# Used by:
|
||||
# Celestials named like: Filament Cloud (3 of 3)
|
||||
runTime = "early"
|
||||
type = ("projected", "passive", "gang")
|
||||
|
||||
|
||||
def handler(fit, beacon, context, **kwargs):
|
||||
for x in range(1, 3):
|
||||
if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)):
|
||||
value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x))
|
||||
id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x))
|
||||
|
||||
if id:
|
||||
fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
|
||||
@@ -1,6 +1,7 @@
|
||||
# armorAllRepairSystemsAmountBonusPassive
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: Agency 'Hardshell' TB Dose (3 of 4)
|
||||
# Implants named like: Exile Booster (4 of 4)
|
||||
# Implant: Antipharmakon Kosybo
|
||||
type = "passive"
|
||||
@@ -9,4 +10,4 @@ type = "passive"
|
||||
def handler(fit, booster, context):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill("Repair Systems") or mod.item.requiresSkill("Capital Repair Systems"),
|
||||
"armorDamageAmount", booster.getModifiedItemAttr("armorDamageAmountBonus"))
|
||||
"armorDamageAmount", booster.getModifiedItemAttr("armorDamageAmountBonus") or 0)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# armorHPBonusAdd
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Armor Reinforcer (48 of 48)
|
||||
# Modules from group: Armor Reinforcer (51 of 51)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# armorReinforcerMassAdd
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Armor Reinforcer (48 of 48)
|
||||
# Modules from group: Armor Reinforcer (51 of 51)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# armorRepair
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Armor Repair Unit (105 of 105)
|
||||
# Modules from group: Armor Repair Unit (108 of 108)
|
||||
runTime = "late"
|
||||
type = "active"
|
||||
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "gang", "active"
|
||||
gangBonus = "armorHpBonus2"
|
||||
gangBoost = "armorHP"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
if "gang" not in context:
|
||||
return
|
||||
fit.ship.boostItemAttr("armorHP", module.getModifiedItemAttr("armorHpBonus2"))
|
||||
@@ -1,7 +1,7 @@
|
||||
# boosterArmorHpPenalty
|
||||
#
|
||||
# Used by:
|
||||
# Implants from group: Booster (12 of 62)
|
||||
# Implants named like: Booster (12 of 33)
|
||||
type = "boosterSideEffect"
|
||||
|
||||
# User-friendly name for the side effect
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# boosterMaxVelocityPenalty
|
||||
#
|
||||
# Used by:
|
||||
# Implants from group: Booster (12 of 62)
|
||||
# Implants named like: Booster (12 of 33)
|
||||
type = "boosterSideEffect"
|
||||
|
||||
# User-friendly name for the side effect
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# boosterShieldCapacityPenalty
|
||||
#
|
||||
# Used by:
|
||||
# Implants from group: Booster (12 of 62)
|
||||
# Implants named like: Booster (12 of 33)
|
||||
type = "boosterSideEffect"
|
||||
|
||||
# User-friendly name for the side effect
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# Modules from group: Capacitor Flux Coil (6 of 6)
|
||||
# Modules from group: Capacitor Power Relay (20 of 20)
|
||||
# Modules from group: Power Diagnostic System (23 of 23)
|
||||
# Modules from group: Propulsion Module (65 of 127)
|
||||
# Modules from group: Propulsion Module (68 of 133)
|
||||
# Modules from group: Reactor Control Unit (22 of 22)
|
||||
type = "passive"
|
||||
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
# Not used by any item
|
||||
# citadelRigBonus
|
||||
#
|
||||
# Used by:
|
||||
# Structures from group: Citadel (9 of 9)
|
||||
type = "passive"
|
||||
runTime = "early"
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: CPU Enhancer (19 of 19)
|
||||
# Variations of structure module: Standup Co-Processor Array I (2 of 2)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "active", "projected"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
if "projected" not in context:
|
||||
return
|
||||
fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"),
|
||||
stackingPenalties=True)
|
||||
11
eos/effects/disintegratorweapondamagemultiply.py
Normal file
11
eos/effects/disintegratorweapondamagemultiply.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# disintegratorWeaponDamageMultiply
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Entropic Radiation Sink (3 of 3)
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Precursor Weapon",
|
||||
"damageMultiplier", module.getModifiedItemAttr("damageMultiplier"),
|
||||
stackingPenalties=True)
|
||||
11
eos/effects/disintegratorweaponspeedmultiply.py
Normal file
11
eos/effects/disintegratorweaponspeedmultiply.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# disintegratorWeaponSpeedMultiply
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Entropic Radiation Sink (3 of 3)
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Precursor Weapon",
|
||||
"speed", module.getModifiedItemAttr("speedMultiplier"),
|
||||
stackingPenalties=True)
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Module: Warp Disruption Burst Projector
|
||||
# Structure Module: Standup Warp Disruption Burst Projector
|
||||
type = "projected", "active"
|
||||
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Module: Sensor Dampening Burst Projector
|
||||
# Structure Module: Standup Sensor Dampening Burst Projector
|
||||
type = "projected", "active"
|
||||
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Module: ECM Jammer Burst Projector
|
||||
# Structure Module: Standup ECM Jammer Burst Projector
|
||||
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
||||
|
||||
type = "projected", "active"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Module: Energy Neutralization Burst Projector
|
||||
# Structure Module: Standup Energy Neutralization Burst Projector
|
||||
from eos.saveddata.module import State
|
||||
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Module: Target Illumination Burst Projector
|
||||
# Structure Module: Standup Target Illumination Burst Projector
|
||||
type = "projected", "active"
|
||||
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Module: Weapon Disruption Burst Projector
|
||||
# Structure Module: Standup Weapon Disruption Burst Projector
|
||||
|
||||
type = "active", "projected"
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Module: Stasis Webification Burst Projector
|
||||
# Structure Module: Standup Stasis Webification Burst Projector
|
||||
type = "active", "projected"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, skill, context):
|
||||
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
|
||||
"damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level)
|
||||
@@ -1,9 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command Specialist"),
|
||||
"commandBonusHidden",
|
||||
src.getModifiedItemAttr("eliteBonusCommandDestroyer1"),
|
||||
skill="Command Destroyers")
|
||||
@@ -1,7 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), "signatureRadiusBonus",
|
||||
src.getModifiedItemAttr("eliteBonusCommandDestroyer3"), skill="Command Destroyers")
|
||||
@@ -1,7 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command Specialist"),
|
||||
"commandBonusHidden", module.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships")
|
||||
@@ -1,6 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, ship, context):
|
||||
fit.ship.increaseItemAttr("droneCapacity", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates")
|
||||
@@ -1,7 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "trackingSpeed",
|
||||
src.getModifiedItemAttr("eliteBonusGunship2"), stackingPenalties=True, skill="Assault Frigates")
|
||||
@@ -1,12 +0,0 @@
|
||||
# Not used by any item
|
||||
from eos.saveddata.module import State
|
||||
|
||||
type = "active", "projected"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or hasattr(src, "amountActive")):
|
||||
multiplier = src.amountActive if hasattr(src, "amountActive") else 1
|
||||
amount = src.getModifiedItemAttr("energyNeutralizerAmount")
|
||||
time = src.getModifiedItemAttr("duration")
|
||||
fit.addDrain(src, time, amount * multiplier, 0)
|
||||
@@ -1,7 +1,7 @@
|
||||
# energyNeutralizerFalloff
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Energy Neutralizer (51 of 51)
|
||||
# Modules from group: Energy Neutralizer (54 of 54)
|
||||
from eos.saveddata.module import State
|
||||
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "projected", "active"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
if "projected" in context:
|
||||
amount = src.getModifiedItemAttr("powerTransferAmount")
|
||||
duration = src.getModifiedItemAttr("duration")
|
||||
fit.addDrain(src, duration, -amount, 0)
|
||||
@@ -1,8 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "projected", "active"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
if "projected" in context:
|
||||
fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"),
|
||||
stackingPenalties=True)
|
||||
@@ -1,4 +1,8 @@
|
||||
# Not used by any item
|
||||
# fighterAbilityAttackM
|
||||
#
|
||||
# Used by:
|
||||
# Items from category: Fighter (50 of 82)
|
||||
# Fighters from group: Heavy Fighter (34 of 34)
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
# Not used by any item
|
||||
# fighterAbilityECM
|
||||
#
|
||||
# Used by:
|
||||
# Fighters named like: Scarab (4 of 4)
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
# Not used by any item
|
||||
# fighterAbilityEnergyNeutralizer
|
||||
#
|
||||
# Used by:
|
||||
# Fighters named like: Cenobite (4 of 4)
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
# Not used by any item
|
||||
# fighterAbilityEvasiveManeuvers
|
||||
#
|
||||
# Used by:
|
||||
# Fighters from group: Light Fighter (16 of 32)
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
# Not used by any item
|
||||
# fighterAbilityLaunchBomb
|
||||
#
|
||||
# Used by:
|
||||
# Fighters from group: Heavy Fighter (16 of 34)
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
# Not used by any item
|
||||
# fighterAbilityMicroWarpDrive
|
||||
#
|
||||
# Used by:
|
||||
# Items from category: Fighter (48 of 82)
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
# Not used by any item
|
||||
# fighterAbilityMissiles
|
||||
#
|
||||
# Used by:
|
||||
# Items from category: Fighter (48 of 82)
|
||||
# Fighters from group: Light Fighter (32 of 32)
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
# Not used by any item
|
||||
# fighterAbilityStasisWebifier
|
||||
#
|
||||
# Used by:
|
||||
# Fighters named like: Dromi (4 of 4)
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
# Not used by any item
|
||||
# fighterAbilityWarpDisruption
|
||||
#
|
||||
# Used by:
|
||||
# Fighters named like: Siren (4 of 4)
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
# Note: we increase maxGroupActive by two.
|
||||
# If we only increased it by one, we'd get the number to stay equal
|
||||
# As Comman Processors use one themselves too
|
||||
fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Gang Coordinator" and
|
||||
"maxGroupActive" in mod.itemModifiedAttributes,
|
||||
"maxGroupActive", 1)
|
||||
@@ -1,7 +1,7 @@
|
||||
# fueledArmorRepair
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Ancillary Armor Repairer (4 of 4)
|
||||
# Modules from group: Ancillary Armor Repairer (7 of 7)
|
||||
runTime = "late"
|
||||
type = "active"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# fueledShieldBoosting
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Ancillary Shield Booster (5 of 5)
|
||||
# Modules from group: Ancillary Shield Booster (8 of 8)
|
||||
runTime = "late"
|
||||
type = "active"
|
||||
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Ice Harvesting"),
|
||||
"capacitorNeed", ship.getModifiedItemAttr("iceHarvestCycleBonus"))
|
||||
@@ -1,8 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "gang"
|
||||
gangBoost = "maxTargetRange"
|
||||
gangBonus = "maxTargetRangeBonus"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
fit.ship.boostItemAttr(gangBoost, container.getModifiedItemAttr(gangBonus))
|
||||
@@ -1,8 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, implant, context):
|
||||
fit.character.getSkill("Information Command").suppress()
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command Specialist"),
|
||||
"commandBonusHidden", implant.getModifiedItemAttr("mindlinkBonus"))
|
||||
11
eos/effects/largedisintegratorskilldmgbonus.py
Normal file
11
eos/effects/largedisintegratorskilldmgbonus.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# largeDisintegratorSkillDmgBonus
|
||||
#
|
||||
# Used by:
|
||||
# Skill: Large Disintegrator Specialization
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
level = container.level if "skill" in context else 1
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Disintegrator Specialization"),
|
||||
"damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level)
|
||||
11
eos/effects/largeprecursorturretdmgbonusrequiredskill.py
Normal file
11
eos/effects/largeprecursorturretdmgbonusrequiredskill.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# largePrecursorTurretDmgBonusRequiredSkill
|
||||
#
|
||||
# Used by:
|
||||
# Skill: Large Precursor Weapon
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
level = container.level if "skill" in context else 1
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Precursor Weapon"),
|
||||
"damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level)
|
||||
@@ -1,4 +1,7 @@
|
||||
# Not used by any item
|
||||
# lightningWeapon
|
||||
#
|
||||
# Used by:
|
||||
# Structure Module: Standup Arcing Vorton Projector I
|
||||
type = 'active'
|
||||
|
||||
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "active"
|
||||
runTime = "early"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
# Resistances
|
||||
for layer, attrPrefix in (('shield', 'shield'), ('armor', 'armor'), ('hull', '')):
|
||||
for damageType in ('Kinetic', 'Thermal', 'Explosive', 'Em'):
|
||||
bonus = "%s%sDamageResonance" % (attrPrefix, damageType)
|
||||
bonus = "%s%s" % (bonus[0].lower(), bonus[1:])
|
||||
booster = "%s%sDamageResonance" % (layer, damageType)
|
||||
penalize = False if layer == 'hull' else True
|
||||
fit.ship.multiplyItemAttr(bonus, module.getModifiedItemAttr(booster),
|
||||
stackingPenalties=penalize, penaltyGroup="preMul")
|
||||
|
||||
# Turrets
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret") or
|
||||
mod.item.requiresSkill("Large Hybrid Turret") or
|
||||
mod.item.requiresSkill("Large Projectile Turret"),
|
||||
"maxRange", module.getModifiedItemAttr("maxRangeBonus"),
|
||||
stackingPenalties=True)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret") or
|
||||
mod.item.requiresSkill("Large Hybrid Turret") or
|
||||
mod.item.requiresSkill("Large Projectile Turret"),
|
||||
"falloff", module.getModifiedItemAttr("falloffBonus"),
|
||||
stackingPenalties=True)
|
||||
|
||||
# Missiles
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes") or
|
||||
mod.charge.requiresSkill("Cruise Missiles") or
|
||||
mod.charge.requiresSkill("Heavy Missiles"),
|
||||
"maxVelocity", module.getModifiedItemAttr("missileVelocityBonus"))
|
||||
|
||||
# Tanking
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill("Capital Repair Systems") or mod.item.requiresSkill("Repair Systems"),
|
||||
"armorDamageAmount", module.getModifiedItemAttr("armorDamageAmountBonus"),
|
||||
stackingPenalties=True)
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill("Capital Shield Operation") or mod.item.requiresSkill("Shield Operation"),
|
||||
"shieldBonus", module.getModifiedItemAttr("shieldBoostMultiplier"),
|
||||
stackingPenalties=True)
|
||||
|
||||
# Speed penalty
|
||||
fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"))
|
||||
|
||||
# Max locked targets
|
||||
fit.ship.forceItemAttr("maxLockedTargets", module.getModifiedItemAttr("maxLockedTargets"))
|
||||
|
||||
# Block Hostile ewar
|
||||
fit.ship.forceItemAttr("disallowOffensiveModifiers", module.getModifiedItemAttr("disallowOffensiveModifiers"))
|
||||
@@ -1,6 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.increaseItemAttr("mass", module.getModifiedItemAttr("mass") or 0)
|
||||
@@ -1,6 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.increaseItemAttr("maxVelocity", module.getModifiedItemAttr("maxVelocity"))
|
||||
11
eos/effects/mediumdisintegratorskilldmgbonus.py
Normal file
11
eos/effects/mediumdisintegratorskilldmgbonus.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# mediumDisintegratorSkillDmgBonus
|
||||
#
|
||||
# Used by:
|
||||
# Skill: Medium Disintegrator Specialization
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
level = container.level if "skill" in context else 1
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Disintegrator Specialization"),
|
||||
"damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level)
|
||||
11
eos/effects/mediumprecursorturretdmgbonusrequiredskill.py
Normal file
11
eos/effects/mediumprecursorturretdmgbonusrequiredskill.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# mediumPrecursorTurretDmgBonusRequiredSkill
|
||||
#
|
||||
# Used by:
|
||||
# Skill: Medium Precursor Weapon
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
level = container.level if "skill" in context else 1
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"),
|
||||
"damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level)
|
||||
@@ -1,7 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Director"),
|
||||
"commandBonus", ship.getModifiedItemAttr("commandBonusEffective"))
|
||||
@@ -1,7 +1,7 @@
|
||||
# missileSkillWarheadUpgradesEmDamageBonus
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 3)
|
||||
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 4)
|
||||
# Skill: Warhead Upgrades
|
||||
type = "passive"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# missileSkillWarheadUpgradesExplosiveDamageBonus
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 3)
|
||||
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 4)
|
||||
# Skill: Warhead Upgrades
|
||||
type = "passive"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# missileSkillWarheadUpgradesKineticDamageBonus
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 3)
|
||||
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 4)
|
||||
# Skill: Warhead Upgrades
|
||||
type = "passive"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# missileSkillWarheadUpgradesThermalDamageBonus
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 3)
|
||||
# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 4)
|
||||
# Skill: Warhead Upgrades
|
||||
type = "passive"
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
for type in ("Em", "Explosive", "Kinetic", "Thermal"):
|
||||
fit.ship.preAssignItemAttr("armor{0}DamageResonance".format(type),
|
||||
module.getModifiedItemAttr("passiveArmor{0}DamageResonance".format(type)))
|
||||
@@ -1,8 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
for type in ("Em", "Explosive", "Kinetic", "Thermal"):
|
||||
fit.ship.preAssignItemAttr("shield{0}DamageResonance".format(type),
|
||||
module.getModifiedItemAttr("passiveShield{0}DamageResonance".format(type)))
|
||||
@@ -1,7 +0,0 @@
|
||||
# Not used by any item
|
||||
runTime = "early"
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.preAssignItemAttr("agility", module.getModifiedItemAttr("agility"))
|
||||
@@ -1,7 +1,7 @@
|
||||
# moduleBonusAfterburner
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Propulsion Module (62 of 127)
|
||||
# Modules from group: Propulsion Module (65 of 133)
|
||||
type = "active"
|
||||
runTime = "late"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# moduleBonusMicrowarpdrive
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Propulsion Module (65 of 127)
|
||||
# Modules from group: Propulsion Module (68 of 133)
|
||||
type = "active"
|
||||
runTime = "late"
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Rig Anchor (4 of 4)
|
||||
# Implants named like: Agency 'Overclocker' SB Dose (3 of 3)
|
||||
# Implants named like: Agency 'Overclocker' SB Dose (3 of 4)
|
||||
# Implants named like: grade Snake (16 of 18)
|
||||
# Modules named like: Auxiliary Thrusters (8 of 8)
|
||||
# Implant: Quafe Zero
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
# nosCpuNeedBonusEffect
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Rabisu
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "cpu",
|
||||
src.getModifiedItemAttr("nosferatuCpuNeedBonus"))
|
||||
@@ -1,8 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"),
|
||||
"falloffEffectiveness", src.getModifiedItemAttr("shipBonusORECapital3"),
|
||||
skill="Capital Industrial Ships")
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Missile Launcher Torpedo (22 of 22)
|
||||
# Items from market group: Ship Equipment > Turrets & Bays (429 of 863)
|
||||
# Items from market group: Ship Equipment > Turrets & Bays (429 of 881)
|
||||
# Module: Interdiction Sphere Launcher I
|
||||
type = "overheat"
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# overloadSelfArmorDamageAmountDurationBonus
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Ancillary Armor Repairer (4 of 4)
|
||||
# Modules from group: Armor Repair Unit (105 of 105)
|
||||
# Modules from group: Ancillary Armor Repairer (7 of 7)
|
||||
# Modules from group: Armor Repair Unit (108 of 108)
|
||||
type = "overheat"
|
||||
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
# Used by:
|
||||
# Modules from group: Energy Weapon (101 of 214)
|
||||
# Modules from group: Hybrid Weapon (105 of 221)
|
||||
# Modules from group: Precursor Weapon (15 of 15)
|
||||
# Modules from group: Projectile Weapon (99 of 165)
|
||||
type = "overheat"
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Capacitor Booster (59 of 59)
|
||||
# Modules from group: Energy Neutralizer (51 of 51)
|
||||
# Modules from group: Energy Neutralizer (54 of 54)
|
||||
# Modules from group: Energy Nosferatu (51 of 51)
|
||||
# Modules from group: Hull Repair Unit (25 of 25)
|
||||
# Modules from group: Remote Armor Repairer (39 of 39)
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Stasis Grappler (7 of 7)
|
||||
# Modules from group: Stasis Web (18 of 18)
|
||||
# Modules from group: Warp Scrambler (52 of 53)
|
||||
# Modules from group: Stasis Web (19 of 19)
|
||||
# Modules from group: Warp Scrambler (54 of 55)
|
||||
type = "overheat"
|
||||
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# overloadSelfShieldBonusDurationBonus
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Ancillary Shield Booster (5 of 5)
|
||||
# Modules from group: Shield Booster (93 of 93)
|
||||
# Modules from group: Ancillary Shield Booster (8 of 8)
|
||||
# Modules from group: Shield Booster (97 of 97)
|
||||
type = "overheat"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# overloadSelfSpeedBonus
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Propulsion Module (127 of 127)
|
||||
# Modules from group: Propulsion Module (133 of 133)
|
||||
type = "overheat"
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
# Not used by any item
|
||||
# pointDefense
|
||||
#
|
||||
# Used by:
|
||||
# Structure Modules from group: Structure Area Denial Module (2 of 2)
|
||||
type = 'active'
|
||||
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
# Modules from group: Capacitor Power Relay (20 of 20)
|
||||
# Modules from group: Power Diagnostic System (23 of 23)
|
||||
# Modules from group: Reactor Control Unit (22 of 22)
|
||||
# Variations of structure module: Standup Reactor Control Unit I (2 of 2)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
# probeLauncherCPUPercentBonusTacticalDestroyer
|
||||
#
|
||||
# Used by:
|
||||
# Ships from group: Tactical Destroyer (4 of 4)
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Astrometrics"),
|
||||
"cpu", ship.getModifiedItemAttr("roleBonusT3ProbeCPU"))
|
||||
@@ -1,6 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.increaseItemAttr("rechargeRate", module.getModifiedItemAttr("rechargeRate"))
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: ECM (39 of 39)
|
||||
# Starbases from group: Electronic Warfare Battery (12 of 12)
|
||||
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
||||
|
||||
type = "projected", "active"
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "projected", "active"
|
||||
runTime = "late"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
if "projected" not in context:
|
||||
return
|
||||
bonus = module.getModifiedItemAttr("structureDamageAmount")
|
||||
duration = module.getModifiedItemAttr("duration") / 1000.0
|
||||
fit.extraAttributes.increase("hullRepair", bonus / duration)
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Sensor Dampener (6 of 6)
|
||||
# Starbases from group: Sensor Dampening Battery (3 of 3)
|
||||
type = "projected", "active"
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Stasis Grappler (7 of 7)
|
||||
# Modules from group: Stasis Web (18 of 18)
|
||||
# Modules from group: Stasis Web (19 of 19)
|
||||
# Starbases from group: Stasis Webification Battery (3 of 3)
|
||||
type = "active", "projected"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, skill, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill),
|
||||
"drawback", skill.getModifiedItemAttr("rigDrawbackBonus") * skill.level)
|
||||
@@ -1,6 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.increaseItemAttr("scanResolution", module.getModifiedItemAttr("scanResolution"))
|
||||
@@ -1,9 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
sensorTypes = ("Gravimetric", "Ladar", "Magnetometric", "Radar")
|
||||
for sensorType in sensorTypes:
|
||||
sensAttr = "scan{0}Strength".format(sensorType)
|
||||
fit.ship.increaseItemAttr(sensAttr, module.getModifiedItemAttr(sensAttr))
|
||||
@@ -1,11 +0,0 @@
|
||||
# Not used by any item
|
||||
type = "active"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"):
|
||||
fit.ship.boostItemAttr(
|
||||
"scan{}Strength".format(scanType),
|
||||
module.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)),
|
||||
stackingPenalties=True
|
||||
)
|
||||
@@ -1,4 +1,10 @@
|
||||
# Not used by any item
|
||||
# serviceModuleFullPowerHitpointPostAssign
|
||||
#
|
||||
# Used by:
|
||||
# Structure Modules from group: Structure Citadel Service Module (2 of 2)
|
||||
# Structure Modules from group: Structure Engineering Service Module (6 of 6)
|
||||
# Structure Modules from group: Structure Resource Processing Service Module (4 of 4)
|
||||
# Structure Module: Standup Moon Drill I
|
||||
type = "passive"
|
||||
runTime = "early"
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# shieldBoostAmplifierPassive
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: Agency 'Hardshell' TB Dose (3 of 3)
|
||||
# Implants named like: grade Crystal (15 of 18)
|
||||
type = "passive"
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# shieldBoostAmplifierPassiveBooster
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: Agency 'Hardshell' TB Dose (3 of 4)
|
||||
# Implants named like: Blue Pill Booster (5 of 5)
|
||||
# Implant: Antipharmakon Thureo
|
||||
type = "passive"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user