Merge remote-tracking branch 'origin/singularity'

This commit is contained in:
blitzmann
2015-12-07 19:39:45 -05:00
988 changed files with 926 additions and 131 deletions

View File

@@ -0,0 +1,116 @@
"""
Migration 11
- Converts modules based on December Release 2015 Tiericide
Some modules have been unpublished (and unpublished module attributes are removed
from database), which causes pyfa to crash. We therefore replace these
modules with their new replacements
"""
CONVERSIONS = {
16467: ( # Medium Gremlin Compact Energy Neutralizer
16471, # Medium Unstable Power Fluctuator I
),
22947: ( # 'Beatnik' Small Remote Armor Repairer
23414, # 'Brotherhood' Small Remote Armor Repairer
),
8295: ( # Type-D Restrained Shield Flux Coil
8293, # Beta Reactor Control: Shield Flux I
),
16499: ( # Heavy Knave Scoped Energy Nosferatu
16501, # E500 Prototype Energy Vampire
),
16477: ( # Heavy Infectious Scoped Energy Neutralizer
16473, # Heavy Rudimentary Energy Destabilizer I
),
16475: ( # Heavy Gremlin Compact Energy Neutralizer
16479, # Heavy Unstable Power Fluctuator I
),
16447: ( # Medium Solace Scoped Remote Armor Repairer
16445, # Medium 'Arup' Remote Armor Repairer
),
508: ( # 'Basic' Shield Flux Coil
8325, # Alpha Reactor Shield Flux
8329, # Marked Generator Refitting: Shield Flux
8323, # Partial Power Plant Manager: Shield Flux
8327, # Type-E Power Core Modification: Shield Flux
),
1419: ( # 'Basic' Shield Power Relay
8341, # Alpha Reactor Shield Power Relay
8345, # Marked Generator Refitting: Shield Power Relay
8339, # Partial Power Plant Manager: Shield Power Relay
8343, # Type-E Power Core Modification: Shield Power Relay
),
16439: ( # Small Solace Scoped Remote Armor Repairer
16437, # Small 'Arup' Remote Armor Repairer
),
16505: ( # Medium Ghoul Compact Energy Nosferatu
16511, # Medium Diminishing Power System Drain I
),
8297: ( # Mark I Compact Shield Flux Coil
8291, # Local Power Plant Manager: Reaction Shield Flux I
),
16455: ( # Large Solace Scoped Remote Armor Repairer
16453, # Large 'Arup' Remote Armor Repairer
),
6485: ( # M51 Benefactor Compact Shield Recharger
6491, # Passive Barrier Compensator I
6489, # 'Benefactor' Ward Reconstructor
6487, # Supplemental Screen Generator I
),
5137: ( # Small Knave Scoped Energy Nosferatu
5135, # E5 Prototype Energy Vampire
),
8579: ( # Medium Murky Compact Remote Shield Booster
8581, # Medium 'Atonement' Remote Shield Booster
),
8531: ( # Small Murky Compact Remote Shield Booster
8533, # Small 'Atonement' Remote Shield Booster
),
16497: ( # Heavy Ghoul Compact Energy Nosferatu
16503, # Heavy Diminishing Power System Drain I
),
4477: ( # Small Gremlin Compact Energy Neutralizer
4475, # Small Unstable Power Fluctuator I
),
8337: ( # Mark I Compact Shield Power Relay
8331, # Local Power Plant Manager: Reaction Shield Power Relay I
),
23416: ( # 'Peace' Large Remote Armor Repairer
22951, # 'Pacifier' Large Remote Armor Repairer
),
5141: ( # Small Ghoul Compact Energy Nosferatu
5139, # Small Diminishing Power System Drain I
),
4471: ( # Small Infectious Scoped Energy Neutralizer
4473, # Small Rudimentary Energy Destabilizer I
),
16469: ( # Medium Infectious Scoped Energy Neutralizer
16465, # Medium Rudimentary Energy Destabilizer I
),
8335: ( # Type-D Restrained Shield Power Relay
8333, # Beta Reactor Control: Shield Power Relay I
),
405: ( # 'Micro' Remote Shield Booster
8631, # Micro Asymmetric Remote Shield Booster
8627, # Micro Murky Remote Shield Booster
8629, # Micro 'Atonement' Remote Shield Booster
8633, # Micro S95a Remote Shield Booster
),
8635: ( # Large Murky Compact Remote Shield Booster
8637, # Large 'Atonement' Remote Shield Booster
),
16507: ( # Medium Knave Scoped Energy Nosferatu
16509, # E50 Prototype Energy Vampire
),
}
def upgrade(saveddata_engine):
# Convert modules
for replacement_item, list in CONVERSIONS.iteritems():
for retired_item in list:
saveddata_engine.execute('UPDATE "modules" SET "itemID" = ? WHERE "itemID" = ?', (replacement_item, retired_item))
saveddata_engine.execute('UPDATE "cargo" SET "itemID" = ? WHERE "itemID" = ?', (replacement_item, retired_item))

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", "falloffEffectiveness", src.getModifiedItemAttr("falloffBonus"))

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Remote Armor Repair Systems"), "falloffEffectiveness", src.getModifiedItemAttr("carrierAmarrBonus3"), skill="Amarr Carrier")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), "falloffEffectiveness", src.getModifiedItemAttr("carrierCaldariBonus3"), skill="Caldari Carrier")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems") or mod.item.requiresSkill("Capital Remote Armor Repair Systems"), "falloffEffectiveness", src.getModifiedItemAttr("carrierGallenteBonus3"), skill="Gallente Carrier")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems") or mod.item.requiresSkill("Capital Remote Armor Repair Systems"), "falloffEffectiveness", src.getModifiedItemAttr("carrierMinmatarBonus3"), skill="Minmatar Carrier")

