diff --git a/app/js/shipyard/factory-ship.js b/app/js/shipyard/factory-ship.js index d8d04206..d0c0e270 100755 --- a/app/js/shipyard/factory-ship.js +++ b/app/js/shipyard/factory-ship.js @@ -173,7 +173,7 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength', Ship.prototype.use = function(slot, id, component, preventUpdate) { if (slot.id != id) { // Selecting a different component // Slot is an internal slot, is not being emptied, and the selected component group/type must be of unique - if (slot.cat == 2 && component && _.includes(['sg', 'rf', 'fs'], component.grp)) { + if (slot.cat == 2 && component && _.includes(['psg','sg', 'rf', 'fs'], component.grp)) { // Find another internal slot that already has this type/group installed var similarSlot = this.findInternalByGroup(component.grp); // If another slot has an installed component with of the same type @@ -210,9 +210,16 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength', * @return {number} The index of the slot in ship.internal */ Ship.prototype.findInternalByGroup = function(group) { - var index = _.findIndex(this.internal, function(slot) { - return slot.c && slot.c.grp == group; - }); + if(group == 'sg' || group == 'psg') { + var index = _.findIndex(this.internal, function(slot) { + return slot.c && (slot.c.grp == 'sg' || slot.c.grp == 'psg'); + }); + } else { + var index = _.findIndex(this.internal, function(slot) { + return slot.c && slot.c.grp == group; + }); + } + if (index !== -1) { return this.internal[index]; } @@ -254,7 +261,7 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength', if (slot.c) { this.priorityBands[slot.priority][powerUsageType(slot, slot.c)] += enabled ? slot.c.power : -slot.c.power; - if (slot.c.grp == 'sg') { + if (slot.c.grp == 'sg' || slot.c.grp == 'psg') { this.updateShieldStrength(); } else if (slot.c.grp == 'sb') { this.shieldMultiplier += slot.c.shieldmul * (enabled ? 1 : -1); diff --git a/app/js/shipyard/module-shipyard.js b/app/js/shipyard/module-shipyard.js index f7018df1..7782e3bb 100755 --- a/app/js/shipyard/module-shipyard.js +++ b/app/js/shipyard/module-shipyard.js @@ -33,18 +33,19 @@ angular.module('shipyard', ['ngLodash']) // Internal fs: 'Fuel Scoop', sc: 'Scanners', - am: 'Auto Field-Maint. Unit', - cr: 'Cargo Racks', + am: 'Auto Field-Maintenance Unit', + cr: 'Cargo Rack', fi: 'FSD Interdictor', - hb: 'Hatch Breaker Limpet Ctrl', + hb: 'Hatch Breaker Limpet Controller', hr: 'Hull Reinforcement Package', rf: 'Refinery', scb: 'Shield Cell Bank', sg: 'Shield Generator', + psg: 'Prismatic Shield Generator', dc: 'Docking Computer', - fx: 'Fuel Transfer Limpet Ctrl', - pc: 'Prospector Limpet Ctrl', - cc: 'Collector Limpet Ctrl', + fx: 'Fuel Transfer Limpet Controller', + pc: 'Prospector Limpet Controller', + cc: 'Collector Limpet Controller', // Hard Points bl: 'Beam Laser', diff --git a/data/components/internal/pristmatic_shield_generators.json b/data/components/internal/pristmatic_shield_generators.json new file mode 100644 index 00000000..b01fa745 --- /dev/null +++ b/data/components/internal/pristmatic_shield_generators.json @@ -0,0 +1,11 @@ +{ + "Prismatic Shield Generators": [ + { "id": "p6", "grp": "psg", "class": 1, "rating": "A", "cost": 132195, "mass": 2.5, "power": 2.52, "minmass": 13, "optmass": 25, "maxmass": 63, "minmul": 2.04, "optmul": 1.44, "maxmul": 0.84 }, + { "id": "p5", "grp": "psg", "class": 2, "rating": "A", "cost": 240336, "mass": 5, "power": 3.15, "minmass": 23, "optmass": 55, "maxmass": 138, "minmul": 2.04, "optmul": 1.44, "maxmul": 0.84 }, + { "id": "p4", "grp": "psg", "class": 3, "rating": "A", "cost": 761868, "mass": 10, "power": 3.78, "minmass": 83, "optmass": 165, "maxmass": 413, "minmul": 2.04, "optmul": 1.44, "maxmul": 0.84 }, + { "id": "p3", "grp": "psg", "class": 4, "rating": "A", "cost": 2415120, "mass": 20, "power": 4.62, "minmass": 143, "optmass": 285, "maxmass": 713, "minmul": 2.04, "optmul": 1.44, "maxmul": 0.84 }, + { "id": "p2", "grp": "psg", "class": 5, "rating": "A", "cost": 7655930, "mass": 40, "power": 5.46, "minmass": 203, "optmass": 405, "maxmass": 1013, "minmul": 2.04, "optmul": 1.44, "maxmul": 0.84 }, + { "id": "p1", "grp": "psg", "class": 6, "rating": "A", "cost": 24269297, "mass": 80, "power": 6.51, "minmass": 270, "optmass": 540, "maxmass": 1350, "minmul": 2.04, "optmul": 1.44, "maxmul": 0.84 }, + { "id": "p0", "grp": "psg", "class": 7, "rating": "A", "cost": 76933668, "mass": 160, "power": 7.35, "minmass": 530, "optmass": 1060, "maxmass": 2650, "minmul": 2.04, "optmul": 1.44, "maxmul": 0.84 } + ] +}