Rework how toggling factor reload works

This commit is contained in:
DarkPhoenix
2019-07-05 09:10:23 +03:00
parent 63ca8dc559
commit e6dce726b7
16 changed files with 91 additions and 48 deletions

View File

@@ -137,9 +137,15 @@ class Fit(object):
self.ecmProjectedStr = 1
self.commandBonuses = {}
@property
def hasDpsData(self):
return len(self.__weaponDpsMap) > 0
def clearFactorReloadDependentData(self):
# Here we clear all data known to rely on cycle parameters
# (which, in turn, relies on factor reload flag)
self.__weaponDpsMap.clear()
self.__remoteRepMap.clear()
self.__capStable = None
self.__capState = None
self.__capUsed = None
self.__capRecharge = None
@property
def targetResists(self):

View File

@@ -507,13 +507,6 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
rrAmount = module.getModifiedItemAttr("powerTransferAmount", 0)
else:
return None, 0
if rrAmount:
cycleParams = self.getCycleParameters()
if cycleParams is None:
return None, 0
rrAmount *= 1 / (cycleParams.averageTime / 1000)
if module.item.group.name == "Ancillary Remote Armor Repairer" and module.charge:
rrAmount *= module.getModifiedItemAttr("chargedArmorDamageMultiplier", 1)
return rrType, rrAmount
@@ -522,6 +515,14 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
rrType, rrAmount = self.__baseRemoteReps
if rrAmount:
cycleParams = self.getCycleParameters()
if cycleParams is None:
return None, 0
rrAmount *= 1 / (cycleParams.averageTime / 1000)
if self.item.group.name == "Ancillary Remote Armor Repairer" and self.charge:
rrAmount *= self.getModifiedItemAttr("chargedArmorDamageMultiplier", 1)
if rrType and rrAmount and self.item.group.name == "Mutadaptive Remote Armor Repairer":
spoolType, spoolAmount = resolveSpoolOptions(spoolOptions, self)
spoolBoost = calculateSpoolup(