From c1afa7c3852c22cb1a015fbcd9f0e69b574c3595 Mon Sep 17 00:00:00 2001 From: Kevin Chang Date: Fri, 14 Aug 2015 19:16:49 -0700 Subject: [PATCH] Additional refinement to "Optimize Mass" preset --- app/js/controllers/controller-outfit.js | 3 ++- app/js/shipyard/factory-component-set.js | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/js/controllers/controller-outfit.js b/app/js/controllers/controller-outfit.js index 2c52a292..48f8f3ac 100755 --- a/app/js/controllers/controller-outfit.js +++ b/app/js/controllers/controller-outfit.js @@ -211,13 +211,14 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', ' ship.hardpoints.forEach(function(slot) { ship.use(slot, null, null); }); ship.internal.forEach(function(slot) { ship.use(slot, null, null); }); ship.useBulkhead(0); - ship.use(common[1], common[1].maxClass + 'D', Components.common(1, common[1].maxClass + 'D')); // Thrusters ship.use(common[2], common[2].maxClass + 'A', Components.common(2, common[2].maxClass + 'A')); // FSD ship.use(common[3], common[3].maxClass + 'D', Components.common(3, common[3].maxClass + 'D')); // Life Support ship.use(common[5], common[5].maxClass + 'D', Components.common(5, common[5].maxClass + 'D')); // Sensors var pd = $scope.availCS.lightestPowerDist(ship.boostEnergy); // Find lightest Power Distributor that can still boost ship.use(ship.common[4], pd, Components.common(4, pd)); + var th = $scope.availCS.lightestThruster(ship.ladenMass); // Find lightest Thruster that still works for the ship at max mass + ship.use(ship.common[1], th, Components.common(1, th)); var pp = $scope.availCS.lightestPowerPlant(ship.powerRetracted); // Find lightest Power plant that can power the ship ship.use(ship.common[0], pp, Components.common(0, pp)); diff --git a/app/js/shipyard/factory-component-set.js b/app/js/shipyard/factory-component-set.js index 1fb0f535..a6b28509 100755 --- a/app/js/shipyard/factory-component-set.js +++ b/app/js/shipyard/factory-component-set.js @@ -105,6 +105,18 @@ angular.module('shipyard').factory('ComponentSet', ['lodash', function(_) { return pd.class + pd.rating; }; + ComponentSet.prototype.lightestThruster = function(ladenMass) { + var ths = this.common[1]; + var th = ths[0]; + + for (var i = 1; i < ths.length; i++) { + if (ths[i].mass < th.mass && ths[i].maxmass >= ladenMass) { + th = ths[i]; + } + } + return th.class + th.rating; + }; + ComponentSet.prototype.lightestPowerPlant = function(powerUsed) { var pps = this.common[0]; var pp = null;