Update effects
This commit is contained in:
199
eos/effects.py
199
eos/effects.py
@@ -5986,7 +5986,7 @@ class Effect2013(BaseEffect):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def handler(fit, container, context, projectionRange, **kwargs):
|
def handler(fit, container, context, projectionRange, **kwargs):
|
||||||
level = container.level if 'skill' in context else 1
|
level = container.level if 'skill' in context else 1
|
||||||
penalties = False if 'implant' in context else True
|
penalties = False if 'implant' in context or 'booster' in context else True
|
||||||
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill('Drones'),
|
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill('Drones'),
|
||||||
'maxVelocity', container.getModifiedItemAttr('droneMaxVelocityBonus') * level,
|
'maxVelocity', container.getModifiedItemAttr('droneMaxVelocityBonus') * level,
|
||||||
stackingPenalties=penalties, **kwargs)
|
stackingPenalties=penalties, **kwargs)
|
||||||
@@ -6867,6 +6867,51 @@ class Effect2255(BaseEffect):
|
|||||||
type = 'active'
|
type = 'active'
|
||||||
|
|
||||||
|
|
||||||
|
class Effect2296(BaseEffect):
|
||||||
|
"""
|
||||||
|
modifyArmorResonancePassivePostPercentPassive
|
||||||
|
|
||||||
|
Used by:
|
||||||
|
Implants named like: Halcyon Y Booster (5 of 5)
|
||||||
|
"""
|
||||||
|
|
||||||
|
type = 'passive'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def handler(fit, booster, context, projectionRange, **kwargs):
|
||||||
|
for srcResType, tgtResType in (
|
||||||
|
('Em', 'Em'),
|
||||||
|
('Explosive', 'Explosive'),
|
||||||
|
('Kinetic', 'Kinetic'),
|
||||||
|
('Thermic', 'Thermal')
|
||||||
|
):
|
||||||
|
fit.ship.boostItemAttr(f'armor{tgtResType}DamageResonance',
|
||||||
|
booster.getModifiedItemAttr(f'passive{srcResType}DamageResistanceBonus'), **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class Effect2297(BaseEffect):
|
||||||
|
"""
|
||||||
|
modifyShieldResonancePassivePostPercentPassive
|
||||||
|
|
||||||
|
Used by:
|
||||||
|
Implants named like: Halcyon B Booster (5 of 5)
|
||||||
|
Implants named like: Hunt Resistance Booster (4 of 4)
|
||||||
|
"""
|
||||||
|
|
||||||
|
type = 'passive'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||||
|
for srcResType, tgtResType in (
|
||||||
|
('Em', 'Em'),
|
||||||
|
('Explosive', 'Explosive'),
|
||||||
|
('Kinetic', 'Kinetic'),
|
||||||
|
('Thermic', 'Thermal')
|
||||||
|
):
|
||||||
|
fit.ship.boostItemAttr(f'shield{tgtResType}DamageResonance',
|
||||||
|
ship.getModifiedItemAttr(f'passive{srcResType}DamageResistanceBonus'), **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class Effect2298(BaseEffect):
|
class Effect2298(BaseEffect):
|
||||||
"""
|
"""
|
||||||
scanStrengthBonusPercentPassive
|
scanStrengthBonusPercentPassive
|
||||||
@@ -13574,9 +13619,9 @@ class Effect4161(BaseEffect):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def handler(fit, container, context, projectionRange, **kwargs):
|
def handler(fit, container, context, projectionRange, **kwargs):
|
||||||
level = container.level if 'skill' in context else 1
|
level = container.level if 'skill' in context else 1
|
||||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Astrometrics'),
|
fit.modules.filteredChargeBoost(
|
||||||
'baseMaxScanDeviation',
|
lambda mod: mod.charge.requiresSkill('Astrometrics'), 'baseMaxScanDeviation',
|
||||||
container.getModifiedItemAttr('maxScanDeviationModifier') * level, **kwargs)
|
container.getModifiedItemAttr('maxScanDeviationModifier') * level, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class Effect4162(BaseEffect):
|
class Effect4162(BaseEffect):
|
||||||
@@ -37649,6 +37694,23 @@ class Effect8264(BaseEffect):
|
|||||||
skill='Industrial Command Ships', **kwargs)
|
skill='Industrial Command Ships', **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class Effect8270(BaseEffect):
|
||||||
|
"""
|
||||||
|
capacitorWarfareResistanceBonusPassive
|
||||||
|
|
||||||
|
Used by:
|
||||||
|
Implants named like: Halcyon Y Booster (5 of 5)
|
||||||
|
"""
|
||||||
|
|
||||||
|
type = 'passive'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def handler(fit, container, context, projectionRange, **kwargs):
|
||||||
|
fit.ship.boostItemAttr(
|
||||||
|
'energyWarfareResistance',
|
||||||
|
container.getModifiedItemAttr('energyWarfareResistanceBonus'), **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class Effect8275(BaseEffect):
|
class Effect8275(BaseEffect):
|
||||||
"""
|
"""
|
||||||
minmatarIndustrialBonusGasHoldCapacity
|
minmatarIndustrialBonusGasHoldCapacity
|
||||||
@@ -38077,3 +38139,132 @@ class Effect8377(BaseEffect):
|
|||||||
fit.modules.filteredItemIncrease(
|
fit.modules.filteredItemIncrease(
|
||||||
lambda mod: mod.item.group.name == 'Reinforced Bulkhead',
|
lambda mod: mod.item.group.name == 'Reinforced Bulkhead',
|
||||||
'structureHPMultiplier', ship.getModifiedItemAttr('battleshipBulkheadHPModifierBonus'), **kwargs)
|
'structureHPMultiplier', ship.getModifiedItemAttr('battleshipBulkheadHPModifierBonus'), **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class Effect8467(BaseEffect):
|
||||||
|
"""
|
||||||
|
modifyJumpConduitPassengerRequired
|
||||||
|
|
||||||
|
Used by:
|
||||||
|
Module: Covert Jump Portal Generator I
|
||||||
|
Module: Industrial Jump Portal Generator I
|
||||||
|
"""
|
||||||
|
|
||||||
|
type = 'passive'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def handler(fit, module, context, projectionRange, **kwargs):
|
||||||
|
module.forceItemAttr(
|
||||||
|
'jumpConduitPassengerRequiredAttributeID',
|
||||||
|
module.getModifiedChargeAttr('jumpConduitPassengerRequiredAttributeID'), **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class Effect8468(BaseEffect):
|
||||||
|
"""
|
||||||
|
subsystemBonusBlackOpsJumpPassenger
|
||||||
|
|
||||||
|
Used by:
|
||||||
|
Subsystems named like: Defensive Covert Reconfiguration (4 of 4)
|
||||||
|
"""
|
||||||
|
|
||||||
|
type = 'passive'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def handler(fit, module, context, projectionRange, **kwargs):
|
||||||
|
module.forceItemAttr(
|
||||||
|
'isBlackOpsJumpPortalPassenger', module.getModifiedChargeAttr('isBlackOpsJumpPortalPassenger'), **kwargs)
|
||||||
|
module.forceItemAttr(
|
||||||
|
'isBlackOpsJumpConduitPassenger', module.getModifiedChargeAttr('isBlackOpsJumpConduitPassenger'), **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class Effect8470(BaseEffect):
|
||||||
|
"""
|
||||||
|
capitalIndustrialCommandBonusDroneDamage
|
||||||
|
|
||||||
|
Used by:
|
||||||
|
Ship: Rorqual
|
||||||
|
"""
|
||||||
|
|
||||||
|
type = 'passive'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def handler(fit, container, context, projectionRange, **kwargs):
|
||||||
|
fit.drones.filteredItemBoost(
|
||||||
|
lambda drone: drone.item.requiresSkill('Drones'), 'damageMultiplier',
|
||||||
|
container.getModifiedItemAttr('capitalIndustrialCommandBonusDroneDamage'),
|
||||||
|
skill='Capital Industrial Ships', **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class Effect8474(BaseEffect):
|
||||||
|
"""
|
||||||
|
subsystemBonusMassAddition
|
||||||
|
|
||||||
|
Used by:
|
||||||
|
Subsystem: Proteus Defensive - Augmented Plating
|
||||||
|
"""
|
||||||
|
|
||||||
|
runTime = 'early'
|
||||||
|
type = 'passive'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||||
|
fit.modules.filteredItemBoost(
|
||||||
|
lambda mod: mod.item.group.name == 'Armor Plate', 'massAddition',
|
||||||
|
ship.getModifiedItemAttr('subsystemBonusMassAddition'), **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class Effect8477(BaseEffect):
|
||||||
|
"""
|
||||||
|
droneTrackingBonusPassive
|
||||||
|
|
||||||
|
Used by:
|
||||||
|
Implants named like: Halcyon R Booster (5 of 5)
|
||||||
|
Implants named like: Hunt Drone Precision Booster (4 of 4)
|
||||||
|
"""
|
||||||
|
|
||||||
|
type = 'passive'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def handler(fit, container, context, projectionRange, **kwargs):
|
||||||
|
fit.drones.filteredItemBoost(
|
||||||
|
lambda drone: drone.item.requiresSkill('Drones'), 'trackingSpeed',
|
||||||
|
container.getModifiedItemAttr('droneTrackingBonus'), **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class Effect8478(BaseEffect):
|
||||||
|
"""
|
||||||
|
miningAndIceHarvestingCycleTimeBonusPassive
|
||||||
|
|
||||||
|
Used by:
|
||||||
|
Implants named like: Halcyon B Booster (5 of 5)
|
||||||
|
Implants named like: Halcyon G Booster (5 of 5)
|
||||||
|
"""
|
||||||
|
|
||||||
|
type = 'passive'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def handler(fit, skill, context, projectionRange, **kwargs):
|
||||||
|
fit.modules.filteredItemBoost(
|
||||||
|
lambda mod: mod.item.requiresSkill('Ice Harvesting') or mod.item.requiresSkill('Mining'),
|
||||||
|
'duration', skill.getModifiedItemAttr('iceHarvestCycleBonus'), **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class Effect8479(BaseEffect):
|
||||||
|
"""
|
||||||
|
droneOptimalFalloffBonusPassive
|
||||||
|
|
||||||
|
Used by:
|
||||||
|
Implants named like: Halcyon Y Booster (5 of 5)
|
||||||
|
Implants named like: Hunt Drone Precision Booster (4 of 4)
|
||||||
|
"""
|
||||||
|
|
||||||
|
type = 'passive'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def handler(fit, container, context, projectionRange, **kwargs):
|
||||||
|
fit.drones.filteredItemBoost(
|
||||||
|
lambda drone: drone.item.requiresSkill('Drones'), 'maxRange',
|
||||||
|
container.getModifiedItemAttr('rangeSkillBonus'), **kwargs)
|
||||||
|
fit.drones.filteredItemBoost(
|
||||||
|
lambda drone: drone.item.requiresSkill('Drones'), 'falloff',
|
||||||
|
container.getModifiedItemAttr('falloffBonus'), **kwargs)
|
||||||
|
|||||||
Reference in New Issue
Block a user