View File

@@ -7,6 +7,14 @@ gangBoost = "ewarStrTD"
type = "active", "gang"
def handler(fit, module, context):
if "gang" not in context: return
for bonus in ("maxRangeBonus", "falloffBonus", "trackingSpeedBonus"):
for bonus in (
"missileVelocityBonus",
"explosionDelayBonus",
"aoeVelocityBonus",
"falloffBonus",
"maxRangeBonus",
"aoeCloudSizeBonus",
"trackingSpeedBonus"
):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"),
bonus, module.getModifiedItemAttr("commandBonusTD"))

View File

@@ -7,6 +7,6 @@ gangBoost = "ewarStrTP"
type = "active", "gang"
def handler(fit, module, context):
if "gang" not in context: return
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter",
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Target Painting"),
"signatureRadiusBonus", module.getModifiedItemAttr("commandBonusTP"),
stackingPenalties = True)

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Logistic Drone", "structureDamageAmount", src.getModifiedItemAttr("droneArmorDamageAmountBonus"))

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Warfare Specialist"), "commandBonus", src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Warfare Specialist"), "commandBonus", src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Warfare Specialist"), "commandBonusHidden", src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Micro Jump Drive Operation"), "duration", src.getModifiedItemAttr("eliteBonusCommandDestroyer2"), skill="Command Destroyers")

View File

@@ -0,0 +1,3 @@
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

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Siege Warfare Specialist"), "commandBonus", src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Warfare Specialist"), "commandBonus", src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers")

View File

@@ -4,5 +4,5 @@
# Ship: Sentinel
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer",
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer",
"energyDestabilizationRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), skill="Electronic Attack Ships")

View File

@@ -4,5 +4,5 @@
# Ship: Sentinel
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire",
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu",
"powerTransferRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), skill="Electronic Attack Ships")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.ship.boostItemAttr("armorHP", src.getModifiedItemAttr("eliteBonusLogiFrig2"), skill="Logistics Frigates")

View File

@@ -0,0 +1,4 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", src.getModifiedItemAttr("eliteBonusLogiFrig1"), skill="Logistics Frigates")
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "duration", src.getModifiedItemAttr("eliteBonusLogiFrig1"), skill="Logistics Frigates")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.ship.boostItemAttr("shieldCapacity", src.getModifiedItemAttr("eliteBonusLogiFrig2"), skill="Logistics Frigates")

