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 @@ - + -
+
+ 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, '
    '); } - 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(''); } - 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 @@
    -
    EMPTY
    -
    -
    {{grp}}
    -
    -
    +
    +
    @@ -23,11 +20,11 @@
    {{ship.bulkheads.c.mass}} T
    @@ -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
    -
    +

    Internal Compartments

    -
    +
    -
    EMPTY
    -
    -
    {{grp}}
    -
    -
    +
    @@ -131,12 +124,13 @@

    - - + + - +
    +
    Maneuverability
    @@ -145,6 +139,7 @@
    Agility
    {{ship.agility}} / 10
    +
    Shields
    @@ -155,6 +150,7 @@
    Multiplier
    {{fRPct(ship.shieldMultiplier)}}
    +
    Armor
    @@ -163,6 +159,7 @@
    Base
    {{ship.armour}}
    +
    Mass
    @@ -171,7 +168,46 @@
    Unladen
    {{fRound(ship.unladenMass)}} T
    -
    + +
    +
    Power Use
    +
    +
    +
    {{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)}})
    +
    +
    +
    +
    Capacity
    @@ -179,8 +215,55 @@
    Fuel
    {{fRound(ship.fuelCapacity)}} T
    -
    -
    + +
    +
    Jump Range
    +
    + + Stuff! +
    +
    +
    +
    Laden
    +
    {{fRound(ship.ladenJumpRange)}} LY
    +
    +
    +
    Unladen
    +
    {{fRound(ship.unladenJumpRange)}} LY
    +
    +
    +
    + +
    +
    Costs
    +
    +
    +
    {{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 @@ - -
    Power Use
    - -
    -
    -
    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 @@ -
    Jump Range
    - -
    -
    -
    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,