Moved neut reduction logic into fit.py

This commit is contained in:
Ebag333
2016-07-17 13:43:52 -07:00
parent 60288204fc
commit a2c0049488
9 changed files with 36 additions and 146 deletions

View File

@@ -1,10 +1,9 @@
# Not used by any item
from eos.types import State
type = "active", "projected"
def handler(fit, container, context):
if "projected" in context and ((hasattr(container, "state") \
and container.state >= State.ACTIVE) or hasattr(container, "amountActive")):
multiplier = container.amountActive if hasattr(container, "amountActive") else 1
amount = container.getModifiedItemAttr("energyNeutralizerAmount")
time = container.getModifiedItemAttr("duration")
fit.addDrain(time, amount * multiplier, 0)
def handler(fit, src, context):
if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or hasattr(src, "amountActive")):
multiplier = src.amountActive if hasattr(src, "amountActive") else 1
amount = src.getModifiedItemAttr("energyNeutralizerAmount")
time = src.getModifiedItemAttr("duration")
fit.addDrain(src, time, amount * multiplier, 0)

View File

@@ -10,30 +10,5 @@ def handler(fit, src, context):
if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or hasattr(src, "amountActive")):
amount = src.getModifiedItemAttr("energyNeutralizerAmount")
time = src.getModifiedItemAttr("duration")
rigSize = fit.ship.getModifiedItemAttr("rigSize")
modifierLarge = src.getModifiedItemAttr("entityCapacitorLevelModifierLarge")
modifierMedium = src.getModifiedItemAttr("entityCapacitorLevelModifierMedium")
modifierSmall = src.getModifiedItemAttr("entityCapacitorLevelModifierSmall")
energyNeutralizerSignatureResolution = src.getModifiedItemAttr("energyNeutralizerSignatureResolution")
signatureRadius = fit.ship.getModifiedItemAttr("signatureRadius")
#Signature reduction, uses the bomb formula as per CCP Larrikin
if energyNeutralizerSignatureResolution:
sigRatio = signatureRadius/energyNeutralizerSignatureResolution
sigReductionList = [1, sigRatio]
amount = amount*min(sigReductionList)
#Small rigged ships
if (rigSize == 1) and modifierSmall:
amount = amount*modifierSmall
#Medium rigged ships
if (rigSize == 2) and modifierMedium:
amount = amount*modifierMedium
#Large rigged ships
if (rigSize == 3) and modifierLarge:
amount = amount*modifierLarge
fit.addDrain(time, amount, 0)
fit.addDrain(src, time, amount, 0)

View File

@@ -10,30 +10,5 @@ def handler(fit, src, context):
if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or hasattr(src, "amountActive")):
amount = src.getModifiedItemAttr("energyNeutralizerAmount")
time = src.getModifiedItemAttr("duration")
rigSize = fit.ship.getModifiedItemAttr("rigSize")
modifierLarge = src.getModifiedItemAttr("entityCapacitorLevelModifierLarge")
modifierMedium = src.getModifiedItemAttr("entityCapacitorLevelModifierMedium")
modifierSmall = src.getModifiedItemAttr("entityCapacitorLevelModifierSmall")
energyNeutralizerSignatureResolution = src.getModifiedItemAttr("energyNeutralizerSignatureResolution")
signatureRadius = fit.ship.getModifiedItemAttr("signatureRadius")
#Signature reduction, uses the bomb formula as per CCP Larrikin
if energyNeutralizerSignatureResolution:
sigRatio = signatureRadius/energyNeutralizerSignatureResolution
sigReductionList = [1, sigRatio]
amount = amount*min(sigReductionList)
#Small rigged ships
if (rigSize == 1) and modifierSmall:
amount = amount*modifierSmall
#Medium rigged ships
if (rigSize == 2) and modifierMedium:
amount = amount*modifierMedium
#Large rigged ships
if (rigSize == 3) and modifierLarge:
amount = amount*modifierLarge
fit.addDrain(time, amount, 0)
fit.addDrain(src, time, amount, 0)

View File

@@ -9,33 +9,8 @@ runTime = "late"
def handler(fit, src, context):
amount = src.getModifiedItemAttr("powerTransferAmount")
time = src.getModifiedItemAttr("duration")
rigSize = fit.ship.getModifiedItemAttr("rigSize")
modifierLarge = src.getModifiedItemAttr("entityCapacitorLevelModifierLarge")
modifierMedium = src.getModifiedItemAttr("entityCapacitorLevelModifierMedium")
modifierSmall = src.getModifiedItemAttr("entityCapacitorLevelModifierSmall")
energyNeutralizerSignatureResolution = src.getModifiedItemAttr("energyNeutralizerSignatureResolution")
signatureRadius = fit.ship.getModifiedItemAttr("signatureRadius")
if "projected" in context:
# Signature reduction, uses the bomb formula as per CCP Larrikin
if energyNeutralizerSignatureResolution:
sigRatio = signatureRadius / energyNeutralizerSignatureResolution
sigReductionList = [1, sigRatio]
amount = amount * min(sigReductionList)
#Small rigged ships
if (rigSize == 1) and modifierSmall:
amount = amount*modifierSmall
#Medium rigged ships
if (rigSize == 2) and modifierMedium:
amount = amount*modifierMedium
#Large rigged ships
if (rigSize == 3) and modifierLarge:
amount = amount*modifierLarge
fit.addDrain(time, amount, 0)
fit.addDrain(src, time, amount, 0)
elif "module" in context:
src.itemModifiedAttributes.force("capacitorNeed", -amount)