View File

@@ -0,0 +1,4 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "duration", src.getModifiedItemAttr("eliteBonusLogiFrig1"), skill="Logistics Frigates")
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "capacitorNeed", src.getModifiedItemAttr("eliteBonusLogiFrig1"), skill="Logistics Frigates")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.ship.boostItemAttr("signatureRadius", src.getModifiedItemAttr("eliteBonusLogiFrig2"), skill="Logistics Frigates")

View File

@@ -5,4 +5,4 @@
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter",
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics")
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers")

View File

@@ -6,4 +6,4 @@
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter",
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics")
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers")

View File

@@ -5,4 +5,4 @@
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer",
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics")
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers")

View File

@@ -5,4 +5,4 @@
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer",
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics")
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers")

View File

@@ -6,4 +6,4 @@
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster",
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics")
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers")

View File

@@ -5,4 +5,4 @@
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster",
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics")
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers")

View File

@@ -5,4 +5,4 @@
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer",
"falloffBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics")
"falloffBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers")

View File

@@ -5,4 +5,4 @@
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer",
"falloffBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics")
"falloffBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers")

View File

@@ -5,4 +5,4 @@
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer",
"maxRangeBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics")
"maxRangeBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers")

View File

@@ -5,4 +5,4 @@
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer",
"maxRangeBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics")
"maxRangeBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers")

View File

@@ -5,4 +5,4 @@
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer",
"trackingSpeedBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics")
"trackingSpeedBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers")

View File

@@ -5,4 +5,4 @@
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer",
"trackingSpeedBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics")
"trackingSpeedBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers")

View File

@@ -5,5 +5,5 @@
# Ship: Pilgrim
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire",
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu",
"powerTransferAmount", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships")

View File

@@ -5,5 +5,5 @@
# Ship: Pilgrim
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer",
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer",
"energyDestabilizationAmount", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships")

View File

@@ -4,5 +4,5 @@
# Ship: Curse
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer",
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer",
"energyDestabilizationRange", ship.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships")

View File

@@ -4,5 +4,5 @@
# Ship: Pilgrim
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer",
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer",
"energyDestabilizationRange", ship.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships")

View File

@@ -4,5 +4,5 @@
# Ship: Pilgrim
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire",
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu",
"powerTransferRange", ship.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships")

View File

@@ -4,5 +4,5 @@
# Ship: Curse
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire",
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu",
"powerTransferRange", ship.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships")

View File

@@ -0,0 +1,9 @@
from eos.types import State
type = "active", "projected"
def handler(fit, container, context):
if "projected" in context and ((hasattr(container, "state") \
and container.state >= State.ACTIVE) or hasattr(container, "amountActive")):
multiplier = container.amountActive if hasattr(container, "amountActive") else 1
amount = container.getModifiedItemAttr("energyDestabilizationAmount")
time = container.getModifiedItemAttr("duration")
fit.addDrain(time, amount * multiplier, 0)

View File

@@ -0,0 +1,9 @@
type = "active", "projected"
runTime = "late"
def handler(fit, module, context):
amount = module.getModifiedItemAttr("powerTransferAmount")
time = module.getModifiedItemAttr("duration")
if "projected" in context:
fit.addDrain(time, amount, 0)
elif "module" in context:
module.itemModifiedAttributes.force("capacitorNeed", -amount)

View File

@@ -6,4 +6,4 @@
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter",
"powerTransferRange", ship.getModifiedItemAttr("maxRangeBonus"))
"powerTransferRange", ship.getModifiedItemAttr("maxRangeBonus2"))

View File

@@ -4,5 +4,5 @@
# Implants named like: grade Centurion (10 of 12)
type = "passive"
def handler(fit, implant, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tracking Disruptor",
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor",
"maxRange", implant.getModifiedItemAttr("rangeSkillBonus"))

View File

