diff --git a/eos/effects.py b/eos/effects.py index d2f39ae67..8c8b3bc92 100644 --- a/eos/effects.py +++ b/eos/effects.py @@ -8691,8 +8691,8 @@ class Effect2872(BaseEffect): @staticmethod def handler(fit, container, context, projectionRange, **kwargs): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill('Defender Missiles'), - 'maxVelocity', container.getModifiedItemAttr('missileVelocityBonus'), **kwargs) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Defender Missiles'), + 'maxVelocity', container.getModifiedItemAttr('missileVelocityBonus'), **kwargs) class Effect2881(BaseEffect): @@ -27022,15 +27022,12 @@ class Effect6406(BaseEffect): @staticmethod def handler(fit, src, context, projectionRange, **kwargs): groups = ('Structure ECM Battery', 'Structure Disruption Battery') - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, 'falloff', src.getModifiedItemAttr('structureRigEwarFalloffBonus'), stackingPenalties=True, **kwargs) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, 'maxRange', src.getModifiedItemAttr('structureRigEwarOptimalBonus'), stackingPenalties=True, **kwargs) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, 'falloffEffectiveness', src.getModifiedItemAttr('structureRigEwarFalloffBonus'), stackingPenalties=True, **kwargs) @@ -27051,8 +27048,7 @@ class Effect6407(BaseEffect): def handler(fit, src, context, projectionRange, **kwargs): groups = ('Structure ECM Battery', 'Structure Disruption Battery') fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - 'capacitorNeed', src.getModifiedItemAttr('structureRigEwarCapUseBonus'), - stackingPenalties=True, **kwargs) + 'capacitorNeed', src.getModifiedItemAttr('structureRigEwarCapUseBonus'), **kwargs) class Effect6408(BaseEffect): @@ -27157,8 +27153,7 @@ class Effect6413(BaseEffect): @staticmethod def handler(fit, src, context, projectionRange, **kwargs): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Structure Area Denial Module', - 'capacitorNeed', src.getModifiedItemAttr('structureRigPDCapUseBonus'), - stackingPenalties=True, **kwargs) + 'capacitorNeed', src.getModifiedItemAttr('structureRigPDCapUseBonus'), **kwargs) class Effect6417(BaseEffect): @@ -35262,6 +35257,39 @@ class Effect7097(BaseEffect): 'damageMultiplier', skill.getModifiedItemAttr('damageMultiplierBonus') * skill.level, **kwargs) +class Effect7098(BaseEffect): + """ + structureConversionRigBasicBonuses + + Used by: + Structure Modules from group: Outpost Conversion Rigs (104 of 104) + """ + + type = 'passive' + + @staticmethod + def handler(fit, src, context, projectionRange, **kwargs): + for attr in ('hp', 'armorHP', 'shieldCapacity', 'capacitorCapacity'): + fit.ship.boostItemAttr(attr, src.getModifiedItemAttr('conversionRigHPCapBonus'), **kwargs) + fit.ship.boostItemAttr('maxTargetRange', src.getModifiedItemAttr('structureRigMaxTargetRangeBonus'), + stackingPenalties=True, **kwargs) + fit.ship.boostItemAttr('scanResolution', src.getModifiedItemAttr('structureRigScanResBonus'), + stackingPenalties=True, **kwargs) + fit.ship.increaseItemAttr('maxLockedTargets', src.getModifiedItemAttr('structureRigMaxTargetBonus'), **kwargs) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Structure Area Denial Module', + 'capacitorNeed', src.getModifiedItemAttr('structureRigPDCapUseBonus'), **kwargs) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Structure Area Denial Module', + 'empFieldRange', src.getModifiedItemAttr('structureRigPDRangeBonus'), **kwargs) + for attr in ('structureRigMaxTargetBonus', 'structureRigMaxTargetRangeBonus', 'structureRigScanResBonus'): + fit.modules.filteredItemForce( + lambda mod: mod.item.group.name == 'Structure Combat Rig L - Max Targets and Sensor Boosting', + attr, src.getModifiedItemAttr('constantZero'), **kwargs) + for attr in ('structureRigPDCapUseBonus', 'structureRigPDRangeBonus'): + fit.modules.filteredItemForce( + lambda mod: mod.item.group.name == 'Structure Combat Rig L - Point Defense Battery Application and Projection', + attr, src.getModifiedItemAttr('constantZero'), **kwargs) + + class Effect7111(BaseEffect): """ systemSmallPrecursorTurretDamage diff --git a/eos/saveddata/targetProfile.py b/eos/saveddata/targetProfile.py index e2a816d52..4cb1aa94a 100644 --- a/eos/saveddata/targetProfile.py +++ b/eos/saveddata/targetProfile.py @@ -86,7 +86,7 @@ BUILTINS = OrderedDict([ # Source: ticket #2067 (-52, ('[NPC][Invasion]Invading Precursor Entities', 0.422, 0.367, 0.453, 0.411)), (-53, ('[NPC][Invasion]Retaliating Amarr Entities', 0.360, 0.310, 0.441, 0.602)), - (-54, ('[NPC][Invasion]Retaliating Caldari Entities', 0.287, 0.610, 0.487, 0.401)), + (-54, ('[NPC][Invasion]Retaliating Caldari Entities', 0.303, 0.610, 0.487, 0.401)), (-55, ('[NPC][Invasion]Retaliating Gallente Entities', 0.383, 0.414, 0.578, 0.513)), (-56, ('[NPC][Invasion]Retaliating Minmatar Entities', 0.620, 0.422, 0.355, 0.399)), (-57, ('[NPC][Abyssal][Dark Matter All Tiers]Drones', 0.439, 0.522, 0.529, 0.435)), diff --git a/gui/builtinContextMenus/envEffectAdd.py b/gui/builtinContextMenus/envEffectAdd.py index 66bf4ca0f..a6bddf9b1 100644 --- a/gui/builtinContextMenus/envEffectAdd.py +++ b/gui/builtinContextMenus/envEffectAdd.py @@ -102,9 +102,9 @@ class AddEnvironmentEffect(ContextMenuUnconditional): def getData(self): data = Group() - data.groups['Metaliminal Storm'] = self.getEffectBeacons( - 'Electrical', 'Exotic', 'Gamma', 'Plasma', - extra_garbage=('Metaliminal', 'Storm', 'Matter', 'Ray', 'Firestorm')) + # data.groups['Metaliminal Storm'] = self.getEffectBeacons( + # 'Electrical', 'Exotic', 'Gamma', 'Plasma', + # extra_garbage=('Metaliminal', 'Storm', 'Matter', 'Ray', 'Firestorm')) data.groups['Wormhole'] = self.getEffectBeacons( 'Black Hole', 'Cataclysmic Variable', 'Magnetar', 'Pulsar', 'Red Giant', 'Wolf Rayet') diff --git a/service/port/eft.py b/service/port/eft.py index c9db04d9c..585b8d0f1 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -598,7 +598,7 @@ def _importCreateFit(lines): """Create fit and set top-level entity (ship or citadel).""" fit = Fit() header = lines.pop(0) - m = re.match('\[(?P[\w\s]+),\s*(?P.+)\]', header) + m = re.match('\[(?P[^,]+),\s*(?P.+)\]', header) if not m: pyfalog.warning('service.port.eft.importEft: corrupted fit header') raise EftImportError diff --git a/version.yml b/version.yml index 97f405e70..9ecadc3f6 100644 --- a/version.yml +++ b/version.yml @@ -1 +1 @@ -version: v2.24.1 +version: v2.25.0