Merge branch 'singularity'

This commit is contained in:
blitzmann
2018-05-30 19:49:40 -04:00
326 changed files with 1280 additions and 1705 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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:

View File

@@ -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"

View File

@@ -1,7 +1,7 @@
# ammoInfluenceCapNeed
#
# Used by:
# Items from category: Charge (478 of 928)
# Items from category: Charge (493 of 947)
type = "passive"

View File

@@ -1,7 +1,7 @@
# ammoInfluenceRange
#
# Used by:
# Items from category: Charge (572 of 928)
# Items from category: Charge (587 of 947)
type = "passive"

View File

@@ -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"

View File

@@ -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"

View 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')

View 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')

View 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')

View File

@@ -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)

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"))

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -1,4 +1,7 @@
# Not used by any item
# citadelRigBonus
#
# Used by:
# Structures from group: Citadel (9 of 9)
type = "passive"
runTime = "early"

View File

@@ -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"

View File

@@ -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)

View 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)

View 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)

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Module: Warp Disruption Burst Projector
# Structure Module: Standup Warp Disruption Burst Projector
type = "projected", "active"

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Module: Sensor Dampening Burst Projector
# Structure Module: Standup Sensor Dampening Burst Projector
type = "projected", "active"

View File

@@ -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"

View File

@@ -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

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Module: Target Illumination Burst Projector
# Structure Module: Standup Target Illumination Burst Projector
type = "projected", "active"

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Module: Weapon Disruption Burst Projector
# Structure Module: Standup Weapon Disruption Burst Projector
type = "active", "projected"

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Module: Stasis Webification Burst Projector
# Structure Module: Standup Stasis Webification Burst Projector
type = "active", "projected"

View File

@@ -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)

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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)

View File

@@ -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

View File

@@ -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)

View File

@@ -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)

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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)

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"))

View File

@@ -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))

View File

@@ -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"))

View 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)

View 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)

View File

@@ -1,4 +1,7 @@
# Not used by any item
# lightningWeapon
#
# Used by:
# Structure Module: Standup Arcing Vorton Projector I
type = 'active'

View File

@@ -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"))

View File

@@ -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)

View File

@@ -1,6 +0,0 @@
# Not used by any item
type = "passive"
def handler(fit, module, context):
fit.ship.increaseItemAttr("maxVelocity", module.getModifiedItemAttr("maxVelocity"))

View 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)

View 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)

View File

@@ -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"))

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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)))

View File

@@ -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)))

View File

@@ -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"))

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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"))

View File

@@ -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")

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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)

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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'

View File

@@ -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"

View File

@@ -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"))

View File

@@ -1,6 +0,0 @@
# Not used by any item
type = "passive"
def handler(fit, module, context):
fit.ship.increaseItemAttr("rechargeRate", module.getModifiedItemAttr("rechargeRate"))

View File

@@ -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"

View File

@@ -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)

View File

@@ -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"

View File

@@ -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"

View File

@@ -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)

View File

@@ -1,6 +0,0 @@
# Not used by any item
type = "passive"
def handler(fit, module, context):
fit.ship.increaseItemAttr("scanResolution", module.getModifiedItemAttr("scanResolution"))

View File

@@ -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))

View File

@@ -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
)

View File

@@ -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"

View File

@@ -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"

View File

@@ -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