@@ -0,0 +1,11 @@
type = "passive"
def handler(fit, src, context):
level = src.level if "skill" in context else 1
for attr in (
"explosionDelayBonus",
"aoeVelocityBonus",
"aoeCloudSizeBonus",
"missileVelocityBonus"
):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"),
attr, src.getModifiedItemAttr("scanSkillEwStrengthBonus") * level)

View File

@@ -4,5 +4,5 @@
# Skill: Frequency Modulation
type = "passive"
def handler(fit, skill, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tracking Disruptor",
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor",
"falloff", skill.getModifiedItemAttr("falloffBonus") * skill.level)

View File

@@ -6,6 +6,6 @@
type = "passive"
def handler(fit, container, context):
level = container.level if "skill" in context else 1
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tracking Disruptor",
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor",
"maxRange", container.getModifiedItemAttr("rangeSkillBonus") * level,
stackingPenalties = "skill" not in context)

View File

@@ -6,5 +6,5 @@
type = "passive"
def handler(fit, container, context):
level = container.level if "skill" in context else 1
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tracking Disruptor",
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor",
"trackingSpeedBonus", container.getModifiedItemAttr("scanSkillEwStrengthBonus") * level)

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), "duration", src.getModifiedItemAttr("eliteBonusExpedition2"), skill="Expedition Frigates")

View File

@@ -0,0 +1,6 @@
type = "passive"
def handler(fit, src, context):
fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("eliteBonusExpedition1"), skill="Expedition Frigates")
fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("eliteBonusExpedition1"), skill="Expedition Frigates")
fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("eliteBonusExpedition1"), skill="Expedition Frigates")
fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("eliteBonusExpedition1"), skill="Expedition Frigates")

View File

@@ -6,7 +6,7 @@ type = "gang", "active"
gangBoost = "electronicMaxRange"
def handler(fit, module, context):
if "gang" not in context: return
groups = ("Target Painter", "Tracking Disruptor", "Remote Sensor Damper", "ECM", "ECM Burst")
groups = ("Target Painter", "Weapon Disruptor", "Remote Sensor Damper", "ECM", "ECM Burst")
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups,
"maxRange", module.getModifiedItemAttr("commandBonus"),
stackingPenalties = True)

View File

@@ -0,0 +1,6 @@
type = "active"
def handler(fit, module, context):
module.multiplyItemAttr("commandBonusTD", module.getModifiedItemAttr("commandBonusHidden"))
module.multiplyItemAttr("commandBonusECM", module.getModifiedItemAttr("commandBonusHidden"))
module.multiplyItemAttr("commandBonusRSD", module.getModifiedItemAttr("commandBonusHidden"))
module.multiplyItemAttr("commandBonusTP", module.getModifiedItemAttr("commandBonusHidden"))

View File

@@ -0,0 +1,5 @@
type = "passive"
runTime = "early"
def handler(fit, src, context):
fit.modules.filteredItemForce(lambda mod: mod.item.group.name == "Cloaking Device",
"maxVelocityBonus", src.getModifiedItemAttr("velocityPenaltyReduction"))

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), "duration", src.getModifiedItemAttr("shipBonusOREfrig2"), skill="Mining Frigate")

View File

@@ -0,0 +1,3 @@
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

@@ -0,0 +1,9 @@
type = "overheat"
def handler(fit, module, context):
for tgtAttr in (
"aoeCloudSizeBonus",
"explosionDelayBonus",
"missileVelocityBonus",
"aoeVelocityBonus"
):
module.boostItemAttr(tgtAttr, module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus"))

View File

@@ -0,0 +1,6 @@
type = "projected", "active"
def handler(fit, container, context):
if "projected" in context:
bonus = container.getModifiedItemAttr("armorDamageAmount")
duration = container.getModifiedItemAttr("duration") / 1000.0
fit.extraAttributes.increase("armorRepair", bonus / duration)

View File

@@ -0,0 +1,12 @@
# remoteHullRepair
#
# Used by:
# Modules from group: Remote Hull Repairer (7 of 7)
# Drones named like: Hull Maintenance Bot (6 of 6)
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

@@ -0,0 +1,6 @@
type = "projected", "active"
def handler(fit, container, context):
if "projected" in context:
bonus = container.getModifiedItemAttr("shieldBonus")
duration = container.getModifiedItemAttr("duration") / 1000.0
fit.extraAttributes.increase("shieldRepair", bonus / duration)

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), "power", src.getModifiedItemAttr("roleBonusCD"))

