From e0377a084f156033be35a9afa42a93bc1bc7671c Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 2 Dec 2021 14:15:29 +0300 Subject: [PATCH] Update how mining waste is processed, to make it in line with new effects --- eos/effects.py | 18 ++++++++++++++---- eos/saveddata/drone.py | 4 ++-- eos/saveddata/module.py | 8 ++------ 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/eos/effects.py b/eos/effects.py index d425f6ee8..46d2c741d 100644 --- a/eos/effects.py +++ b/eos/effects.py @@ -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) diff --git a/eos/saveddata/drone.py b/eos/saveddata/drone.py index 5cebbf5c0..5525bb320 100644 --- a/eos/saveddata/drone.py +++ b/eos/saveddata/drone.py @@ -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 diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index 8a7e27722..331e1125e 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -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):