diff --git a/eos/effects.py b/eos/effects.py index 9c2117708..58184854c 100644 --- a/eos/effects.py +++ b/eos/effects.py @@ -1859,7 +1859,7 @@ class Effect596(BaseEffect): ammoInfluenceRange Used by: - Items from category: Charge (608 of 1011) + Items from category: Charge (608 of 1010) """ type = 'passive' @@ -1874,7 +1874,7 @@ class Effect598(BaseEffect): ammoSpeedMultiplier Used by: - Charges from group: Festival Charges (41 of 41) + Charges from group: Festival Charges (40 of 40) Charges from group: Interdiction Probe (2 of 2) Charges from group: Structure Festival Charges (2 of 2) Special Edition Assetss from group: Festival Charges Expired (4 of 4) @@ -2436,7 +2436,7 @@ class Effect804(BaseEffect): ammoInfluenceCapNeed Used by: - Items from category: Charge (538 of 1011) + Items from category: Charge (538 of 1010) """ type = 'passive' @@ -4856,7 +4856,7 @@ class Effect1615(BaseEffect): shipAdvancedSpaceshipCommandAgilityBonus Used by: - Items from market group: Ships > Capital Ships (45 of 45) + Items from market group: Ships > Capital Ships (49 of 49) """ type = 'passive' @@ -4889,12 +4889,8 @@ class Effect1617(BaseEffect): shipCapitalAgilityBonus Used by: - Ships from group: Carrier (4 of 4) Ships from group: Dreadnought (12 of 12) - Ships from group: Force Auxiliary (6 of 6) - Ships from group: Supercarrier (6 of 6) - Ships from group: Titan (7 of 7) - Ship: Rorqual + Items from market group: Ships > Capital Ships (40 of 49) """ type = 'passive' @@ -6783,6 +6779,7 @@ class Effect2252(BaseEffect): Ships named like: Stratios (2 of 2) Subsystems named like: Defensive Covert Reconfiguration (4 of 4) Ship: Astero + Ship: Metamorphosis Ship: Rabisu """ @@ -7005,10 +7002,9 @@ class Effect2402(BaseEffect): def handler(fit, skill, context, projectionRange, **kwargs): damageTypes = ('em', 'explosive', 'kinetic', 'thermal') for dmgType in damageTypes: - dmgAttr = '{0}Damage'.format(dmgType) fit.modules.filteredItemBoost( - lambda mod: mod.item.group.name == 'Super Weapon' and dmgAttr in mod.itemModifiedAttributes, - dmgAttr, skill.getModifiedItemAttr('damageMultiplierBonus') * skill.level, **kwargs) + lambda mod: mod.item.requiresSkill('Doomsday Operation'), f'{dmgType}Damage', + skill.getModifiedItemAttr('damageMultiplierBonus') * skill.level, **kwargs) class Effect2422(BaseEffect): @@ -9311,7 +9307,7 @@ class Effect3001(BaseEffect): Used by: Modules from group: Missile Launcher Torpedo (22 of 22) - Items from market group: Ship Equipment > Turrets & Launchers (444 of 910) + Items from market group: Ship Equipment > Turrets & Launchers (444 of 914) Module: Interdiction Sphere Launcher I """ @@ -24176,12 +24172,8 @@ class Effect6104(BaseEffect): entosisDurationMultiply Used by: - Ships from group: Carrier (4 of 4) Ships from group: Dreadnought (12 of 12) - Ships from group: Force Auxiliary (6 of 6) - Ships from group: Supercarrier (6 of 6) - Ships from group: Titan (7 of 7) - Ship: Rorqual + Items from market group: Ships > Capital Ships (40 of 49) """ type = 'passive' @@ -27299,7 +27291,10 @@ class Effect6472(BaseEffect): doomsdayBeamDOT Used by: - Modules named like: Lance (4 of 4) + Module: 'Geiravor' Explosive Lance + Module: 'Holy Destiny' Electromagnetic Lance + Module: 'Iron Pike' Kinetic Lance + Module: 'Phalarica' Thermal Lance """ dealsDamage = True @@ -27647,7 +27642,7 @@ class Effect6505(BaseEffect): shipBonusDreadnoughtC2ShieldResists Used by: - Variations of ship: Phoenix (3 of 3) + Variations of ship: Phoenix (3 of 4) """ type = 'passive' @@ -27685,7 +27680,7 @@ class Effect6507(BaseEffect): shipBonusDreadnoughtG2ROFBonus Used by: - Variations of ship: Moros (3 of 3) + Variations of ship: Moros (4 of 4) """ type = 'passive' @@ -27701,7 +27696,7 @@ class Effect6508(BaseEffect): shipBonusDreadnoughtG3RepairTime Used by: - Ships named like: Moros (2 of 2) + Variations of ship: Moros (3 of 4) """ type = 'passive' @@ -27717,7 +27712,7 @@ class Effect6509(BaseEffect): shipBonusDreadnoughtM1DamageBonus Used by: - Variations of ship: Naglfar (2 of 2) + Ships named like: Naglfar (2 of 2) """ type = 'passive' @@ -27733,7 +27728,7 @@ class Effect6510(BaseEffect): shipBonusDreadnoughtM2ROFBonus Used by: - Variations of ship: Naglfar (2 of 2) + Ships named like: Naglfar (2 of 2) """ type = 'passive' @@ -28329,7 +28324,6 @@ class Effect6565(BaseEffect): Used by: Structures from group: Citadel (9 of 9) - Celestial: Fortizar (DO NOT TRANSLATE) """ runTime = 'early' @@ -33606,7 +33600,6 @@ class Effect7008(BaseEffect): Used by: Items from category: Structure (17 of 17) - Celestial: Fortizar (DO NOT TRANSLATE) """ type = 'passive' @@ -33859,7 +33852,6 @@ class Effect7030(BaseEffect): Used by: Items from category: Structure (11 of 17) Structures from group: Citadel (8 of 9) - Celestial: Fortizar (DO NOT TRANSLATE) """ type = 'passive' @@ -34008,7 +34000,6 @@ class Effect7039(BaseEffect): Used by: Items from category: Structure (14 of 17) - Celestial: Fortizar (DO NOT TRANSLATE) """ type = 'passive' @@ -34028,7 +34019,6 @@ class Effect7040(BaseEffect): Used by: Items from category: Structure (17 of 17) - Celestial: Fortizar (DO NOT TRANSLATE) """ type = 'passive' @@ -38578,6 +38568,7 @@ class Effect11373(BaseEffect): Used by: Ship: Naglfar Fleet Issue + Ship: Valravn """ type = 'passive' @@ -39700,3 +39691,220 @@ class Effect11532(BaseEffect): fit.modules.filteredItemBoost( lambda mod: mod.item.group.name == 'Data Miners', 'cpu', ship.getModifiedItemAttr('shipBonusRole1'), **kwargs) + + +class Effect11691(BaseEffect): + """ + debuffLance + + Used by: + Modules named like: Disruptive Lance (4 of 4) + """ + + dealsDamage = True + type = 'active' + + @staticmethod + def handler(fit, mod, context, projectionRange, **kwargs): + fit.ship.boostItemAttr('maxVelocity', mod.getModifiedItemAttr('speedFactor'), stackingPenalties=True, **kwargs) + fit.ship.increaseItemAttr('warpScrambleStatus', mod.getModifiedItemAttr('siegeModeWarpStatus'), **kwargs) + + +class Effect11696(BaseEffect): + """ + shipBonusDreadnoughtC1HybridTracking + + Used by: + Ship: Karura + """ + + type = 'passive' + + @staticmethod + def handler(fit, src, context, projectionRange, **kwargs): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill('Capital Hybrid Turret'), 'trackingSpeed', + src.getModifiedItemAttr('shipBonusDreadnoughtC1'), skill='Caldari Dreadnought', **kwargs) + + +class Effect11697(BaseEffect): + """ + shipBonusDreadnoughtC2HybridOptimalRange + + Used by: + Ship: Karura + """ + + type = 'passive' + + @staticmethod + def handler(fit, src, context, projectionRange, **kwargs): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill('Capital Hybrid Turret'), 'maxRange', + src.getModifiedItemAttr('shipBonusDreadnoughtC2'), skill='Caldari Dreadnought', **kwargs) + + +class Effect11698(BaseEffect): + """ + shipBonusDisruptionLanceDamage + + Used by: + Ships from group: Lancer Dreadnought (4 of 4) + """ + + type = 'passive' + + @staticmethod + def handler(fit, ship, context, projectionRange, **kwargs): + for dmgType in ('em', 'kinetic', 'explosive', 'thermal'): + fit.modules.filteredItemBoost( + lambda module: module.item.requiresSkill('Disruptive Lance Operation'), f'{dmgType}Damage', + ship.getModifiedItemAttr('shipBonusAdvancedDreadnought1'), skill='Lancer Dreadnoughts', **kwargs) + + +class Effect11700(BaseEffect): + """ + skillDisruptionLanceCapacitorUseBonus + + Used by: + Skill: Disruptive Lance Operation + """ + + type = 'passive' + + @staticmethod + def handler(fit, skill, context, projectionRange, **kwargs): + fit.modules.filteredItemBoost( + lambda module: module.item.requiresSkill('Disruptive Lance Operation'), 'capacitorNeed', + skill.getModifiedItemAttr('disruptionLanceSkillBoostCapacitorCost') * skill.level, **kwargs) + + +class Effect11701(BaseEffect): + """ + shipBonusDisruptionLanceRange + + Used by: + Ships from group: Lancer Dreadnought (4 of 4) + """ + + type = 'passive' + + @staticmethod + def handler(fit, ship, context, projectionRange, **kwargs): + fit.modules.filteredItemBoost( + lambda module: module.item.requiresSkill('Disruptive Lance Operation'), 'maxRange', + ship.getModifiedItemAttr('shipBonusAdvancedDreadnought2'), skill='Lancer Dreadnoughts', **kwargs) + + +class Effect11702(BaseEffect): + """ + eliteBonusMarauderArmourBonus2a + + Used by: + Ship: Vargur + """ + + type = 'passive' + + @staticmethod + def handler(fit, src, context, projectionRange, **kwargs): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill('Repair Systems'), 'armorDamageAmount', + src.getModifiedItemAttr('eliteBonusViolators2'), skill='Marauders', **kwargs) + + +class Effect11704(BaseEffect): + """ + shipBonusDreadnoughtM2CapitalProjectileFalloff + + Used by: + Ship: Valravn + """ + + type = 'passive' + + @staticmethod + def handler(fit, src, context, projectionRange, **kwargs): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill('Capital Projectile Turret'), 'falloff', + src.getModifiedItemAttr('shipBonusDreadnoughtM2'), skill='Minmatar Dreadnought', **kwargs) + + +class Effect11705(BaseEffect): + """ + shipBonusDreadnoughtA1MissileDamage + + Used by: + Ship: Bane + """ + + type = 'passive' + + @staticmethod + def handler(fit, src, context, projectionRange, **kwargs): + for dmgType in ('em', 'thermal', 'kinetic', 'explosive'): + fit.modules.filteredChargeBoost( + lambda mod: ( + mod.charge.requiresSkill('XL Torpedoes') + or mod.charge.requiresSkill('XL Cruise Missiles') + or mod.charge.requiresSkill('Torpedoes')), + f'{dmgType}Damage', + src.getModifiedItemAttr('shipBonusDreadnoughtA1'), + skill='Amarr Dreadnought', **kwargs) + + +class Effect11706(BaseEffect): + """ + shipBonusDreadnoughtA2MissileExplosionRadius + + Used by: + Ship: Bane + """ + + type = 'passive' + + @staticmethod + def handler(fit, src, context, projectionRange, **kwargs): + fit.modules.filteredChargeBoost( + lambda mod: ( + mod.charge.requiresSkill('XL Torpedoes') + or mod.charge.requiresSkill('XL Cruise Missiles') + or mod.charge.requiresSkill('Torpedoes')), + 'aoeCloudSize', src.getModifiedItemAttr('shipBonusDreadnoughtA2'), + skill='Amarr Dreadnought', **kwargs) + + +class Effect11707(BaseEffect): + """ + shipBonusDreadnoughtG1HullResonance + + Used by: + Ship: Hubris + """ + + type = 'passive' + + @staticmethod + def handler(fit, src, context, projectionRange, **kwargs): + for dmgType in ('em', 'thermal', 'kinetic', 'explosive'): + fit.ship.boostItemAttr( + f'{dmgType}DamageResonance', src.getModifiedItemAttr('shipBonusDreadnoughtG1'), + skill='Gallente Dreadnought', **kwargs) + + +class Effect11714(BaseEffect): + """ + disruptionLanceDisallowCloaking + + Used by: + Modules named like: Disruptive Lance (4 of 4) + """ + + runTime = 'early' + type = 'offline' + + @staticmethod + def handler(fit, module, context, projectionRange, **kwargs): + fit.modules.filteredItemIncrease( + lambda mod: mod.item.requiresSkill('Cloaking'), 'activationBlocked', + module.getModifiedItemAttr('disruptionLanceDisallowCloaking'), **kwargs) diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index 33a211cbc..e271e2b9f 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -477,7 +477,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut, M # Some delay attributes have non-0 default value, so we have to pick according to effects if {'superWeaponAmarr', 'superWeaponCaldari', 'superWeaponGallente', 'superWeaponMinmatar', 'lightningWeapon'}.intersection(self.item.effects): dmgDelay = self.getModifiedItemAttr("damageDelayDuration", 0) - elif {'doomsdayBeamDOT', 'doomsdaySlash', 'doomsdayConeDOT'}.intersection(self.item.effects): + elif {'doomsdayBeamDOT', 'doomsdaySlash', 'doomsdayConeDOT', 'debuffLance'}.intersection(self.item.effects): dmgDelay = self.getModifiedItemAttr("doomsdayWarningDuration", 0) else: dmgDelay = 0