From b9fc114e02b5f6b8539666b1207632cea0c760cb Mon Sep 17 00:00:00 2001 From: Kevin Chang Date: Wed, 7 Oct 2015 19:43:39 -0700 Subject: [PATCH 1/4] Additional auto-fill for SCB and other weapons --- app/js/controllers/controller-outfit.js | 15 +++++++++ app/js/shipyard/factory-ship.js | 16 ++++++--- app/views/page-outfit.html | 44 +++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 4 deletions(-) diff --git a/app/js/controllers/controller-outfit.js b/app/js/controllers/controller-outfit.js index 3848778a..9ea0fc7d 100755 --- a/app/js/controllers/controller-outfit.js +++ b/app/js/controllers/controller-outfit.js @@ -260,6 +260,21 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', ' updateState(Serializer.fromShip(ship)); }; + $scope.fillWithCells = function() { + var chargeCap = 0; // Capacity of single activation + ship.internal.forEach(function(slot) { + var id = Components.findInternalId('scb', slot.maxClass, 'A'); + if ((!slot.c || (slot.c.grp != 'sg' && slot.c.grp != 'psg')) && (!slot.eligible || slot.eligible.scb)) { // Check eligibility because of Orca, don't overwrite generator + ship.use(slot, id, Components.internal(id)); + chargeCap += Components.internal(id).recharge; + if (chargeCap >= ship.shieldStrength) { + ship.setSlotEnabled(slot, false); // Don't waste cell capacity on overcharge + } + } + }); + updateState(Serializer.fromShip(ship)); + }; + /** * Fill all internal slots with Cargo Racks, and optmize internal components. * Hardpoints are not altered. diff --git a/app/js/shipyard/factory-ship.js b/app/js/shipyard/factory-ship.js index a93662a5..caeb5d6d 100755 --- a/app/js/shipyard/factory-ship.js +++ b/app/js/shipyard/factory-ship.js @@ -561,10 +561,18 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength', var hps = this.hardpoints; for (var i = hps.length; i--; ) { if (hps[i].maxClass) { - var component = Components.findHardpoint(group, hps[i].maxClass, null, null, mount); - if (component) { - this.use(hps[i], component.id, component); - } + var size = hps[i].maxClass, component; + do { + if (group == 'mr') { + component = Components.findHardpoint(group, size, null, null, 'F', mount); + } else { + component = Components.findHardpoint(group, size, null, null, mount); + } + if (component) { + this.use(hps[i], component.id, component); + break; + } + } while (!component && (--size > 0)); } } return this; diff --git a/app/views/page-outfit.html b/app/views/page-outfit.html index 95d1b10c..cf0ff832 100644 --- a/app/views/page-outfit.html +++ b/app/views/page-outfit.html @@ -216,6 +216,7 @@ @@ -255,6 +256,49 @@
  • +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    +
    From 1d4b04672306a7301a2c421ffe2f3218d9756242 Mon Sep 17 00:00:00 2001 From: Kevin Chang Date: Wed, 7 Oct 2015 19:51:36 -0700 Subject: [PATCH 2/4] Tweaked to reenable slot if previously disabled --- app/js/controllers/controller-outfit.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/js/controllers/controller-outfit.js b/app/js/controllers/controller-outfit.js index 9ea0fc7d..bb3b17ae 100755 --- a/app/js/controllers/controller-outfit.js +++ b/app/js/controllers/controller-outfit.js @@ -267,9 +267,7 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', ' if ((!slot.c || (slot.c.grp != 'sg' && slot.c.grp != 'psg')) && (!slot.eligible || slot.eligible.scb)) { // Check eligibility because of Orca, don't overwrite generator ship.use(slot, id, Components.internal(id)); chargeCap += Components.internal(id).recharge; - if (chargeCap >= ship.shieldStrength) { - ship.setSlotEnabled(slot, false); // Don't waste cell capacity on overcharge - } + ship.setSlotEnabled(slot, chargeCap <= ship.shieldStrength); // Don't waste cell capacity on overcharge } }); updateState(Serializer.fromShip(ship)); From f807f4222f58e2a6f436cc04351acfb604c4efec Mon Sep 17 00:00:00 2001 From: Kevin Chang Date: Wed, 7 Oct 2015 20:06:04 -0700 Subject: [PATCH 3/4] Less hacks to get the same thing done --- app/js/controllers/controller-outfit.js | 4 ++-- app/js/shipyard/factory-ship.js | 8 ++------ app/views/page-outfit.html | 4 ++-- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/app/js/controllers/controller-outfit.js b/app/js/controllers/controller-outfit.js index bb3b17ae..dff4fed9 100755 --- a/app/js/controllers/controller-outfit.js +++ b/app/js/controllers/controller-outfit.js @@ -232,8 +232,8 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', ' updateState(Serializer.fromShip(ship.useCommon(rating))); }; - $scope.useHardpoint = function(group, mount) { - updateState(Serializer.fromShip(ship.useWeapon(group, mount))); + $scope.useHardpoint = function(group, mount, missile) { + updateState(Serializer.fromShip(ship.useWeapon(group, mount, missile))); }; $scope.useUtility = function(group, rating) { diff --git a/app/js/shipyard/factory-ship.js b/app/js/shipyard/factory-ship.js index caeb5d6d..faaf8f9f 100755 --- a/app/js/shipyard/factory-ship.js +++ b/app/js/shipyard/factory-ship.js @@ -557,17 +557,13 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength', return this; }; - Ship.prototype.useWeapon = function(group, mount) { + Ship.prototype.useWeapon = function(group, mount, missile) { var hps = this.hardpoints; for (var i = hps.length; i--; ) { if (hps[i].maxClass) { var size = hps[i].maxClass, component; do { - if (group == 'mr') { - component = Components.findHardpoint(group, size, null, null, 'F', mount); - } else { - component = Components.findHardpoint(group, size, null, null, mount); - } + component = Components.findHardpoint(group, size, null, null, mount, missile); if (component) { this.use(hps[i], component.id, component); break; diff --git a/app/views/page-outfit.html b/app/views/page-outfit.html index cf0ff832..a9e35e13 100644 --- a/app/views/page-outfit.html +++ b/app/views/page-outfit.html @@ -284,8 +284,8 @@
      -
    • D
    • -
    • S
    • +
    • D
    • +
    • S
      From d322e062ad0fe99695a12c0c9dc2d1dea0ffb237 Mon Sep 17 00:00:00 2001 From: Kevin Chang Date: Wed, 7 Oct 2015 20:09:51 -0700 Subject: [PATCH 4/4] Trimming back down to just laser/MC/cannon fills --- app/views/page-outfit.html | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/app/views/page-outfit.html b/app/views/page-outfit.html index a9e35e13..1ccee8f4 100644 --- a/app/views/page-outfit.html +++ b/app/views/page-outfit.html @@ -268,37 +268,6 @@
    -
    -
      -
    • -
    • -
    • -
    -
    -
      -
    • -
    -
    -
      -
    • -
    -
    -
      -
    • D
    • -
    • S
    • -
    -
    -
      -
    • -
    -
    -
      -
    • -
    -
    -
      -
    • -