View File

@@ -1,7 +1,7 @@
# Not used by any item
type = "projected", "active"
def handler(fit, module, context):
def handler(fit, src, context):
if "projected" in context:
amount = module.getModifiedItemAttr("powerTransferAmount")
duration = module.getModifiedItemAttr("duration")
fit.addDrain(duration, -amount, 0)
amount = src.getModifiedItemAttr("powerTransferAmount")
duration = src.getModifiedItemAttr("duration")
fit.addDrain(src, duration, -amount, 0)

View File

@@ -10,30 +10,5 @@ def handler(fit, src, context):
if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or hasattr(src, "amountActive")):
amount = src.getModifiedItemAttr("energyNeutralizerAmount")
time = src.getModifiedItemAttr("energyNeutralizerDuration")
rigSize = fit.ship.getModifiedItemAttr("rigSize")
modifierLarge = src.getModifiedItemAttr("entityCapacitorLevelModifierLarge")
modifierMedium = src.getModifiedItemAttr("entityCapacitorLevelModifierMedium")
modifierSmall = src.getModifiedItemAttr("entityCapacitorLevelModifierSmall")
energyNeutralizerSignatureResolution = src.getModifiedItemAttr("energyNeutralizerSignatureResolution")
signatureRadius = fit.ship.getModifiedItemAttr("signatureRadius")
#Signature reduction, uses the bomb formula as per CCP Larrikin
if energyNeutralizerSignatureResolution:
sigRatio = signatureRadius/energyNeutralizerSignatureResolution
sigReductionList = [1, sigRatio]
amount = amount*min(sigReductionList)
#Small rigged ships
if (rigSize == 1) and modifierSmall:
amount = amount*modifierSmall
#Medium rigged ships
if (rigSize == 2) and modifierMedium:
amount = amount*modifierMedium
#Large rigged ships
if (rigSize == 3) and modifierLarge:
amount = amount*modifierLarge
fit.addDrain(time, amount, 0)
fit.addDrain(src, time, amount, 0)

View File

@@ -13,30 +13,5 @@ def handler(fit, src, context):
if "projected" in context:
amount = src.getModifiedItemAttr("{}Amount".format(prefix))
time = src.getModifiedItemAttr("{}Duration".format(prefix))
rigSize = fit.ship.getModifiedItemAttr("rigSize")
modifierLarge = src.getModifiedItemAttr("entityCapacitorLevelModifierLarge")
modifierMedium = src.getModifiedItemAttr("entityCapacitorLevelModifierMedium")
modifierSmall = src.getModifiedItemAttr("entityCapacitorLevelModifierSmall")
energyNeutralizerSignatureResolution = src.getModifiedItemAttr("energyNeutralizerSignatureResolution")
signatureRadius = fit.ship.getModifiedItemAttr("signatureRadius")
#Signature reduction, uses the bomb formula as per CCP Larrikin
if energyNeutralizerSignatureResolution:
sigRatio = signatureRadius/energyNeutralizerSignatureResolution
sigReductionList = [1, sigRatio]
amount = amount*min(sigReductionList)
# Small rigged ships
if (rigSize == 1) and modifierSmall:
amount = amount * modifierSmall
# Medium rigged ships
if (rigSize == 2) and modifierMedium:
amount = amount * modifierMedium
# Large rigged ships
if (rigSize == 3) and modifierLarge:
amount = amount * modifierLarge
fit.addDrain(time, amount, 0)
fit.addDrain(src, time, amount, 0)

View File

@@ -3,8 +3,8 @@
# Used by:
# Modules from group: Remote Capacitor Transmitter (41 of 41)
type = "projected", "active"
def handler(fit, module, context):
def handler(fit, src, context):
if "projected" in context:
amount = module.getModifiedItemAttr("powerTransferAmount")
duration = module.getModifiedItemAttr("duration")
fit.addDrain(duration, -amount, 0)
amount = src.getModifiedItemAttr("powerTransferAmount")
duration = src.getModifiedItemAttr("duration")
fit.addDrain(src, duration, -amount, 0)