From fda966be024ccf92df4743d6ef5a8144c20aad56 Mon Sep 17 00:00:00 2001 From: Jonathan Harris Date: Sun, 30 Aug 2015 06:05:12 +0100 Subject: [PATCH] Pass tests. --- app/js/service-serializer.js | 8 +- app/js/shipyard/factory-ship.js | 8 +- .../anaconda-test-detailed-export.json | 78 +++++++++++++++++-- 3 files changed, 78 insertions(+), 16 deletions(-) diff --git a/app/js/service-serializer.js b/app/js/service-serializer.js index 0f7abb61..e1a11f63 100755 --- a/app/js/service-serializer.js +++ b/app/js/service-serializer.js @@ -117,7 +117,7 @@ angular.module('app').service('Serializer', ['lodash', 'GroupMap', 'MountMap', ' var comps = detailedBuild.components; var priorities = [ 0 ]; // cargoScoop - var enabled = [ false ]; // assume cargoScoop disabled + var enabled = [ true ]; // assume cargoScoop enabled var shipData = ShipsDB[shipId]; var ship = new Ship(shipId, shipData.properties, shipData.slots); var bulkheads = Components.bulkheadIndex(comps.standard.bulkheads); @@ -151,9 +151,9 @@ angular.module('app').service('Serializer', ['lodash', 'GroupMap', 'MountMap', ' priorities = priorities.concat(_.map(comps.hardpoints, function(c) { return (!c || c.priority === undefined) ? 0 : c.priority - 1; }), _.map(comps.utility, function(c) { return (!c || c.priority === undefined) ? 0 : c.priority - 1; }), _.map(comps.internal, function(c) { return (!c || c.priority === undefined) ? 0 : c.priority - 1; })); - enabled = enabled.concat(_.map(comps.hardpoints, function(c) { return (!c || c.enabled === undefined) ? false : c.enabled; }), - _.map(comps.utility, function(c) { return (!c || c.enabled === undefined) ? false : c.enabled; }), - _.map(comps.internal, function(c) { return (!c || c.enabled === undefined) ? false : c.enabled; })); + enabled = enabled.concat(_.map(comps.hardpoints, function(c) { return (!c || c.enabled === undefined) ? true : c.enabled * 1; }), + _.map(comps.utility, function(c) { return (!c || c.enabled === undefined) ? true : c.enabled * 1; }), + _.map(comps.internal, function(c) { return (!c || c.enabled === undefined) ? true : c.enabled * 1; })); ship.buildWith({ bulkheads: bulkheads, common: common, hardpoints: hardpoints, internal: internal }, priorities, enabled); diff --git a/app/js/shipyard/factory-ship.js b/app/js/shipyard/factory-ship.js index cd30ffcb..6ba28854 100755 --- a/app/js/shipyard/factory-ship.js +++ b/app/js/shipyard/factory-ship.js @@ -97,7 +97,7 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength', this.bulkheads.c = null; this.useBulkhead(comps && comps.bulkheads ? comps.bulkheads : 0, true); this.cargoScoop.priority = priorities ? priorities[0] * 1 : 0; - this.cargoScoop.enabled = enabled ? enabled[0] * 1 : true; + this.cargoScoop.enabled = enabled ? Boolean(enabled[0]) : true; for (i = 0, l = this.priorityBands.length; i < l; i++) { this.priorityBands[i].deployed = 0; @@ -111,7 +111,7 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength', for (i = 0; i < cl; i++) { common[i].cat = 0; - common[i].enabled = enabled ? enabled[i + 1] * 1 : true; + common[i].enabled = enabled ? Boolean(enabled[i + 1]) : true; common[i].priority = priorities ? priorities[i + 1] * 1 : 0; common[i].type = 'SYS'; common[i].c = common[i].id = null; // Resetting 'old' component if there was one @@ -128,7 +128,7 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength', for (i = 0, l = hps.length; i < l; i++) { hps[i].cat = 1; - hps[i].enabled = enabled ? enabled[cl + i] * 1 : true; + hps[i].enabled = enabled ? Boolean(enabled[cl + i]) : true; hps[i].priority = priorities ? priorities[cl + i] * 1 : 0; hps[i].type = hps[i].maxClass ? 'WEP' : 'SYS'; hps[i].c = hps[i].id = null; // Resetting 'old' component if there was one @@ -143,7 +143,7 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength', for (i = 0, l = internal.length; i < l; i++) { internal[i].cat = 2; - internal[i].enabled = enabled ? enabled[cl + i] * 1 : true; + internal[i].enabled = enabled ? Boolean(enabled[cl + i]) : true; internal[i].priority = priorities ? priorities[cl + i] * 1 : 0; internal[i].type = 'SYS'; internal[i].id = internal[i].c = null; // Resetting 'old' component if there was one diff --git a/test/fixtures/anaconda-test-detailed-export.json b/test/fixtures/anaconda-test-detailed-export.json index 7e82c5a7..77ba16b4 100644 --- a/test/fixtures/anaconda-test-detailed-export.json +++ b/test/fixtures/anaconda-test-detailed-export.json @@ -1,5 +1,5 @@ { - "$schema": "http://cdn.coriolis.io/schemas/ship-loadout/1.json#", + "$schema": "http://cdn.coriolis.io/schemas/ship-loadout/2.json#", "name": "Test", "ship": "Anaconda", "references": [ @@ -15,79 +15,109 @@ "bulkheads": "Reactive Surface Composite", "powerPlant": { "class": 8, - "rating": "A" + "rating": "A", + "enabled": true, + "priority": 1 }, "thrusters": { "class": 6, - "rating": "A" + "rating": "A", + "enabled": true, + "priority": 1 }, "frameShiftDrive": { "class": 6, - "rating": "A" + "rating": "A", + "enabled": true, + "priority": 1 }, "lifeSupport": { "class": 5, - "rating": "A" + "rating": "A", + "enabled": true, + "priority": 1 }, "powerDistributor": { "class": 8, - "rating": "A" + "rating": "A", + "enabled": true, + "priority": 1 }, "sensors": { "class": 8, - "rating": "A" + "rating": "A", + "enabled": true, + "priority": 1 }, "fuelTank": { "class": 5, - "rating": "C" + "rating": "C", + "enabled": true, + "priority": 1 } }, "hardpoints": [ { "class": 4, "rating": "A", + "enabled": true, + "priority": 1, "group": "Plasma Accelerator", "mount": "Fixed" }, { "class": 3, "rating": "D", + "enabled": true, + "priority": 1, "group": "Beam Laser", "mount": "Turret" }, { "class": 3, "rating": "D", + "enabled": true, + "priority": 1, "group": "Beam Laser", "mount": "Turret" }, { "class": 3, "rating": "D", + "enabled": true, + "priority": 1, "group": "Beam Laser", "mount": "Turret" }, { "class": 2, "rating": "E", + "enabled": true, + "priority": 1, "group": "Cannon", "mount": "Turret" }, { "class": 2, "rating": "E", + "enabled": true, + "priority": 1, "group": "Cannon", "mount": "Turret" }, { "class": 1, "rating": "F", + "enabled": true, + "priority": 1, "group": "Beam Laser", "mount": "Turret" }, { "class": 1, "rating": "F", + "enabled": true, + "priority": 1, "group": "Beam Laser", "mount": "Turret" } @@ -96,39 +126,53 @@ { "class": 0, "rating": "A", + "enabled": true, + "priority": 1, "group": "Shield Booster" }, { "class": 0, "rating": "A", + "enabled": true, + "priority": 1, "group": "Shield Booster" }, null, { "class": 0, "rating": "C", + "enabled": true, + "priority": 1, "group": "Kill Warrant Scanner" }, { "class": 0, "rating": "C", + "enabled": true, + "priority": 1, "group": "Cargo Scanner" }, { "class": 0, "rating": "F", + "enabled": true, + "priority": 1, "group": "Countermeasure", "name": "Electronic Countermeasure" }, { "class": 0, "rating": "I", + "enabled": true, + "priority": 1, "group": "Countermeasure", "name": "Chaff Launcher" }, { "class": 0, "rating": "I", + "enabled": true, + "priority": 1, "group": "Countermeasure", "name": "Point Defence" } @@ -137,26 +181,36 @@ { "class": 7, "rating": "A", + "enabled": true, + "priority": 1, "group": "Shield Generator" }, { "class": 6, "rating": "A", + "enabled": true, + "priority": 1, "group": "Shield Cell Bank" }, { "class": 6, "rating": "E", + "enabled": true, + "priority": 1, "group": "Cargo Rack" }, { "class": 5, "rating": "D", + "enabled": true, + "priority": 1, "group": "Hull Reinforcement Package" }, { "class": 5, "rating": "E", + "enabled": true, + "priority": 1, "group": "Cargo Rack" }, null, @@ -164,21 +218,29 @@ { "class": 4, "rating": "E", + "enabled": true, + "priority": 1, "group": "Cargo Rack" }, { "class": 4, "rating": "E", + "enabled": true, + "priority": 1, "group": "Cargo Rack" }, { "class": 4, "rating": "A", + "enabled": true, + "priority": 1, "group": "Fuel Scoop" }, { "class": 2, "rating": "A", + "enabled": true, + "priority": 1, "group": "FSD Interdictor" } ]