diff --git a/app/fonts/icons.eot b/app/fonts/icons.eot
new file mode 100755
index 00000000..34279623
Binary files /dev/null and b/app/fonts/icons.eot differ
diff --git a/app/fonts/icons.svg b/app/fonts/icons.svg
new file mode 100755
index 00000000..cf7fdda4
--- /dev/null
+++ b/app/fonts/icons.svg
@@ -0,0 +1,105 @@
+
+
+
+Generated by IcoMoon
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/fonts/icons.ttf b/app/fonts/icons.ttf
new file mode 100755
index 00000000..87613358
Binary files /dev/null and b/app/fonts/icons.ttf differ
diff --git a/app/fonts/icons.woff b/app/fonts/icons.woff
new file mode 100755
index 00000000..3040bafe
Binary files /dev/null and b/app/fonts/icons.woff differ
diff --git a/app/index.html b/app/index.html
index 5dc32605..ffc99632 100644
--- a/app/index.html
+++ b/app/index.html
@@ -22,9 +22,9 @@
-
+
-
+
@@ -35,6 +35,7 @@
It is not endorsed by nor reflects the views or opinions of Frontier Developments and no employee of Frontier Developments was involved in the making of it.
+
diff --git a/app/js/controllers/controller-outfit.js b/app/js/controllers/controller-outfit.js
index 5dbfde67..0cdf0615 100644
--- a/app/js/controllers/controller-outfit.js
+++ b/app/js/controllers/controller-outfit.js
@@ -55,21 +55,22 @@ angular.module('app').controller('OutfitController', ['$rootScope','$scope', '$s
*/
$scope.select = function(type, slot, e) {
e.stopPropagation();
- if (e.srcElement.id) {
- if(type == 'h') {
- ship.use(slot, e.srcElement.id, Components.hardpoints(e.srcElement.id));
- } else if (type == 'c') {
- ship.use(slot, e.srcElement.id, Components.common(ship.common.indexOf(slot), e.srcElement.id));
- } else if (type == 'i') {
- ship.use(slot, e.srcElement.id, Components.internal(e.srcElement.id));
- } else if (type == 'b') {
- ship.useBulkhead(e.srcElement.id);
- } else {
+ var id = angular.element(e.srcElement).attr('cpid'); // Get component ID
+ if (id) {
+ if (id == 'empty') {
ship.use(slot, null, null);
+ } else if(type == 'h') {
+ ship.use(slot, id, Components.hardpoints(id));
+ } else if (type == 'c') {
+ ship.use(slot, id, Components.common(ship.common.indexOf(slot), id));
+ } else if (type == 'i') {
+ ship.use(slot, id, Components.internal(id));
+ } else if (type == 'b') {
+ ship.useBulkhead(id);
}
$scope.selectedSlot = null;
$scope.code = Serializer.fromShip(ship);
- $state.go('outfit', {shipId: ship.id, code: $scope.code, bn: $scope.buildName}, {location:'replace', notify:false});
+ updateState();
}
}
@@ -80,7 +81,7 @@ angular.module('app').controller('OutfitController', ['$rootScope','$scope', '$s
if ($scope.buildName && $scope.savedCode) {
Serializer.toShip(ship, $scope.savedCode); // Repopulate with components from last save
$scope.code = $scope.savedCode;
- $state.go('outfit', {shipId: ship.id, code: $scope.savedCode, bn: $scope.buildName}, {location:'replace', notify:false});
+ updateState();
}
};
@@ -89,11 +90,18 @@ angular.module('app').controller('OutfitController', ['$rootScope','$scope', '$s
* for this ship & with the exact name.
*/
$scope.saveBuild = function() {
- if($scope.buildName && $scope.code != $scope.savedCode) {
+ if (!$scope.buildName) {
+ return;
+ }
+ // No change hav been made, i.e. save ship default build under a name
+ if (!$scope.code) {
+ $scope.code = Serializer.fromShip(ship);
+ }
+ // Only save if there a build name and a change has been made or the build has never been saved
+ if ($scope.code != $scope.savedCode) {
Persist.saveBuild(ship.id, $scope.buildName, $scope.code);
$scope.savedCode = $scope.code;
- // Edge case TODO: comment more
- $state.go('outfit', {shipId: ship.id, code: $scope.savedCode, bn: $scope.buildName}, {location:'replace', notify:false});
+ updateState();
}
}
@@ -111,6 +119,22 @@ angular.module('app').controller('OutfitController', ['$rootScope','$scope', '$s
$scope.savedCode = Persist.getBuild(ship.id, $scope.buildName);
}
+ $scope.toggleCost = function(item) {
+ item.incCost = !item.incCost;
+ ship.updateTotals();
+ };
+
+ $scope.togglePwr = function(item) {
+ item.enabled = !item.enabled;
+ ship.updateTotals();
+ };
+
+ // Utilify functions
+ function updateState() {
+ $state.go('outfit', {shipId: ship.id, code: $scope.code, bn: $scope.buildName}, {location:'replace', notify:false});
+ }
+
+ // Event listeners
$rootScope.$on('keyup', function (e, keyEvent) {
// CTRL + S or CMD + S will override the default and save the build is possible
if (keyEvent.keycode == 83 && keyEvent.ctrlKey) {
diff --git a/app/js/directives/directive-component-select.js b/app/js/directives/directive-component-select.js
index ef7e0719..8e25da08 100644
--- a/app/js/directives/directive-component-select.js
+++ b/app/js/directives/directive-component-select.js
@@ -1,41 +1,68 @@
-angular.module('app').directive('componentSelect', [ function() {
+angular.module('app').directive('componentSelect', function() {
+
+ // Generting the HTML in this manner is MUCH faster than using an angular template.
+
+ function appendGroup(list, opts, cid, mass) {
+ var prevClass = null, prevRating = null;
+ var count = Object.keys(opts).length;
+ for (id in opts) {
+ var o = opts[id];
+ list.push('', o.class, o.rating);
+ if(o.mode) {
+ list.push('/' + o.mode);
+ if(o.missile) {
+ list.push(o.missile);
+ }
+ }
+ if(o.name) list.push(' ' + o.name);
+ list.push(' ');
+ prevClass = o.class;
+ prevRating= o.rating;
+ }
+ }
+
return {
restrict: 'A',
scope:{
- opts: '=', // Component Options object
- mass: '=' // Current ship mass
+ opts: '=', // Component Options object
+ groups: '=', // Groups of Component Options
+ mass: '=', // Current ship unladen mass
+ s: '=' // Current Slot
},
link: function(scope, element) {
- var list = [], o, id;
+ var list = [];
+ var cid = scope.s.id; // Slot's current component id
+ var component = scope.s.c; // Slot's Current Component (may be null/undefined)
var opts = scope.opts;
+ var groups = scope.groups;
var mass = scope.mass || 0;
- // Generting the HTML in this manner is MUCH faster than using an angular template.
- for (id in opts) {
- o = opts[id];
- list.push('EMPTY');
+ for (g in groups) {
+ var grp = groups[g];
+ var grpCode = grp[Object.keys(grp)[0]].grp; // Nasty operation to get the grp property of the first/any single component
+ list.push('', g, '
');
+ appendGroup(list, grp, cid, mass);
+ list.push(' ');
}
- list.push(id);
- list.push('">');
- list.push(o.class);
- list.push(o.rating);
- if(o.mode) {
- list.push('/' + o.mode);
- if(o.missile) {
- list.push(o.missile);
- }
- }
- if(o.name) {
- list.push(' ' + o.name);
- }
- list.push(' ');
+ } else {
+ list.push('');
+ appendGroup(list, opts, cid, mass);
+ list.push(' ');
}
- element.html('');
+ element.html(list.join(''));
+ // If groups are present and a component is already selectd
+ if (groups && component && component.grp) {
+ var groupElement = angular.element(document.getElementById(component.grp));
+ var parentElem = element[0].parentElement;
+ parentElem.scrollTop = groupElement[0].offsetTop; // Scroll to currently selected group
+ }
}
};
-}]);
\ No newline at end of file
+});
\ No newline at end of file
diff --git a/app/js/directives/directive-header.js b/app/js/directives/directive-header.js
index 5c1740c7..a385d73c 100644
--- a/app/js/directives/directive-header.js
+++ b/app/js/directives/directive-header.js
@@ -1,4 +1,4 @@
-angular.module('app').directive('shipyardHeader', ['$rootScope', 'Persist', function ($rootScope, Persist) {
+angular.module('app').directive('shipyardHeader', ['lodash','$rootScope', 'Persist', function (_, $rootScope, Persist) {
return {
restrict: 'E',
@@ -10,15 +10,33 @@ angular.module('app').directive('shipyardHeader', ['$rootScope', 'Persist', func
scope.allBuilds = Persist.builds;
scope.bs = Persist.state;
+ // Insurance options and management here for now.
+ $rootScope.insurance = {
+ opts: [
+ { name:'Standard', pct: 0.05 },
+ { name:'Alpha', pct: 0.025 },
+ { name:'Beta', pct: 0.035 }
+ ]
+ }
+
+ var insIndex = _.findIndex($rootScope.insurance.opts, 'name', localStorage.getItem('insurance'));
+ $rootScope.insurance.current = $rootScope.insurance.opts[insIndex != -1? insIndex : 0];
+
+ // Close menus if a navigation change event occurs
$rootScope.$on('$stateChangeStart',function(){
scope.openedMenu = null;
});
- $rootScope.$on('close', function (e, keyEvent) {
+ $rootScope.$on('close', function () {
scope.openedMenu = null;
});
- scope.openMenu = function (menu) {
+ scope.updateInsurance = function(){
+ localStorage.setItem('insurance', $rootScope.insurance.current.name);
+ }
+
+ scope.openMenu = function (e, menu) {
+ e.stopPropagation();
if(menu == scope.openedMenu) {
scope.openedMenu = null;
return;
diff --git a/app/js/directives/directive-list-cost.js b/app/js/directives/directive-list-cost.js
deleted file mode 100644
index 5f89474b..00000000
--- a/app/js/directives/directive-list-cost.js
+++ /dev/null
@@ -1,28 +0,0 @@
-angular.module('app').directive('costList', ['$rootScope', function ($r) {
- return {
- restrict: 'A',
- scope: {
- ship: '='
- },
- templateUrl: 'views/costs.html',
- link: function (scope) {
- scope.expanded = false;
- scope.$r = $r;
- scope.insuranceOptions = {
- Alpha: 0.975,
- Beta: 0.965,
- Standard: 0.95
- };
- scope.insurance = scope.insuranceOptions.Standard;
-
- scope.toggleExpand = function() {
- scope.expanded = !scope.expanded;
- }
-
- scope.toggle = function(item) {
- item.incCost = !item.incCost;
- scope.ship.updateTotals();
- };
- }
- };
-}]);
\ No newline at end of file
diff --git a/app/js/directives/directive-list-power.js b/app/js/directives/directive-list-power.js
deleted file mode 100644
index 11b74ee5..00000000
--- a/app/js/directives/directive-list-power.js
+++ /dev/null
@@ -1,23 +0,0 @@
-angular.module('app')
- .directive('powerList', ['$rootScope', function ($r) {
- return {
- restrict: 'A',
- scope: {
- ship: '=ship'
- },
- templateUrl: 'views/power.html',
- link: function (scope) {
- scope.expanded = false;
- scope.$r = $r;
-
- scope.toggleExpand = function() {
- scope.expanded = !scope.expanded;
- }
-
- scope.toggle = function(slot) {
- slot.enabled = !slot.enabled;
- scope.ship.updateTotals();
- };
- }
- };
- }]);
\ No newline at end of file
diff --git a/app/js/directives/directive-ship-range.js b/app/js/directives/directive-ship-range.js
deleted file mode 100644
index 1aa52ad7..00000000
--- a/app/js/directives/directive-ship-range.js
+++ /dev/null
@@ -1,52 +0,0 @@
-angular.module('app').directive('shipRange', ['$rootScope','calcJumpRange', function ($r, calcJumpRange) {
-
- return {
- restrict: 'A',
- scope:{
- ship: '='
- },
- templateUrl: 'views/ship-range.html',
- link: function(scope, element) {
- scope.$r = $r;
- scope.expanded = false;
- var fsd = scope.ship.common[2].c;
-
- scope.toggleExpand = function() {
- scope.expanded = !scope.expanded;
- }
-
- function ranges(fsd, unladenMass, ladenMass) {
- var ranges = [];
- for(var m = unladenMass; m <= ladenMass; m++) {
- ranges.push({x:m, y: calcJumpRange(m, fsd)});
- }
- return ranges;
- }
-
- //var fDist = d3.format(',.2f');
-
- //scope.data = ranges(fsd, scope.ship.unladenMass, scope.ship.ladenMass);
- /*scope.options = {
- axes: {
- x: {key: 'x', type: 'linear', ticks: 10},
- y: {type: 'linear', ticks: 5, }
- },
- series: [
- {y: 'y', color: '#FF8C0D', thickness: '2px', type: 'area', striped: false, label: 'Range'}
- ],
- lineMode: 'basis',
- tension: 0.7,
- tooltip: {
- mode: 'scrubber',
-
- formatter: function(x, y, series) {
- return fDist(y) + ' Light Years';
- }
- },
- drawLegend: false,
- drawDots: false,
- columnsHGap: 5
- };*/
- }
- };
-}]);
diff --git a/app/js/directives/directive-slot-hardpoint.js b/app/js/directives/directive-slot-hardpoint.js
index 6edd4c4e..b35a8b35 100644
--- a/app/js/directives/directive-slot-hardpoint.js
+++ b/app/js/directives/directive-slot-hardpoint.js
@@ -6,7 +6,7 @@ angular.module('app').directive('slotHardpoint', ['$rootScope', function ($r) {
size: '=',
lbl: '=',
},
- templateUrl: 'views/slot-hardpoint.html',
+ templateUrl: 'views/_slot-hardpoint.html',
link: function (scope) {
scope.$r = $r;
}
diff --git a/app/js/directives/directive-slot-internal.js b/app/js/directives/directive-slot-internal.js
index ba9de478..f7336149 100644
--- a/app/js/directives/directive-slot-internal.js
+++ b/app/js/directives/directive-slot-internal.js
@@ -6,7 +6,7 @@ angular.module('app').directive('slotInternal', ['$rootScope', function ($r) {
lbl: '=',
opts: '='
},
- templateUrl: 'views/slot-internal.html',
+ templateUrl: 'views/_slot-internal.html',
link: function(scope) {
scope.$r = $r;
}
diff --git a/app/js/service-serializer.js b/app/js/service-serializer.js
index 9cc80b83..0f70461a 100644
--- a/app/js/service-serializer.js
+++ b/app/js/service-serializer.js
@@ -15,7 +15,7 @@ angular.module('app').service('Serializer', ['lodash', function (_) {
_.map(ship.hardpoints, idToStr),
_.map(ship.internal, idToStr),
];
-
+ console.log('code',_.flatten(data).join(''));
return _.flatten(data).join('');
};
diff --git a/app/js/shipyard/factory-ship.js b/app/js/shipyard/factory-ship.js
index 95a385f9..05857dde 100644
--- a/app/js/shipyard/factory-ship.js
+++ b/app/js/shipyard/factory-ship.js
@@ -16,9 +16,9 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
for (p in properties) { this[p] = properties[p]; } // Copy all base properties from shipData
- for (groupName in slots) { // Initialize all slots
- var slotGroup = slots[groupName];
- var group = this[groupName] = []; // Initialize Slot group (Common, Hardpoints, Internal)
+ for (slotType in slots) { // Initialize all slots
+ var slotGroup = slots[slotType];
+ var group = this[slotType] = []; // Initialize Slot group (Common, Hardpoints, Internal)
for(var i = 0; i < slotGroup.length; i++){
group.push({id: null, c: null, enabled: true, incCost: true, maxClass: slotGroup[i]});
}
@@ -115,10 +115,6 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
return sum;
}
- function findInternal(slots, group) {
-
- }
-
Ship.prototype.useBulkhead = function(index) {
this.bulkheads.id = index;
this.bulkheads.c = DB.components.bulkheads[this.id][index];
@@ -145,7 +141,7 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
}
} else {
// Selected component is a Shield Generator
- if(component.group == 'sg') {
+ if(component.grp == 'sg') {
// You can only have one shield Generator
if (this.sgSI !== null && this.sgSI != slotIndex) {
// A shield generator is already selected in a different slot
diff --git a/app/less/fonts.less b/app/less/fonts.less
index 99d3187f..b738157d 100644
--- a/app/less/fonts.less
+++ b/app/less/fonts.less
@@ -44,7 +44,6 @@
url('fonts/sintony-bold-webfont.svg#sintonybold') format('svg');
font-weight: normal;
font-style: normal;
-
}
@font-face {
@@ -57,7 +56,6 @@
url('fonts/sintony-regular-webfont.svg#sintonyregular') format('svg');
font-weight: normal;
font-style: normal;
-
}
@font-face {
@@ -70,7 +68,17 @@
url('fonts/eurocaps-webfont.svg#euro_capsregular') format('svg');
font-weight: normal;
font-style: normal;
+}
+@font-face {
+ font-family: 'icons';
+ src:url('fonts/icons.eot?-dwuzoa');
+ src:url('fonts/icons.eot?#iefix-dwuzoa') format('embedded-opentype'),
+ url('fonts/icons.woff?-dwuzoa') format('woff'),
+ url('fonts/icons.ttf?-dwuzoa') format('truetype'),
+ url('fonts/icons.svg?-dwuzoa#icons') format('svg');
+ font-weight: normal;
+ font-style: normal;
}
@fStandard: 'eurocaps', Helvetica, sans-serif;
diff --git a/app/less/header.less b/app/less/header.less
index 23f8d35a..af509a8e 100644
--- a/app/less/header.less
+++ b/app/less/header.less
@@ -14,6 +14,12 @@ header {
position: relative;
z-index: 1;
cursor: default;
+
+ &.r {
+ .menu-list {
+ right: 0;
+ }
+ }
}
.menu-header {
@@ -37,14 +43,18 @@ header {
}
.menu-list {
- width: 250%;
+ width: 25em;
font-family: @fStandard;
position: absolute;
- margin-right: 1em;
padding: 0 0 1em 1em;
overflow: hidden;
background-color: @bgBlack;
font-size: 0.8em;
+
+ &.sm {
+ width: 15em;
+ }
+
}
ul {
diff --git a/app/less/icons.less b/app/less/icons.less
index bb412dcb..4e55aa4e 100644
--- a/app/less/icons.less
+++ b/app/less/icons.less
@@ -31,28 +31,407 @@
height: 3em;
}
-.mount-T {
- background-image: url(images/icons/mount-t.svg);
-}
-.mount-F {
- background-image: url(images/icons/mount-f.svg);
-}
-.mount-G {
- background-image: url(images/icons/mount-g.svg);
-}
-
.shipyard {
background-image: url(images/icons/logo.svg);
}
-.github {
- background-image: url(images/icons/github-mark.svg);
-}
-
.reddit {
background-image: url(images/icons/reddit.svg);
}
-.elite-dangerous {
- background-image: url(images/ed-logo-sm.png);
-}
\ No newline at end of file
+
+.ico-l {
+ font-size: 2em;
+}
+
+.ico-xl {
+ font-size: 3em;
+}
+
+.ico {
+ font-family: 'icons';
+ font-variant: normal;
+ text-transform: none;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.ico-coin-dollar:before {
+ content: "\e93b";
+}
+
+.ico-download:before {
+ content: "\e960";
+}
+
+.ico-upload:before {
+ content: "\e961";
+}
+
+.ico-floppy-disk:before {
+ content: "\e962";
+}
+
+.ico-spinner4:before {
+ content: "\e97d";
+}
+
+.ico-spinner11:before {
+ content: "\e984";
+}
+
+.ico-enlarge:before {
+ content: "\e989";
+}
+
+.ico-shrink:before {
+ content: "\e98a";
+}
+
+.ico-enlarge2:before {
+ content: "\e98b";
+}
+
+.ico-shrink2:before {
+ content: "\e98c";
+}
+
+.ico-wrench:before {
+ content: "\e991";
+}
+
+.ico-equalizer:before {
+ content: "\e992";
+}
+
+.ico-equalizer2:before {
+ content: "\e993";
+}
+
+.ico-cog:before {
+ content: "\e994";
+}
+
+.ico-cogs:before {
+ content: "\e995";
+}
+
+.ico-hammer:before {
+ content: "\e996";
+}
+
+.ico-pie-chart:before {
+ content: "\e99a";
+}
+
+.ico-stats-dots:before {
+ content: "\e99b";
+}
+
+.ico-stats-bars:before {
+ content: "\e99c";
+}
+
+.ico-stats-bars2:before {
+ content: "\e99d";
+}
+
+.ico-rocket:before {
+ content: "\e9a5";
+}
+
+.ico-meter:before {
+ content: "\e9a6";
+}
+
+.ico-meter2:before {
+ content: "\e9a7";
+}
+
+.ico-bin:before {
+ content: "\e9ac";
+}
+
+.ico-target:before {
+ content: "\e9b3";
+}
+
+.ico-shield:before {
+ content: "\e9b4";
+}
+
+.ico-power:before {
+ content: "\e9b5";
+}
+
+.ico-switch:before {
+ content: "\e9b6";
+}
+
+.ico-power-cord:before {
+ content: "\e9b7";
+}
+
+.ico-clipboard:before {
+ content: "\e9b8";
+}
+
+.ico-tree:before {
+ content: "\e9bc";
+}
+
+.ico-menu:before {
+ content: "\e9bd";
+}
+
+.ico-menu2:before {
+ content: "\e9be";
+}
+
+.ico-menu3:before {
+ content: "\e9bf";
+}
+
+.ico-menu4:before {
+ content: "\e9c0";
+}
+
+.ico-cloud:before {
+ content: "\e9c1";
+}
+
+.ico-cloud-download:before {
+ content: "\e9c2";
+}
+
+.ico-cloud-upload:before {
+ content: "\e9c3";
+}
+
+.ico-cloud-check:before {
+ content: "\e9c4";
+}
+
+.ico-link:before {
+ content: "\e9cb";
+}
+
+.ico-warning:before {
+ content: "\ea07";
+}
+
+.ico-notification:before {
+ content: "\ea08";
+}
+
+.ico-question:before {
+ content: "\ea09";
+}
+
+.ico-plus:before {
+ content: "\ea0a";
+}
+
+.ico-minus:before {
+ content: "\ea0b";
+}
+
+.ico-info:before {
+ content: "\ea0c";
+}
+
+.ico-cancel-circle:before {
+ content: "\ea0d";
+}
+
+.ico-blocked:before {
+ content: "\ea0e";
+}
+
+.ico-cross:before {
+ content: "\ea0f";
+}
+
+.ico-checkmark:before {
+ content: "\ea10";
+}
+
+.ico-checkmark2:before {
+ content: "\ea11";
+}
+
+.ico-loop:before {
+ content: "\ea2d";
+}
+
+.ico-loop2:before {
+ content: "\ea2e";
+}
+
+.ico-infinite:before {
+ content: "\ea2f";
+}
+
+.ico-shuffle:before {
+ content: "\ea30";
+}
+
+.ico-arrow-up-left:before {
+ content: "\ea31";
+}
+
+.ico-arrow-up:before {
+ content: "\ea32";
+}
+
+.ico-arrow-up-right:before {
+ content: "\ea33";
+}
+
+.ico-arrow-right:before {
+ content: "\ea34";
+}
+
+.ico-arrow-down-right:before {
+ content: "\ea35";
+}
+
+.ico-arrow-down:before {
+ content: "\ea36";
+}
+
+.ico-arrow-down-left:before {
+ content: "\ea37";
+}
+
+.ico-arrow-left:before {
+ content: "\ea38";
+}
+
+.ico-arrow-up-left2:before {
+ content: "\ea39";
+}
+
+.ico-arrow-up2:before {
+ content: "\ea3a";
+}
+
+.ico-arrow-up-right2:before {
+ content: "\ea3b";
+}
+
+.ico-arrow-right2:before {
+ content: "\ea3c";
+}
+
+.ico-arrow-down-right2:before {
+ content: "\ea3d";
+}
+
+.ico-arrow-down2:before {
+ content: "\ea3e";
+}
+
+.ico-arrow-down-left2:before {
+ content: "\ea3f";
+}
+
+.ico-arrow-left2:before {
+ content: "\ea40";
+}
+
+.ico-circle-up:before {
+ content: "\ea41";
+}
+
+.ico-circle-right:before {
+ content: "\ea42";
+}
+
+.ico-circle-down:before {
+ content: "\ea43";
+}
+
+.ico-circle-left:before {
+ content: "\ea44";
+}
+
+.ico-tab:before {
+ content: "\ea45";
+}
+
+.ico-move-up:before {
+ content: "\ea46";
+}
+
+.ico-move-down:before {
+ content: "\ea47";
+}
+
+.ico-sort-alpha-asc:before {
+ content: "\ea48";
+}
+
+.ico-sort-alpha-desc:before {
+ content: "\ea49";
+}
+
+.ico-sort-numeric-asc:before {
+ content: "\ea4a";
+}
+
+.ico-sort-numberic-desc:before {
+ content: "\ea4b";
+}
+
+.ico-sort-amount-asc:before {
+ content: "\ea4c";
+}
+
+.ico-sort-amount-desc:before {
+ content: "\ea4d";
+}
+
+.ico-checkbox-checked:before {
+ content: "\ea52";
+}
+
+.ico-checkbox-unchecked:before {
+ content: "\ea53";
+}
+
+.ico-radio-checked:before {
+ content: "\ea54";
+}
+
+.ico-radio-checked2:before {
+ content: "\ea55";
+}
+
+.ico-radio-unchecked:before {
+ content: "\ea56";
+}
+
+.ico-table:before {
+ content: "\ea70";
+}
+
+.ico-table2:before {
+ content: "\ea71";
+}
+
+.ico-share:before {
+ content: "\ea7d";
+}
+
+.ico-share2:before {
+ content: "\ea82";
+}
+
+.ico-github:before {
+ content: "\eab1";
+}
+
+.ico-github4:before {
+ content: "\eab4";
+}
diff --git a/app/less/outfit.less b/app/less/outfit.less
index cb453150..2c4608e6 100644
--- a/app/less/outfit.less
+++ b/app/less/outfit.less
@@ -69,11 +69,3 @@ u { // Unit (Mj, Km, etc)
cursor: pointer;
}
-.expandable {
- display: none;
-
- &.expanded {
- display: block;
- }
-}
-
diff --git a/app/less/select.less b/app/less/select.less
index 7a8ac884..d4374a39 100644
--- a/app/less/select.less
+++ b/app/less/select.less
@@ -31,6 +31,9 @@
cursor: not-allowed;
color: @disabled;
}
+ &.active {
+ color: @secondary;
+ }
}
@optionSpacing: 1.8em;
@@ -48,12 +51,12 @@
&.hardpoint {
.c {
width: 4em;
- &:nth-child(3n + 1) {
+ /* &:nth-child(3n + 1) {
clear: left;
}
&:nth-child(5n +1) {
clear: none;
- }
+ }*/
}
}
@@ -71,13 +74,16 @@
border:1px solid @warning;
}
- &:nth-child(5n +1) {
+ /*&:nth-child(5n +1) {
clear: left;
- }
+ }*/
&.disabled {
border:1px solid @disabled;
}
+ &.active {
+ border:1px solid @secondary;
+ }
}
ul {
@@ -87,6 +93,4 @@
list-style: none;
overflow: hidden;
}
-
-
-}
\ No newline at end of file
+}
diff --git a/app/views/_header.html b/app/views/_header.html
index 44cf4499..60b0f2f0 100644
--- a/app/views/_header.html
+++ b/app/views/_header.html
@@ -2,15 +2,15 @@
diff --git a/app/views/page-outfit.html b/app/views/page-outfit.html
index 18c622f4..cf8d7c02 100644
--- a/app/views/page-outfit.html
+++ b/app/views/page-outfit.html
@@ -4,11 +4,8 @@
@@ -23,11 +20,11 @@
{{ship.bulkheads.c.mass}} T
- Lightweight Alloy
- Reinforced Alloy
- Military Grade Composite
- Mirrored Surface Composite
- Reactive Surface Composite
+ Lightweight Alloy
+ Reinforced Alloy
+ Military Grade Composite
+ Mirrored Surface Composite
+ Reactive Surface Composite
@@ -40,7 +37,7 @@
Power: {{pp.c.pGen}} MW
{{pp.c.mass}} T
-
+
@@ -52,7 +49,7 @@
Max: {{th.c.maxmass}} T
{{th.c.mass}} T
-
+
@@ -64,7 +61,7 @@
Max Fuel: {{fsd.c.maxfuel}} T
{{fsd.c.mass}} T
-
+
@@ -75,7 +72,7 @@
Time: {{fTime(ls.c.time)}}
{{ls.c.mass}} T
-
+
@@ -88,7 +85,7 @@
Eng: {{pd.c.enginecapacity}} Mj {{pd.c.enginerecharge}}Mj/s
{{pd.c.mass}} T
-
+
@@ -99,7 +96,7 @@
{{ss.c.range}} KM
{{ss.c.mass}} T
-
+
@@ -108,20 +105,16 @@
{{ft.id}}
{{ft.c.capacity}} T
-
+
@@ -131,12 +124,13 @@
- Save
- Reload
+ Save
+ Reload
Delete
- Reset
+ Reset
+
@@ -145,6 +139,7 @@
Agility
{{ship.agility}} / 10
+
@@ -155,6 +150,7 @@
Multiplier
{{fRPct(ship.shieldMultiplier)}}
+
+
@@ -171,7 +168,46 @@
Unladen
{{fRound(ship.unladenMass)}} T
-
+
+
+
+
+
+
{{pp.c.class}}{{pp.c.rating}} Power Plant
{{fPwr(pp.c.pGen)}}
+
+
+
+
{{c.c.class}}{{c.c.rating}} {{CArr[$index]}}
{{fPwr(c.c.power)}}
+
+
+
+
1H Cargo Scoop
{{fPwr(ship.cargoScoop.c.power)}}
+
+
+
+
{{c.c.class}}{{c.c.rating}} {{c.c.name || hgMap[c.c.grp]}}
{{fPwr(c.c.power)}}
+
+
+
+
{{c.c.class}}{{c.c.rating}} {{c.c.name || igMap[c.c.grp]}}
{{fPwr(c.c.power)}}
+
+
+
+
+
Available
+
{{fPwr(ship.powerAvailable)}} MW
+
+
+
Deployed
+
{{fPwr(ship.powerDeployed)}} MW ({{fPct(ship.powerDeployed/ship.powerAvailable)}})
+
+
+
Retracted
+
{{fPwr(ship.powerRetracted)}} MW ({{fPct(ship.powerRetracted/ship.powerAvailable)}})
+
+
+
+
@@ -179,8 +215,55 @@
Fuel
{{fRound(ship.fuelCapacity)}} T
-
-
+
+
+
+
+
+ Stuff!
+
+
+
+
Laden
+
{{fRound(ship.ladenJumpRange)}} LY
+
+
+
Unladen
+
{{fRound(ship.unladenJumpRange)}} LY
+
+
+
+
+
+
+
+
+
{{ship.name}}
{{fCrd(ship.cost)}}
+
+
+
{{ship.bulkheads.c.name}}
{{fCrd(ship.bulkheads.c.cost)}}
+
+
+
{{c.c.class}}{{c.c.rating}} {{CArr[$index]}}
{{fCrd(c.c.cost)}}
+
+
+
{{c.c.class}}{{c.c.rating}} {{c.c.name || hgMap[c.c.grp]}}
{{fCrd(c.c.cost)}}
+
+
+
{{c.c.class}}{{c.c.rating}} {{c.c.name || igMap[c.c.grp]}}
{{fCrd(c.c.cost)}}
+
+
+
+
+
Total
+
{{fCrd(ship.totalCost)}} CR
+
+
+
Insurance
+
{{fCrd(ship.totalCost * insurance.current.pct)}} CR
+
+
+
diff --git a/app/views/page-shipyard.html b/app/views/page-shipyard.html
index b5c1bf89..e111809b 100644
--- a/app/views/page-shipyard.html
+++ b/app/views/page-shipyard.html
@@ -3,8 +3,8 @@
- {{fCrd(s.properties.cost)}} CR
+ {{fCrd(s.properties.cost)}}
\ No newline at end of file
diff --git a/app/views/power.html b/app/views/power.html
deleted file mode 100644
index 8776eabe..00000000
--- a/app/views/power.html
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
{{ship.common[0].c.class}}{{ship.common[0].c.rating}} {{$r.CArr[0]}}
{{$r.fPwr(ship.common[0].c.pGen)}}
-
-
-
-
{{c.c.class}}{{c.c.rating}} {{$r.CArr[$index]}}
{{$r.fPwr(c.c.power)}}
-
-
-
-
1H Cargo Scoop
{{$r.fPwr(ship.cargoScoop.c.power)}}
-
-
-
-
{{c.c.class}}{{c.c.rating}} {{c.c.name || $r.hgMap[c.c.grp]}}
{{$r.fPwr(c.c.power)}}
-
-
-
-
{{c.c.class}}{{c.c.rating}} {{c.c.name || $r.igMap[c.c.group]}}
{{$r.fPwr(c.c.power)}}
-
-
-
-
-
Available
-
{{$r.fPwr(ship.powerAvailable)}} MW
-
-
-
Deployed
-
{{$r.fPwr(ship.powerDeployed)}} MW ({{$r.fPct(ship.powerDeployed/ship.powerAvailable)}})
-
-
-
Retracted
-
{{$r.fPwr(ship.powerRetracted)}} MW ({{$r.fPct(ship.powerRetracted/ship.powerAvailable)}})
-
-
diff --git a/app/views/ship-range.html b/app/views/ship-range.html
deleted file mode 100644
index 2b8215dd..00000000
--- a/app/views/ship-range.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
- Stuff!
-
-
-
-
Laden
-
{{$r.fRound(ship.ladenJumpRange)}} LY
-
-
-
Unladen
-
{{$r.fRound(ship.unladenJumpRange)}} LY
-
-
diff --git a/data/components/internal/auto_field_maintenance_unit.json b/data/components/internal/auto_field_maintenance_unit.json
index 6ad01aff..97b5723c 100644
--- a/data/components/internal/auto_field_maintenance_unit.json
+++ b/data/components/internal/auto_field_maintenance_unit.json
@@ -1,7 +1,7 @@
{
"Auto Field-Maintenance Units": {
"10": {
- "group": "am",
+ "grp": "am",
"class": 5,
"rating": "E",
"cost": 104976,
@@ -10,7 +10,7 @@
"repair": 73.2
},
"11": {
- "group": "am",
+ "grp": "am",
"class": 6,
"rating": "A",
"cost": 15305501,
@@ -19,7 +19,7 @@
"repair": 226.8
},
"12": {
- "group": "am",
+ "grp": "am",
"class": 6,
"rating": "B",
"cost": 5101834,
@@ -28,7 +28,7 @@
"repair": 204.7
},
"13": {
- "group": "am",
+ "grp": "am",
"class": 6,
"rating": "C",
"cost": 1700611,
@@ -37,7 +37,7 @@
"repair": 148
},
"14": {
- "group": "am",
+ "grp": "am",
"class": 6,
"rating": "D",
"cost": 566870,
@@ -46,7 +46,7 @@
"repair": 107.2
},
"15": {
- "group": "am",
+ "grp": "am",
"class": 6,
"rating": "E",
"cost": 188957,
@@ -55,7 +55,7 @@
"repair": 88.8
},
"16": {
- "group": "am",
+ "grp": "am",
"class": 7,
"rating": "A",
"cost": 27549901,
@@ -64,7 +64,7 @@
"repair": 268.8
},
"17": {
- "group": "am",
+ "grp": "am",
"class": 7,
"rating": "B",
"cost": 9183300,
@@ -73,7 +73,7 @@
"repair": 239.2
},
"18": {
- "group": "am",
+ "grp": "am",
"class": 7,
"rating": "C",
"cost": 3061100,
@@ -82,7 +82,7 @@
"repair": 174
},
"19": {
- "group": "am",
+ "grp": "am",
"class": 7,
"rating": "D",
"cost": 1020367,
@@ -91,7 +91,7 @@
"repair": 124.8
},
"08": {
- "group": "am",
+ "grp": "am",
"class": 1,
"rating": "A",
"cost": 810000,
@@ -100,7 +100,7 @@
"repair": 30.8
},
"09": {
- "group": "am",
+ "grp": "am",
"class": 1,
"rating": "B",
"cost": 270000,
@@ -109,7 +109,7 @@
"repair": 27.6
},
"0a": {
- "group": "am",
+ "grp": "am",
"class": 1,
"rating": "C",
"cost": 90000,
@@ -118,7 +118,7 @@
"repair": 20
},
"0b": {
- "group": "am",
+ "grp": "am",
"class": 1,
"rating": "D",
"cost": 30000,
@@ -127,7 +127,7 @@
"repair": 14.4
},
"0c": {
- "group": "am",
+ "grp": "am",
"class": 1,
"rating": "E",
"cost": 10000,
@@ -136,7 +136,7 @@
"repair": 12
},
"0d": {
- "group": "am",
+ "grp": "am",
"class": 2,
"rating": "A",
"cost": 1458000,
@@ -145,7 +145,7 @@
"repair": 70
},
"0e": {
- "group": "am",
+ "grp": "am",
"class": 2,
"rating": "B",
"cost": 486000,
@@ -154,7 +154,7 @@
"repair": 64.4
},
"0f": {
- "group": "am",
+ "grp": "am",
"class": 2,
"rating": "C",
"cost": 162000,
@@ -163,7 +163,7 @@
"repair": 46
},
"0g": {
- "group": "am",
+ "grp": "am",
"class": 2,
"rating": "D",
"cost": 54000,
@@ -172,7 +172,7 @@
"repair": 33.6
},
"0h": {
- "group": "am",
+ "grp": "am",
"class": 2,
"rating": "E",
"cost": 18000,
@@ -181,7 +181,7 @@
"repair": 27.6
},
"0i": {
- "group": "am",
+ "grp": "am",
"class": 3,
"rating": "A",
"cost": 2624400,
@@ -190,7 +190,7 @@
"repair": 112
},
"0j": {
- "group": "am",
+ "grp": "am",
"class": 3,
"rating": "B",
"cost": 874800,
@@ -199,7 +199,7 @@
"repair": 98.9
},
"0k": {
- "group": "am",
+ "grp": "am",
"class": 3,
"rating": "C",
"cost": 291600,
@@ -208,7 +208,7 @@
"repair": 72
},
"0l": {
- "group": "am",
+ "grp": "am",
"class": 3,
"rating": "D",
"cost": 97200,
@@ -217,7 +217,7 @@
"repair": 51.2
},
"0m": {
- "group": "am",
+ "grp": "am",
"class": 3,
"rating": "E",
"cost": 32400,
@@ -226,7 +226,7 @@
"repair": 43.2
},
"0n": {
- "group": "am",
+ "grp": "am",
"class": 4,
"rating": "A",
"cost": 4723920,
@@ -235,7 +235,7 @@
"repair": 151.2
},
"0o": {
- "group": "am",
+ "grp": "am",
"class": 4,
"rating": "B",
"cost": 1574640,
@@ -244,7 +244,7 @@
"repair": 135.7
},
"0p": {
- "group": "am",
+ "grp": "am",
"class": 4,
"rating": "C",
"cost": 524880,
@@ -253,7 +253,7 @@
"repair": 98
},
"0q": {
- "group": "am",
+ "grp": "am",
"class": 4,
"rating": "D",
"cost": 174960,
@@ -262,7 +262,7 @@
"repair": 70.4
},
"0r": {
- "group": "am",
+ "grp": "am",
"class": 4,
"rating": "E",
"cost": 58320,
@@ -271,7 +271,7 @@
"repair": 58.8
},
"0s": {
- "group": "am",
+ "grp": "am",
"class": 5,
"rating": "A",
"cost": 8503056,
@@ -280,7 +280,7 @@
"repair": 187.6
},
"0t": {
- "group": "am",
+ "grp": "am",
"class": 5,
"rating": "B",
"cost": 2834352,
@@ -289,7 +289,7 @@
"repair": 167.9
},
"0u": {
- "group": "am",
+ "grp": "am",
"class": 5,
"rating": "C",
"cost": 944784,
@@ -298,7 +298,7 @@
"repair": 122
},
"0v": {
- "group": "am",
+ "grp": "am",
"class": 5,
"rating": "D",
"cost": 314928,
@@ -307,7 +307,7 @@
"repair": 88
},
"1a": {
- "group": "am",
+ "grp": "am",
"class": 7,
"rating": "E",
"cost": 340122,
@@ -316,7 +316,7 @@
"repair": 104.4
},
"1b": {
- "group": "am",
+ "grp": "am",
"class": 8,
"rating": "A",
"cost": 49589823,
@@ -325,7 +325,7 @@
"repair": 308
},
"1c": {
- "group": "am",
+ "grp": "am",
"class": 8,
"rating": "B",
"cost": 16529941,
@@ -334,7 +334,7 @@
"repair": 276
},
"1d": {
- "group": "am",
+ "grp": "am",
"class": 8,
"rating": "C",
"cost": 5509980,
@@ -343,7 +343,7 @@
"repair": 200
},
"1e": {
- "group": "am",
+ "grp": "am",
"class": 8,
"rating": "D",
"cost": 1836660,
@@ -352,7 +352,7 @@
"repair": 144
},
"1f": {
- "group": "am",
+ "grp": "am",
"class": 8,
"rating": "E",
"cost": 612220,
diff --git a/data/components/internal/cargo_rack.json b/data/components/internal/cargo_rack.json
index 9f095b9b..80933241 100644
--- a/data/components/internal/cargo_rack.json
+++ b/data/components/internal/cargo_rack.json
@@ -1,7 +1,7 @@
{
"Cargo Racks": {
"00": {
- "group": "cr",
+ "grp": "cr",
"name": "Cargo Rack (Capacity: 2)",
"class": 1,
"rating": "E",
@@ -9,7 +9,7 @@
"capacity": 2
},
"01": {
- "group": "cr",
+ "grp": "cr",
"name": "Cargo Rack (Capacity: 4)",
"class": 2,
"rating": "E",
@@ -17,7 +17,7 @@
"capacity": 4
},
"02": {
- "group": "cr",
+ "grp": "cr",
"name": "Cargo Rack (Capacity: 8)",
"class": 3,
"rating": "E",
@@ -25,7 +25,7 @@
"capacity": 8
},
"03": {
- "group": "cr",
+ "grp": "cr",
"name": "Cargo Rack (Capacity: 16)",
"class": 4,
"rating": "E",
@@ -33,7 +33,7 @@
"capacity": 16
},
"04": {
- "group": "cr",
+ "grp": "cr",
"name": "Cargo Rack (Capacity: 32)",
"class": 5,
"rating": "E",
@@ -41,7 +41,7 @@
"capacity": 32
},
"05": {
- "group": "cr",
+ "grp": "cr",
"name": "Cargo Rack (Capacity: 64)",
"class": 6,
"rating": "E",
@@ -49,7 +49,7 @@
"capacity": 64
},
"06": {
- "group": "cr",
+ "grp": "cr",
"name": "Cargo Rack (Capacity: 128)",
"class": 7,
"rating": "E",
@@ -57,7 +57,7 @@
"capacity": 128
},
"07": {
- "group": "cr",
+ "grp": "cr",
"name": "Cargo Rack (Capacity: 256)",
"class": 8,
"rating": "E",
diff --git a/data/components/internal/docking_computer.json b/data/components/internal/docking_computer.json
index 6e892562..73f2e021 100644
--- a/data/components/internal/docking_computer.json
+++ b/data/components/internal/docking_computer.json
@@ -1,7 +1,7 @@
{
"Docking Computers": {
"24": {
- "group": "dc",
+ "grp": "dc",
"name": "Standard Docking Computer",
"class": 1,
"rating": "E",
diff --git a/data/components/internal/frame_shift_drive_interdictor.json b/data/components/internal/frame_shift_drive_interdictor.json
index d68e8a00..09108f08 100644
--- a/data/components/internal/frame_shift_drive_interdictor.json
+++ b/data/components/internal/frame_shift_drive_interdictor.json
@@ -1,7 +1,7 @@
{
"FSD Interdictors": {
"66": {
- "group": "fi",
+ "grp": "fi",
"class": 1,
"rating": "A",
"cost": 972000,
@@ -10,7 +10,7 @@
"rangeRating": "C"
},
"67": {
- "group": "fi",
+ "grp": "fi",
"class": 1,
"rating": "B",
"cost": 324000,
@@ -19,7 +19,7 @@
"rangeRating": "D"
},
"68": {
- "group": "fi",
+ "grp": "fi",
"class": 1,
"rating": "C",
"cost": 108000,
@@ -28,7 +28,7 @@
"rangeRating": "D"
},
"69": {
- "group": "fi",
+ "grp": "fi",
"class": 1,
"rating": "D",
"cost": 36000,
@@ -37,7 +37,7 @@
"rangeRating": "D"
},
"6a": {
- "group": "fi",
+ "grp": "fi",
"class": 1,
"rating": "E",
"cost": 12000,
@@ -46,7 +46,7 @@
"rangeRating": "E"
},
"6b": {
- "group": "fi",
+ "grp": "fi",
"class": 2,
"rating": "A",
"cost": 2721600,
@@ -55,7 +55,7 @@
"rangeRating": "B"
},
"6c": {
- "group": "fi",
+ "grp": "fi",
"class": 2,
"rating": "B",
"cost": 907200,
@@ -64,7 +64,7 @@
"rangeRating": "C"
},
"6d": {
- "group": "fi",
+ "grp": "fi",
"class": 2,
"rating": "C",
"cost": 302400,
@@ -73,7 +73,7 @@
"rangeRating": "C"
},
"6e": {
- "group": "fi",
+ "grp": "fi",
"class": 2,
"rating": "D",
"cost": 100800,
@@ -82,7 +82,7 @@
"rangeRating": "C"
},
"6f": {
- "group": "fi",
+ "grp": "fi",
"class": 2,
"rating": "E",
"cost": 33600,
@@ -91,7 +91,7 @@
"rangeRating": "D"
},
"6g": {
- "group": "fi",
+ "grp": "fi",
"class": 3,
"rating": "A",
"cost": 7620480,
@@ -100,7 +100,7 @@
"rangeRating": "A"
},
"6h": {
- "group": "fi",
+ "grp": "fi",
"class": 3,
"rating": "B",
"cost": 2540160,
@@ -109,7 +109,7 @@
"rangeRating": "B"
},
"6i": {
- "group": "fi",
+ "grp": "fi",
"class": 3,
"rating": "C",
"cost": 846720,
@@ -118,7 +118,7 @@
"rangeRating": "B"
},
"6j": {
- "group": "fi",
+ "grp": "fi",
"class": 3,
"rating": "D",
"cost": 282240,
@@ -127,7 +127,7 @@
"rangeRating": "B"
},
"6k": {
- "group": "fi",
+ "grp": "fi",
"class": 3,
"rating": "E",
"cost": 94080,
@@ -136,7 +136,7 @@
"rangeRating": "C"
},
"6l": {
- "group": "fi",
+ "grp": "fi",
"class": 4,
"rating": "A",
"cost": 21337344,
@@ -145,7 +145,7 @@
"rangeRating": "A"
},
"6m": {
- "group": "fi",
+ "grp": "fi",
"class": 4,
"rating": "B",
"cost": 7112448,
@@ -154,7 +154,7 @@
"rangeRating": "A"
},
"6n": {
- "group": "fi",
+ "grp": "fi",
"class": 4,
"rating": "C",
"cost": 2370816,
@@ -163,7 +163,7 @@
"rangeRating": "A"
},
"6o": {
- "group": "fi",
+ "grp": "fi",
"class": 4,
"rating": "D",
"cost": 790272,
@@ -172,7 +172,7 @@
"rangeRating": "A"
},
"6p": {
- "group": "fi",
+ "grp": "fi",
"class": 4,
"rating": "E",
"cost": 263424,
diff --git a/data/components/internal/fuel_scoops.json b/data/components/internal/fuel_scoops.json
index 71493bce..8c172582 100644
--- a/data/components/internal/fuel_scoops.json
+++ b/data/components/internal/fuel_scoops.json
@@ -1,7 +1,7 @@
{
"Fuel Scoops": {
"30": {
- "group": "fs",
+ "grp": "fs",
"class": 3,
"rating": "D",
"cost": 14109,
@@ -9,7 +9,7 @@
"rate": 100
},
"31": {
- "group": "fs",
+ "grp": "fs",
"class": 3,
"rating": "E",
"cost": 3386,
@@ -17,7 +17,7 @@
"rate": 75
},
"32": {
- "group": "fs",
+ "grp": "fs",
"class": 4,
"rating": "A",
"cost": 2862364,
@@ -25,7 +25,7 @@
"rate": 342
},
"33": {
- "group": "fs",
+ "grp": "fs",
"class": 4,
"rating": "B",
"cost": 715591,
@@ -33,7 +33,7 @@
"rate": 294
},
"34": {
- "group": "fs",
+ "grp": "fs",
"class": 4,
"rating": "C",
"cost": 178898,
@@ -41,7 +41,7 @@
"rate": 245
},
"35": {
- "group": "fs",
+ "grp": "fs",
"class": 4,
"rating": "D",
"cost": 44724,
@@ -49,7 +49,7 @@
"rate": 196
},
"36": {
- "group": "fs",
+ "grp": "fs",
"class": 4,
"rating": "E",
"cost": 10734,
@@ -57,7 +57,7 @@
"rate": 147
},
"37": {
- "group": "fs",
+ "grp": "fs",
"class": 5,
"rating": "A",
"cost": 9073694,
@@ -65,7 +65,7 @@
"rate": 577
},
"38": {
- "group": "fs",
+ "grp": "fs",
"class": 5,
"rating": "B",
"cost": 2268424,
@@ -73,7 +73,7 @@
"rate": 494
},
"39": {
- "group": "fs",
+ "grp": "fs",
"class": 5,
"rating": "C",
"cost": 567106,
@@ -81,7 +81,7 @@
"rate": 412
},
"2j": {
- "group": "fs",
+ "grp": "fs",
"class": 1,
"rating": "A",
"cost": 82270,
@@ -89,7 +89,7 @@
"rate": 42
},
"2k": {
- "group": "fs",
+ "grp": "fs",
"class": 1,
"rating": "B",
"cost": 20568,
@@ -97,7 +97,7 @@
"rate": 36
},
"2l": {
- "group": "fs",
+ "grp": "fs",
"class": 1,
"rating": "C",
"cost": 5142,
@@ -105,7 +105,7 @@
"rate": 30
},
"2m": {
- "group": "fs",
+ "grp": "fs",
"class": 1,
"rating": "D",
"cost": 1285,
@@ -113,7 +113,7 @@
"rate": 24
},
"2n": {
- "group": "fs",
+ "grp": "fs",
"class": 1,
"rating": "E",
"cost": 309,
@@ -121,7 +121,7 @@
"rate": 18
},
"2o": {
- "group": "fs",
+ "grp": "fs",
"class": 2,
"rating": "A",
"cost": 284844,
@@ -129,7 +129,7 @@
"rate": 75
},
"2p": {
- "group": "fs",
+ "grp": "fs",
"class": 2,
"rating": "B",
"cost": 71211,
@@ -137,7 +137,7 @@
"rate": 65
},
"2q": {
- "group": "fs",
+ "grp": "fs",
"class": 2,
"rating": "C",
"cost": 17803,
@@ -145,7 +145,7 @@
"rate": 54
},
"2r": {
- "group": "fs",
+ "grp": "fs",
"class": 2,
"rating": "D",
"cost": 4451,
@@ -153,7 +153,7 @@
"rate": 43
},
"2s": {
- "group": "fs",
+ "grp": "fs",
"class": 2,
"rating": "E",
"cost": 1068,
@@ -161,7 +161,7 @@
"rate": 32
},
"2t": {
- "group": "fs",
+ "grp": "fs",
"class": 3,
"rating": "A",
"cost": 902954,
@@ -169,7 +169,7 @@
"rate": 176
},
"2u": {
- "group": "fs",
+ "grp": "fs",
"class": 3,
"rating": "B",
"cost": 225738,
@@ -177,7 +177,7 @@
"rate": 151
},
"2v": {
- "group": "fs",
+ "grp": "fs",
"class": 3,
"rating": "C",
"cost": 56435,
@@ -185,7 +185,7 @@
"rate": 126
},
"3a": {
- "group": "fs",
+ "grp": "fs",
"class": 5,
"rating": "D",
"cost": 141776,
@@ -193,7 +193,7 @@
"rate": 330
},
"3b": {
- "group": "fs",
+ "grp": "fs",
"class": 5,
"rating": "E",
"cost": 34026,
@@ -201,7 +201,7 @@
"rate": 247
},
"3c": {
- "group": "fs",
+ "grp": "fs",
"class": 6,
"rating": "A",
"cost": 28763610,
@@ -209,7 +209,7 @@
"rate": 878
},
"3d": {
- "group": "fs",
+ "grp": "fs",
"class": 6,
"rating": "B",
"cost": 7190903,
@@ -217,7 +217,7 @@
"rate": 752
},
"3e": {
- "group": "fs",
+ "grp": "fs",
"class": 6,
"rating": "C",
"cost": 1797726,
@@ -225,7 +225,7 @@
"rate": 627
},
"3f": {
- "group": "fs",
+ "grp": "fs",
"class": 6,
"rating": "D",
"cost": 449431,
@@ -233,7 +233,7 @@
"rate": 502
},
"3g": {
- "group": "fs",
+ "grp": "fs",
"class": 6,
"rating": "E",
"cost": 107864,
@@ -241,7 +241,7 @@
"rate": 376
},
"3h": {
- "group": "fs",
+ "grp": "fs",
"class": 7,
"rating": "A",
"cost": 91180644,
@@ -249,7 +249,7 @@
"rate": 1245
},
"3i": {
- "group": "fs",
+ "grp": "fs",
"class": 7,
"rating": "B",
"cost": 22795161,
@@ -257,7 +257,7 @@
"rate": 1068
},
"3j": {
- "group": "fs",
+ "grp": "fs",
"class": 7,
"rating": "C",
"cost": 5698790,
@@ -265,7 +265,7 @@
"rate": 890
},
"3k": {
- "group": "fs",
+ "grp": "fs",
"class": 7,
"rating": "D",
"cost": 1424698,
@@ -273,7 +273,7 @@
"rate": 712
},
"3l": {
- "group": "fs",
+ "grp": "fs",
"class": 7,
"rating": "E",
"cost": 341927,
@@ -281,7 +281,7 @@
"rate": 534
},
"3m": {
- "group": "fs",
+ "grp": "fs",
"class": 8,
"rating": "A",
"cost": 289042541,
@@ -289,7 +289,7 @@
"rate": 1680
},
"3n": {
- "group": "fs",
+ "grp": "fs",
"class": 8,
"rating": "B",
"cost": 72260660,
@@ -297,7 +297,7 @@
"rate": 1440
},
"3o": {
- "group": "fs",
+ "grp": "fs",
"class": 8,
"rating": "C",
"cost": 18065165,
@@ -305,7 +305,7 @@
"rate": 1200
},
"3p": {
- "group": "fs",
+ "grp": "fs",
"class": 8,
"rating": "D",
"cost": 4516291,
@@ -313,7 +313,7 @@
"rate": 960
},
"3q": {
- "group": "fs",
+ "grp": "fs",
"class": 8,
"rating": "E",
"cost": 1083910,
diff --git a/data/components/internal/hatch_breaker_limpet_controller.json b/data/components/internal/hatch_breaker_limpet_controller.json
index e2297758..1966d7c8 100644
--- a/data/components/internal/hatch_breaker_limpet_controller.json
+++ b/data/components/internal/hatch_breaker_limpet_controller.json
@@ -1,7 +1,7 @@
{
"Hatch Breaker Limpet Controllers": {
"70": {
- "group": "hb",
+ "grp": "hb",
"class": 3,
"rating": "B",
"cost": 43200,
@@ -11,7 +11,7 @@
"time": 21
},
"71": {
- "group": "hb",
+ "grp": "hb",
"class": 3,
"rating": "C",
"cost": 21600,
@@ -21,7 +21,7 @@
"time": 26
},
"72": {
- "group": "hb",
+ "grp": "hb",
"class": 3,
"rating": "D",
"cost": 10800,
@@ -31,7 +31,7 @@
"time": 31
},
"73": {
- "group": "hb",
+ "grp": "hb",
"class": 3,
"rating": "E",
"cost": 5400,
@@ -41,7 +41,7 @@
"time": 36
},
"74": {
- "group": "hb",
+ "grp": "hb",
"class": 5,
"rating": "A",
"cost": 777600,
@@ -51,7 +51,7 @@
"time": 13
},
"75": {
- "group": "hb",
+ "grp": "hb",
"class": 5,
"rating": "B",
"cost": 388800,
@@ -61,7 +61,7 @@
"time": 18
},
"76": {
- "group": "hb",
+ "grp": "hb",
"class": 5,
"rating": "C",
"cost": 194400,
@@ -71,7 +71,7 @@
"time": 22
},
"77": {
- "group": "hb",
+ "grp": "hb",
"class": 5,
"rating": "D",
"cost": 97200,
@@ -81,7 +81,7 @@
"time": 26
},
"78": {
- "group": "hb",
+ "grp": "hb",
"class": 5,
"rating": "E",
"cost": 48600,
@@ -91,7 +91,7 @@
"time": 31
},
"79": {
- "group": "hb",
+ "grp": "hb",
"class": 7,
"rating": "A",
"cost": 6998400,
@@ -101,7 +101,7 @@
"time": 11
},
"6q": {
- "group": "hb",
+ "grp": "hb",
"class": 1,
"rating": "A",
"cost": 9600,
@@ -111,7 +111,7 @@
"time": 18
},
"6r": {
- "group": "hb",
+ "grp": "hb",
"class": 1,
"rating": "B",
"cost": 4800,
@@ -121,7 +121,7 @@
"time": 24
},
"6s": {
- "group": "hb",
+ "grp": "hb",
"class": 1,
"rating": "C",
"cost": 2400,
@@ -131,7 +131,7 @@
"time": 30
},
"6t": {
- "group": "hb",
+ "grp": "hb",
"class": 1,
"rating": "D",
"cost": 1200,
@@ -141,7 +141,7 @@
"time": 36
},
"6u": {
- "group": "hb",
+ "grp": "hb",
"class": 1,
"rating": "E",
"cost": 600,
@@ -151,7 +151,7 @@
"time": 42
},
"6v": {
- "group": "hb",
+ "grp": "hb",
"class": 3,
"rating": "A",
"cost": 86400,
@@ -161,7 +161,7 @@
"time": 16
},
"7a": {
- "group": "hb",
+ "grp": "hb",
"class": 7,
"rating": "B",
"cost": 3499200,
@@ -171,7 +171,7 @@
"time": 14
},
"7b": {
- "group": "hb",
+ "grp": "hb",
"class": 7,
"rating": "C",
"cost": 1749600,
@@ -181,7 +181,7 @@
"time": 18
},
"7c": {
- "group": "hb",
+ "grp": "hb",
"class": 7,
"rating": "D",
"cost": 874800,
@@ -191,7 +191,7 @@
"time": 22
},
"7d": {
- "group": "hb",
+ "grp": "hb",
"class": 7,
"rating": "E",
"cost": 437400,
diff --git a/data/components/internal/hull_reinforcement_package.json b/data/components/internal/hull_reinforcement_package.json
index df962e56..0dce8c75 100644
--- a/data/components/internal/hull_reinforcement_package.json
+++ b/data/components/internal/hull_reinforcement_package.json
@@ -1,7 +1,7 @@
{
"Hull Reinforcement Packages": {
"25": {
- "group": "hr",
+ "grp": "hr",
"class": 1,
"rating": "D",
"cost": 15000,
@@ -9,7 +9,7 @@
"armouradd": 15
},
"26": {
- "group": "hr",
+ "grp": "hr",
"class": 1,
"rating": "E",
"cost": 5000,
@@ -17,7 +17,7 @@
"armouradd": 10
},
"27": {
- "group": "hr",
+ "grp": "hr",
"class": 2,
"rating": "D",
"cost": 36000,
@@ -25,7 +25,7 @@
"armouradd": 30
},
"28": {
- "group": "hr",
+ "grp": "hr",
"class": 2,
"rating": "E",
"cost": 12000,
@@ -33,7 +33,7 @@
"armouradd": 20
},
"29": {
- "group": "hr",
+ "grp": "hr",
"class": 3,
"rating": "D",
"cost": 84000,
@@ -41,7 +41,7 @@
"armouradd": 60
},
"2a": {
- "group": "hr",
+ "grp": "hr",
"class": 3,
"rating": "E",
"cost": 28000,
@@ -49,7 +49,7 @@
"armouradd": 40
},
"2b": {
- "group": "hr",
+ "grp": "hr",
"class": 4,
"rating": "D",
"cost": 195000,
@@ -57,7 +57,7 @@
"armouradd": 120
},
"2c": {
- "group": "hr",
+ "grp": "hr",
"class": 4,
"rating": "E",
"cost": 65000,
@@ -65,7 +65,7 @@
"armouradd": 80
},
"2d": {
- "group": "hr",
+ "grp": "hr",
"class": 5,
"rating": "D",
"cost": 450000,
@@ -73,7 +73,7 @@
"armouradd": 240
},
"2e": {
- "group": "hr",
+ "grp": "hr",
"class": 5,
"rating": "E",
"cost": 150000,
diff --git a/data/components/internal/refinery.json b/data/components/internal/refinery.json
index 346e047c..7f754b91 100644
--- a/data/components/internal/refinery.json
+++ b/data/components/internal/refinery.json
@@ -1,7 +1,7 @@
{
"Refineries": {
"20": {
- "group": "rf",
+ "grp": "rf",
"class": 4,
"rating": "B",
"cost": 1500282,
@@ -9,7 +9,7 @@
"bins": 9
},
"21": {
- "group": "rf",
+ "grp": "rf",
"class": 4,
"rating": "C",
"cost": 500094,
@@ -17,7 +17,7 @@
"bins": 7
},
"22": {
- "group": "rf",
+ "grp": "rf",
"class": 4,
"rating": "D",
"cost": 166698,
@@ -25,7 +25,7 @@
"bins": 5
},
"23": {
- "group": "rf",
+ "grp": "rf",
"class": 4,
"rating": "E",
"cost": 55566,
@@ -33,7 +33,7 @@
"bins": 4
},
"1g": {
- "group": "rf",
+ "grp": "rf",
"class": 1,
"rating": "A",
"cost": 486000,
@@ -41,7 +41,7 @@
"bins": 4
},
"1h": {
- "group": "rf",
+ "grp": "rf",
"class": 1,
"rating": "B",
"cost": 162000,
@@ -49,7 +49,7 @@
"bins": 3
},
"1i": {
- "group": "rf",
+ "grp": "rf",
"class": 1,
"rating": "C",
"cost": 54000,
@@ -57,7 +57,7 @@
"bins": 2
},
"1j": {
- "group": "rf",
+ "grp": "rf",
"class": 1,
"rating": "D",
"cost": 18000,
@@ -65,7 +65,7 @@
"bins": 1
},
"1k": {
- "group": "rf",
+ "grp": "rf",
"class": 1,
"rating": "E",
"cost": 6000,
@@ -73,7 +73,7 @@
"bins": 1
},
"1l": {
- "group": "rf",
+ "grp": "rf",
"class": 2,
"rating": "A",
"cost": 1020600,
@@ -81,7 +81,7 @@
"bins": 6
},
"1m": {
- "group": "rf",
+ "grp": "rf",
"class": 2,
"rating": "B",
"cost": 340200,
@@ -89,7 +89,7 @@
"bins": 5
},
"1n": {
- "group": "rf",
+ "grp": "rf",
"class": 2,
"rating": "C",
"cost": 113400,
@@ -97,7 +97,7 @@
"bins": 4
},
"1o": {
- "group": "rf",
+ "grp": "rf",
"class": 2,
"rating": "D",
"cost": 37800,
@@ -105,7 +105,7 @@
"bins": 3
},
"1p": {
- "group": "rf",
+ "grp": "rf",
"class": 2,
"rating": "E",
"cost": 12600,
@@ -113,7 +113,7 @@
"bins": 2
},
"1q": {
- "group": "rf",
+ "grp": "rf",
"class": 3,
"rating": "A",
"cost": 2143260,
@@ -121,7 +121,7 @@
"bins": 8
},
"1r": {
- "group": "rf",
+ "grp": "rf",
"class": 3,
"rating": "B",
"cost": 714420,
@@ -129,7 +129,7 @@
"bins": 7
},
"1s": {
- "group": "rf",
+ "grp": "rf",
"class": 3,
"rating": "C",
"cost": 238140,
@@ -137,7 +137,7 @@
"bins": 6
},
"1t": {
- "group": "rf",
+ "grp": "rf",
"class": 3,
"rating": "D",
"cost": 79380,
@@ -145,7 +145,7 @@
"bins": 4
},
"1u": {
- "group": "rf",
+ "grp": "rf",
"class": 3,
"rating": "E",
"cost": 26460,
@@ -153,7 +153,7 @@
"bins": 3
},
"1v": {
- "group": "rf",
+ "grp": "rf",
"class": 4,
"rating": "A",
"cost": 4500846,
diff --git a/data/components/internal/scanners.json b/data/components/internal/scanners.json
index 7dc44615..2d742cbb 100644
--- a/data/components/internal/scanners.json
+++ b/data/components/internal/scanners.json
@@ -1,7 +1,7 @@
{
"Scanners": {
"2f": {
- "group": "sc",
+ "grp": "sc",
"name": "Adv. Discovery Scanner",
"class": 1,
"rating": "C",
@@ -11,7 +11,7 @@
"range": null
},
"2g": {
- "group": "sc",
+ "grp": "sc",
"name": "Inter. Discovery Scanner",
"class": 1,
"rating": "D",
@@ -21,7 +21,7 @@
"range": 1000
},
"2h": {
- "group": "sc",
+ "grp": "sc",
"name": "Basic Discovery Scanner",
"class": 1,
"rating": "E",
@@ -31,7 +31,7 @@
"range": 500
},
"2i": {
- "group": "sc",
+ "grp": "sc",
"name": "Detailed Surface Scanner",
"class": 1,
"rating": "C",
diff --git a/data/components/internal/shield_cell_bank.json b/data/components/internal/shield_cell_bank.json
index 3fd2ef9d..57bb0c95 100644
--- a/data/components/internal/shield_cell_bank.json
+++ b/data/components/internal/shield_cell_bank.json
@@ -1,7 +1,7 @@
{
"Shield Cell Banks": {
"50": {
- "group": "sb",
+ "grp": "sb",
"class": 1,
"rating": "C",
"cost": 3231,
@@ -11,7 +11,7 @@
"rate": "D"
},
"51": {
- "group": "sb",
+ "grp": "sb",
"class": 1,
"rating": "D",
"cost": 1293,
@@ -21,7 +21,7 @@
"rate": "E"
},
"52": {
- "group": "sb",
+ "grp": "sb",
"class": 1,
"rating": "E",
"cost": 517,
@@ -31,7 +31,7 @@
"rate": "E"
},
"53": {
- "group": "sb",
+ "grp": "sb",
"class": 2,
"rating": "A",
"cost": 56547,
@@ -41,7 +41,7 @@
"rate": "C"
},
"54": {
- "group": "sb",
+ "grp": "sb",
"class": 2,
"rating": "B",
"cost": 22619,
@@ -51,7 +51,7 @@
"rate": "D"
},
"55": {
- "group": "sb",
+ "grp": "sb",
"class": 2,
"rating": "C",
"cost": 9048,
@@ -61,7 +61,7 @@
"rate": "D"
},
"56": {
- "group": "sb",
+ "grp": "sb",
"class": 2,
"rating": "D",
"cost": 3619,
@@ -71,7 +71,7 @@
"rate": "D"
},
"57": {
- "group": "sb",
+ "grp": "sb",
"class": 2,
"rating": "E",
"cost": 1448,
@@ -81,7 +81,7 @@
"rate": "E"
},
"58": {
- "group": "sb",
+ "grp": "sb",
"class": 3,
"rating": "A",
"cost": 158331,
@@ -91,7 +91,7 @@
"rate": "C"
},
"59": {
- "group": "sb",
+ "grp": "sb",
"class": 3,
"rating": "B",
"cost": 63333,
@@ -101,7 +101,7 @@
"rate": "C"
},
"60": {
- "group": "sb",
+ "grp": "sb",
"class": 7,
"rating": "E",
"cost": 249137,
@@ -111,7 +111,7 @@
"rate": "D"
},
"61": {
- "group": "sb",
+ "grp": "sb",
"class": 8,
"rating": "A",
"cost": 27249391,
@@ -121,7 +121,7 @@
"rate": "A"
},
"62": {
- "group": "sb",
+ "grp": "sb",
"class": 8,
"rating": "B",
"cost": 10899756,
@@ -131,7 +131,7 @@
"rate": "A"
},
"63": {
- "group": "sb",
+ "grp": "sb",
"class": 8,
"rating": "C",
"cost": 4359903,
@@ -141,7 +141,7 @@
"rate": "B"
},
"64": {
- "group": "sb",
+ "grp": "sb",
"class": 8,
"rating": "D",
"cost": 1743961,
@@ -151,7 +151,7 @@
"rate": "C"
},
"65": {
- "group": "sb",
+ "grp": "sb",
"class": 8,
"rating": "E",
"cost": 697584,
@@ -161,7 +161,7 @@
"rate": "C"
},
"4u": {
- "group": "sb",
+ "grp": "sb",
"class": 1,
"rating": "A",
"cost": 20195,
@@ -171,7 +171,7 @@
"rate": "D"
},
"4v": {
- "group": "sb",
+ "grp": "sb",
"class": 1,
"rating": "B",
"cost": 8078,
@@ -181,7 +181,7 @@
"rate": "D"
},
"5a": {
- "group": "sb",
+ "grp": "sb",
"class": 3,
"rating": "C",
"cost": 25333,
@@ -191,7 +191,7 @@
"rate": "D"
},
"5b": {
- "group": "sb",
+ "grp": "sb",
"class": 3,
"rating": "D",
"cost": 10133,
@@ -201,7 +201,7 @@
"rate": "D"
},
"5c": {
- "group": "sb",
+ "grp": "sb",
"class": 3,
"rating": "E",
"cost": 4053,
@@ -211,7 +211,7 @@
"rate": "D"
},
"5d": {
- "group": "sb",
+ "grp": "sb",
"class": 4,
"rating": "A",
"cost": 443328,
@@ -221,7 +221,7 @@
"rate": "B"
},
"5e": {
- "group": "sb",
+ "grp": "sb",
"class": 4,
"rating": "B",
"cost": 177331,
@@ -231,7 +231,7 @@
"rate": "C"
},
"5f": {
- "group": "sb",
+ "grp": "sb",
"class": 4,
"rating": "C",
"cost": 70932,
@@ -241,7 +241,7 @@
"rate": "C"
},
"5g": {
- "group": "sb",
+ "grp": "sb",
"class": 4,
"rating": "D",
"cost": 28373,
@@ -251,7 +251,7 @@
"rate": "D"
},
"5h": {
- "group": "sb",
+ "grp": "sb",
"class": 4,
"rating": "E",
"cost": 11349,
@@ -261,7 +261,7 @@
"rate": "D"
},
"5i": {
- "group": "sb",
+ "grp": "sb",
"class": 5,
"rating": "A",
"cost": 1241317,
@@ -271,7 +271,7 @@
"rate": "B"
},
"5j": {
- "group": "sb",
+ "grp": "sb",
"class": 5,
"rating": "B",
"cost": 496527,
@@ -281,7 +281,7 @@
"rate": "B"
},
"5k": {
- "group": "sb",
+ "grp": "sb",
"class": 5,
"rating": "C",
"cost": 198611,
@@ -291,7 +291,7 @@
"rate": "C"
},
"5l": {
- "group": "sb",
+ "grp": "sb",
"class": 5,
"rating": "D",
"cost": 79444,
@@ -301,7 +301,7 @@
"rate": "C"
},
"5m": {
- "group": "sb",
+ "grp": "sb",
"class": 5,
"rating": "E",
"cost": 31778,
@@ -311,7 +311,7 @@
"rate": "D"
},
"5n": {
- "group": "sb",
+ "grp": "sb",
"class": 6,
"rating": "A",
"cost": 3475688,
@@ -321,7 +321,7 @@
"rate": "A"
},
"5o": {
- "group": "sb",
+ "grp": "sb",
"class": 6,
"rating": "B",
"cost": 1390275,
@@ -331,7 +331,7 @@
"rate": "B"
},
"5p": {
- "group": "sb",
+ "grp": "sb",
"class": 6,
"rating": "C",
"cost": 556110,
@@ -341,7 +341,7 @@
"rate": "C"
},
"5q": {
- "group": "sb",
+ "grp": "sb",
"class": 6,
"rating": "D",
"cost": 222444,
@@ -351,7 +351,7 @@
"rate": "C"
},
"5r": {
- "group": "sb",
+ "grp": "sb",
"class": 6,
"rating": "E",
"cost": 88978,
@@ -361,7 +361,7 @@
"rate": "D"
},
"5s": {
- "group": "sb",
+ "grp": "sb",
"class": 7,
"rating": "A",
"cost": 9731925,
@@ -371,7 +371,7 @@
"rate": "A"
},
"5t": {
- "group": "sb",
+ "grp": "sb",
"class": 7,
"rating": "B",
"cost": 3892770,
@@ -381,7 +381,7 @@
"rate": "B"
},
"5u": {
- "group": "sb",
+ "grp": "sb",
"class": 7,
"rating": "C",
"cost": 1557108,
@@ -391,7 +391,7 @@
"rate": "B"
},
"5v": {
- "group": "sb",
+ "grp": "sb",
"class": 7,
"rating": "D",
"cost": 622843,
diff --git a/data/components/internal/shield_generator.json b/data/components/internal/shield_generator.json
index 76325d8c..ef164390 100644
--- a/data/components/internal/shield_generator.json
+++ b/data/components/internal/shield_generator.json
@@ -1,147 +1,7 @@
{
"Shield Generators": {
- "40": {
- "group": "sg",
- "class": 3,
- "rating": "A",
- "cost": 507912,
- "mass": 5,
- "power": 2.52,
- "minmass": 83,
- "optmass": 165,
- "maxmass": 413,
- "minmul": 1.7,
- "optmul": 1.2,
- "maxmul": 0.7
- },
- "41": {
- "group": "sg",
- "class": 3,
- "rating": "B",
- "cost": 169304,
- "mass": 8,
- "power": 2.16,
- "minmass": 83,
- "optmass": 165,
- "maxmass": 413,
- "minmul": 1.6,
- "optmul": 1.1,
- "maxmul": 0.6
- },
- "42": {
- "group": "sg",
- "class": 3,
- "rating": "C",
- "cost": 56435,
- "mass": 5,
- "power": 1.8,
- "minmass": 83,
- "optmass": 165,
- "maxmass": 413,
- "minmul": 1.5,
- "optmul": 1,
- "maxmul": 0.5
- },
- "43": {
- "group": "sg",
- "class": 3,
- "rating": "D",
- "cost": 18812,
- "mass": 2,
- "power": 1.44,
- "minmass": 83,
- "optmass": 165,
- "maxmass": 413,
- "minmul": 1.4,
- "optmul": 0.9,
- "maxmul": 0.4
- },
- "44": {
- "group": "sg",
- "class": 3,
- "rating": "E",
- "cost": 6271,
- "mass": 5,
- "power": 1.08,
- "minmass": 83,
- "optmass": 165,
- "maxmass": 413,
- "minmul": 1.3,
- "optmul": 0.8,
- "maxmul": 0.3
- },
- "45": {
- "group": "sg",
- "class": 4,
- "rating": "A",
- "cost": 1610080,
- "mass": 10,
- "power": 3.08,
- "minmass": 143,
- "optmass": 285,
- "maxmass": 713,
- "minmul": 1.7,
- "optmul": 1.2,
- "maxmul": 0.7
- },
- "46": {
- "group": "sg",
- "class": 4,
- "rating": "B",
- "cost": 536693,
- "mass": 16,
- "power": 2.64,
- "minmass": 143,
- "optmass": 285,
- "maxmass": 713,
- "minmul": 1.6,
- "optmul": 1.1,
- "maxmul": 0.6
- },
- "47": {
- "group": "sg",
- "class": 4,
- "rating": "C",
- "cost": 178898,
- "mass": 10,
- "power": 2.2,
- "minmass": 143,
- "optmass": 285,
- "maxmass": 713,
- "minmul": 1.5,
- "optmul": 1,
- "maxmul": 0.5
- },
- "48": {
- "group": "sg",
- "class": 4,
- "rating": "D",
- "cost": 59633,
- "mass": 4,
- "power": 1.76,
- "minmass": 143,
- "optmass": 285,
- "maxmass": 713,
- "minmul": 1.4,
- "optmul": 0.9,
- "maxmul": 0.4
- },
- "49": {
- "group": "sg",
- "class": 4,
- "rating": "E",
- "cost": 19878,
- "mass": 10,
- "power": 1.32,
- "minmass": 143,
- "optmass": 285,
- "maxmass": 713,
- "minmul": 1.3,
- "optmul": 0.8,
- "maxmul": 0.3
- },
"3r": {
- "group": "sg",
+ "grp": "sg",
"class": 2,
"rating": "A",
"cost": 160224,
@@ -155,7 +15,7 @@
"maxmul": 0.7
},
"3s": {
- "group": "sg",
+ "grp": "sg",
"class": 2,
"rating": "B",
"cost": 53408,
@@ -169,7 +29,7 @@
"maxmul": 0.6
},
"3t": {
- "group": "sg",
+ "grp": "sg",
"class": 2,
"rating": "C",
"cost": 17803,
@@ -183,7 +43,7 @@
"maxmul": 0.5
},
"3u": {
- "group": "sg",
+ "grp": "sg",
"class": 2,
"rating": "D",
"cost": 5934,
@@ -197,7 +57,7 @@
"maxmul": 0.4
},
"3v": {
- "group": "sg",
+ "grp": "sg",
"class": 2,
"rating": "E",
"cost": 1978,
@@ -210,8 +70,148 @@
"optmul": 0.8,
"maxmul": 0.3
},
+ "40": {
+ "grp": "sg",
+ "class": 3,
+ "rating": "A",
+ "cost": 507912,
+ "mass": 5,
+ "power": 2.52,
+ "minmass": 83,
+ "optmass": 165,
+ "maxmass": 413,
+ "minmul": 1.7,
+ "optmul": 1.2,
+ "maxmul": 0.7
+ },
+ "41": {
+ "grp": "sg",
+ "class": 3,
+ "rating": "B",
+ "cost": 169304,
+ "mass": 8,
+ "power": 2.16,
+ "minmass": 83,
+ "optmass": 165,
+ "maxmass": 413,
+ "minmul": 1.6,
+ "optmul": 1.1,
+ "maxmul": 0.6
+ },
+ "42": {
+ "grp": "sg",
+ "class": 3,
+ "rating": "C",
+ "cost": 56435,
+ "mass": 5,
+ "power": 1.8,
+ "minmass": 83,
+ "optmass": 165,
+ "maxmass": 413,
+ "minmul": 1.5,
+ "optmul": 1,
+ "maxmul": 0.5
+ },
+ "43": {
+ "grp": "sg",
+ "class": 3,
+ "rating": "D",
+ "cost": 18812,
+ "mass": 2,
+ "power": 1.44,
+ "minmass": 83,
+ "optmass": 165,
+ "maxmass": 413,
+ "minmul": 1.4,
+ "optmul": 0.9,
+ "maxmul": 0.4
+ },
+ "44": {
+ "grp": "sg",
+ "class": 3,
+ "rating": "E",
+ "cost": 6271,
+ "mass": 5,
+ "power": 1.08,
+ "minmass": 83,
+ "optmass": 165,
+ "maxmass": 413,
+ "minmul": 1.3,
+ "optmul": 0.8,
+ "maxmul": 0.3
+ },
+ "45": {
+ "grp": "sg",
+ "class": 4,
+ "rating": "A",
+ "cost": 1610080,
+ "mass": 10,
+ "power": 3.08,
+ "minmass": 143,
+ "optmass": 285,
+ "maxmass": 713,
+ "minmul": 1.7,
+ "optmul": 1.2,
+ "maxmul": 0.7
+ },
+ "46": {
+ "grp": "sg",
+ "class": 4,
+ "rating": "B",
+ "cost": 536693,
+ "mass": 16,
+ "power": 2.64,
+ "minmass": 143,
+ "optmass": 285,
+ "maxmass": 713,
+ "minmul": 1.6,
+ "optmul": 1.1,
+ "maxmul": 0.6
+ },
+ "47": {
+ "grp": "sg",
+ "class": 4,
+ "rating": "C",
+ "cost": 178898,
+ "mass": 10,
+ "power": 2.2,
+ "minmass": 143,
+ "optmass": 285,
+ "maxmass": 713,
+ "minmul": 1.5,
+ "optmul": 1,
+ "maxmul": 0.5
+ },
+ "48": {
+ "grp": "sg",
+ "class": 4,
+ "rating": "D",
+ "cost": 59633,
+ "mass": 4,
+ "power": 1.76,
+ "minmass": 143,
+ "optmass": 285,
+ "maxmass": 713,
+ "minmul": 1.4,
+ "optmul": 0.9,
+ "maxmul": 0.4
+ },
+ "49": {
+ "grp": "sg",
+ "class": 4,
+ "rating": "E",
+ "cost": 19878,
+ "mass": 10,
+ "power": 1.32,
+ "minmass": 143,
+ "optmass": 285,
+ "maxmass": 713,
+ "minmul": 1.3,
+ "optmul": 0.8,
+ "maxmul": 0.3
+ },
"4a": {
- "group": "sg",
+ "grp": "sg",
"class": 5,
"rating": "A",
"cost": 5103953,
@@ -225,7 +225,7 @@
"maxmul": 0.7
},
"4b": {
- "group": "sg",
+ "grp": "sg",
"class": 5,
"rating": "B",
"cost": 1701318,
@@ -239,7 +239,7 @@
"maxmul": 0.6
},
"4c": {
- "group": "sg",
+ "grp": "sg",
"class": 5,
"rating": "C",
"cost": 567106,
@@ -253,7 +253,7 @@
"maxmul": 0.5
},
"4d": {
- "group": "sg",
+ "grp": "sg",
"class": 5,
"rating": "D",
"cost": 189035,
@@ -267,7 +267,7 @@
"maxmul": 0.4
},
"4e": {
- "group": "sg",
+ "grp": "sg",
"class": 5,
"rating": "E",
"cost": 63012,
@@ -281,7 +281,7 @@
"maxmul": 0.3
},
"4f": {
- "group": "sg",
+ "grp": "sg",
"class": 6,
"rating": "A",
"cost": 16179531,
@@ -295,7 +295,7 @@
"maxmul": 0.7
},
"4g": {
- "group": "sg",
+ "grp": "sg",
"class": 6,
"rating": "B",
"cost": 5393177,
@@ -309,7 +309,7 @@
"maxmul": 0.6
},
"4h": {
- "group": "sg",
+ "grp": "sg",
"class": 6,
"rating": "C",
"cost": 1797726,
@@ -323,7 +323,7 @@
"maxmul": 0.5
},
"4i": {
- "group": "sg",
+ "grp": "sg",
"class": 6,
"rating": "D",
"cost": 599242,
@@ -337,7 +337,7 @@
"maxmul": 0.4
},
"4j": {
- "group": "sg",
+ "grp": "sg",
"class": 6,
"rating": "E",
"cost": 199747,
@@ -351,7 +351,7 @@
"maxmul": 0.3
},
"4k": {
- "group": "sg",
+ "grp": "sg",
"class": 7,
"rating": "A",
"cost": 51289112,
@@ -365,7 +365,7 @@
"maxmul": 0.7
},
"4l": {
- "group": "sg",
+ "grp": "sg",
"class": 7,
"rating": "B",
"cost": 17096371,
@@ -379,7 +379,7 @@
"maxmul": 0.6
},
"4m": {
- "group": "sg",
+ "grp": "sg",
"class": 7,
"rating": "C",
"cost": 5698790,
@@ -393,7 +393,7 @@
"maxmul": 0.5
},
"4n": {
- "group": "sg",
+ "grp": "sg",
"class": 7,
"rating": "D",
"cost": 1899597,
@@ -407,7 +407,7 @@
"maxmul": 0.4
},
"4o": {
- "group": "sg",
+ "grp": "sg",
"class": 7,
"rating": "E",
"cost": 633199,
@@ -421,7 +421,7 @@
"maxmul": 0.3
},
"4p": {
- "group": "sg",
+ "grp": "sg",
"class": 8,
"rating": "A",
"cost": 162586486,
@@ -435,7 +435,7 @@
"maxmul": 0.7
},
"4q": {
- "group": "sg",
+ "grp": "sg",
"class": 8,
"rating": "B",
"cost": 54195495,
@@ -449,7 +449,7 @@
"maxmul": 0.6
},
"4r": {
- "group": "sg",
+ "grp": "sg",
"class": 8,
"rating": "C",
"cost": 18065165,
@@ -463,7 +463,7 @@
"maxmul": 0.5
},
"4s": {
- "group": "sg",
+ "grp": "sg",
"class": 8,
"rating": "D",
"cost": 6021722,
@@ -477,7 +477,7 @@
"maxmul": 0.4
},
"4t": {
- "group": "sg",
+ "grp": "sg",
"class": 8,
"rating": "E",
"cost": 2007241,
diff --git a/data/ships/adder.json b/data/ships/adder.json
index e47677c6..3244d629 100644
--- a/data/ships/adder.json
+++ b/data/ships/adder.json
@@ -1,7 +1,7 @@
{
"adder": {
"properties": {
- "group": "ex",
+ "grp": "ex",
"name": "Adder",
"manufacturer": "Zorgon Peterson",
"class": 1,
diff --git a/data/ships/anaconda.json b/data/ships/anaconda.json
index b4ccce83..43c70f44 100644
--- a/data/ships/anaconda.json
+++ b/data/ships/anaconda.json
@@ -1,7 +1,7 @@
{
"anaconda": {
"properties": {
- "group": "mp",
+ "grp": "mp",
"name": "Anaconda",
"manufacturer": "Faulcon DeLacy",
"class": 3,
diff --git a/data/ships/asp.json b/data/ships/asp.json
index 8e44f291..f9370f36 100644
--- a/data/ships/asp.json
+++ b/data/ships/asp.json
@@ -1,7 +1,7 @@
{
"asp": {
"properties": {
- "group": "ex",
+ "grp": "ex",
"name": "Asp",
"manufacturer": "Lakon",
"class": 2,
diff --git a/data/ships/cobra_mk_iii.json b/data/ships/cobra_mk_iii.json
index 40337ffc..b9d9e79d 100644
--- a/data/ships/cobra_mk_iii.json
+++ b/data/ships/cobra_mk_iii.json
@@ -1,7 +1,7 @@
{
"cobra_mk_iii": {
"properties": {
- "group": "mp",
+ "grp": "mp",
"name": "Cobra Mk III",
"manufacturer": "Faulcon DeLacy",
"class": 1,
diff --git a/data/ships/eagle.json b/data/ships/eagle.json
index eb575985..ed0da69f 100644
--- a/data/ships/eagle.json
+++ b/data/ships/eagle.json
@@ -1,7 +1,7 @@
{
"eagle": {
"properties": {
- "group": "co",
+ "grp": "co",
"name": "Eagle",
"manufacturer": "Core Dynamics",
"class": 1,
diff --git a/data/ships/federal_dropship.json b/data/ships/federal_dropship.json
index ebd1ac66..91c3a645 100644
--- a/data/ships/federal_dropship.json
+++ b/data/ships/federal_dropship.json
@@ -1,7 +1,7 @@
{
"federal_dropship": {
"properties": {
- "group": "mp",
+ "grp": "mp",
"name": "Federal Dropship",
"manufacturer": "Core Dynamics",
"class": 2,
diff --git a/data/ships/fer_de_lance.json b/data/ships/fer_de_lance.json
index b4280ce0..057e5454 100644
--- a/data/ships/fer_de_lance.json
+++ b/data/ships/fer_de_lance.json
@@ -1,7 +1,7 @@
{
"fer_de_lance": {
"properties": {
- "group": "co",
+ "grp": "co",
"name": "Fer-de-Lance",
"manufacturer": "Zorgon Peterson",
"class": 2,
diff --git a/data/ships/hauler.json b/data/ships/hauler.json
index 423b7a02..0406127c 100644
--- a/data/ships/hauler.json
+++ b/data/ships/hauler.json
@@ -1,7 +1,7 @@
{
"hauler": {
"properties": {
- "group": "fr",
+ "grp": "fr",
"name": "Hauler",
"manufacturer": "Zorgon Peterson",
"class": 1,
diff --git a/data/ships/imperial_clipper.json b/data/ships/imperial_clipper.json
index fdb6fc81..30e9767b 100644
--- a/data/ships/imperial_clipper.json
+++ b/data/ships/imperial_clipper.json
@@ -1,7 +1,7 @@
{
"imperial_clipper": {
"properties": {
- "group": "mp",
+ "grp": "mp",
"name": "Imperial Clipper",
"manufacturer": "Gutamaya",
"class": 3,
diff --git a/data/ships/orca.json b/data/ships/orca.json
index e0001433..007583d1 100644
--- a/data/ships/orca.json
+++ b/data/ships/orca.json
@@ -1,7 +1,7 @@
{
"orca": {
"properties": {
- "group": "pa",
+ "grp": "pa",
"name": "Orca",
"manufacturer": "Saud Kruger",
"class": 3,
diff --git a/data/ships/python.json b/data/ships/python.json
index 39c46171..0b9bdf12 100644
--- a/data/ships/python.json
+++ b/data/ships/python.json
@@ -1,7 +1,7 @@
{
"python": {
"properties": {
- "group": "mp",
+ "grp": "mp",
"name": "Python",
"manufacturer": "Faulcon DeLacy",
"class": 2,
diff --git a/data/ships/sidewinder.json b/data/ships/sidewinder.json
index bbf9d3dc..bb497a76 100644
--- a/data/ships/sidewinder.json
+++ b/data/ships/sidewinder.json
@@ -1,7 +1,7 @@
{
"sidewinder": {
"properties": {
- "group": "mp",
+ "grp": "mp",
"name": "Sidewinder",
"manufacturer": "Faulcon DeLacy",
"class": 1,
diff --git a/data/ships/type_6_transporter.json b/data/ships/type_6_transporter.json
index 4bce7581..dff0c0de 100644
--- a/data/ships/type_6_transporter.json
+++ b/data/ships/type_6_transporter.json
@@ -1,7 +1,7 @@
{
"type_6_transporter": {
"properties": {
- "group": "fr",
+ "grp": "fr",
"name": "Type-6 Transporter",
"manufacturer": "Lakon",
"class": 2,
diff --git a/data/ships/type_7_transport.json b/data/ships/type_7_transport.json
index b64faa87..9459b361 100644
--- a/data/ships/type_7_transport.json
+++ b/data/ships/type_7_transport.json
@@ -1,7 +1,7 @@
{
"type_7_transport": {
"properties": {
- "group": "fr",
+ "grp": "fr",
"name": "Type-7 Transport",
"manufacturer": "Lakon",
"class": 3,
diff --git a/data/ships/type_9_heavy.json b/data/ships/type_9_heavy.json
index 0249f06e..49b83b9c 100644
--- a/data/ships/type_9_heavy.json
+++ b/data/ships/type_9_heavy.json
@@ -1,7 +1,7 @@
{
"type_9_heavy": {
"properties": {
- "group": "fr",
+ "grp": "fr",
"name": "Type-9 Heavy",
"manufacturer": "Lakon",
"class": 3,
diff --git a/data/ships/viper.json b/data/ships/viper.json
index 259bb7d4..5361040c 100644
--- a/data/ships/viper.json
+++ b/data/ships/viper.json
@@ -1,7 +1,7 @@
{
"viper": {
"properties": {
- "group": "co",
+ "grp": "co",
"name": "Viper",
"manufacturer": "Faulcon DeLacy",
"class": 1,
diff --git a/data/ships/vulture.json b/data/ships/vulture.json
index f3ac35c2..6cba4e31 100644
--- a/data/ships/vulture.json
+++ b/data/ships/vulture.json
@@ -1,7 +1,7 @@
{
"vulture": {
"properties": {
- "group": "co",
+ "grp": "co",
"name": "Vulture",
"manufacturer": "Core Dynamics",
"class": 1,