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:
@@ -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 = [
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user