Update how mining waste is processed, to make it in line with new effects
This commit is contained in:
@@ -3781,8 +3781,18 @@ class Effect1200(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, module, context, projectionRange, **kwargs):
|
||||
module.multiplyItemAttr('specialtyMiningAmount',
|
||||
module.getModifiedChargeAttr('specializationAsteroidYieldMultiplier'), **kwargs)
|
||||
module.multiplyItemAttr(
|
||||
'miningAmount',
|
||||
module.getModifiedChargeAttr('specializationAsteroidYieldMultiplier'),
|
||||
**kwargs)
|
||||
module.increaseItemAttr(
|
||||
'miningWastedVolumeMultiplier',
|
||||
module.getModifiedChargeAttr('specializationCrystalMiningWastedVolumeMultiplierBonus'),
|
||||
**kwargs)
|
||||
module.increaseItemAttr(
|
||||
'miningWasteProbability',
|
||||
module.getModifiedChargeAttr('specializationCrystalMiningWasteProbabilityBonus'),
|
||||
**kwargs)
|
||||
|
||||
|
||||
class Effect1212(BaseEffect):
|
||||
@@ -36846,9 +36856,9 @@ class Effect8119(BaseEffect):
|
||||
fit.ship.multiplyItemAttr('mass', src.getModifiedItemAttr('siegeMassMultiplier'), **kwargs)
|
||||
|
||||
# Local Shield Repper Bonuses
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Capital Shield Operation'),
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Shield Operation'),
|
||||
'duration', src.getModifiedItemAttr('industrialCoreLocalLogisticsDurationBonus'), **kwargs)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Capital Shield Operation'),
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Shield Operation'),
|
||||
'shieldBonus', src.getModifiedItemAttr('industrialCoreLocalLogisticsAmountBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
|
||||
|
||||
@@ -263,9 +263,9 @@ class Drone(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut, Mu
|
||||
cycleTime = cycleParams.averageTime
|
||||
yield_ = sum([getter(d) for d in self.MINING_ATTRIBUTES]) * self.amountActive
|
||||
yps = yield_ / (cycleTime / 1000.0)
|
||||
wasteChance = max(0, min(100, self.getModifiedItemAttr("miningWasteProbability")))
|
||||
wasteChance = self.getModifiedItemAttr("miningWasteProbability")
|
||||
wasteMult = self.getModifiedItemAttr("miningWastedVolumeMultiplier")
|
||||
wps = yps * (wasteChance / 100) * wasteMult
|
||||
wps = yps * max(0, min(1, wasteChance / 100)) * wasteMult
|
||||
return yps, wps
|
||||
else:
|
||||
return 0, 0
|
||||
|
||||
@@ -426,7 +426,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut, M
|
||||
if self.isEmpty:
|
||||
return 0, 0
|
||||
if self.state >= FittingModuleState.ACTIVE:
|
||||
yield_ = self.getModifiedItemAttr("specialtyMiningAmount") or self.getModifiedItemAttr("miningAmount") or 0
|
||||
yield_ = self.getModifiedItemAttr("miningAmount")
|
||||
if yield_:
|
||||
cycleParams = self.getCycleParameters()
|
||||
if cycleParams is None:
|
||||
@@ -440,11 +440,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut, M
|
||||
yps = 0
|
||||
wasteChance = self.getModifiedItemAttr("miningWasteProbability")
|
||||
wasteMult = self.getModifiedItemAttr("miningWastedVolumeMultiplier")
|
||||
if self.charge is not None:
|
||||
wasteChance += self.getModifiedChargeAttr("specializationCrystalMiningWasteProbabilityBonus", 0)
|
||||
wasteMult *= self.getModifiedChargeAttr("specializationCrystalMiningWastedVolumeMultiplierBonus", 1)
|
||||
wasteChance = max(0, min(100, wasteChance))
|
||||
wps = yps * (wasteChance / 100) * wasteMult
|
||||
wps = yps * max(0, min(1, wasteChance / 100)) * wasteMult
|
||||
return yps, wps
|
||||
|
||||
def isDealingDamage(self, ignoreState=False):
|
||||
|
||||
Reference in New Issue
Block a user