Implement effects and buffs related to expedition bursts

This commit is contained in:
DarkPhoenix
2025-10-30 12:44:08 +01:00
parent 6843373283
commit a00a80b4e4
3 changed files with 87 additions and 0 deletions

View File

@@ -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

View File

@@ -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]

View File

@@ -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)