From 38b13fca27de3a81c5ec5bf5adb1554930d9eaf2 Mon Sep 17 00:00:00 2001 From: Kevin Chang Date: Thu, 8 Oct 2015 18:06:01 -0700 Subject: [PATCH 1/4] Add armor autofill, prevent internal fill clobber --- app/js/controllers/controller-outfit.js | 14 +++++++++++++- app/views/page-outfit.html | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/js/controllers/controller-outfit.js b/app/js/controllers/controller-outfit.js index dff4fed9..9501d566 100755 --- a/app/js/controllers/controller-outfit.js +++ b/app/js/controllers/controller-outfit.js @@ -255,7 +255,9 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', ' $scope.fillWithCargo = function() { ship.internal.forEach(function(slot) { var id = Components.findInternalId('cr', slot.maxClass, 'E'); - ship.use(slot, id, Components.internal(id)); + if (!slot.c) { + ship.use(slot, id, Components.internal(id)); + } }); updateState(Serializer.fromShip(ship)); }; @@ -273,6 +275,16 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', ' updateState(Serializer.fromShip(ship)); }; + $scope.fillWithArmor = function() { + ship.internal.forEach(function(slot) { + var id = Components.findInternalId('hr', slot.maxClass, 'D'); + if (!slot.c) { + ship.use(slot, id, Components.internal(id)); + } + }); + updateState(Serializer.fromShip(ship)); + }; + /** * Fill all internal slots with Cargo Racks, and optmize internal components. * Hardpoints are not altered. diff --git a/app/views/page-outfit.html b/app/views/page-outfit.html index 1ccee8f4..1ff61a15 100644 --- a/app/views/page-outfit.html +++ b/app/views/page-outfit.html @@ -217,6 +217,7 @@
  • +
  • From bed81d26b2d6bdf3aced41dcc924931a2fd9d8b3 Mon Sep 17 00:00:00 2001 From: Kevin Chang Date: Thu, 8 Oct 2015 19:20:17 -0700 Subject: [PATCH 2/4] Alter auto-fill clobbering behavior for hardpoints --- app/js/controllers/controller-outfit.js | 8 ++++---- app/js/shipyard/factory-ship.js | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/js/controllers/controller-outfit.js b/app/js/controllers/controller-outfit.js index 9501d566..a7fdb062 100755 --- a/app/js/controllers/controller-outfit.js +++ b/app/js/controllers/controller-outfit.js @@ -232,12 +232,12 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', ' updateState(Serializer.fromShip(ship.useCommon(rating))); }; - $scope.useHardpoint = function(group, mount, missile) { - updateState(Serializer.fromShip(ship.useWeapon(group, mount, missile))); + $scope.useHardpoint = function(group, mount, clobber, missile) { + updateState(Serializer.fromShip(ship.useWeapon(group, mount, clobber, missile))); }; - $scope.useUtility = function(group, rating) { - updateState(Serializer.fromShip(ship.useUtility(group, rating))); + $scope.useUtility = function(group, rating, clobber) { + updateState(Serializer.fromShip(ship.useUtility(group, rating, clobber))); }; $scope.emptyInternal = function() { diff --git a/app/js/shipyard/factory-ship.js b/app/js/shipyard/factory-ship.js index faaf8f9f..32f081c6 100755 --- a/app/js/shipyard/factory-ship.js +++ b/app/js/shipyard/factory-ship.js @@ -547,24 +547,24 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength', return this; }; - Ship.prototype.useUtility = function(group, rating) { + Ship.prototype.useUtility = function(group, rating, clobber) { var component = Components.findHardpoint(group, 0, rating); for (var i = this.hardpoints.length; i--; ) { - if (!this.hardpoints[i].maxClass) { + if ((clobber || !this.hardpoints[i].c) && !this.hardpoints[i].maxClass) { this.use(this.hardpoints[i], component.id, component); } } return this; }; - Ship.prototype.useWeapon = function(group, mount, missile) { + Ship.prototype.useWeapon = function(group, mount, clobber, missile) { var hps = this.hardpoints; for (var i = hps.length; i--; ) { if (hps[i].maxClass) { var size = hps[i].maxClass, component; do { component = Components.findHardpoint(group, size, null, null, mount, missile); - if (component) { + if ((clobber || !hps[i].c) && component) { this.use(hps[i], component.id, component); break; } From 08f49c83398e25065bc9767ef10fe250cafc898e Mon Sep 17 00:00:00 2001 From: Kevin Chang Date: Thu, 8 Oct 2015 19:29:46 -0700 Subject: [PATCH 3/4] Fix SCB internal clobber --- app/js/controllers/controller-outfit.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/js/controllers/controller-outfit.js b/app/js/controllers/controller-outfit.js index a7fdb062..85249a06 100755 --- a/app/js/controllers/controller-outfit.js +++ b/app/js/controllers/controller-outfit.js @@ -266,7 +266,7 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', ' 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 + if (!slot.c && (!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; ship.setSlotEnabled(slot, chargeCap <= ship.shieldStrength); // Don't waste cell capacity on overcharge From 1c78fea48fe84c8bf232979d1ab7985afb0f222a Mon Sep 17 00:00:00 2001 From: Kevin Chang Date: Thu, 8 Oct 2015 22:51:00 -0700 Subject: [PATCH 4/4] Fix behavior for hull reinforcement max at 5D --- app/js/controllers/controller-outfit.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/js/controllers/controller-outfit.js b/app/js/controllers/controller-outfit.js index 85249a06..4cdfe4fc 100755 --- a/app/js/controllers/controller-outfit.js +++ b/app/js/controllers/controller-outfit.js @@ -277,7 +277,7 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', ' $scope.fillWithArmor = function() { ship.internal.forEach(function(slot) { - var id = Components.findInternalId('hr', slot.maxClass, 'D'); + var id = Components.findInternalId('hr', Math.min(slot.maxClass, 5), 'D'); // Hull reinforcements top out at 5D if (!slot.c) { ship.use(slot, id, Components.internal(id)); }