View File

@@ -0,0 +1,4 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "capacitorNeed", src.getModifiedItemAttr("roleBonus"))
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "cpu", src.getModifiedItemAttr("roleBonus"))

View File

@@ -0,0 +1,4 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "falloff", src.getModifiedItemAttr("roleBonus"))
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "maxRange", src.getModifiedItemAttr("roleBonus"))

View File

@@ -0,0 +1,4 @@
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Navigation"),
"warpScrambleStrength", ship.getModifiedItemAttr("roleBonus"))

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "maxRange", src.getModifiedItemAttr("roleBonus"))

View File

@@ -0,0 +1,4 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "cpu", src.getModifiedItemAttr("roleBonus"))
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "capacitorNeed", src.getModifiedItemAttr("roleBonus"))

View File

@@ -0,0 +1,4 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "falloff", src.getModifiedItemAttr("roleBonus"))
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "maxRange", src.getModifiedItemAttr("roleBonus"))

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster", "falloffEffectiveness", src.getModifiedItemAttr("falloffBonus"))

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), "aoeVelocity", src.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate")

View File

@@ -1,8 +1,3 @@
# shipBonusDroneDamageMultiplierAD1
#
# Used by:
# Ship: Dragoon
type = "passive"
def handler(fit, ship, context):
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
"damageMultiplier", ship.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer")
def handler(fit, src, context):
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer")

View File

@@ -1,8 +1,3 @@
# shipBonusDroneDamageMultiplierGD1
#
# Used by:
# Ship: Algos
type = "passive"
def handler(fit, ship, context):
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
"damageMultiplier", ship.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer")
def handler(fit, src, context):
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", src.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer")

View File

@@ -1,9 +1,5 @@
# shipBonusDroneHitpointsAD1
#
# Used by:
# Ship: Dragoon
type = "passive"
def handler(fit, ship, context):
for layer in ("shieldCapacity", "armorHP", "hp"):
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
layer, ship.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer")
def handler(fit, src, context):
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "shieldCapacity", src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer")
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "hp", src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer")
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "armorHP", src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer")

View File

@@ -1,9 +1,5 @@
# shipBonusDroneHitpointsGD1
#
# Used by:
# Ship: Algos
type = "passive"
def handler(fit, ship, context):
for layer in ("shieldCapacity", "armorHP", "hp"):
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
layer, ship.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer")
def handler(fit, src, context):
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "shieldCapacity", src.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer")
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "armorHP", src.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer")
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "hp", src.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("shipBonusGD2"), skill="Gallente Destroyer")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "emDamage", src.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "emDamage", src.getModifiedItemAttr("shipBonusMD1"), skill="Minmatar Destroyer")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusMD2"), skill="Minmatar Destroyer")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", src.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", src.getModifiedItemAttr("shipBonusAC3"), skill="Amarr Cruiser")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", src.getModifiedItemAttr("shipBonus3AF"), skill="Amarr Frigate")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", src.getModifiedItemAttr("eliteBonusElectronicAttackShip3"), skill="Electronic Attack Ships")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", src.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", src.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", src.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", src.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), skill="Electronic Attack Ships")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", src.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships")

View File

@@ -4,5 +4,5 @@
# Ship: Armageddon
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer",
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer",
"energyDestabilizationRange", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship")

View File

@@ -4,5 +4,5 @@
# Ship: Dragoon
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer",
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer",
"energyDestabilizationRange", ship.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", src.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", src.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", src.getModifiedItemAttr("shipBonusAC3"), skill="Amarr Cruiser")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", src.getModifiedItemAttr("shipBonus3AF"), skill="Amarr Frigate")

View File

@@ -0,0 +1,3 @@
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", src.getModifiedItemAttr("eliteBonusElectronicAttackShip3"), skill="Electronic Attack Ships")

Some files were not shown because too many files have changed in this diff Show More