diff --git a/eos/effects/modulebonusfightersupportunit.py b/eos/effects/modulebonusfightersupportunit.py index 64906e62a..93a4c22f4 100644 --- a/eos/effects/modulebonusfightersupportunit.py +++ b/eos/effects/modulebonusfightersupportunit.py @@ -6,16 +6,16 @@ type = "passive" def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity", + fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity", src.getModifiedItemAttr("fighterBonusShieldCapacityPercent")) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "maxVelocity", + fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "maxVelocity", src.getModifiedItemAttr("fighterBonusVelocityPercent"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityAttackMissileDuration", src.getModifiedItemAttr("fighterBonusROFPercent"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityAttackTurretDuration", + fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityAttackTurretDuration", src.getModifiedItemAttr("fighterBonusROFPercent"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesDuration", + fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesDuration", src.getModifiedItemAttr("fighterBonusROFPercent"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "shieldRechargeRate", + fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "shieldRechargeRate", src.getModifiedItemAttr("fighterBonusShieldRechargePercent")) diff --git a/eos/effects/shipbonuscommanddestroyerrole1defenderbonus.py b/eos/effects/shipbonuscommanddestroyerrole1defenderbonus.py new file mode 100644 index 000000000..d147ce629 --- /dev/null +++ b/eos/effects/shipbonuscommanddestroyerrole1defenderbonus.py @@ -0,0 +1,6 @@ +type = "passive" + + +def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Defender Missiles"), + "moduleReactivationDelay", ship.getModifiedItemAttr("shipBonusRole1")) diff --git a/eos/effects/skillmultiplierdefendermissilevelocity.py b/eos/effects/skillmultiplierdefendermissilevelocity.py new file mode 100644 index 000000000..623be7339 --- /dev/null +++ b/eos/effects/skillmultiplierdefendermissilevelocity.py @@ -0,0 +1,6 @@ +type = "passive" + + +def handler(fit, skill, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Defender Missiles"), + "maxVelocity", skill.getModifiedItemAttr("missileVelocityBonus") * skill.level) diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index 567be64d6..c3f84ef15 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -265,7 +265,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): flightTime = self.getModifiedChargeAttr("explosionDelay") / 1000.0 mass = self.getModifiedChargeAttr("mass") agility = self.getModifiedChargeAttr("agility") - if maxVelocity and flightTime and mass and agility: + if maxVelocity and (flightTime or mass or agility): accelTime = min(flightTime, mass * agility / 1000000) # Average distance done during acceleration duringAcceleration = maxVelocity / 2 * accelTime diff --git a/eve.db b/eve.db index 78230ae47..9eeeaf8ab 100644 Binary files a/eve.db and b/eve.db differ