Implement effects and buffs related to expedition bursts
This commit is contained in:
@@ -41715,6 +41715,43 @@ class Effect12529(BaseEffect):
|
||||
skill='Amarr Battlecruiser', **kwargs)
|
||||
|
||||
|
||||
class Effect12530(BaseEffect):
|
||||
"""
|
||||
expeditionCommandDurationBonus
|
||||
|
||||
Used by:
|
||||
Skill: Expedition Command
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
lvl = src.level
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Expedition Command'), 'buffDuration',
|
||||
src.getModifiedItemAttr('durationBonus') * lvl, **kwargs)
|
||||
|
||||
|
||||
class Effect12531(BaseEffect):
|
||||
"""
|
||||
expeditionCommandStrengthBonus
|
||||
|
||||
Used by:
|
||||
Skill: Expedition Command Specialist
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
lvl = src.level
|
||||
for i in (1, 2, 3, 4):
|
||||
fit.modules.filteredChargeBoost(
|
||||
lambda mod: mod.item.requiresSkill('Expedition Command'), f'warfareBuff{i}Multiplier',
|
||||
src.getModifiedItemAttr('commandStrengthBonus') * lvl, **kwargs)
|
||||
|
||||
|
||||
class Effect12537(BaseEffect):
|
||||
"""
|
||||
shipBonusAnalyzerRangeECS1
|
||||
@@ -41802,6 +41839,24 @@ class Effect12541(BaseEffect):
|
||||
src.getModifiedItemAttr('shipBonusGasCloudScoopCPUreductionSOEECSrole'), **kwargs)
|
||||
|
||||
|
||||
class Effect12542(BaseEffect):
|
||||
"""
|
||||
expeditionCommandMindlink
|
||||
|
||||
Used by:
|
||||
Implants named like: Expedition Command Mindlink (2 of 2)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
for attrName in ('buffDuration', 'warfareBuff1Value', 'warfareBuff2Value', 'warfareBuff3Value', 'warfareBuff4Value'):
|
||||
fit.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.requiresSkill('Expedition Command'), attrName,
|
||||
src.getModifiedItemAttr('mindlinkBonus'), **kwargs)
|
||||
|
||||
|
||||
class Effect12543(BaseEffect):
|
||||
"""
|
||||
shipBonusRole6ExpeditionBurstDurationSOEECS
|
||||
|
||||
@@ -925,8 +925,25 @@ class Fit:
|
||||
lambda mod: (mod.item.requiresSkill("Repair Systems")
|
||||
or mod.item.requiresSkill("Capital Repair Systems")),
|
||||
"armorDamageAmount", value, stackingPenalties=True)
|
||||
if warfareBuffID == 2464: # Expedition Burst: Probe Strength
|
||||
self.modules.filteredChargeBoost(
|
||||
lambda mod: mod.charge.requiresSkill('Astrometrics'),
|
||||
'baseSensorStrength', value, stackingPenalties=True)
|
||||
if warfareBuffID == 2465: # Expedition Burst: Directional Scanner, Hacking and Salvager Range
|
||||
self.ship.boostItemAttr("maxDirectionalScanRange", value)
|
||||
self.modules.filteredItemBoost(
|
||||
lambda mod: mod.item.group.name in ("Data Miners", "Salvager"), "maxRange", value, stackingPenalties=True)
|
||||
if warfareBuffID == 2466: # Expedition Burst: Maximum Scan Deviation Modifier
|
||||
self.modules.filteredChargeBoost(
|
||||
lambda mod: mod.charge.requiresSkill('Astrometrics'),
|
||||
'baseMaxScanDeviation', value, stackingPenalties=True)
|
||||
if warfareBuffID == 2468: # Expedition Burst: Virus Coherence
|
||||
self.modules.filteredItemIncrease(
|
||||
lambda mod: mod.item.group.name == "Data Miners", "virusCoherence", value)
|
||||
if warfareBuffID == 2474: # Mining burst charges
|
||||
self.ship.forceItemAttr("miningScannerUpgrade", value)
|
||||
if warfareBuffID == 2481: # Expedition Burst: Salvager duration bonus
|
||||
self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), "duration", value)
|
||||
|
||||
del self.commandBonuses[warfareBuffID]
|
||||
|
||||
|
||||
@@ -775,6 +775,21 @@ class Miscellanea(ViewColumn):
|
||||
elif buffId == 25: # Mining Burst: Mining Equipment Preservation: Crystal Volatility
|
||||
textSections.append(f"{formatAmount(buffValue, 3, 0, 3, forceSign=True)}%")
|
||||
tooltipSections.append("mining crystal volatility")
|
||||
elif buffId == 2464: # Expedition Burst: Probe Strength
|
||||
textSections.append(f"{formatAmount(buffValue, 3, 0, 3, forceSign=True)}%")
|
||||
tooltipSections.append("scan probe strength")
|
||||
elif buffId == 2465: # Expedition Burst: Directional Scanner, Hacking and Salvager Range
|
||||
textSections.append(f"{formatAmount(buffValue, 3, 0, 3, forceSign=True)}%")
|
||||
tooltipSections.append("dscan, hacking & salvaging range")
|
||||
elif buffId == 2466: # Expedition Burst: Maximum Scan Deviation Modifier
|
||||
textSections.append(f"{formatAmount(buffValue, 3, 0, 3, forceSign=True)}%")
|
||||
tooltipSections.append("scan probe deviation")
|
||||
elif buffId == 2468: # Expedition Burst: Virus Coherence
|
||||
textSections.append(f"{formatAmount(buffValue, 3, 0, 3, forceSign=True)}")
|
||||
tooltipSections.append("virus coherence")
|
||||
elif buffId == 2481: # Expedition Burst: Salvager duration bonus
|
||||
textSections.append(f"{formatAmount(buffValue, 3, 0, 3, forceSign=True)}%")
|
||||
tooltipSections.append("salvager cycle time")
|
||||
if not textSections:
|
||||
return '', None
|
||||
text = ' | '.join(textSections)
|
||||
|
||||
Reference in New Issue
Block a user