Fixed a few fighter/carrier bugs:

* Omnidirectional Tracking Link overheat applies to explosion radius/velocity bonuses.
* Networked Sensor Array affects fighters' sensor strengths.
* Long range heavy fighters no longer appear to require Bomb Deployment.
* Carriers and supercarriers are no longer capped at 300km lock range.
This commit is contained in:
Mr. Nukealizer
2016-09-30 20:08:46 -07:00
parent 23a6849fe3
commit 5467a58b04
4 changed files with 18 additions and 5 deletions

View File

@@ -4,13 +4,18 @@
# Module: Networked Sensor Array
type = "active"
def handler(fit, src, context):
fit.ship.multiplyItemAttr("maxTargetRange", src.getModifiedItemAttr("maxTargetRangeMultiplier"), stackingPenalties=True, penaltyGroup="postMul")
fit.ship.boostItemAttr("scanResolution", src.getModifiedItemAttr("scanResolutionBonus"), stackingPenalties=True)
for scanType in ('Magnetometric', 'Ladar', 'Gravimetric', 'Radar'):
fit.ship.boostItemAttr("scan{}Strength".format(scanType),
src.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)),
stackingPenalties=True)
for fighter in fit.fighters:
for scanType in ('Magnetometric', 'Ladar', 'Gravimetric', 'Radar'):
fighter.boostItemAttr("scan{}Strength".format(scanType),
src.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)),
stackingPenalties=True)
# EW cap need increase
groups = [

View File

@@ -4,6 +4,9 @@
# Modules from group: Drone Tracking Modules (10 of 10)
type = "overheat"
def handler(fit, module, context):
module.boostItemAttr("maxRangeBonus", module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus"))
module.boostItemAttr("falloffBonus", module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus"))
module.boostItemAttr("trackingSpeedBonus", module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus"))
overloadBonus = module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus")
module.boostItemAttr("maxRangeBonus", overloadBonus)
module.boostItemAttr("falloffBonus", overloadBonus)
module.boostItemAttr("trackingSpeedBonus", overloadBonus)
module.boostItemAttr("aoeCloudSizeBonus", overloadBonus)
module.boostItemAttr("aoeVelocityBonus", overloadBonus)

View File

@@ -17,7 +17,7 @@
# along with eos. If not, see <http://www.gnu.org/licenses/>.
#===============================================================================
from eos.modifiedAttributeDict import ModifiedAttributeDict, ItemAttrShortcut
from eos.modifiedAttributeDict import ModifiedAttributeDict, ItemAttrShortcut, cappingAttrKeyCache
from eos.effectHandlerHelpers import HandledItem
from eos.saveddata.mode import Mode
import eos.db
@@ -52,6 +52,9 @@ class Ship(ItemAttrShortcut, HandledItem):
self.__itemModifiedAttributes.original = dict(self.item.attributes)
self.__itemModifiedAttributes.original.update(self.EXTRA_ATTRIBUTES)
self.__itemModifiedAttributes.overrides = self.item.overrides
if "maximumRangeCap" in self.__itemModifiedAttributes.original:
cappingAttrKeyCache["maxTargetRange"] = "maximumRangeCap"
# there are occasions when we need to get to the parent fit of the ship, such as when we need the character
# skills for ship-role gang boosts (Titans)

View File

@@ -369,6 +369,8 @@ class Character(object):
subThing = getattr(thing, attr, None)
subReqs = {}
if subThing is not None:
if isinstance(thing, eos.types.Fighter) and attr == "charge":
continue
self._checkRequirements(fit, fit.character, subThing, subReqs)
if subReqs:
reqs[subThing] = subReqs