Compare commits

...

55 Commits
1.7.1 ... 1.8.2

Author SHA1 Message Date
Colin McLeod
e837bb68fb Bumping version to 1.8.2 2015-10-09 15:48:54 -07:00
Colin McLeod
e2adc7bdc4 Tweak AFMU for explorer build 2015-10-09 15:44:10 -07:00
Colin McLeod
22716517c5 Remove A-rated build type, now redundant 2015-10-09 15:23:59 -07:00
Colin McLeod
8b82965c12 Fix section quick-fit menu z-index / overlap 2015-10-09 15:23:43 -07:00
Colin McLeod
65cf975a35 Merge pull request #104 from sf302/master
Hull reinforcement auto-fill, hardpoint clobber behavior tweak
2015-10-09 15:09:10 -07:00
Kevin Chang
1c78fea48f Fix behavior for hull reinforcement max at 5D 2015-10-08 22:51:00 -07:00
Kevin Chang
08f49c8339 Fix SCB internal clobber 2015-10-08 19:29:46 -07:00
Kevin Chang
bed81d26b2 Alter auto-fill clobbering behavior for hardpoints 2015-10-08 19:20:17 -07:00
Kevin Chang
38b13fca27 Add armor autofill, prevent internal fill clobber 2015-10-08 18:06:01 -07:00
Colin McLeod
0869230b13 Fix to standard fit all class B. Closes #103 2015-10-08 15:32:01 -07:00
Colin McLeod
80d4b6b431 fix power bug when swapping disabled components 2015-10-07 20:34:52 -07:00
Colin McLeod
fb7e9136d4 Merge pull request #102 from sf302/master
Additional auto-fill for SCB and other weapons
2015-10-07 20:25:38 -07:00
Colin McLeod
059ff367ff Price changes for 1.4 2015-10-07 20:13:21 -07:00
Kevin Chang
d322e062ad Trimming back down to just laser/MC/cannon fills 2015-10-07 20:09:51 -07:00
Kevin Chang
f807f4222f Less hacks to get the same thing done 2015-10-07 20:06:04 -07:00
Kevin Chang
1d4b046723 Tweaked to reenable slot if previously disabled 2015-10-07 19:51:36 -07:00
Kevin Chang
b9fc114e02 Additional auto-fill for SCB and other weapons 2015-10-07 19:43:39 -07:00
Colin McLeod
50047411c3 Correct Viper boost speed 2015-10-07 17:57:22 -07:00
Colin McLeod
610ded2f83 Fix ammo sorting by qty and unit price 2015-10-07 11:35:36 -07:00
Colin McLeod
2a644e787a Merge pull request #100 from sf302/master
Added new 'Reload Costs' tab for ammo, digit display cleanup
2015-10-07 11:33:05 -07:00
Colin McLeod
90b339e5c3 Correct 50% warning on power band 2015-10-07 11:32:52 -07:00
Colin McLeod
a213ad12d0 lint fix 2015-10-07 02:17:49 -07:00
Colin McLeod
a4b8b942a1 Show warning when Power priority group 1 exceeds 50%. 2015-10-07 02:16:00 -07:00
Colin McLeod
df7ef0fbdb Adding more outiftting sub section menu options 2015-10-07 02:14:45 -07:00
Colin McLeod
f42dc481df Added Outfitting section sub-menu 2015-10-06 22:49:09 -07:00
Colin McLeod
623be748c0 New and improved shipyard/home page 2015-10-06 20:06:13 -07:00
Colin McLeod
35c84ee0f0 Handle rounding erros on priority bands 2015-10-06 20:06:13 -07:00
Colin McLeod
4d84f271be Update tests for ignore auto generated property 2015-10-06 20:06:13 -07:00
Colin McLeod
5458c548fb Detailed discover scanner does not use any power 2015-10-06 20:06:12 -07:00
Colin McLeod
a9be057fe8 Readbility changes for fsd, fuel tank, and ls data 2015-10-06 20:06:12 -07:00
Colin McLeod
564c228d41 Massive refactoring to Ship class 2015-10-06 20:06:12 -07:00
Colin McLeod
3f6875abb6 Add find lightest shield generator 2015-10-06 20:06:12 -07:00
Colin McLeod
a2aa829b45 Add/impromve find compoonent functions 2015-10-06 20:06:12 -07:00
Colin McLeod
08b6ec9e31 Add size map 2015-10-06 20:06:12 -07:00
Colin McLeod
ee99d33275 Bumping version to 1.8.0 2015-10-06 20:06:12 -07:00
Colin McLeod
7b9e8dbc7d Sort ships by actual name not file name 2015-10-06 20:06:12 -07:00
Colin McLeod
44f45e7e93 Handle comparison when build is missing. Closes #96 2015-10-06 20:06:12 -07:00
Colin McLeod
a49f7ec594 Handle special characters in build or comparison name. Closes #101 2015-10-06 20:06:12 -07:00
Colin McLeod
9ee12e4167 Rename DBS file 2015-10-06 20:06:11 -07:00
Kevin Chang
33ad7d909a Fix torpedo ammo cost data 2015-10-05 20:27:22 -07:00
Kevin Chang
e5e29dc6cb Cleaned up lint errors 2015-10-05 20:15:46 -07:00
Kevin Chang
34dd40bcbf Added new 'Reload Costs' tab for ammo, digit display cleanup 2015-10-05 20:08:36 -07:00
Colin McLeod
0e8e9f5cbc Merge pull request #97 from SmokyBird/patch-1
Update fr.js
2015-10-05 16:30:00 -07:00
SmokyBird
d39cbb3ef5 Update fr.js
Finally found the full French translation for the Hull Reinforcement.
2015-10-06 00:47:07 +02:00
Colin McLeod
5470b241f6 Merge pull request #94 from koreldan/master
Minor corrections
2015-09-28 09:24:49 -07:00
enrico
6507c22355 minor corrections 2015-09-27 15:36:11 +02:00
Enrico
96c2f4b3b6 Merge pull request #1 from cmmcleod/master
updating
2015-09-27 15:26:35 +02:00
Colin McLeod
b0c521246e Bumping version to 1.7.3 2015-09-22 11:53:08 -07:00
Colin McLeod
5c0616ad47 Display clip + ammo reserve more intelligently 2015-09-22 11:52:44 -07:00
Colin McLeod
523f37ccc1 Correct Torpedo Pylon ammo reserve 2015-09-22 11:52:13 -07:00
Colin McLeod
5e2768bbf6 Correct Pack-Hound cost 2015-09-22 11:51:56 -07:00
Colin McLeod
61b3e7d47d Corrected Federal Gunship hull cost 2015-09-22 11:51:25 -07:00
Colin McLeod
ed6fc32d76 Correct Shield Cell Bank recharge values 2015-09-22 11:50:00 -07:00
Colin McLeod
4c74675edd Bumping version to 1.7.2 2015-09-22 09:27:39 -07:00
Colin McLeod
d43ee25e71 Use full name for Advanced Plasma Accelerator 2015-09-22 09:27:19 -07:00
87 changed files with 1750 additions and 3477 deletions

View File

@@ -1,3 +0,0 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="0 0 32 32">
<path d="M10.063 26l1.8-6h8.274l1.8 6h3.551l-6-20h-6.976l-6 20h3.551zM14.863 10h2.274l1.8 6h-5.874l1.8-6z"></path>
</svg>

Before

Width:  |  Height:  |  Size: 265 B

View File

@@ -1,6 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generated by IcoMoon.io -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="0 0 32 32">
<path d="M18 23l3 3 10-10-10-10-3 3 7 7z"></path>
<path d="M14 9l-3-3-10 10 10 10 3-3-7-7z"></path>

Before

Width:  |  Height:  |  Size: 419 B

After

Width:  |  Height:  |  Size: 248 B

3
app/icons/equalizer.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
<path d="M448 128v-16c0-26.4-21.6-48-48-48h-160c-26.4 0-48 21.6-48 48v16h-192v128h192v16c0 26.4 21.6 48 48 48h160c26.4 0 48-21.6 48-48v-16h576v-128h-576zM256 256v-128h128v128h-128zM832 432c0-26.4-21.6-48-48-48h-160c-26.4 0-48 21.6-48 48v16h-576v128h576v16c0 26.4 21.6 48 48 48h160c26.4 0 48-21.6 48-48v-16h192v-128h-192v-16zM640 576v-128h128v128h-128zM448 752c0-26.4-21.6-48-48-48h-160c-26.4 0-48 21.6-48 48v16h-192v128h192v16c0 26.4 21.6 48 48 48h160c26.4 0 48-21.6 48-48v-16h576v-128h-576v-16zM256 896v-128h128v128h-128z"></path>
</svg>

After

Width:  |  Height:  |  Size: 646 B

View File

@@ -1,3 +0,0 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="724" height="1024" viewBox="0 0 1024 1024">
<path d="M0 1024c128-384 463-1024 1024-1024-263 211-384 704-576 704s-192 0-192 0l-192 320h-64z"></path>
</svg>

Before

Width:  |  Height:  |  Size: 218 B

View File

@@ -1,6 +1,6 @@
angular.module('app', ['ui.router', 'ct.ui.router.extras.sticky', 'ui.sortable', 'shipyard', 'ngLodash', 'app.templates', 'pascalprecht.translate'])
.run(['$rootScope', '$location', '$window', '$document', '$state', '$translate', 'localeFormat', 'Persist', 'Discounts', 'Languages',
function($rootScope, $location, $window, $doc, $state, $translate, localeFormat, Persist, Discounts, Languages) {
.run(['$rootScope', '$location', '$window', '$document', '$state', '$translate', 'localeFormat', 'Persist', 'Discounts', 'Languages', 'SizeMap',
function($rootScope, $location, $window, $doc, $state, $translate, localeFormat, Persist, Discounts, Languages, SizeMap) {
// App is running as a standalone web app on tablet/mobile
var isStandAlone;
// This was causing issues on Windows phones ($window.external was causing Angular js to throw an exception). Backup is to try this and set isStandAlone to false if this fails.
@@ -43,6 +43,7 @@ function($rootScope, $location, $window, $doc, $state, $translate, localeFormat,
$rootScope.insurance = { opts: [{ name: 'standard', pct: 0.05 }, { name: 'alpha', pct: 0.025 }, { name: 'beta', pct: 0.0375 }] };
$rootScope.discounts = { opts: Discounts };
$rootScope.sizeRatio = Persist.getSizeRatio();
$rootScope.SZM = SizeMap;
$rootScope.title = 'Coriolis';
$rootScope.changeLanguage = function() {

View File

@@ -20,6 +20,11 @@ angular.module('app').controller('ComparisonController', ['lodash', '$rootScope'
$scope.addBuild = function(id, name, code) {
var data = Ships[id]; // Get ship properties
code = code ? code : Persist.builds[id][name]; // Retrieve build code if not passed
if (!code) { // No build found
return;
}
var b = new Ship(id, data.properties, data.slots); // Create a new Ship instance
Serializer.toShip(b, code); // Populate components from code
// Extend ship instance and add properties below

View File

@@ -145,11 +145,11 @@ angular.module('app').controller('ImportController', ['lodash', '$rootScope', '$
group = _.find(GroupMap, equalsIgnoreCase, name);
var hpid = Components.findHardpointId(group, cl, rating, group ? null : name, mount, missile);
var hp = Components.findHardpoint(group, cl, rating, group ? null : name, mount, missile);
if (!hpid) { throw 'Unknown component: "' + line + '"'; }
if (!hp) { throw 'Unknown component: "' + line + '"'; }
ship.use(slot, hpid, Components.hardpoints(hpid), true);
ship.use(slot, hp.id, hp, true);
} else if (typeSize == 'BH') {
var bhId = bhMap[name.toLowerCase()];
@@ -177,11 +177,11 @@ angular.module('app').controller('ImportController', ['lodash', '$rootScope', '$
group = _.find(GroupMap, equalsIgnoreCase, name);
var intId = Components.findInternalId(group, cl, rating, group ? null : name);
var intComp = Components.findInternal(group, cl, rating, group ? null : name);
if (!intId) { throw 'Unknown component: "' + line + '"'; }
if (!intComp) { throw 'Unknown component: "' + line + '"'; }
ship.use(slot, intId, Components.internal(intId));
ship.use(slot, intComp.id, intComp);
}
}

View File

@@ -13,6 +13,7 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
}
$scope.buildName = $p.bn;
$scope.ships = Ships;
$rootScope.title = ship.name + ($scope.buildName ? ' - ' + $scope.buildName : '');
$scope.ship = ship;
$scope.pp = ship.common[0]; // Power Plant
@@ -27,7 +28,7 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
$scope.costList = ship.costList;
$scope.powerList = ship.powerList;
$scope.priorityBands = ship.priorityBands;
$scope.availCS = Components.forShip(ship.id);
$scope.availCS = ship.getAvailableComponents();
$scope.selectedSlot = null;
$scope.savedCode = Persist.getBuild(ship.id, $scope.buildName);
$scope.canSave = Persist.isEnabled();
@@ -39,6 +40,8 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
$scope.retroPredicate = 'netCost';
$scope.costDesc = true;
$scope.costPredicate = 'c.cost';
$scope.ammoDesc = false;
$scope.ammoPredicate = 'ammoName';
$scope.costTab = Persist.getCostTab() || 'costs';
if ($scope.savedCode) {
@@ -59,7 +62,7 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
yMax: ship.unladenRange,
yMin: 0,
func: function(cargo) { // X Axis is Cargo
return ship.jumpRangeWithMass(ship.unladenMass + $scope.fuel + cargo, $scope.fuel);
return ship.getJumpRangeForMass(ship.unladenMass + $scope.fuel + cargo, $scope.fuel);
}
};
$scope.jrChart = {
@@ -184,25 +187,9 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
}
};
/**
* Strip ship to A-class and biggest A-class shield generator with military bulkheads
*/
$scope.aRatedBuild = function() {
for (var i = 0, l = ship.common.length - 1; i < l; i++) { // All except Fuel Tank
var id = ship.common[i].maxClass + 'A';
ship.use(ship.common[i], id, Components.common(i, id));
}
ship.hardpoints.forEach(function(slot) { ship.use(slot, null, null); });
ship.internal.forEach(function(slot) { ship.use(slot, null, null); });
ship.internal.some(function(slot) {
if (typeof slot.eligible === 'undefined') { // Assuming largest slot can hold an eligible shield
id = Components.findInternalId('Shield Generator', slot.maxClass, 'A');
ship.use(slot, id, Components.internal(id));
return true;
}
});
ship.useBulkhead(2);
updateState(Serializer.fromShip(ship));
$scope.resetBuild = function() {
ship.buildWith(data.defaults); // Populate with default components
updateState(null);
};
/**
@@ -210,21 +197,148 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
* without power management.
*/
$scope.optimizeMassBuild = function() {
var common = ship.common;
ship.hardpoints.forEach(function(slot) { ship.use(slot, null, null); });
ship.internal.forEach(function(slot) { ship.use(slot, null, null); });
ship.useBulkhead(0);
ship.use(common[2], common[2].maxClass + 'A', Components.common(2, common[2].maxClass + 'A')); // FSD
ship.use(common[3], common[3].maxClass + 'D', Components.common(3, common[3].maxClass + 'D')); // Life Support
ship.use(common[5], common[5].maxClass + 'D', Components.common(5, common[5].maxClass + 'D')); // Sensors
updateState(Serializer.fromShip(ship.optimizeMass()));
};
var pd = $scope.availCS.lightestPowerDist(ship.boostEnergy); // Find lightest Power Distributor that can still boost
ship.use(ship.common[4], pd, Components.common(4, pd));
var th = $scope.availCS.lightestThruster(ship.ladenMass); // Find lightest Thruster that still works for the ship at max mass
ship.use(ship.common[1], th, Components.common(1, th));
var pp = $scope.availCS.lightestPowerPlant(ship.powerRetracted); // Find lightest Power plant that can power the ship
ship.use(ship.common[0], pp, Components.common(0, pp));
/**
* Optimize for the lower mass build that can still boost and power the ship
* without power management.
*/
$scope.optimizeCommon = function() {
updateState(Serializer.fromShip(ship.useLightestCommon()));
};
$scope.useCommon = function(rating) {
updateState(Serializer.fromShip(ship.useCommon(rating)));
};
$scope.useHardpoint = function(group, mount, clobber, missile) {
updateState(Serializer.fromShip(ship.useWeapon(group, mount, clobber, missile)));
};
$scope.useUtility = function(group, rating, clobber) {
updateState(Serializer.fromShip(ship.useUtility(group, rating, clobber)));
};
$scope.emptyInternal = function() {
updateState(Serializer.fromShip(ship.emptyInternal()));
};
$scope.emptyHardpoints = function() {
updateState(Serializer.fromShip(ship.emptyWeapons()));
};
$scope.emptyUtility = function() {
updateState(Serializer.fromShip(ship.emptyUtility()));
};
$scope.fillWithCargo = function() {
ship.internal.forEach(function(slot) {
var id = Components.findInternalId('cr', slot.maxClass, 'E');
if (!slot.c) {
ship.use(slot, id, Components.internal(id));
}
});
updateState(Serializer.fromShip(ship));
};
$scope.fillWithCells = function() {
var chargeCap = 0; // Capacity of single activation
ship.internal.forEach(function(slot) {
var id = Components.findInternalId('scb', slot.maxClass, 'A');
if (!slot.c && (!slot.eligible || slot.eligible.scb)) { // Check eligibility because of Orca, don't overwrite generator
ship.use(slot, id, Components.internal(id));
chargeCap += Components.internal(id).recharge;
ship.setSlotEnabled(slot, chargeCap <= ship.shieldStrength); // Don't waste cell capacity on overcharge
}
});
updateState(Serializer.fromShip(ship));
};
$scope.fillWithArmor = function() {
ship.internal.forEach(function(slot) {
var hr = Components.findInternal('hr', Math.min(slot.maxClass, 5), 'D'); // Hull reinforcements top out at 5D
if (!slot.c && hr) {
ship.use(slot, hr.id, hr);
}
});
updateState(Serializer.fromShip(ship));
};
/**
* Fill all internal slots with Cargo Racks, and optmize internal components.
* Hardpoints are not altered.
*/
$scope.optimizeCargo = function() {
ship.internal.forEach(function(slot) {
var id = Components.findInternalId('cr', slot.maxClass, 'E');
ship.use(slot, id, Components.internal(id));
});
ship.useLightestCommon();
updateState(Serializer.fromShip(ship));
};
/**
* Optimize common and internal components, hardpoints for exploration
*/
$scope.optimizeExplorer = function() {
var intLength = ship.internal.length,
heatSinkCount = 2, // Fit 2 heat sinks if possible
afmUnitCount = 2, // Fit 2 AFM Units if possible
sgSlot,
fuelScoopSlot,
sgId = $scope.availCS.lightestShieldGenerator(ship.hullMass),
sg = Components.internal(sgId);
ship.setSlotEnabled(ship.cargoHatch, false)
.use(ship.internal[--intLength], '2f', Components.internal('2f')) // Advanced Discovery Scanner
.use(ship.internal[--intLength], '2i', Components.internal('2i')); // Detailed Surface Scanner
for (var i = 0; i < intLength; i++) {
var slot = ship.internal[i];
var nextSlot = (i + 1) < intLength ? ship.internal[i + 1] : null;
if (!fuelScoopSlot && (!slot.eligible || slot.eligible.fs)) { // Fit best possible Fuel Scoop
var fuelScoopId = Components.findInternalId('fs', slot.maxClass, 'A');
fuelScoopSlot = slot;
ship.use(fuelScoopSlot, fuelScoopId, Components.internal(fuelScoopId));
ship.setSlotEnabled(fuelScoopSlot, true);
// Mount a Shield generator if possible AND an AFM Unit has been mounted already (Guarantees at least 1 AFM Unit)
} else if (!sgSlot && afmUnitCount < 2 && sg.class <= slot.maxClass && (!slot.eligible || slot.eligible.sg) && (!nextSlot || nextSlot.maxClass < sg.class)) {
sgSlot = slot;
ship.use(sgSlot, sgId, sg);
ship.setSlotEnabled(sgSlot, true);
} else if (afmUnitCount > 0 && (!slot.eligible || slot.eligible.am)) {
afmUnitCount--;
var am = Components.findInternal('am', slot.maxClass, afmUnitCount ? 'B' : 'A');
ship.use(slot, am.id, am);
ship.setSlotEnabled(slot, false); // Disabled power for AFM Unit
} else {
ship.use(slot, null, null);
}
}
ship.hardpoints.forEach(function(s) {
if (s.maxClass == 0 && heatSinkCount) { // Mount up to 2 heatsinks
ship.use(s, '02', Components.hardpoints('02'));
ship.setSlotEnabled(s, heatSinkCount == 2); // Only enable a single Heatsink
heatSinkCount--;
} else {
ship.use(s, null, null);
}
});
if (sgSlot) {
// The SG and Fuel scoop to not need to be powered at the same time
if (sgSlot.c.power > fuelScoopSlot.c.power) { // The Shield generator uses the most power
ship.setSlotEnabled(fuelScoopSlot, false);
} else { // The Fuel scoop uses the most power
ship.setSlotEnabled(sgSlot, false);
}
}
ship.useLightestCommon({ pd: '1D', ppRating: 'A' });
updateState(Serializer.fromShip(ship));
};
@@ -290,6 +404,15 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
ship.setCostIncluded(item, !item.incCost);
};
/**
* Toggle cost of the selected component for retrofitting comparison
* @param {object} item The component being toggled
*/
$scope.toggleRetrofitCost = function(item) {
retrofitShip.setCostIncluded(item, !item.incCost);
updateRetrofitCosts();
};
/**
* [sortCost description]
* @param {[type]} key [description]
@@ -306,8 +429,13 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
};
$scope.sortRetrofit = function(key) {
$scope.retroDesc = $scope.retroPredicate == key ? !$scope.retroDesc : $scope.retroDesc;
$scope.retroPredicate = key;
$scope.retroDesc = $scope.retroPredicate == key ? !$scope.retroDesc : $scope.retroDesc;
$scope.retroPredicate = key;
};
$scope.sortAmmo = function(key) {
$scope.ammoDesc = $scope.ammoPredicate == key ? !$scope.ammoDesc : $scope.ammoDesc;
$scope.ammoPredicate = key;
};
/**
@@ -353,6 +481,19 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
updateRetrofitCosts();
};
$scope.updateCostTab = function(tab) {
Persist.setCostTab(tab);
$scope.costTab = tab;
};
$scope.ppWarning = function(pp) {
return pp.pGen < ship.powerRetracted;
};
$scope.pdWarning = function(pd) {
return pd.enginecapacity < ship.boostEnergy;
};
// Utilify functions
function updateState(code) {
@@ -376,10 +517,13 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
buyName: ship.bulkheads.c.name,
sellClassRating: retrofitShip.bulkheads.c.class + retrofitShip.bulkheads.c.rating,
sellName: retrofitShip.bulkheads.c.name,
netCost: ship.bulkheads.discountedCost - retrofitShip.bulkheads.discountedCost
netCost: ship.bulkheads.discountedCost - retrofitShip.bulkheads.discountedCost,
retroItem: retrofitShip.bulkheads
};
costs.push(item);
total += item.netCost;
if (retrofitShip.bulkheads.incCost) {
total += item.netCost;
}
}
for (var g in { common: 1, internal: 1, hardpoints: 1 }) {
@@ -387,7 +531,7 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
var slotGroup = ship[g];
for (i = 0, l = slotGroup.length; i < l; i++) {
if (slotGroup[i].id != retroSlotGroup[i].id) {
item = { netCost: 0 };
item = { netCost: 0, retroItem: retroSlotGroup[i] };
if (slotGroup[i].id) {
item.buyName = slotGroup[i].c.name || slotGroup[i].c.grp;
item.buyClassRating = slotGroup[i].c.class + slotGroup[i].c.rating;
@@ -399,25 +543,56 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
item.netCost -= retroSlotGroup[i].discountedCost;
}
costs.push(item);
total += item.netCost;
if (retroSlotGroup[i].incCost) {
total += item.netCost;
}
}
}
}
$scope.retrofitTotal = total;
updateAmmoCosts();
}
$scope.updateCostTab = function(tab) {
Persist.setCostTab(tab);
$scope.costTab = tab;
};
function updateAmmoCosts() {
var costs = $scope.ammoList = [];
var total = 0, i, l, item;
$scope.ppWarning = function(pp) {
return pp.pGen < ship.powerRetracted;
};
$scope.pdWarning = function(pd) {
return pd.enginecapacity < ship.boostEnergy;
};
for (var g in { common: 1, internal: 1, hardpoints: 1 }) {
var slotGroup = ship[g];
for (i = 0, l = slotGroup.length; i < l; i++) {
var q = 0;
if (slotGroup[i].id) {
//special cases needed for fuel, SCB and AFMU since they don't use standard ammo/clip
if (slotGroup[i].c.grp == 'ft') {
q = slotGroup[i].c.capacity;
slotGroup[i].c.ammocost = 50;
}
if (slotGroup[i].c.grp == 'scb') {
q = slotGroup[i].c.cells;
}
if (slotGroup[i].c.grp == 'am') {
q = slotGroup[i].c.ammo;
}
//calculate ammo costs only if a cost is specified
if (slotGroup[i].c.ammocost > 0) {
if (q == 0) {
q = slotGroup[i].c.clip + slotGroup[i].c.ammo;
}
item = {
ammoClassRating: slotGroup[i].c.class + slotGroup[i].c.rating,
ammoName: slotGroup[i].c.name || slotGroup[i].c.grp,
ammoMax: q,
ammoUnitCost: slotGroup[i].c.ammocost,
ammoTotalCost: q * slotGroup[i].c.ammocost
};
costs.push(item);
total += item.ammoTotalCost;
}
}
}
}
$scope.ammoTotal = total;
}
// Hide any open menu/slot/etc if the background is clicked
$scope.$on('close', function() {

View File

@@ -1,4 +1,59 @@
angular.module('app').controller('ShipyardController', ['$rootScope', 'ShipsDB', function($rootScope, ships) {
$rootScope.title = 'Coriolis';
$rootScope.ships = ships;
angular.module('app').controller('ShipyardController', ['$rootScope', '$scope', 'ShipsDB', 'Ship', 'Components', function($rootScope, $scope, ShipsDB, Ship, Components) {
$rootScope.title = 'Coriolis - Shipyard';
$scope.shipPredicate = 'properties.name';
$scope.shipDesc = false;
function countHp(slot) {
this.hp[slot.maxClass]++;
this.hpCount++;
}
function countInt(slot) {
var crEligible = !slot.eligible || slot.eligible.cr;
this.int[slot.maxClass - 1]++; // Subtract 1 since there is no Class 0 Internal compartment
this.intCount++;
this.maxCargo += crEligible ? Components.findInternal('cr', slot.maxClass, 'E').capacity : 0;
}
function shipSummary(shipId, shipData) {
var summary = angular.copy(shipData.properties);
var ship = new Ship(shipId, shipData.properties, shipData.slots);
summary.id = s;
summary.hpCount = 0;
summary.intCount = 0;
summary.maxCargo = 0;
summary.hp = [0, 0, 0, 0, 0]; // Utility, Small, Medium, Large, Huge
summary.int = [0, 0, 0, 0, 0, 0, 0, 0]; // Sizes 1 - 8
// Build Ship
ship.buildWith(shipData.defaults); // Populate with stock/default components
ship.hardpoints.forEach(countHp.bind(summary)); // Count Hardpoints by class
ship.internal.forEach(countInt.bind(summary)); // Count Internal Compartments by class
summary.retailCost = ship.totalCost; // Record Stock/Default/retail cost
ship.optimizeMass({ pd: '1D' }); // Optimize Mass with 1D PD for maximum possible jump range
summary.maxJumpRange = ship.unladenRange; // Record Jump Range
ship.optimizeMass({ th: ship.common[1].maxClass + 'A' }); // Optmize mass with Max Thrusters
summary.topSpeed = ship.topSpeed;
summary.topBoost = ship.topBoost;
return summary;
}
/* Initialization */
if (!$rootScope.shipsOverview) { // Only generate this once
$rootScope.shipsOverview = [];
for (var s in ShipsDB) {
$scope.shipsOverview.push(shipSummary(s, ShipsDB[s]));
}
}
/**
* Sort ships
* @param {object} key Sort predicate
*/
$scope.sortShips = function(key) {
$scope.shipDesc = $scope.shipPredicate == key ? !$scope.shipDesc : $scope.shipDesc;
$scope.shipPredicate = key;
};
}]);

View File

@@ -10,7 +10,7 @@ angular.module('app').directive('shipyardHeader', ['lodash', '$window', '$rootSc
scope.ships = ships;
scope.allBuilds = Persist.builds;
scope.buildsList = Object.keys(scope.allBuilds).sort();
scope.allComparisons = Persist.comparisons;
scope.allComparisons = Object.keys(Persist.comparisons).sort();
scope.bs = Persist.state;
var win = angular.element($window); // Angularized window object for event triggering
@@ -57,6 +57,10 @@ angular.module('app').directive('shipyardHeader', ['lodash', '$window', '$rootSc
});
};
scope.cleanedBuildList = function(shipId) {
return Object.keys(scope.allBuilds[shipId]);
};
scope.openMenu = function(e, menu) {
e.stopPropagation();
if (menu == scope.openedMenu) {
@@ -68,6 +72,11 @@ angular.module('app').directive('shipyardHeader', ['lodash', '$window', '$rootSc
scope.openedMenu = null;
return;
}
if (menu == 'comp') {
scope.allComparisons = Object.keys(Persist.comparisons).sort();
}
scope.openedMenu = menu;
};

View File

@@ -38,7 +38,7 @@ angular.module('app').directive('powerBands', ['$window', '$translate', '$rootSc
});
// Create Y Axis SVG Elements
vis.append('g').attr('class', 'watt axis');
var wattAxisGroup = vis.append('g').attr('class', 'watt axis');
vis.append('g').attr('class', 'pct axis');
var retText = vis.append('text').attr('x', -3).style('text-anchor', 'end').attr('dy', '0.5em').attr('class', 'primary upp');
var depText = vis.append('text').attr('x', -3).style('text-anchor', 'end').attr('dy', '0.5em').attr('class', 'primary upp');
@@ -94,13 +94,24 @@ angular.module('app').directive('powerBands', ['$window', '$translate', '$rootSc
retracted.selectAll('text').remove();
deployed.selectAll('rect').remove();
deployed.selectAll('text').remove();
wattAxisGroup.selectAll('line.threshold').remove();
// Update X & Y Axis
wattScale.range([0, w]).domain([0, maxPwr]).clamp(true);
pctScale.range([0, w]).domain([0, maxPwr / available]).clamp(true);
vis.selectAll('.watt.axis').call(wattAxis);
wattAxisGroup.call(wattAxis);
vis.selectAll('.pct.axis').attr('transform', 'translate(0,' + innerHeight + ')').call(pctAxis);
var pwrWarningClass = 'threshold' + (bands[0].retractedSum * 2 >= available ? ' exceeded' : '');
vis.select('.pct.axis g:nth-child(6)').selectAll('line, text').attr('class', pwrWarningClass);
wattAxisGroup.append('line')
.attr('x1', pctScale(0.5))
.attr('x2', pctScale(0.5))
.attr('y1', 0)
.attr('y2', innerHeight)
.attr('class', pwrWarningClass);
retText.attr('y', repY);
depText.attr('y', depY);
updateLabel(retLbl, w, repY, retBandsSelected, retBandsSelected ? retractedSum : maxBand.retractedSum, available);
@@ -162,7 +173,8 @@ angular.module('app').directive('powerBands', ['$window', '$translate', '$rootSc
}
function getClass(selected, sum, avail) {
return selected ? 'secondary' : (sum >= avail) ? 'warning' : 'primary';
// Round to avoid floating point precision errors
return selected ? 'secondary' : ((Math.round(sum * 100) / 100) >= avail) ? 'warning' : 'primary';
}
function bandText(val, index) {

View File

@@ -91,7 +91,7 @@ angular.module('app').config(['$translateProvider', 'localeFormatProvider', func
'Heat Sink Launcher': 'Éjecteur de dissipateur thermique',
huge: 'Très grand',
hull: 'Coque',
hr: 'Ensemble de mesures permettant de',
hr: 'Ensemble de mesures permettant de renforcer la coque',
'Imperial Hammer': 'Marteau impérial',
import: 'Importer',
'import all': 'Importer tout',

View File

@@ -116,11 +116,11 @@ angular.module('app').config(['$translateProvider', 'localeFormatProvider', func
small: 'piccolo',
speed: 'velocità',
Stock: 'appena comprata',
t: 'Motori',
t: 'thrusters',
time: 'tempo',
total: 'totale',
'total range': 'distanza totale',
turret: 'turrette',
turret: 'torrette',
type: 'tipo',
unladen: 'scarico',
PHRASE_UPDATE_RDY: 'Aggiornamenti disponibili ! Clicca per Aggiornare',

View File

@@ -143,11 +143,10 @@ angular.module('app').service('Serializer', ['lodash', 'GroupMap', 'MountMap', '
var internal = _.map(comps.internal, function(c) { return c ? Components.findInternalId(c.group, c.class, c.rating, c.name) : 0; });
var hardpoints = _.map(comps.hardpoints, function(c) {
return c ? Components.findHardpointId(c.group, c.class, c.rating, c.name, MountMap[c.mount], c.missile) : 0;
});
hardpoints = hardpoints.concat(_.map(comps.utility, function(c) {
return c ? Components.findHardpointId(c.group, c.class, c.rating, c.name, MountMap[c.mount]) : 0;
}));
return c ? Components.findHardpointId(c.group, c.class, c.rating, c.name, MountMap[c.mount], c.missile) : 0;
}).concat(_.map(comps.utility, function(c) {
return c ? Components.findHardpointId(c.group, c.class, c.rating, c.name, MountMap[c.mount]) : 0;
}));
// The ordering of these arrays must match the order in which they are read in Ship.buildWith
priorities = priorities.concat(_.map(comps.hardpoints, function(c) { return (!c || c.priority === undefined) ? 0 : c.priority - 1; }),

View File

@@ -117,7 +117,18 @@ angular.module('shipyard').factory('ComponentSet', ['lodash', function(_) {
return th.class + th.rating;
};
ComponentSet.prototype.lightestPowerPlant = function(powerUsed) {
ComponentSet.prototype.lightestShieldGenerator = function(hullMass) {
var sg = null;
_.forEach(this.internal.sg, function(s) {
if (sg == null || (s.mass < sg.mass && s.minmass <= hullMass && s.maxmass > hullMass)) {
sg = s;
}
});
return sg.id;
};
ComponentSet.prototype.lightestPowerPlant = function(powerUsed, rating) {
var pps = this.common[0];
var pp = null;
@@ -126,7 +137,7 @@ angular.module('shipyard').factory('ComponentSet', ['lodash', function(_) {
pp = pps[i];
}
}
return pp.class + (pp.rating != 'D' ? 'A' : 'D'); // Use A rated if C,E
return pp.class + (pp.rating != 'D' || rating == 'A' ? 'A' : 'D'); // Use A rated if C,E
};
return ComponentSet;

View File

@@ -8,9 +8,6 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
*/
function powerUsageType(slot, component) {
if (component) {
if (component.retractedOnly) {
return 'retOnly';
}
if (component.passive) {
return 'retracted';
}
@@ -29,6 +26,7 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
this.id = id;
this.cargoHatch = { c: Components.cargoHatch(), type: 'SYS' };
this.bulkheads = { incCost: true, maxClass: 8 };
this.availCS = Components.forShip(id);
for (var p in properties) { this[p] = properties[p]; } // Copy all base properties from shipData
@@ -71,6 +69,91 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
];
}
//*********//
// GETTERS //
//*********//
Ship.prototype.getAvailableComponents = function() {
return this.availCS;
};
Ship.prototype.getSlotStatus = function(slot, deployed) {
if (!slot.c) { // Empty Slot
return 0; // No Status (Not possible to be active in this state)
} else if (!slot.enabled) {
return 1; // Disabled
} else if (deployed) {
return this.priorityBands[slot.priority].deployedSum >= this.powerAvailable ? 2 : 3; // Offline : Online
// Active hardpoints have no retracted status
} else if ((slot.cat === 1 && !slot.c.passive)) {
return 0; // No Status (Not possible to be active in this state)
}
return this.priorityBands[slot.priority].retractedSum >= this.powerAvailable ? 2 : 3; // Offline : Online
};
/**
* Calculate jump range using the installed FSD and the
* specified mass which can be more or less than ships actual mass
* @param {number} mass Mass in tons
* @param {number} fuel Fuel available in tons
* @return {number} Jump range in Light Years
*/
Ship.prototype.getJumpRangeForMass = function(mass, fuel) {
return calcJumpRange(mass, this.common[2].c, fuel);
};
/**
* Find an internal slot that has an installed component of the specific group.
*
* @param {string} group Component group/type
* @return {number} The index of the slot in ship.internal
*/
Ship.prototype.findInternalByGroup = function(group) {
var index;
if (group == 'sg' || group == 'psg') {
index = _.findIndex(this.internal, function(slot) {
return slot.c && (slot.c.grp == 'sg' || slot.c.grp == 'psg');
});
} else {
index = _.findIndex(this.internal, function(slot) {
return slot.c && slot.c.grp == group;
});
}
if (index !== -1) {
return this.internal[index];
}
return null;
};
//**********************//
// Mutate / Update Ship //
//**********************//
/**
* Recalculate all item costs and total based on discounts.
* @param {number} shipCostMultiplier Ship cost multiplier discount (e.g. 0.9 === 10% discount)
* @param {number} componentCostMultiplier Component cost multiplier discount (e.g. 0.75 === 25% discount)
*/
Ship.prototype.applyDiscounts = function(shipCostMultiplier, componentCostMultiplier) {
var total = 0;
var costList = this.costList;
for (var i = 0, l = costList.length; i < l; i++) {
var item = costList[i];
if (item.c && item.c.cost) {
item.discountedCost = item.c.cost * (item.type == 'SHIP' ? shipCostMultiplier : componentCostMultiplier);
if (item.incCost) {
total += item.discountedCost;
}
}
}
this.shipCostMultiplier = shipCostMultiplier;
this.componentCostMultiplier = componentCostMultiplier;
this.totalCost = total;
return this;
};
/**
* Builds/Updates the ship instance with the components[comps] passed in.
* @param {object} comps Collection of components used to build the ship
@@ -156,108 +239,54 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
// Update aggragated stats
if (comps) {
this.updatePower();
this.updateJumpStats();
this.updateShieldStrength();
this.updateTopSpeed();
this.updatePower()
.updateJumpStats()
.updateShieldStrength()
.updateTopSpeed();
}
return this;
};
Ship.prototype.useBulkhead = function(index, preventUpdate) {
var oldBulkhead = this.bulkheads.c;
this.bulkheads.id = index;
this.bulkheads.c = Components.bulkheads(this.id, index);
this.bulkheads.discountedCost = this.bulkheads.c.cost * this.componentCostMultiplier;
this.armourMultiplier = ArmourMultiplier[index];
this.updateStats(this.bulkheads, this.bulkheads.c, oldBulkhead, preventUpdate);
Ship.prototype.emptyHardpoints = function() {
for (var i = this.hardpoints.length; i--; ) {
this.use(this.hardpoints[i], null, null);
}
return this;
};
/**
* Update a slot with a the component if the id is different from the current id for this slot.
* Has logic handling components that you may only have 1 of (Shield Generator or Refinery).
*
* @param {object} slot The component slot
* @param {string} id Unique ID for the selected component
* @param {object} component Properties for the selected component
* @param {boolean} preventUpdate If true, do not update aggregated stats
*/
Ship.prototype.use = function(slot, id, component, preventUpdate) {
if (slot.id != id) { // Selecting a different component
// Slot is an internal slot, is not being emptied, and the selected component group/type must be of unique
if (slot.cat == 2 && component && _.includes(['psg', 'sg', 'rf', 'fs'], component.grp)) {
// Find another internal slot that already has this type/group installed
var similarSlot = this.findInternalByGroup(component.grp);
// If another slot has an installed component with of the same type
if (!preventUpdate && similarSlot && similarSlot !== slot) {
this.updateStats(similarSlot, null, similarSlot.c, true); // Update stats but don't trigger a global update
similarSlot.id = similarSlot.c = null; // Empty the slot
similarSlot.discountedCost = 0;
}
Ship.prototype.emptyInternal = function() {
for (var i = this.internal.length; i--; ) {
this.use(this.internal[i], null, null);
}
return this;
};
Ship.prototype.emptyUtility = function() {
for (var i = this.hardpoints.length; i--; ) {
if (!this.hardpoints[i].maxClass) {
this.use(this.hardpoints[i], null, null);
}
var oldComponent = slot.c;
slot.id = id;
slot.c = component;
slot.discountedCost = (component && component.cost) ? component.cost * this.componentCostMultiplier : 0;
this.updateStats(slot, component, oldComponent, preventUpdate);
}
return this;
};
/**
* Calculate jump range using the installed FSD and the
* specified mass which can be more or less than ships actual mass
* @param {number} mass Mass in tons
* @param {number} fuel Fuel available in tons
* @return {number} Jump range in Light Years
*/
Ship.prototype.jumpRangeWithMass = function(mass, fuel) {
return calcJumpRange(mass, this.common[2].c, fuel);
};
/**
* Find an internal slot that has an installed component of the specific group.
*
* @param {string} group Component group/type
* @return {number} The index of the slot in ship.internal
*/
Ship.prototype.findInternalByGroup = function(group) {
var index;
if (group == 'sg' || group == 'psg') {
index = _.findIndex(this.internal, function(slot) {
return slot.c && (slot.c.grp == 'sg' || slot.c.grp == 'psg');
});
} else {
index = _.findIndex(this.internal, function(slot) {
return slot.c && slot.c.grp == group;
});
}
if (index !== -1) {
return this.internal[index];
}
return null;
};
/**
* Will change the priority of the specified slot if the new priority is valid
* @param {object} slot The slot to be updated
* @param {number} newPriority The new priority to be set
* @return {boolean} Returns true if the priority was changed (within range)
*/
Ship.prototype.changePriority = function(slot, newPriority) {
if (newPriority >= 0 && newPriority < this.priorityBands.length) {
var oldPriority = slot.priority;
slot.priority = newPriority;
if (slot.enabled) { // Only update power if the slot is enabled
var usage = powerUsageType(slot, slot.c);
this.priorityBands[oldPriority][usage] -= slot.c.power;
this.priorityBands[newPriority][usage] += slot.c.power;
this.updatePower();
Ship.prototype.emptyWeapons = function() {
for (var i = this.hardpoints.length; i--; ) {
if (this.hardpoints[i].maxClass) {
this.use(this.hardpoints[i], null, null);
}
return true;
}
return false;
return this;
};
/**
* Optimize for the lower mass build that can still boost and power the ship
* without power management.
* @param {object} c Common Component overrides
*/
Ship.prototype.optimizeMass = function(c) {
return this.emptyHardpoints().emptyInternal().useLightestCommon(c);
};
Ship.prototype.setCostIncluded = function(item, included) {
@@ -265,6 +294,7 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
this.totalCost += included ? item.discountedCost : -item.discountedCost;
}
item.incCost = included;
return this;
};
Ship.prototype.setSlotEnabled = function(slot, enabled) {
@@ -285,20 +315,7 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
this.updatePower();
}
}
};
Ship.prototype.getSlotStatus = function(slot, deployed) {
if (!slot.c) { // Empty Slot
return 0; // No Status (Not possible)
} else if (!slot.enabled) {
return 1; // Disabled
} else if (deployed && !slot.c.retractedOnly) { // Certain component (e.g. Detaild Surface scanner) are power only while retracted
return this.priorityBands[slot.priority].deployedSum >= this.powerAvailable ? 2 : 3; // Offline : Online
// Active hardpoints have no retracted status
} else if ((deployed && slot.c.retractedOnly) || (slot.cat === 1 && !slot.c.passive)) {
return 0; // No Status (Not possible)
}
return this.priorityBands[slot.priority].retractedSum >= this.powerAvailable ? 2 : 3; // Offline : Online
return this;
};
/**
@@ -380,6 +397,7 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
this.updateJumpStats();
this.updateShieldStrength();
}
return this;
};
Ship.prototype.updatePower = function() {
@@ -395,17 +413,20 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
this.powerAvailable = this.common[0].c.pGen;
this.powerRetracted = prevRetracted;
this.powerDeployed = prevDeployed;
return this;
};
Ship.prototype.updateTopSpeed = function() {
var speeds = calcSpeed(this.unladenMass + this.fuelCapacity, this.speed, this.boost, this.common[1].c, this.pipSpeed);
this.topSpeed = speeds['4 Pips'];
this.topBoost = speeds.boost;
return this;
};
Ship.prototype.updateShieldStrength = function() {
var sgSlot = this.findInternalByGroup('sg'); // Find Shield Generator slot Index if any
this.shieldStrength = sgSlot && sgSlot.enabled ? calcShieldStrength(this.hullMass, this.baseShieldStrength, sgSlot.c, this.shieldMultiplier) : 0;
return this;
};
/**
@@ -419,29 +440,160 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
this.unladenTotalRange = calcTotalRange(this.unladenMass, fsd, this.fuelCapacity);
this.ladenTotalRange = calcTotalRange(this.unladenMass + this.cargoCapacity, fsd, this.fuelCapacity);
this.maxJumpCount = Math.ceil(this.fuelCapacity / fsd.maxfuel);
return this;
};
/**
* Update a slot with a the component if the id is different from the current id for this slot.
* Has logic handling components that you may only have 1 of (Shield Generator or Refinery).
*
* @param {object} slot The component slot
* @param {string} id Unique ID for the selected component
* @param {object} component Properties for the selected component
* @param {boolean} preventUpdate If true, do not update aggregated stats
*/
Ship.prototype.use = function(slot, id, component, preventUpdate) {
if (slot.id != id) { // Selecting a different component
// Slot is an internal slot, is not being emptied, and the selected component group/type must be of unique
if (slot.cat == 2 && component && _.includes(['psg', 'sg', 'rf', 'fs'], component.grp)) {
// Find another internal slot that already has this type/group installed
var similarSlot = this.findInternalByGroup(component.grp);
// If another slot has an installed component with of the same type
if (!preventUpdate && similarSlot && similarSlot !== slot) {
this.updateStats(similarSlot, null, similarSlot.c);
similarSlot.id = similarSlot.c = null; // Empty the slot
similarSlot.discountedCost = 0;
}
}
var oldComponent = slot.c;
slot.id = id;
slot.c = component;
slot.discountedCost = (component && component.cost) ? component.cost * this.componentCostMultiplier : 0;
this.updateStats(slot, component, oldComponent, preventUpdate);
}
return this;
};
/**
* Recalculate all item costs and total based on discounts.
* @param {number} shipCostMultiplier Ship cost multiplier discount (e.g. 0.9 === 10% discount)
* @param {number} componentCostMultiplier Component cost multiplier discount (e.g. 0.75 === 25% discount)
* [useBulkhead description]
* @param {[type]} index [description]
* @param {[type]} preventUpdate [description]
* @return {[type]} [description]
*/
Ship.prototype.applyDiscounts = function(shipCostMultiplier, componentCostMultiplier) {
var total = 0;
var costList = this.costList;
Ship.prototype.useBulkhead = function(index, preventUpdate) {
var oldBulkhead = this.bulkheads.c;
this.bulkheads.id = index;
this.bulkheads.c = Components.bulkheads(this.id, index);
this.bulkheads.discountedCost = this.bulkheads.c.cost * this.componentCostMultiplier;
this.armourMultiplier = ArmourMultiplier[index];
this.updateStats(this.bulkheads, this.bulkheads.c, oldBulkhead, preventUpdate);
for (var i = 0, l = costList.length; i < l; i++) {
var item = costList[i];
if (item.c && item.c.cost) {
item.discountedCost = item.c.cost * (item.type == 'SHIP' ? shipCostMultiplier : componentCostMultiplier);
if (item.incCost) {
total += item.discountedCost;
}
return this;
};
/**
* [useCommon description]
* @param {[type]} rating [description]
* @return {[type]} [description]
*/
Ship.prototype.useCommon = function(rating) {
for (var i = this.common.length - 1; i--; ) { // All except Fuel Tank
var id = this.common[i].maxClass + rating;
this.use(this.common[i], id, Components.common(i, id));
}
return this;
};
/**
* Use the lightest common components unless otherwise specified
* @param {object} c Component overrides
*/
Ship.prototype.useLightestCommon = function(c) {
c = c || {};
var common = this.common,
pd = c.pd || this.availCS.lightestPowerDist(this.boostEnergy), // Find lightest Power Distributor that can still boost;
fsd = c.fsd || common[2].maxClass + 'A',
ls = c.ls || common[3].maxClass + 'D',
s = c.s || common[5].maxClass + 'D',
updated;
this.useBulkhead(0)
.use(common[2], fsd, Components.common(2, fsd)) // FSD
.use(common[3], ls, Components.common(3, ls)) // Life Support
.use(common[5], s, Components.common(5, s)) // Sensors
.use(common[4], pd, Components.common(4, pd)); // Power Distributor
// Thrusters and Powerplant must be determined after all other components are mounted
// Loop at least once to determine absolute lightest PD and TH
do {
updated = false;
// Find lightest Thruster that still works for the ship at max mass
var th = c.th || this.availCS.lightestThruster(this.ladenMass);
if (th != common[1].id) {
this.use(common[1], th, Components.common(1, th));
updated = true;
}
// Find lightest Power plant that can power the ship
var pp = c.pp || this.availCS.lightestPowerPlant(Math.max(this.powerRetracted, this.powerDeployed), c.ppRating);
if (pp != common[0].id) {
this.use(common[0], pp, Components.common(0, pp));
updated = true;
}
} while (updated);
return this;
};
Ship.prototype.useUtility = function(group, rating, clobber) {
var component = Components.findHardpoint(group, 0, rating);
for (var i = this.hardpoints.length; i--; ) {
if ((clobber || !this.hardpoints[i].c) && !this.hardpoints[i].maxClass) {
this.use(this.hardpoints[i], component.id, component);
}
}
this.shipCostMultiplier = shipCostMultiplier;
this.componentCostMultiplier = componentCostMultiplier;
this.totalCost = total;
return this;
};
Ship.prototype.useWeapon = function(group, mount, clobber, missile) {
var hps = this.hardpoints;
for (var i = hps.length; i--; ) {
if (hps[i].maxClass) {
var size = hps[i].maxClass, component;
do {
component = Components.findHardpoint(group, size, null, null, mount, missile);
if ((clobber || !hps[i].c) && component) {
this.use(hps[i], component.id, component);
break;
}
} while (!component && (--size > 0));
}
}
return this;
};
/**
* Will change the priority of the specified slot if the new priority is valid
* @param {object} slot The slot to be updated
* @param {number} newPriority The new priority to be set
* @return {boolean} Returns true if the priority was changed (within range)
*/
Ship.prototype.changePriority = function(slot, newPriority) {
if (newPriority >= 0 && newPriority < this.priorityBands.length) {
var oldPriority = slot.priority;
slot.priority = newPriority;
if (slot.enabled) { // Only update power if the slot is enabled
var usage = powerUsageType(slot, slot.c);
this.priorityBands[oldPriority][usage] -= slot.c.power;
this.priorityBands[newPriority][usage] += slot.c.power;
this.updatePower();
}
return true;
}
return false;
};
return Ship;

View File

@@ -10,15 +10,16 @@ angular.module('shipyard', ['ngLodash'])
// Create 'angularized' references to DB. This will aid testing
.constant('ShipsDB', DB.ships)
.constant('ComponentsDB', DB.components)
.value('ArmourMultiplier', [
.constant('ArmourMultiplier', [
1, // Lightweight
1.4, // Reinforced
1.945, // Military
1.945, // Mirrored
1.945 // Reactive
])
.constant('SizeMap', ['', 'small', 'medium', 'large', 'capital'])
// Map to lookup group labels/names for component grp, used for JSON Serialization
.value('GroupMap', {
.constant('GroupMap', {
// Common
pp: 'Power Plant',
t: 'Thrusters',
@@ -64,7 +65,7 @@ angular.module('shipyard', ['ngLodash'])
sb: 'Shield Booster',
tp: 'Torpedo Pylon'
})
.value('MountMap', {
.constant('MountMap', {
'F': 'Fixed',
'G': 'Gimballed',
'T': 'Turret',
@@ -78,7 +79,7 @@ angular.module('shipyard', ['ngLodash'])
*
* @type {Array}
*/
.value('ShipFacets', [
.constant('ShipFacets', [
{ // 0
title: 'agility',
props: ['agility'],
@@ -161,7 +162,7 @@ angular.module('shipyard', ['ngLodash'])
/**
* Set of all available / theoretical discounts
*/
.value('Discounts', {
.constant('Discounts', {
'0%': 1,
'5%': 0.95,
'10%': 0.90,

View File

@@ -38,61 +38,117 @@ angular.module('shipyard').service('Components', ['lodash', 'ComponentsDB', 'Shi
return null;
};
this.findInternalId = function(groupName, clss, rating, name) {
/**
* Finds an internal Component based on Class, Rating, Group and/or name.
* At least one ofGroup name or unique component name must be provided
*
* @param {string} groupName [Optional] Full name or abbreviated name for component group
* @param {integer} clss Component Class
* @param {string} rating Component Rating
* @param {string} name [Optional] Long/unique name for component -e.g. 'Advanced Discover Scanner'
* @return {String} The id of the component if found, null if not found
*/
this.findInternal = function(groupName, clss, rating, name) {
var groups = {};
if (groupName) {
var grpCode = GrpNameToCodeMap[groupName];
if (grpCode && !C.internal[grpCode]) {
throw 'Invalid internal group: ' + groupName;
if (C.internal[groupName]) {
groups[groupName] = C.internal[groupName];
} else {
var grpCode = GrpNameToCodeMap[groupName];
if (grpCode && C.internal[grpCode]) {
groups[grpCode] = C.internal[grpCode];
}
}
groups[grpCode] = C.internal[grpCode];
} else if (name) {
groups = C.internal;
} else {
throw 'Invalid group or name not provided';
}
for (var g in groups) {
var group = groups[g];
for (var i = 0, l = group.length; i < l; i++) {
if (group[i].class == clss && group[i].rating == rating && ((!name && !group[i].name) || group[i].name == name)) {
return group[i].id;
return group[i];
}
}
}
return 0;
return null;
};
this.findHardpointId = function(groupName, clss, rating, name, mode, missile) {
/**
* Finds an internal Component ID based on Class, Rating, Group and/or name.
* At least one ofGroup name or unique component name must be provided
*
* @param {string} groupName [Optional] Full name or abbreviated name for component group
* @param {integer} clss Component Class
* @param {string} rating Component Rating
* @param {string} name [Optional] Long/unique name for component -e.g. 'Advanced Discover Scanner'
* @return {String} The id of the component if found, null if not found
*/
this.findInternalId = function(groupName, clss, rating, name) {
var i = this.findInternal(groupName, clss, rating, name);
return i ? i.id : 0;
};
/**
* Finds a hardpoint Component based on Class, Rating, Group and/or name.
* At least one ofGroup name or unique component name must be provided
*
* @param {string} groupName [Optional] Full name or abbreviated name for component group
* @param {integer} clss Component Class
* @param {string} rating [Optional] Component Rating
* @param {string} name [Optional] Long/unique name for component -e.g. 'Heat Sink Launcher'
* @param {string} mode Mount mode/type - [F]ixed, [G]imballed, [T]urret
* @param {string} missile [Optional] Missile type - [D]umbfire, [S]eeker
* @return {String} The id of the component if found, null if not found
*/
this.findHardpoint = function(groupName, clss, rating, name, mode, missile) {
var groups = {};
if (groupName) {
var grpCode = GrpNameToCodeMap[groupName];
if (grpCode && !C.hardpoints[grpCode]) {
throw 'Invalid internal group: ' + groupName;
if (C.hardpoints[groupName]) {
groups[groupName] = C.hardpoints[groupName];
} else {
var grpCode = GrpNameToCodeMap[groupName];
if (grpCode && C.hardpoints[grpCode]) {
groups[grpCode] = C.hardpoints[grpCode];
}
}
groups[grpCode] = C.hardpoints[grpCode];
} else if (name) {
groups = C.hardpoints;
} else {
throw 'Invalid group or name not provided';
}
for (var g in groups) {
var group = groups[g];
for (var i = 0, l = group.length; i < l; i++) {
if (group[i].class == clss && group[i].rating == rating && group[i].mode == mode
if (group[i].class == clss && (!rating || group[i].rating == rating) && group[i].mode == mode
&& ((!name && !group[i].name) || group[i].name == name)
&& ((!missile && !group[i].missile) || group[i].missile == missile)
) {
return group[i].id;
return group[i];
}
}
}
return 0;
return null;
};
/**
* Finds a hardpoint Component ID based on Class, Rating, Group and/or name.
* At least one of Group name or unique component name must be provided
*
* @param {string} groupName [Optional] Full name or abbreviated name for component group
* @param {integer} clss Component Class
* @param {string} rating Component Rating
* @param {string} name [Optional] Long/unique name for component -e.g. 'Heat Sink Launcher'
* @param {string} mode Mount mode/type - [F]ixed, [G]imballed, [T]urret
* @param {string} missile [Optional] Missile type - [D]umbfire, [S]eeker
* @return {String} The id of the component if found, null if not found
*/
this.findHardpointId = function(groupName, clss, rating, name, mode, missile) {
var h = this.findHardpoint(groupName, clss, rating, name, mode, missile);
return h ? h.id : 0;
};
/**

View File

@@ -51,6 +51,32 @@
transform: scaleX(-1); /* standard */
}
.section-menu {
position: relative;
z-index: 0;
&.selected {
z-index: 1;
h1 {
background-color: @primary;
}
}
h1 {
cursor: pointer;
.icon {
float: right;
margin: 0.1em 0.3em 0 0;
}
}
.select {
box-sizing: border-box;
left: 0;
}
}
#build {
float: right;
line-height: 2em;
@@ -209,6 +235,19 @@ table.total {
stroke-width: 1px;
stroke: #000;
}
}
svg g {
.threshold {
stroke: @secondary-disabled !important;
fill: @secondary-disabled !important;
&.exceeded {
stroke: @warning !important;
fill: @warning !important;
}
}
}
#componentPriority {

View File

@@ -87,7 +87,7 @@ select {
.lc, .c {
border:1px solid @primary-disabled;
padding: 0.1em 0.2em;
padding: 0.1em 0.25em;
margin: 0.3em;
&.warning {

View File

@@ -22,8 +22,8 @@
<div class="dbl" >
<div><ul ng-repeat="shipId in buildsList">
{{ships[shipId].properties.name}}
<li ng-repeat="(name, build) in allBuilds[shipId]">
<a ui-sref-active="active" class="name" ui-sref="outfit({shipId:shipId, code:build, bn:name})" ng-bind="name"></a>
<li ng-repeat="(i, name) in cleanedBuildList(shipId)">
<a ui-sref-active="active" class="name" ui-sref="outfit({shipId:shipId, code:allBuilds[shipId][name], bn:name})" ng-bind="name"></a>
</li>
</ul></div>
</div>
@@ -36,7 +36,7 @@
</div>
<div class="menu-list" ng-if="openedMenu=='comp'" ng-click="$event.stopPropagation();" style="white-space: nowrap;">
<span class="cap" ng-if="!bs.hasComparisons" translate="none created"></span>
<a ng-repeat="(name, comp) in allComparisons" ui-sref-active="active" class="block name" ui-sref="compare({name:name})" ng-bind="name"></a>
<a ng-repeat="(i, name) in allComparisons" ui-sref-active="active" class="block name" ui-sref="compare({name:name})" ng-bind="name"></a>
<hr />
<a ui-sref="compare({name: 'all'})" class="block cap" translate="compare all"></a>
<a ui-sref="compare({name: null})" class="block cap" translate="create new"></a>

View File

@@ -12,6 +12,6 @@
<div class="l" ng-if="hp.c.armourpen">{{'pen' | translate}}: {{hp.c.armourpen}}</div>
<div class="l" ng-if="hp.c.shieldmul">+{{$r.fRPct(hp.c.shieldmul)}}</div>
<div class="l" ng-if="hp.c.range">{{hp.c.range}} <u>km</u></div>
<div class="l" ng-if="hp.c.ammo">{{'ammo' | translate}}: {{$r.fCrd(hp.c.clip)}}/{{$r.fCrd(hp.c.ammo)}}</div>
<div class="l" ng-if="hp.c.ammo >= 0">{{'ammo' | translate}}: {{$r.fCrd(hp.c.clip)}}+{{$r.fCrd(hp.c.ammo)}}</div>
</div>
</div>

View File

@@ -8,7 +8,7 @@
<div class="l" ng-if="c.c.maxmass">{{'max mass' | translate}}: {{c.c.maxmass}} <u translate="T"></u></div>
<div class="l" ng-if="c.c.bins">{{c.c.bins}} <u translate="bins"></u></div>
<div class="l" ng-if="c.c.rate">{{'rate' | translate}}: {{c.c.rate}} <u>Kg/s</u>&nbsp;&nbsp;&nbsp;{{'refuel time' | translate}}: {{$r.fTime(fuel * 1000 / c.c.rate)}}</div>
<div class="l" ng-if="c.c.ammo">{{'ammo' | translate}}: {{c.c.ammo}}</div>
<div class="l" ng-if="c.c.ammo">{{'ammo' | translate}}: {{$r.fCrd(c.c.ammo)}}</div>
<div class="l" ng-if="c.c.cells">{{'cells' | translate}}: {{c.c.cells}}</div>
<div class="l" ng-if="c.c.recharge">{{'recharge' | translate}}: {{c.c.recharge}} <u>MJ</u>&nbsp;&nbsp;&nbsp;{{'total' | translate}}: {{c.c.cells * c.c.recharge}} <u>MJ</u></div>
<div class="l" ng-if="c.c.repair">{{'repair' | translate}}: {{c.c.repair}}</div>

View File

@@ -13,15 +13,9 @@
<button class="danger" ng-click="deleteBuild()" ng-disabled="!savedCode">
<svg class="icon lg"><use xlink:href="#bin"></use></svg>
</button>
<button ui-sref="outfit({shipId: ship.id,code:null, bn: buildName})" ng-disabled="!code">
<button ng-click="resetBuild()" ng-disabled="!code">
<svg class="icon lg"><use xlink:href="#switch"></use></svg><span class="button-lbl" translate="reset"></span>
</button>
<button ng-click="aRatedBuild()">
<svg class="icon lg"><use xlink:href="#a"></use></svg><span class="button-lbl" translate="A-Rated"></span>
</button>
<button ng-click="optimizeMassBuild()">
<svg class="icon lg"><use xlink:href="#feather"></use></svg><span class="button-lbl" translate="optimize mass"></span>
</button>
<button ng-click="exportBuild($event)" ng-disabled="!buildName">
<svg class="icon lg"><use xlink:href="#download"></use></svg><span class="button-lbl" translate="export"></span>
</button>
@@ -60,7 +54,7 @@
</thead>
<tbody>
<tr>
<td class="cap" ng-bind="['','small','medium','large','capital'][ship.class] | translate"></td>
<td class="cap" ng-bind="SZM[ship.class] | translate"></td>
<td>{{ship.agility}}/10</td>
<td>
<span ng-if="th.c.maxmass >= ship.ladenMass">{{fCrd(ship.topSpeed)}} <u translate>m/s</u></span>
@@ -74,12 +68,12 @@
</td>
<td>{{fRound(ship.totalDps)}}</td>
<td>
{{ship.armour}}
{{fCrd(ship.armour)}}
<span ng-if="ship.armourAdded || ship.armourMultiplier > 1">
(<span ng-if="ship.armourMultiplier > 1">{{fRPct(ship.armourMultiplier)}}</span><span ng-if="ship.armourAdded && ship.armourMultiplier > 1">&nbsp;</span><span ng-if="ship.armourAdded">+ {{ship.armourAdded}}</span>)
</span>
</td>
<td>{{fRound(ship.shieldStrength)}} <u translate>MJ</u> <span ng-if="ship.shieldMultiplier > 1 && ship.shieldStrength > 0">({{fRPct(ship.shieldMultiplier)}})</span></td>
<td>{{fCrd(ship.shieldStrength)}} <u translate>MJ</u> <span ng-if="ship.shieldMultiplier > 1 && ship.shieldStrength > 0">({{fRPct(ship.shieldMultiplier)}})</span></td>
<td>{{ship.hullMass}} <u translate>T</u></td>
<td>{{fRound(ship.unladenMass)}} <u translate>T</u></td>
<td>{{fRound(ship.ladenMass)}} <u translate>T</u></td>
@@ -98,7 +92,27 @@
</div>
<div id="standard" class="group">
<h1 translate="standard"></h1>
<div class="section-menu" ng-class="{selected: selectedSlot=='standard'}" context-menu="optimizeCommon()" ng-click="selectSlot($event, 'standard')">
<h1>
{{'standard' | translate}}
<svg class="icon"><use xlink:href="#equalizer"></use></svg>
</h1>
<div class="select" ng-if="selectedSlot=='standard'">
<ul>
<li class="lc" ng-click="optimizeCommon()" translate="Optimize"></li>
<li class="c" ng-click="useCommon('E')">E</li>
<li class="c" ng-click="useCommon('D')">D</li>
<li class="c" ng-click="useCommon('C')">C</li>
<li class="c" ng-click="useCommon('B')">B</li>
<li class="c" ng-click="useCommon('A')">A</li>
</ul>
<div class="select-group cap" translate="builds / roles"></div>
<ul>
<li class="lc" ng-click="optimizeCargo()" translate="Trader"></li>
<li class="lc" ng-click="optimizeExplorer()" translate="Explorer"></li>
</ul>
</div>
</div>
<div class="slot" ng-click="selectSlot($event, ship.bulkheads)" ng-class="{selected: selectedSlot==ship.bulkheads}">
<div class="details">
<div class="sz"><span>8</span></div>
@@ -192,7 +206,20 @@
</div>
<div id="internal" class="group">
<h1 translate="internal compartments"></h1>
<div class="section-menu" ng-class="{selected: selectedSlot=='internal'}" context-menu="emptyInternal()" ng-click="selectSlot($event, 'internal')">
<h1>
{{'internal compartments' | translate}}
<svg class="icon"><use xlink:href="#equalizer"></use></svg>
</h1>
<div class="select" ng-if="selectedSlot=='internal'">
<ul>
<li class="lc" ng-click="emptyInternal()" translate="empty all"></li>
<li class="lc" ng-click="fillWithCargo()" translate="cargo"></li>
<li class="lc" ng-click="fillWithCells()" translate="scb"></li>
<li class="lc" ng-click="fillWithArmor()" translate="hr"></li>
</ul>
</div>
</div>
<div class="slot" ng-repeat="i in ship.internal" ng-click="selectSlot($event, i)" context-menu="select('i', i, $event, 'empty')" ng-class="{selected: selectedSlot==i}">
<div slot-internal class="details" slot="i" fuel="ship.fuelCapacity"></div>
<div class="select" ng-if="selectedSlot==i" ng-click="select('i',i,$event)">
@@ -202,7 +229,47 @@
</div>
<div id="hardpoints" class="group">
<h1 translate="hardpoints"></h1>
<div class="section-menu" ng-class="{selected: selectedSlot=='hardpoints'}" context-menu="emptyHardpoints()" ng-click="selectSlot($event, 'hardpoints')">
<h1>
{{'hardpoints' | translate}}
<svg class="icon"><use xlink:href="#equalizer"></use></svg>
</h1>
<div class="select hardpoint" ng-if="selectedSlot=='hardpoints'">
<ul>
<li class="lc" ng-click="emptyHardpoints()" translate="empty all"></li>
</ul>
<div class="select-group cap" translate="pl"></div>
<ul>
<li class="c" ng-click="useHardpoint('pl','F')"><svg class="icon lg"><use xlink:href="#mount-F"></use></svg></li>
<li class="c" ng-click="useHardpoint('pl','G')"><svg class="icon lg"><use xlink:href="#mount-G"></use></svg></li>
<li class="c" ng-click="useHardpoint('pl','T')"><svg class="icon lg"><use xlink:href="#mount-T"></use></svg></li>
</ul>
<div class="select-group cap" translate="ul"></div>
<ul>
<li class="c" ng-click="useHardpoint('ul','F')"><svg class="icon lg"><use xlink:href="#mount-F"></use></svg></li>
<li class="c" ng-click="useHardpoint('ul','G')"><svg class="icon lg"><use xlink:href="#mount-G"></use></svg></li>
<li class="c" ng-click="useHardpoint('ul','T')"><svg class="icon lg"><use xlink:href="#mount-T"></use></svg></li>
</ul>
<div class="select-group cap" translate="bl"></div>
<ul>
<li class="c" ng-click="useHardpoint('bl','F')"><svg class="icon lg"><use xlink:href="#mount-F"></use></svg></li>
<li class="c" ng-click="useHardpoint('bl','G')"><svg class="icon lg"><use xlink:href="#mount-G"></use></svg></li>
<li class="c" ng-click="useHardpoint('bl','T')"><svg class="icon lg"><use xlink:href="#mount-T"></use></svg></li>
</ul>
<div class="select-group cap" translate="mc"></div>
<ul>
<li class="c" ng-click="useHardpoint('mc','F')"><svg class="icon lg"><use xlink:href="#mount-F"></use></svg></li>
<li class="c" ng-click="useHardpoint('mc','G')"><svg class="icon lg"><use xlink:href="#mount-G"></use></svg></li>
<li class="c" ng-click="useHardpoint('mc','T')"><svg class="icon lg"><use xlink:href="#mount-T"></use></svg></li>
</ul>
<div class="select-group cap" translate="c"></div>
<ul>
<li class="c" ng-click="useHardpoint('c','F')"><svg class="icon lg"><use xlink:href="#mount-F"></use></svg></li>
<li class="c" ng-click="useHardpoint('c','G')"><svg class="icon lg"><use xlink:href="#mount-G"></use></svg></li>
<li class="c" ng-click="useHardpoint('c','T')"><svg class="icon lg"><use xlink:href="#mount-T"></use></svg></li>
</ul>
</div>
</div>
<div class="slot" ng-repeat="h in ship.hardpoints | filter:{maxClass: '!0'}" ng-click="selectSlot($event, h)" context-menu="select('h', h, $event, 'empty')" ng-class="{selected: selectedSlot==h}">
<div slot-hardpoint class="details" hp="h" size="HPC[h.maxClass]"></div>
<div class="select" ng-class="{hardpoint: h.maxClass > 0}" ng-if="selectedSlot==h" ng-click="select('h',h,$event)">
@@ -212,7 +279,25 @@
</div>
<div id="utility" class="group">
<h1 translate="utility mounts"></h1>
<div class="section-menu" ng-class="{selected: selectedSlot=='utility'}" context-menu="emptyUtility()" ng-click="selectSlot($event, 'utility')">
<h1>
{{'utility mounts' | translate}}
<svg class="icon"><use xlink:href="#equalizer"></use></svg>
</h1>
<div class="select" ng-if="selectedSlot=='utility'">
<ul>
<li class="lc" ng-click="emptyUtility()" translate="empty all"></li>
</ul>
<div class="select-group cap" translate="sb"></div>
<ul>
<li class="c" ng-click="useUtility('sb','E')">E</li>
<li class="c" ng-click="useUtility('sb','D')">D</li>
<li class="c" ng-click="useUtility('sb','C')">C</li>
<li class="c" ng-click="useUtility('sb','B')">B</li>
<li class="c" ng-click="useUtility('sb','A')">A</li>
</ul>
</div>
</div>
<div class="slot" ng-repeat="h in ship.hardpoints | filter:{maxClass: '0'}" ng-click="selectSlot($event, h)" context-menu="select('h', h, $event, 'empty')" ng-class="{selected: selectedSlot==h}">
<div slot-hardpoint class="details" hp="h" size="HPC[h.maxClass]"></div>
<div class="select" ng-class="{hardpoint: h.maxClass > 0}" ng-if="selectedSlot==h" ng-click="select('h',h,$event)">
@@ -273,8 +358,9 @@
<table class="tabs">
<thead>
<tr>
<th style="width:50%" ng-class="{active: costTab == 'retrofit'}" ng-click="updateCostTab('retrofit')" translate="retrofit costs"></th>
<th style="width:50%" ng-class="{active: costTab == 'costs'}" ng-click="updateCostTab('costs')" translate="costs"></th>
<th style="width:34%" ng-class="{active: costTab == 'ammo'}" ng-click="updateCostTab('ammo')" translate="reload costs"></th>
<th style="width:33%" ng-class="{active: costTab == 'retrofit'}" ng-click="updateCostTab('retrofit')" translate="retrofit costs"></th>
<th style="width:33%" ng-class="{active: costTab == 'costs'}" ng-click="updateCostTab('costs')" translate="costs"></th>
</tr>
</thead>
</table>
@@ -327,12 +413,12 @@
<tr ng-if="!retrofitList || retrofitList.length == 0">
<td colspan="5" style="padding: 3em 0;" translate="PHRASE_NO_RETROCH"></td>
</tr>
<tr class="highlight" ng-repeat="item in retrofitList | orderBy:retroPredicate:retroDesc">
<td style="width:1em;">{{item.sellClassRating}}</td>
<tr class="highlight" ng-repeat="item in retrofitList | orderBy:retroPredicate:retroDesc" ng-click="toggleRetrofitCost(item.retroItem)" ng-class="{disabled: !item.retroItem.incCost}">
<td style="width:1em;">{{item.sellClassRating}}</td>
<td class="le shorten cap">{{item.sellName | translate}}</td>
<td style="width:1em;">{{item.buyClassRating}}</td>
<td class="le shorten cap">{{item.buyName | translate}}</td>
<td class="ri" ng-class="item.netCost > 0 ? 'warning' : 'secondary-disabled'">{{ fCrd(item.netCost)}} <u translate>CR</u></td>
<td class="ri" ng-class="item.retroItem.incCost ? item.netCost > 0 ? 'warning' : 'secondary-disabled' : 'disabled'">{{ fCrd(item.netCost)}} <u translate>CR</u></td>
</tr>
</tbody>
</table>
@@ -354,6 +440,38 @@
</tr>
</table>
</div>
<div ng-if="costTab == 'ammo'">
<div class="scroll-x">
<table style="width:100%">
<thead>
<tr class="main">
<th colspan="2" class="sortable le" ng-click="sortAmmo('ammoName | translate')" translate="component"></th>
<th colspan="1" class="sortable le" ng-click="sortAmmo('ammoMax')" translate="quantity"></th>
<th colspan="1" class="sortable le" ng-click="sortAmmo('ammoUnitCost')" translate="unit cost"></th>
<th class="sortable le" ng-click="sortAmmo('ammoTotalCost')">
{{'total cost' | translate}} <u class="optional-hide" ng-if="discounts.ammo < 1">-[{{fRPct(1 - discounts.ammo)}}]</u>
</th>
</tr>
</thead>
<tbody>
<tr class="highlight" ng-repeat="item in ammoList | orderBy:ammoPredicate:ammoDesc">
<td style="width:1em;">{{item.ammoClassRating}}</td>
<td class="le shorten cap">{{item.ammoName | translate}}</td>
<td class="ri">{{fCrd(item.ammoMax)}}</td>
<td class="ri">{{fCrd(item.ammoUnitCost)}} <u translate>CR</u></td>
<td class="ri">{{fCrd(item.ammoTotalCost)}} <u translate>CR</u></td>
</tr>
</tbody>
</table>
</div>
<table class="total">
<tr class="ri">
<td class="lbl" translate="total"></td>
<td>{{fCrd(ammoTotal)}} <u translate>CR</u></td>
</tr>
</table>
</div>
</div>
<div class="group third">

View File

@@ -1,9 +1,87 @@
<div id="shipyard">
<a ui-sref="outfit({shipId:id})" class="ship" ng-repeat="(id,s) in ships">
<h2 ng-bind="s.properties.name"></h2>
<div class="subtitle">
<small ng-bind="s.properties.manufacturer"></small>
</div>
{{fCrd(s.retailCost)}} <u>CR</u>
</a>
<div class="scroll-x">
<table align="center" style="font-size:0.85em;white-space:nowrap">
<thead>
<tr class="main">
<th rowspan="2" class="sortable le" ng-click="sortShips('name')" translate="ship"></th>
<th rowspan="2" class="sortable" ng-click="sortShips('manufacturer')" translate="manufacturer"></th>
<th rowspan="2" class="sortable" ng-click="sortShips('class')" translate="size"></th>
<th colspan="4" translate="base"></th>
<th colspan="4" translate="max"></th>
<th colspan="5" class="sortable" ng-click="sortShips('hpCount')" translate="hardpoints"></th>
<th colspan="8" class="sortable" ng-click="sortShips('intCount')" translate="internal compartments"></th>
<th rowspan="2" class="sortable" ng-click="sortShips('hullMass')" translate="hull"></th>
<th rowspan="2" class="sortable" ng-click="sortShips('masslock')" translate="MLF"></th>
<th rowspan="2" class="sortable" ng-click="sortShips('retailCost')" translate="cost"></th>
</tr>
<tr>
<!-- Base -->
<th class="sortable lft" ng-click="sortShips('speed')" translate="speed"></th>
<th class="sortable" ng-click="sortShips('boost')" translate="boost"></th>
<th class="sortable" ng-click="sortShips('baseArmour')" translate="armour"></th>
<th class="sortable" ng-click="sortShips('baseShieldStrength')" translate="shields"></th>
<!-- Max -->
<th class="sortable lft" ng-click="sortShips('topSpeed')" translate="speed"></th>
<th class="sortable " ng-click="sortShips('topBoost')" translate="boost"></th>
<th class="sortable " ng-click="sortShips('maxJumpRange')" translate="jump"></th>
<th class="sortable" ng-click="sortShips('maxCargo')" translate="cargo"></th>
<!-- Hardpoints -->
<th class="sortable lft" ng-click="sortShips('hp[1]')" translate="S"></th>
<th class="sortable" ng-click="sortShips('hp[2]')" translate="M"></th>
<th class="sortable" ng-click="sortShips('hp[3]')" translate="L"></th>
<th class="sortable" ng-click="sortShips('hp[4]')" translate="H"></th>
<th class="sortable" ng-click="sortShips('hp[0]')" translate="U"></th>
<!-- Internal -->
<th class="sortable lft" ng-click="sortShips('int[0]')" translate="1"></th>
<th class="sortable" ng-click="sortShips('int[1]')" translate="2"></th>
<th class="sortable" ng-click="sortShips('int[2]')" translate="3"></th>
<th class="sortable" ng-click="sortShips('int[3]')" translate="4"></th>
<th class="sortable" ng-click="sortShips('int[4]')" translate="5"></th>
<th class="sortable" ng-click="sortShips('int[5]')" translate="6"></th>
<th class="sortable" ng-click="sortShips('int[6]')" translate="7"></th>
<th class="sortable" ng-click="sortShips('int[7]')" translate="8"></th>
</tr>
</thead>
<tbody>
<tr class="highlight" ng-repeat="s in shipsOverview | orderBy:shipPredicate:shipDesc">
<td class="le"><a ui-sref="outfit({shipId: s.id})" ng-bind="s.name"></a></td>
<td class="le" ng-bind="s.manufacturer"></td>
<!-- Pad Size -->
<td class="cap" ng-bind="SZM[s.class] | translate"></td>
<!-- Base -->
<td class="ri">{{fCrd(s.speed)}} <u translate>m/s</u></td>
<td class="ri">{{fCrd(s.boost)}} <u translate>m/s</u></td>
<td class="ri" ng-bind="s.baseArmour"></td>
<td class="ri">{{fCrd(s.baseShieldStrength)}} <u translate>Mj</u></td>
<!-- Max -->
<td class="ri">{{fCrd(s.topSpeed)}} <u translate>m/s</u></td>
<td class="ri">{{fCrd(s.topBoost)}} <u translate>m/s</u></td>
<td class="ri">{{fRound(s.maxJumpRange)}} <u translate>LY</u></td>
<td class="ri">{{fCrd(s.maxCargo)}} <u translate>T</u></td>
<!-- Hardpoints -->
<td ng-bind="s.hp[1]" ng-class="{disabled: !s.hp[1]}"></td>
<td ng-bind="s.hp[2]" ng-class="{disabled: !s.hp[2]}"></td>
<td ng-bind="s.hp[3]" ng-class="{disabled: !s.hp[3]}"></td>
<td ng-bind="s.hp[4]" ng-class="{disabled: !s.hp[4]}"></td>
<td ng-bind="s.hp[0]" ng-class="{disabled: !s.hp[0]}"></td>
<!-- Internal -->
<td ng-bind="s.int[0]" ng-class="{disabled: !s.int[0]}"></td>
<td ng-bind="s.int[1]" ng-class="{disabled: !s.int[1]}"></td>
<td ng-bind="s.int[2]" ng-class="{disabled: !s.int[2]}"></td>
<td ng-bind="s.int[3]" ng-class="{disabled: !s.int[3]}"></td>
<td ng-bind="s.int[4]" ng-class="{disabled: !s.int[4]}"></td>
<td ng-bind="s.int[5]" ng-class="{disabled: !s.int[5]}"></td>
<td ng-bind="s.int[6]" ng-class="{disabled: !s.int[6]}"></td>
<td ng-bind="s.int[7]" ng-class="{disabled: !s.int[7]}"></td>
<!-- Other Stats -->
<td class="ri">{{fCrd(s.hullMass)}} <u translate>T</u></td>
<td class="ri" ng-bind="s.masslock"></td>
<td class="ri">{{fCrd(s.retailCost)}} <u translate>CR</u></td>
</tr>
</tbody>
</table>
</div>
</div>

View File

@@ -1,853 +1,163 @@
{
"sidewinder": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 25600,
"mass": 2
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 80320,
"mass": 4
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 132064,
"mass": 4
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 139424,
"mass": 4
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 25600, "mass": 2 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 80320, "mass": 4 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 132060, "mass": 4 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 139420, "mass": 4 }
],
"diamondback": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 225700,
"mass": 13
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 507900,
"mass": 26
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 1185100,
"mass": 26
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 1330100,
"mass": 26
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 225700, "mass": 13 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 507900, "mass": 26 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 1185100, "mass": 26 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 1330100, "mass": 26 }
],
"diamondback_explorer": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 800000,
"mass": 23
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 1800000,
"mass": 47
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 4200000,
"mass": 26
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 4714000,
"mass": 47
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 800000, "mass": 23 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 1800000, "mass": 47 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 4200000, "mass": 26 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 4714000, "mass": 47 }
],
"imperial_courier": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 1017200,
"mass": 4
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 2288600,
"mass": 8
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 5408800,
"mass": 8
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 5993700,
"mass": 8
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 1017200, "mass": 4 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 2288600, "mass": 8 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 5408800, "mass": 8 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 5993700, "mass": 8 }
],
"cobra_mk_iii": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 151887,
"mass": 14
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 341746,
"mass": 27
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 797407,
"mass": 27
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 894995,
"mass": 27
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 151890, "mass": 14 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 341750, "mass": 27 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 797410, "mass": 27 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 895000, "mass": 27 }
],
"imperial_clipper": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 8918344,
"mass": 30
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 20066274,
"mass": 60
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 47423294,
"mass": 60
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 52551342,
"mass": 60
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 8918340, "mass": 30 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 20066270, "mass": 60 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 47423290, "mass": 60 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 52551340, "mass": 60 }
],
"imperial_eagle": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 66500,
"mass": 4
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 222765,
"mass": 8
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 346555,
"mass": 8
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 372044,
"mass": 8
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 66500, "mass": 4 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 222760, "mass": 8 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 346550, "mass": 8 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 372040, "mass": 8 }
],
"federal_assault_ship": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 7925682,
"mass": 44
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 17832784,
"mass": 87
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 42144814,
"mass": 87
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 46702081,
"mass": 87
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 7925680, "mass": 44 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 17832780, "mass": 87 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 42144810, "mass": 87 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 46702080, "mass": 87 }
],
"federal_dropship": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 7925682,
"mass": 44
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 17832784,
"mass": 87
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 42144814,
"mass": 87
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 46702081,
"mass": 87
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 5725680, "mass": 44 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 12882780, "mass": 87 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 30446310, "mass": 87 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 33738580, "mass": 87 }
],
"federal_gunship": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 14325688,
"mass": 44
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 32232788,
"mass": 87
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 76176811,
"mass": 87
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 84414088,
"mass": 87
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 14325690, "mass": 44 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 32232790, "mass": 87 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 76176810, "mass": 87 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 84414090, "mass": 87 }
],
"python": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 22791271,
"mass": 26
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 51280361,
"mass": 53
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 121192586,
"mass": 53
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 134297567,
"mass": 53
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 22791270, "mass": 26 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 51280360, "mass": 53 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 121192590, "mass": 53 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 134297570, "mass": 53 }
],
"anaconda": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 58787780,
"mass": 30
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 132272505,
"mass": 60
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 312604021,
"mass": 60
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 346406995,
"mass": 60
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 58787780, "mass": 30 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 132272510, "mass": 60 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 312604020, "mass": 60 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 346407000, "mass": 60 }
],
"eagle": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 26880,
"mass": 4
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 90048,
"mass": 8
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 140089,
"mass": 8
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 150393,
"mass": 8
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 26880, "mass": 4 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 90050, "mass": 8 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 140090, "mass": 8 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 150390, "mass": 8 }
],
"viper": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 57172,
"mass": 5
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 128637,
"mass": 9
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 304014,
"mass": 9
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 336888,
"mass": 9
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 57170, "mass": 5 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 128640, "mass": 9 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 304010, "mass": 9 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 336890, "mass": 9 }
],
"vulture": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 1970246,
"mass": 17
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 4433054,
"mass": 35
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 10476783,
"mass": 35
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 11609675,
"mass": 35
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 1970250, "mass": 17 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 4433050, "mass": 35 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 10476780, "mass": 35 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 11609670, "mass": 35 }
],
"fer_de_lance": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 20626816,
"mass": 19
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 46410336,
"mass": 38
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 109683094,
"mass": 38
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 121543513,
"mass": 38
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 20626820, "mass": 19 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 46410340, "mass": 38 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 109683090, "mass": 38 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 121543510, "mass": 38 }
],
"hauler": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 42176,
"mass": 1
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 185047,
"mass": 2
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 270295,
"mass": 2
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 282421,
"mass": 2
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 42180, "mass": 1 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 185050, "mass": 2 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 270300, "mass": 2 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 282420, "mass": 2 }
],
"type_6_transporter": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 418378,
"mass": 12
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 941350,
"mass": 23
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 2224725,
"mass": 23
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 2465292,
"mass": 23
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 418380, "mass": 12 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 941350, "mass": 23 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 2224730, "mass": 23 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 2465290, "mass": 23 }
],
"type_7_transport": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 6988901,
"mass": 32
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 15725027,
"mass": 63
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 37163481,
"mass": 63
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 41182099,
"mass": 63
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 6988900, "mass": 32 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 15725030, "mass": 63 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 37163480, "mass": 63 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 41182100, "mass": 63 }
],
"type_9_heavy": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 30622336,
"mass": 75
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 68900257,
"mass": 150
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 162834275,
"mass": 150
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 180442119,
"mass": 150
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 30622340, "mass": 75 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 68900260, "mass": 150 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 162834280, "mass": 150 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 180442120, "mass": 150 }
],
"adder": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 35123,
"mass": 3
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 79027,
"mass": 5
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 186767,
"mass": 5
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 206963,
"mass": 5
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 35120, "mass": 3 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 79030, "mass": 5 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 186770, "mass": 5 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 206960, "mass": 5 }
],
"asp": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 2664461,
"mass": 21
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 5995038,
"mass": 42
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 14168273,
"mass": 42
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 15700338,
"mass": 42
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 2664460, "mass": 21 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 5995040, "mass": 42 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 14168270, "mass": 42 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 15700340, "mass": 42 }
],
"orca": [
{
"name": "Lightweight Alloy",
"class": 1,
"rating": "I",
"cost": 0,
"mass": 0
},
{
"name": "Reinforced Alloy",
"class": 1,
"rating": "I",
"cost": 19415954,
"mass": 21
},
{
"name": "Military Grade Composite",
"class": 1,
"rating": "I",
"cost": 43685898,
"mass": 87
},
{
"name": "Mirrored Surface Composite",
"class": 1,
"rating": "I",
"cost": 103244339,
"mass": 87
},
{
"name": "Reactive Surface Composite",
"class": 1,
"rating": "I",
"cost": 114408513,
"mass": 87
}
{ "name": "Lightweight Alloy", "class": 1, "rating": "I", "cost": 0, "mass": 0 },
{ "name": "Reinforced Alloy", "class": 1, "rating": "I", "cost": 19415950, "mass": 21 },
{ "name": "Military Grade Composite", "class": 1, "rating": "I", "cost": 43685900, "mass": 87 },
{ "name": "Mirrored Surface Composite", "class": 1, "rating": "I", "cost": 103244340, "mass": 87 },
{ "name": "Reactive Surface Composite", "class": 1, "rating": "I", "cost": 114408510, "mass": 87 }
]
}

View File

@@ -1,302 +1,31 @@
{
"6E": {
"grp": "fd",
"class": 6,
"rating": "E",
"cost": 199747,
"mass": 40,
"power": 0.4,
"optmass": 960,
"maxfuel": 5.3,
"fuelmul": 0.011,
"fuelpower": 2.6
},
"6D": {
"grp": "fd",
"class": 6,
"rating": "D",
"cost": 599242,
"mass": 16,
"power": 0.45,
"optmass": 1080,
"maxfuel": 5.3,
"fuelmul": 0.01,
"fuelpower": 2.6
},
"6C": {
"grp": "fd",
"class": 6,
"rating": "C",
"cost": 1797726,
"mass": 40,
"power": 0.5,
"optmass": 1200,
"maxfuel": 5.3,
"fuelmul": 0.008,
"fuelpower": 2.6
},
"6B": {
"grp": "fd",
"class": 6,
"rating": "B",
"cost": 5393177,
"mass": 64,
"power": 0.63,
"optmass": 1500,
"maxfuel": 6.6,
"fuelmul": 0.01,
"fuelpower": 2.6
},
"6A": {
"grp": "fd",
"class": 6,
"rating": "A",
"cost": 16179531,
"mass": 40,
"power": 0.75,
"optmass": 1800,
"maxfuel": 8,
"fuelmul": 0.012,
"fuelpower": 2.6
},
"5E": {
"grp": "fd",
"class": 5,
"rating": "E",
"cost": 63013,
"mass": 20,
"power": 0.32,
"optmass": 560,
"maxfuel": 3.3,
"fuelmul": 0.011,
"fuelpower": 2.45
},
"5D": {
"grp": "fd",
"class": 5,
"rating": "D",
"cost": 189036,
"mass": 8,
"power": 0.36,
"optmass": 630,
"maxfuel": 3.3,
"fuelmul": 0.01,
"fuelpower": 2.45
},
"5C": {
"grp": "fd",
"class": 5,
"rating": "C",
"cost": 567106,
"mass": 20,
"power": 0.4,
"optmass": 700,
"maxfuel": 3.3,
"fuelmul": 0.008,
"fuelpower": 2.45
},
"5B": {
"grp": "fd",
"class": 5,
"rating": "B",
"cost": 1701318,
"mass": 32,
"power": 0.5,
"optmass": 875,
"maxfuel": 4.1,
"fuelmul": 0.01,
"fuelpower": 2.45
},
"5A": {
"grp": "fd",
"class": 5,
"rating": "A",
"cost": 5103953,
"mass": 20,
"power": 0.6,
"optmass": 1050,
"maxfuel": 5,
"fuelmul": 0.012,
"fuelpower": 2.45
},
"4E": {
"grp": "fd",
"class": 4,
"rating": "E",
"cost": 19878,
"mass": 10,
"power": 0.24,
"optmass": 280,
"maxfuel": 2,
"fuelmul": 0.011,
"fuelpower": 2.3
},
"4D": {
"grp": "fd",
"class": 4,
"rating": "D",
"cost": 59633,
"mass": 4,
"power": 0.27,
"optmass": 315,
"maxfuel": 2,
"fuelmul": 0.01,
"fuelpower": 2.3
},
"4C": {
"grp": "fd",
"class": 4,
"rating": "C",
"cost": 178898,
"mass": 10,
"power": 0.3,
"optmass": 350,
"maxfuel": 2,
"fuelmul": 0.008,
"fuelpower": 2.3
},
"4B": {
"grp": "fd",
"class": 4,
"rating": "B",
"cost": 536693,
"mass": 16,
"power": 0.38,
"optmass": 438,
"maxfuel": 2.5,
"fuelmul": 0.01,
"fuelpower": 2.3
},
"4A": {
"grp": "fd",
"class": 4,
"rating": "A",
"cost": 1610080,
"mass": 10,
"power": 0.45,
"optmass": 525,
"maxfuel": 3,
"fuelmul": 0.012,
"fuelpower": 2.3
},
"3E": {
"grp": "fd",
"class": 3,
"rating": "E",
"cost": 6271,
"mass": 5,
"power": 0.24,
"optmass": 80,
"maxfuel": 1.2,
"fuelmul": 0.011,
"fuelpower": 2.15
},
"3D": {
"grp": "fd",
"class": 3,
"rating": "D",
"cost": 18812,
"mass": 2,
"power": 0.27,
"optmass": 90,
"maxfuel": 1.2,
"fuelmul": 0.01,
"fuelpower": 2.15
},
"3C": {
"grp": "fd",
"class": 3,
"rating": "C",
"cost": 56435,
"mass": 5,
"power": 0.3,
"optmass": 100,
"maxfuel": 1.2,
"fuelmul": 0.008,
"fuelpower": 2.15
},
"3B": {
"grp": "fd",
"class": 3,
"rating": "B",
"cost": 169304,
"mass": 8,
"power": 0.38,
"optmass": 125,
"maxfuel": 1.5,
"fuelmul": 0.01,
"fuelpower": 2.15
},
"3A": {
"grp": "fd",
"class": 3,
"rating": "A",
"cost": 507912,
"mass": 5,
"power": 0.45,
"optmass": 150,
"maxfuel": 1.8,
"fuelmul": 0.012,
"fuelpower": 2.15
},
"2E": {
"grp": "fd",
"class": 2,
"rating": "E",
"cost": 1978,
"mass": 2.5,
"power": 0.16,
"optmass": 48,
"maxfuel": 0.6,
"fuelmul": 0.011,
"fuelpower": 2
},
"2D": {
"grp": "fd",
"class": 2,
"rating": "D",
"cost": 5934,
"mass": 1,
"power": 0.18,
"optmass": 54,
"maxfuel": 0.6,
"fuelmul": 0.01,
"fuelpower": 2
},
"2C": {
"grp": "fd",
"class": 2,
"rating": "C",
"cost": 17803,
"mass": 2.5,
"power": 0.2,
"optmass": 60,
"maxfuel": 0.6,
"fuelmul": 0.008,
"fuelpower": 2
},
"2B": {
"grp": "fd",
"class": 2,
"rating": "B",
"cost": 53408,
"mass": 4,
"power": 0.25,
"optmass": 75,
"maxfuel": 0.8,
"fuelmul": 0.01,
"fuelpower": 2
},
"2A": {
"grp": "fd",
"class": 2,
"rating": "A",
"cost": 160224,
"mass": 2.5,
"power": 0.3,
"optmass": 90,
"maxfuel": 0.9,
"fuelmul": 0.012,
"fuelpower": 2
}
"6E": { "grp": "fd", "class": 6, "rating": "E", "cost": 199750, "mass": 40, "power": 0.4, "optmass": 960, "maxfuel": 5.3, "fuelmul": 0.011, "fuelpower": 2.6 },
"6D": { "grp": "fd", "class": 6, "rating": "D", "cost": 599240, "mass": 16, "power": 0.45, "optmass": 1080, "maxfuel": 5.3, "fuelmul": 0.01, "fuelpower": 2.6 },
"6C": { "grp": "fd", "class": 6, "rating": "C", "cost": 1797730, "mass": 40, "power": 0.5, "optmass": 1200, "maxfuel": 5.3, "fuelmul": 0.008, "fuelpower": 2.6 },
"6B": { "grp": "fd", "class": 6, "rating": "B", "cost": 5393180, "mass": 64, "power": 0.63, "optmass": 1500, "maxfuel": 6.6, "fuelmul": 0.01, "fuelpower": 2.6 },
"6A": { "grp": "fd", "class": 6, "rating": "A", "cost": 16179530, "mass": 40, "power": 0.75, "optmass": 1800, "maxfuel": 8, "fuelmul": 0.012, "fuelpower": 2.6 },
"5E": { "grp": "fd", "class": 5, "rating": "E", "cost": 63010, "mass": 20, "power": 0.32, "optmass": 560, "maxfuel": 3.3, "fuelmul": 0.011, "fuelpower": 2.45 },
"5D": { "grp": "fd", "class": 5, "rating": "D", "cost": 189040, "mass": 8, "power": 0.36, "optmass": 630, "maxfuel": 3.3, "fuelmul": 0.01, "fuelpower": 2.45 },
"5C": { "grp": "fd", "class": 5, "rating": "C", "cost": 567110, "mass": 20, "power": 0.4, "optmass": 700, "maxfuel": 3.3, "fuelmul": 0.008, "fuelpower": 2.45 },
"5B": { "grp": "fd", "class": 5, "rating": "B", "cost": 1701320, "mass": 32, "power": 0.5, "optmass": 875, "maxfuel": 4.1, "fuelmul": 0.01, "fuelpower": 2.45 },
"5A": { "grp": "fd", "class": 5, "rating": "A", "cost": 5103950, "mass": 20, "power": 0.6, "optmass": 1050, "maxfuel": 5, "fuelmul": 0.012, "fuelpower": 2.45 },
"4E": { "grp": "fd", "class": 4, "rating": "E", "cost": 19880, "mass": 10, "power": 0.24, "optmass": 280, "maxfuel": 2, "fuelmul": 0.011, "fuelpower": 2.3 },
"4D": { "grp": "fd", "class": 4, "rating": "D", "cost": 59630, "mass": 4, "power": 0.27, "optmass": 315, "maxfuel": 2, "fuelmul": 0.01, "fuelpower": 2.3 },
"4C": { "grp": "fd", "class": 4, "rating": "C", "cost": 178900, "mass": 10, "power": 0.3, "optmass": 350, "maxfuel": 2, "fuelmul": 0.008, "fuelpower": 2.3 },
"4B": { "grp": "fd", "class": 4, "rating": "B", "cost": 536690, "mass": 16, "power": 0.38, "optmass": 438, "maxfuel": 2.5, "fuelmul": 0.01, "fuelpower": 2.3 },
"4A": { "grp": "fd", "class": 4, "rating": "A", "cost": 1610080, "mass": 10, "power": 0.45, "optmass": 525, "maxfuel": 3, "fuelmul": 0.012, "fuelpower": 2.3 },
"3E": { "grp": "fd", "class": 3, "rating": "E", "cost": 6270, "mass": 5, "power": 0.24, "optmass": 80, "maxfuel": 1.2, "fuelmul": 0.011, "fuelpower": 2.15 },
"3D": { "grp": "fd", "class": 3, "rating": "D", "cost": 18810, "mass": 2, "power": 0.27, "optmass": 90, "maxfuel": 1.2, "fuelmul": 0.01, "fuelpower": 2.15 },
"3C": { "grp": "fd", "class": 3, "rating": "C", "cost": 56440, "mass": 5, "power": 0.3, "optmass": 100, "maxfuel": 1.2, "fuelmul": 0.008, "fuelpower": 2.15 },
"3B": { "grp": "fd", "class": 3, "rating": "B", "cost": 169300, "mass": 8, "power": 0.38, "optmass": 125, "maxfuel": 1.5, "fuelmul": 0.01, "fuelpower": 2.15 },
"3A": { "grp": "fd", "class": 3, "rating": "A", "cost": 507910, "mass": 5, "power": 0.45, "optmass": 150, "maxfuel": 1.8, "fuelmul": 0.012, "fuelpower": 2.15 },
"2E": { "grp": "fd", "class": 2, "rating": "E", "cost": 1980, "mass": 2.5, "power": 0.16, "optmass": 48, "maxfuel": 0.6, "fuelmul": 0.011, "fuelpower": 2 },
"2D": { "grp": "fd", "class": 2, "rating": "D", "cost": 5930, "mass": 1, "power": 0.18, "optmass": 54, "maxfuel": 0.6, "fuelmul": 0.01, "fuelpower": 2 },
"2C": { "grp": "fd", "class": 2, "rating": "C", "cost": 17800, "mass": 2.5, "power": 0.2, "optmass": 60, "maxfuel": 0.6, "fuelmul": 0.008, "fuelpower": 2 },
"2B": { "grp": "fd", "class": 2, "rating": "B", "cost": 53410, "mass": 4, "power": 0.25, "optmass": 75, "maxfuel": 0.8, "fuelmul": 0.01, "fuelpower": 2 },
"2A": { "grp": "fd", "class": 2, "rating": "A", "cost": 160220, "mass": 2.5, "power": 0.3, "optmass": 90, "maxfuel": 0.9, "fuelmul": 0.012, "fuelpower": 2 }
}

View File

@@ -1,44 +1,10 @@
{
"1C": {
"grp": "ft",
"class": 1,
"rating": "C",
"cost": 1000,
"capacity": 2
},
"2C": {
"grp": "ft",
"class": 2,
"rating": "C",
"cost": 3750,
"capacity": 4
},
"3C": {
"grp": "ft",
"class": 3,
"rating": "C",
"cost": 7063,
"capacity": 8
},
"4C": {
"grp": "ft",
"class": 4,
"rating": "C",
"cost": 24734,
"capacity": 16
},
"5C": {
"grp": "ft",
"class": 5,
"rating": "C",
"cost": 97754,
"capacity": 32
},
"6C": {
"grp": "ft",
"class": 6,
"rating": "C",
"cost": 341577,
"capacity": 64
}
"1C": { "grp": "ft", "class": 1, "rating": "C", "cost": 1000, "capacity": 2 },
"2C": { "grp": "ft", "class": 2, "rating": "C", "cost": 3750, "capacity": 4 },
"3C": { "grp": "ft", "class": 3, "rating": "C", "cost": 7060, "capacity": 8 },
"4C": { "grp": "ft", "class": 4, "rating": "C", "cost": 24730, "capacity": 16 },
"5C": { "grp": "ft", "class": 5, "rating": "C", "cost": 97750, "capacity": 32 },
"6C": { "grp": "ft", "class": 6, "rating": "C", "cost": 341580, "capacity": 64 },
"7C": { "grp": "ft", "class": 7, "rating": "C", "cost": 1780910, "capacity": 128 },
"8C": { "grp": "ft", "class": 8, "rating": "C", "cost": 5428400, "capacity": 256 }
}

View File

@@ -1,272 +1,37 @@
{
"6E": {
"grp": "ls",
"class": 6,
"rating": "E",
"cost": 88978,
"mass": 40,
"power": 0.64,
"time": 300
},
"6D": {
"grp": "ls",
"class": 6,
"rating": "D",
"cost": 222444,
"mass": 16,
"power": 0.72,
"time": 450
},
"6C": {
"grp": "ls",
"class": 6,
"rating": "C",
"cost": 556110,
"mass": 40,
"power": 0.8,
"time": 600
},
"6B": {
"grp": "ls",
"class": 6,
"rating": "B",
"cost": 1390275,
"mass": 64,
"power": 0.88,
"time": 900
},
"6A": {
"grp": "ls",
"class": 6,
"rating": "A",
"cost": 3475688,
"mass": 40,
"power": 0.96,
"time": 1500
},
"5E": {
"grp": "ls",
"class": 5,
"rating": "E",
"cost": 31778,
"mass": 20,
"power": 0.57,
"time": 300
},
"5D": {
"grp": "ls",
"class": 5,
"rating": "D",
"cost": 79444,
"mass": 8,
"power": 0.64,
"time": 450
},
"5C": {
"grp": "ls",
"class": 5,
"rating": "C",
"cost": 198611,
"mass": 20,
"power": 0.71,
"time": 600
},
"5B": {
"grp": "ls",
"class": 5,
"rating": "B",
"cost": 496527,
"mass": 32,
"power": 0.78,
"time": 900
},
"5A": {
"grp": "ls",
"class": 5,
"rating": "A",
"cost": 1241317,
"mass": 20,
"power": 0.85,
"time": 1500
},
"4E": {
"grp": "ls",
"class": 4,
"rating": "E",
"cost": 11349,
"mass": 10,
"power": 0.5,
"time": 300
},
"4D": {
"grp": "ls",
"class": 4,
"rating": "D",
"cost": 28373,
"mass": 4,
"power": 0.56,
"time": 450
},
"4C": {
"grp": "ls",
"class": 4,
"rating": "C",
"cost": 70932,
"mass": 10,
"power": 0.62,
"time": 600
},
"4B": {
"grp": "ls",
"class": 4,
"rating": "B",
"cost": 177331,
"mass": 16,
"power": 0.68,
"time": 900
},
"4A": {
"grp": "ls",
"class": 4,
"rating": "A",
"cost": 443328,
"mass": 10,
"power": 0.74,
"time": 1500
},
"3E": {
"grp": "ls",
"class": 3,
"rating": "E",
"cost": 4053,
"mass": 5,
"power": 0.42,
"time": 300
},
"3D": {
"grp": "ls",
"class": 3,
"rating": "D",
"cost": 10133,
"mass": 2,
"power": 0.48,
"time": 450
},
"3C": {
"grp": "ls",
"class": 3,
"rating": "C",
"cost": 25333,
"mass": 5,
"power": 0.53,
"time": 600
},
"3B": {
"grp": "ls",
"class": 3,
"rating": "B",
"cost": 63333,
"mass": 8,
"power": 0.58,
"time": 900
},
"3A": {
"grp": "ls",
"class": 3,
"rating": "A",
"cost": 158331,
"mass": 5,
"power": 0.64,
"time": 1500
},
"2E": {
"grp": "ls",
"class": 2,
"rating": "E",
"cost": 1448,
"mass": 2.5,
"power": 0.37,
"time": 300
},
"2D": {
"grp": "ls",
"class": 2,
"rating": "D",
"cost": 3619,
"mass": 1,
"power": 0.41,
"time": 450
},
"2C": {
"grp": "ls",
"class": 2,
"rating": "C",
"cost": 9048,
"mass": 2.5,
"power": 0.46,
"time": 600
},
"2B": {
"grp": "ls",
"class": 2,
"rating": "B",
"cost": 22619,
"mass": 4,
"power": 0.51,
"time": 900
},
"2A": {
"grp": "ls",
"class": 2,
"rating": "A",
"cost": 56547,
"mass": 2.5,
"power": 0.55,
"time": 1500
},
"1E": {
"grp": "ls",
"class": 1,
"rating": "E",
"cost": 517,
"mass": 1.3,
"power": 0.32,
"time": 300
},
"1D": {
"grp": "ls",
"class": 1,
"rating": "D",
"cost": 1293,
"mass": 0.5,
"power": 0.36,
"time": 450
},
"1C": {
"grp": "ls",
"class": 1,
"rating": "C",
"cost": 3231,
"mass": 1.3,
"power": 0.4,
"time": 600
},
"1B": {
"grp": "ls",
"class": 1,
"rating": "B",
"cost": 8078,
"mass": 2,
"power": 0.44,
"time": 900
},
"1A": {
"grp": "ls",
"class": 1,
"rating": "A",
"cost": 20195,
"mass": 1.3,
"power": 0.48,
"time": 1500
}
"6E": { "grp": "ls", "class": 6, "rating": "E", "cost": 88980, "mass": 40, "power": 0.64, "time": 300 },
"6D": { "grp": "ls", "class": 6, "rating": "D", "cost": 222440, "mass": 16, "power": 0.72, "time": 450 },
"6C": { "grp": "ls", "class": 6, "rating": "C", "cost": 556110, "mass": 40, "power": 0.8, "time": 600 },
"6B": { "grp": "ls", "class": 6, "rating": "B", "cost": 1390280, "mass": 64, "power": 0.88, "time": 900 },
"6A": { "grp": "ls", "class": 6, "rating": "A", "cost": 3475690, "mass": 40, "power": 0.96, "time": 1500 },
"5E": { "grp": "ls", "class": 5, "rating": "E", "cost": 31780, "mass": 20, "power": 0.57, "time": 300 },
"5D": { "grp": "ls", "class": 5, "rating": "D", "cost": 79440, "mass": 8, "power": 0.64, "time": 450 },
"5C": { "grp": "ls", "class": 5, "rating": "C", "cost": 198610, "mass": 20, "power": 0.71, "time": 600 },
"5B": { "grp": "ls", "class": 5, "rating": "B", "cost": 496530, "mass": 32, "power": 0.78, "time": 900 },
"5A": { "grp": "ls", "class": 5, "rating": "A", "cost": 1241320, "mass": 20, "power": 0.85, "time": 1500 },
"4E": { "grp": "ls", "class": 4, "rating": "E", "cost": 11350, "mass": 10, "power": 0.5, "time": 300 },
"4D": { "grp": "ls", "class": 4, "rating": "D", "cost": 28370, "mass": 4, "power": 0.56, "time": 450 },
"4C": { "grp": "ls", "class": 4, "rating": "C", "cost": 70930, "mass": 10, "power": 0.62, "time": 600 },
"4B": { "grp": "ls", "class": 4, "rating": "B", "cost": 177330, "mass": 16, "power": 0.68, "time": 900 },
"4A": { "grp": "ls", "class": 4, "rating": "A", "cost": 443330, "mass": 10, "power": 0.74, "time": 1500 },
"3E": { "grp": "ls", "class": 3, "rating": "E", "cost": 4050, "mass": 5, "power": 0.42, "time": 300 },
"3D": { "grp": "ls", "class": 3, "rating": "D", "cost": 10130, "mass": 2, "power": 0.48, "time": 450 },
"3C": { "grp": "ls", "class": 3, "rating": "C", "cost": 25330, "mass": 5, "power": 0.53, "time": 600 },
"3B": { "grp": "ls", "class": 3, "rating": "B", "cost": 63330, "mass": 8, "power": 0.58, "time": 900 },
"3A": { "grp": "ls", "class": 3, "rating": "A", "cost": 158330, "mass": 5, "power": 0.64, "time": 1500 },
"2E": { "grp": "ls", "class": 2, "rating": "E", "cost": 1450, "mass": 2.5, "power": 0.37, "time": 300 },
"2D": { "grp": "ls", "class": 2, "rating": "D", "cost": 3620, "mass": 1, "power": 0.41, "time": 450 },
"2C": { "grp": "ls", "class": 2, "rating": "C", "cost": 9050, "mass": 2.5, "power": 0.46, "time": 600 },
"2B": { "grp": "ls", "class": 2, "rating": "B", "cost": 22620, "mass": 4, "power": 0.51, "time": 900 },
"2A": { "grp": "ls", "class": 2, "rating": "A", "cost": 56550, "mass": 2.5, "power": 0.55, "time": 1500 },
"1E": { "grp": "ls", "class": 1, "rating": "E", "cost": 520, "mass": 1.3, "power": 0.32, "time": 300 },
"1D": { "grp": "ls", "class": 1, "rating": "D", "cost": 1290, "mass": 0.5, "power": 0.36, "time": 450 },
"1C": { "grp": "ls", "class": 1, "rating": "C", "cost": 3230, "mass": 1.3, "power": 0.4, "time": 600 },
"1B": { "grp": "ls", "class": 1, "rating": "B", "cost": 8080, "mass": 2, "power": 0.44, "time": 900 },
"1A": { "grp": "ls", "class": 1, "rating": "A", "cost": 20200, "mass": 1.3, "power": 0.48, "time": 1500 }
}

View File

@@ -1,42 +1,49 @@
{
"8E": { "grp": "pd", "class": 8, "rating": "E", "cost": 697584, "mass": 160, "power": 0.64, "weaponcapacity": 48, "weaponrecharge": 4.8, "enginecapacity": 32, "enginerecharge": 3.2, "systemcapacity": 32, "systemrecharge": 3.2 },
"8D": { "grp": "pd", "class": 8, "rating": "D", "cost": 1743961, "mass": 64, "power": 0.72, "weaponcapacity": 54, "weaponrecharge": 5.4, "enginecapacity": 36, "enginerecharge": 3.6, "systemcapacity": 36, "systemrecharge": 3.6 },
"8C": { "grp": "pd", "class": 8, "rating": "C", "cost": 4359903, "mass": 160, "power": 0.8, "weaponcapacity": 60, "weaponrecharge": 6, "enginecapacity": 40, "enginerecharge": 4, "systemcapacity": 40, "systemrecharge": 4 },
"8B": { "grp": "pd", "class": 8, "rating": "B", "cost": 10899756, "mass": 256, "power": 0.88, "weaponcapacity": 66, "weaponrecharge": 6.6, "enginecapacity": 44, "enginerecharge": 4.4, "systemcapacity": 44, "systemrecharge": 4.4 },
"8A": { "grp": "pd", "class": 8, "rating": "A", "cost": 27249391, "mass": 160, "power": 0.96, "weaponcapacity": 72, "weaponrecharge": 7.2, "enginecapacity": 48, "enginerecharge": 4.8, "systemcapacity": 48, "systemrecharge": 4.8 },
"7E": { "grp": "pd", "class": 7, "rating": "E", "cost": 249137, "mass": 80, "power": 0.59, "weaponcapacity": 41, "weaponrecharge": 4.1, "enginecapacity": 27, "enginerecharge": 2.6, "systemcapacity": 27, "systemrecharge": 2.6 },
"7D": { "grp": "pd", "class": 7, "rating": "D", "cost": 622843, "mass": 32, "power": 0.67, "weaponcapacity": 46, "weaponrecharge": 4.6, "enginecapacity": 31, "enginerecharge": 3, "systemcapacity": 31, "systemrecharge": 3 },
"7C": { "grp": "pd", "class": 7, "rating": "C", "cost": 1557108, "mass": 80, "power": 0.74, "weaponcapacity": 51, "weaponrecharge": 5.1, "enginecapacity": 34, "enginerecharge": 3.3, "systemcapacity": 34, "systemrecharge": 3.3 },
"8E": { "grp": "pd", "class": 8, "rating": "E", "cost": 697580, "mass": 160, "power": 0.64, "weaponcapacity": 48, "weaponrecharge": 4.8, "enginecapacity": 32, "enginerecharge": 3.2, "systemcapacity": 32, "systemrecharge": 3.2 },
"8D": { "grp": "pd", "class": 8, "rating": "D", "cost": 1743960, "mass": 64, "power": 0.72, "weaponcapacity": 54, "weaponrecharge": 5.4, "enginecapacity": 36, "enginerecharge": 3.6, "systemcapacity": 36, "systemrecharge": 3.6 },
"8C": { "grp": "pd", "class": 8, "rating": "C", "cost": 4359900, "mass": 160, "power": 0.8, "weaponcapacity": 60, "weaponrecharge": 6, "enginecapacity": 40, "enginerecharge": 4, "systemcapacity": 40, "systemrecharge": 4 },
"8B": { "grp": "pd", "class": 8, "rating": "B", "cost": 10899760, "mass": 256, "power": 0.88, "weaponcapacity": 66, "weaponrecharge": 6.6, "enginecapacity": 44, "enginerecharge": 4.4, "systemcapacity": 44, "systemrecharge": 4.4 },
"8A": { "grp": "pd", "class": 8, "rating": "A", "cost": 27249390, "mass": 160, "power": 0.96, "weaponcapacity": 72, "weaponrecharge": 7.2, "enginecapacity": 48, "enginerecharge": 4.8, "systemcapacity": 48, "systemrecharge": 4.8 },
"7E": { "grp": "pd", "class": 7, "rating": "E", "cost": 249140, "mass": 80, "power": 0.59, "weaponcapacity": 41, "weaponrecharge": 4.1, "enginecapacity": 27, "enginerecharge": 2.6, "systemcapacity": 27, "systemrecharge": 2.6 },
"7D": { "grp": "pd", "class": 7, "rating": "D", "cost": 622840, "mass": 32, "power": 0.67, "weaponcapacity": 46, "weaponrecharge": 4.6, "enginecapacity": 31, "enginerecharge": 3, "systemcapacity": 31, "systemrecharge": 3 },
"7C": { "grp": "pd", "class": 7, "rating": "C", "cost": 1557110, "mass": 80, "power": 0.74, "weaponcapacity": 51, "weaponrecharge": 5.1, "enginecapacity": 34, "enginerecharge": 3.3, "systemcapacity": 34, "systemrecharge": 3.3 },
"7B": { "grp": "pd", "class": 7, "rating": "B", "cost": 3892770, "mass": 128, "power": 0.81, "weaponcapacity": 56, "weaponrecharge": 5.6, "enginecapacity": 37, "enginerecharge": 3.6, "systemcapacity": 37, "systemrecharge": 3.6 },
"7A": { "grp": "pd", "class": 7, "rating": "A", "cost": 9731925, "mass": 80, "power": 0.89, "weaponcapacity": 61, "weaponrecharge": 6.1, "enginecapacity": 41, "enginerecharge": 4, "systemcapacity": 41, "systemrecharge": 4 },
"6E": { "grp": "pd", "class": 6, "rating": "E", "cost": 88978, "mass": 40, "power": 0.54, "weaponcapacity": 34, "weaponrecharge": 3.4, "enginecapacity": 23, "enginerecharge": 2.2, "systemcapacity": 23, "systemrecharge": 2.2 },
"6D": { "grp": "pd", "class": 6, "rating": "D", "cost": 222444, "mass": 16, "power": 0.61, "weaponcapacity": 38, "weaponrecharge": 3.9, "enginecapacity": 26, "enginerecharge": 2.4, "systemcapacity": 26, "systemrecharge": 2.4 },
"7A": { "grp": "pd", "class": 7, "rating": "A", "cost": 9731930, "mass": 80, "power": 0.89, "weaponcapacity": 61, "weaponrecharge": 6.1, "enginecapacity": 41, "enginerecharge": 4, "systemcapacity": 41, "systemrecharge": 4 },
"6E": { "grp": "pd", "class": 6, "rating": "E", "cost": 88980, "mass": 40, "power": 0.54, "weaponcapacity": 34, "weaponrecharge": 3.4, "enginecapacity": 23, "enginerecharge": 2.2, "systemcapacity": 23, "systemrecharge": 2.2 },
"6D": { "grp": "pd", "class": 6, "rating": "D", "cost": 222440, "mass": 16, "power": 0.61, "weaponcapacity": 38, "weaponrecharge": 3.9, "enginecapacity": 26, "enginerecharge": 2.4, "systemcapacity": 26, "systemrecharge": 2.4 },
"6C": { "grp": "pd", "class": 6, "rating": "C", "cost": 556110, "mass": 40, "power": 0.68, "weaponcapacity": 42, "weaponrecharge": 4.3, "enginecapacity": 29, "enginerecharge": 2.7, "systemcapacity": 29, "systemrecharge": 2.7 },
"6B": { "grp": "pd", "class": 6, "rating": "B", "cost": 1390275, "mass": 64, "power": 0.75, "weaponcapacity": 46, "weaponrecharge": 4.7, "enginecapacity": 32, "enginerecharge": 3, "systemcapacity": 32, "systemrecharge": 3 },
"6A": { "grp": "pd", "class": 6, "rating": "A", "cost": 3475688, "mass": 40, "power": 0.82, "weaponcapacity": 50, "weaponrecharge": 5.2, "enginecapacity": 35, "enginerecharge": 3.2, "systemcapacity": 35, "systemrecharge": 3.2 },
"5E": { "grp": "pd", "class": 5, "rating": "E", "cost": 31778, "mass": 20, "power": 0.5, "weaponcapacity": 27, "weaponrecharge": 2.9, "enginecapacity": 19, "enginerecharge": 1.7, "systemcapacity": 19, "systemrecharge": 1.7 },
"5D": { "grp": "pd", "class": 5, "rating": "D", "cost": 79444, "mass": 8, "power": 0.56, "weaponcapacity": 31, "weaponrecharge": 3.2, "enginecapacity": 22, "enginerecharge": 1.9, "systemcapacity": 22, "systemrecharge": 1.9 },
"5C": { "grp": "pd", "class": 5, "rating": "C", "cost": 198611, "mass": 20, "power": 0.62, "weaponcapacity": 34, "weaponrecharge": 3.6, "enginecapacity": 24, "enginerecharge": 2.1, "systemcapacity": 24, "systemrecharge": 2.1 },
"5B": { "grp": "pd", "class": 5, "rating": "B", "cost": 496527, "mass": 32, "power": 0.68, "weaponcapacity": 37, "weaponrecharge": 4, "enginecapacity": 26, "enginerecharge": 2.3, "systemcapacity": 26, "systemrecharge": 2.3 },
"5A": { "grp": "pd", "class": 5, "rating": "A", "cost": 1241317, "mass": 20, "power": 0.74, "weaponcapacity": 41, "weaponrecharge": 4.3, "enginecapacity": 29, "enginerecharge": 2.5, "systemcapacity": 29, "systemrecharge": 2.5 },
"4E": { "grp": "pd", "class": 4, "rating": "E", "cost": 11349, "mass": 10, "power": 0.45, "weaponcapacity": 22, "weaponrecharge": 2.3, "enginecapacity": 15, "enginerecharge": 1.3, "systemcapacity": 15, "systemrecharge": 1.3 },
"4D": { "grp": "pd", "class": 4, "rating": "D", "cost": 28373, "mass": 4, "power": 0.5, "weaponcapacity": 24, "weaponrecharge": 2.6, "enginecapacity": 17, "enginerecharge": 1.4, "systemcapacity": 17, "systemrecharge": 1.4 },
"4C": { "grp": "pd", "class": 4, "rating": "C", "cost": 70932, "mass": 10, "power": 0.56, "weaponcapacity": 27, "weaponrecharge": 2.9, "enginecapacity": 19, "enginerecharge": 1.6, "systemcapacity": 19, "systemrecharge": 1.6 },
"4B": { "grp": "pd", "class": 4, "rating": "B", "cost": 177331, "mass": 16, "power": 0.62, "weaponcapacity": 30, "weaponrecharge": 3.2, "enginecapacity": 21, "enginerecharge": 1.8, "systemcapacity": 21, "systemrecharge": 1.8 },
"4A": { "grp": "pd", "class": 4, "rating": "A", "cost": 443328, "mass": 10, "power": 0.67, "weaponcapacity": 32, "weaponrecharge": 3.5, "enginecapacity": 23, "enginerecharge": 1.9, "systemcapacity": 23, "systemrecharge": 1.9 },
"3E": { "grp": "pd", "class": 3, "rating": "E", "cost": 4053, "mass": 5, "power": 0.4, "weaponcapacity": 16, "weaponrecharge": 1.8, "enginecapacity": 12, "enginerecharge": 0.9, "systemcapacity": 12, "systemrecharge": 0.9 },
"3D": { "grp": "pd", "class": 3, "rating": "D", "cost": 10133, "mass": 2, "power": 0.45, "weaponcapacity": 18, "weaponrecharge": 2.1, "enginecapacity": 14, "enginerecharge": 1, "systemcapacity": 14, "systemrecharge": 1 },
"3C": { "grp": "pd", "class": 3, "rating": "C", "cost": 25333, "mass": 5, "power": 0.5, "weaponcapacity": 20, "weaponrecharge": 2.3, "enginecapacity": 15, "enginerecharge": 1.1, "systemcapacity": 15, "systemrecharge": 1.1 },
"3B": { "grp": "pd", "class": 3, "rating": "B", "cost": 63333, "mass": 8, "power": 0.55, "weaponcapacity": 22, "weaponrecharge": 2.5, "enginecapacity": 17, "enginerecharge": 1.2, "systemcapacity": 17, "systemrecharge": 1.2 },
"3A": { "grp": "pd", "class": 3, "rating": "A", "cost": 158331, "mass": 5, "power": 0.6, "weaponcapacity": 24, "weaponrecharge": 2.8, "enginecapacity": 18, "enginerecharge": 1.3, "systemcapacity": 18, "systemrecharge": 1.3 },
"2E": { "grp": "pd", "class": 2, "rating": "E", "cost": 1448, "mass": 2.5, "power": 0.36, "weaponcapacity": 12, "weaponrecharge": 1.4, "enginecapacity": 10, "enginerecharge": 0.6, "systemcapacity": 10, "systemrecharge": 0.6 },
"2D": { "grp": "pd", "class": 2, "rating": "D", "cost": 3619, "mass": 1, "power": 0.41, "weaponcapacity": 14, "weaponrecharge": 1.6, "enginecapacity": 11, "enginerecharge": 0.6, "systemcapacity": 11, "systemrecharge": 0.6 },
"2C": { "grp": "pd", "class": 2, "rating": "C", "cost": 9048, "mass": 2.5, "power": 0.45, "weaponcapacity": 15, "weaponrecharge": 1.8, "enginecapacity": 12, "enginerecharge": 0.7, "systemcapacity": 12, "systemrecharge": 0.7 },
"2B": { "grp": "pd", "class": 2, "rating": "B", "cost": 22619, "mass": 4, "power": 0.5, "weaponcapacity": 17, "weaponrecharge": 2, "enginecapacity": 13, "enginerecharge": 0.8, "systemcapacity": 13, "systemrecharge": 0.8 },
"2A": { "grp": "pd", "class": 2, "rating": "A", "cost": 56547, "mass": 2.5, "power": 0.54, "weaponcapacity": 18, "weaponrecharge": 2.2, "enginecapacity": 14, "enginerecharge": 0.8, "systemcapacity": 14, "systemrecharge": 0.8 },
"1E": { "grp": "pd", "class": 1, "rating": "E", "cost": 517, "mass": 1.3, "power": 0.32, "weaponcapacity": 10, "weaponrecharge": 1.2, "enginecapacity": 8, "enginerecharge": 0.4, "systemcapacity": 8, "systemrecharge": 0.4 },
"1D": { "grp": "pd", "class": 1, "rating": "D", "cost": 1293, "mass": 0.5, "power": 0.36, "weaponcapacity": 11, "weaponrecharge": 1.4, "enginecapacity": 9, "enginerecharge": 0.5, "systemcapacity": 9, "systemrecharge": 0.5 },
"1C": { "grp": "pd", "class": 1, "rating": "C", "cost": 3231, "mass": 1.3, "power": 0.4, "weaponcapacity": 12, "weaponrecharge": 1.5, "enginecapacity": 10, "enginerecharge": 0.5, "systemcapacity": 10, "systemrecharge": 0.5 },
"1B": { "grp": "pd", "class": 1, "rating": "B", "cost": 8078, "mass": 2, "power": 0.44, "weaponcapacity": 13, "weaponrecharge": 1.7, "enginecapacity": 11, "enginerecharge": 0.6, "systemcapacity": 11, "systemrecharge": 0.6 },
"1A": { "grp": "pd", "class": 1, "rating": "A", "cost": 20195, "mass": 1.3, "power": 0.48, "weaponcapacity": 14, "weaponrecharge": 1.8, "enginecapacity": 12, "enginerecharge": 0.6, "systemcapacity": 12, "systemrecharge": 0.6 }
"6B": { "grp": "pd", "class": 6, "rating": "B", "cost": 1390280, "mass": 64, "power": 0.75, "weaponcapacity": 46, "weaponrecharge": 4.7, "enginecapacity": 32, "enginerecharge": 3, "systemcapacity": 32, "systemrecharge": 3 },
"6A": { "grp": "pd", "class": 6, "rating": "A", "cost": 3475690, "mass": 40, "power": 0.82, "weaponcapacity": 50, "weaponrecharge": 5.2, "enginecapacity": 35, "enginerecharge": 3.2, "systemcapacity": 35, "systemrecharge": 3.2 },
"5E": { "grp": "pd", "class": 5, "rating": "E", "cost": 31780, "mass": 20, "power": 0.5, "weaponcapacity": 27, "weaponrecharge": 2.9, "enginecapacity": 19, "enginerecharge": 1.7, "systemcapacity": 19, "systemrecharge": 1.7 },
"5D": { "grp": "pd", "class": 5, "rating": "D", "cost": 79440, "mass": 8, "power": 0.56, "weaponcapacity": 31, "weaponrecharge": 3.2, "enginecapacity": 22, "enginerecharge": 1.9, "systemcapacity": 22, "systemrecharge": 1.9 },
"5C": { "grp": "pd", "class": 5, "rating": "C", "cost": 198610, "mass": 20, "power": 0.62, "weaponcapacity": 34, "weaponrecharge": 3.6, "enginecapacity": 24, "enginerecharge": 2.1, "systemcapacity": 24, "systemrecharge": 2.1 },
"5B": { "grp": "pd", "class": 5, "rating": "B", "cost": 496530, "mass": 32, "power": 0.68, "weaponcapacity": 37, "weaponrecharge": 4, "enginecapacity": 26, "enginerecharge": 2.3, "systemcapacity": 26, "systemrecharge": 2.3 },
"5A": { "grp": "pd", "class": 5, "rating": "A", "cost": 1241320, "mass": 20, "power": 0.74, "weaponcapacity": 41, "weaponrecharge": 4.3, "enginecapacity": 29, "enginerecharge": 2.5, "systemcapacity": 29, "systemrecharge": 2.5 },
"4E": { "grp": "pd", "class": 4, "rating": "E", "cost": 11350, "mass": 10, "power": 0.45, "weaponcapacity": 22, "weaponrecharge": 2.3, "enginecapacity": 15, "enginerecharge": 1.3, "systemcapacity": 15, "systemrecharge": 1.3 },
"4D": { "grp": "pd", "class": 4, "rating": "D", "cost": 28370, "mass": 4, "power": 0.5, "weaponcapacity": 24, "weaponrecharge": 2.6, "enginecapacity": 17, "enginerecharge": 1.4, "systemcapacity": 17, "systemrecharge": 1.4 },
"4C": { "grp": "pd", "class": 4, "rating": "C", "cost": 70930, "mass": 10, "power": 0.56, "weaponcapacity": 27, "weaponrecharge": 2.9, "enginecapacity": 19, "enginerecharge": 1.6, "systemcapacity": 19, "systemrecharge": 1.6 },
"4B": { "grp": "pd", "class": 4, "rating": "B", "cost": 177330, "mass": 16, "power": 0.62, "weaponcapacity": 30, "weaponrecharge": 3.2, "enginecapacity": 21, "enginerecharge": 1.8, "systemcapacity": 21, "systemrecharge": 1.8 },
"4A": { "grp": "pd", "class": 4, "rating": "A", "cost": 443330, "mass": 10, "power": 0.67, "weaponcapacity": 32, "weaponrecharge": 3.5, "enginecapacity": 23, "enginerecharge": 1.9, "systemcapacity": 23, "systemrecharge": 1.9 },
"3E": { "grp": "pd", "class": 3, "rating": "E", "cost": 4050, "mass": 5, "power": 0.4, "weaponcapacity": 16, "weaponrecharge": 1.8, "enginecapacity": 12, "enginerecharge": 0.9, "systemcapacity": 12, "systemrecharge": 0.9 },
"3D": { "grp": "pd", "class": 3, "rating": "D", "cost": 10130, "mass": 2, "power": 0.45, "weaponcapacity": 18, "weaponrecharge": 2.1, "enginecapacity": 14, "enginerecharge": 1, "systemcapacity": 14, "systemrecharge": 1 },
"3C": { "grp": "pd", "class": 3, "rating": "C", "cost": 25330, "mass": 5, "power": 0.5, "weaponcapacity": 20, "weaponrecharge": 2.3, "enginecapacity": 15, "enginerecharge": 1.1, "systemcapacity": 15, "systemrecharge": 1.1 },
"3B": { "grp": "pd", "class": 3, "rating": "B", "cost": 63330, "mass": 8, "power": 0.55, "weaponcapacity": 22, "weaponrecharge": 2.5, "enginecapacity": 17, "enginerecharge": 1.2, "systemcapacity": 17, "systemrecharge": 1.2 },
"3A": { "grp": "pd", "class": 3, "rating": "A", "cost": 158330, "mass": 5, "power": 0.6, "weaponcapacity": 24, "weaponrecharge": 2.8, "enginecapacity": 18, "enginerecharge": 1.3, "systemcapacity": 18, "systemrecharge": 1.3 },
"2E": { "grp": "pd", "class": 2, "rating": "E", "cost": 1450, "mass": 2.5, "power": 0.36, "weaponcapacity": 12, "weaponrecharge": 1.4, "enginecapacity": 10, "enginerecharge": 0.6, "systemcapacity": 10, "systemrecharge": 0.6 },
"2D": { "grp": "pd", "class": 2, "rating": "D", "cost": 3620, "mass": 1, "power": 0.41, "weaponcapacity": 14, "weaponrecharge": 1.6, "enginecapacity": 11, "enginerecharge": 0.6, "systemcapacity": 11, "systemrecharge": 0.6 },
"2C": { "grp": "pd", "class": 2, "rating": "C", "cost": 9050, "mass": 2.5, "power": 0.45, "weaponcapacity": 15, "weaponrecharge": 1.8, "enginecapacity": 12, "enginerecharge": 0.7, "systemcapacity": 12, "systemrecharge": 0.7 },
"2B": { "grp": "pd", "class": 2, "rating": "B", "cost": 22620, "mass": 4, "power": 0.5, "weaponcapacity": 17, "weaponrecharge": 2, "enginecapacity": 13, "enginerecharge": 0.8, "systemcapacity": 13, "systemrecharge": 0.8 },
"2A": { "grp": "pd", "class": 2, "rating": "A", "cost": 56550, "mass": 2.5, "power": 0.54, "weaponcapacity": 18, "weaponrecharge": 2.2, "enginecapacity": 14, "enginerecharge": 0.8, "systemcapacity": 14, "systemrecharge": 0.8 },
"1E": { "grp": "pd", "class": 1, "rating": "E", "cost": 520, "mass": 1.3, "power": 0.32, "weaponcapacity": 10, "weaponrecharge": 1.2, "enginecapacity": 8, "enginerecharge": 0.4, "systemcapacity": 8, "systemrecharge": 0.4 },
"1D": { "grp": "pd", "class": 1, "rating": "D", "cost": 1290, "mass": 0.5, "power": 0.36, "weaponcapacity": 11, "weaponrecharge": 1.4, "enginecapacity": 9, "enginerecharge": 0.5, "systemcapacity": 9, "systemrecharge": 0.5 },
"1C": { "grp": "pd", "class": 1, "rating": "C", "cost": 3230, "mass": 1.3, "power": 0.4, "weaponcapacity": 12, "weaponrecharge": 1.5, "enginecapacity": 10, "enginerecharge": 0.5, "systemcapacity": 10, "systemrecharge": 0.5 },
"1B": { "grp": "pd", "class": 1, "rating": "B", "cost": 8080, "mass": 2, "power": 0.44, "weaponcapacity": 13, "weaponrecharge": 1.7, "enginecapacity": 11, "enginerecharge": 0.6, "systemcapacity": 11, "systemrecharge": 0.6 },
"1A": { "grp": "pd", "class": 1, "rating": "A", "cost": 20200, "mass": 1.3, "power": 0.48, "weaponcapacity": 14, "weaponrecharge": 1.8, "enginecapacity": 12, "enginerecharge": 0.6, "systemcapacity": 12, "systemrecharge": 0.6 }
}

View File

@@ -1,37 +1,43 @@
{
"8E":{ "grp": "pp", "class": 8, "rating": "E", "cost": 2007241, "mass": 160, "pGen": 24, "eff": "F" },
"8D":{ "grp": "pp", "class": 8, "rating": "D", "cost": 6021722, "mass": 64, "pGen": 27, "eff": "D" },
"8C":{ "grp": "pp", "class": 8, "rating": "C", "cost": 18065165, "mass": 80, "pGen": 30, "eff": "C" },
"8B":{ "grp": "pp", "class": 8, "rating": "B", "cost": 54195495, "mass": 128, "pGen": 33, "eff": "C" },
"8A":{ "grp": "pp", "class": 8, "rating": "A", "cost": 162586486, "mass": 80, "pGen": 36, "eff": "B" },
"7E":{ "grp": "pp", "class": 7, "rating": "E", "cost": 633199, "mass": 80, "pGen": 20, "eff": "F" },
"7D":{ "grp": "pp", "class": 7, "rating": "D", "cost": 1899597, "mass": 32, "pGen": 22.5, "eff": "D" },
"8E":{ "grp": "pp", "class": 8, "rating": "E", "cost": 2007240, "mass": 160, "pGen": 24, "eff": "F" },
"8D":{ "grp": "pp", "class": 8, "rating": "D", "cost": 6021720, "mass": 64, "pGen": 27, "eff": "D" },
"8C":{ "grp": "pp", "class": 8, "rating": "C", "cost": 18065170, "mass": 80, "pGen": 30, "eff": "C" },
"8B":{ "grp": "pp", "class": 8, "rating": "B", "cost": 54195500, "mass": 128, "pGen": 33, "eff": "C" },
"8A":{ "grp": "pp", "class": 8, "rating": "A", "cost": 162586490, "mass": 80, "pGen": 36, "eff": "B" },
"7E":{ "grp": "pp", "class": 7, "rating": "E", "cost": 633200, "mass": 80, "pGen": 20, "eff": "F" },
"7D":{ "grp": "pp", "class": 7, "rating": "D", "cost": 1899600, "mass": 32, "pGen": 22.5, "eff": "D" },
"7C":{ "grp": "pp", "class": 7, "rating": "C", "cost": 5698790, "mass": 40, "pGen": 25, "eff": "C" },
"7B":{ "grp": "pp", "class": 7, "rating": "B", "cost": 17096371, "mass": 64, "pGen": 27.5, "eff": "C" },
"7A":{ "grp": "pp", "class": 7, "rating": "A", "cost": 51289112, "mass": 40, "pGen": 30, "eff": "B" },
"6E":{ "grp": "pp", "class": 6, "rating": "E", "cost": 199747, "mass": 40, "pGen": 16.8, "eff": "F" },
"6D":{ "grp": "pp", "class": 6, "rating": "D", "cost": 599242, "mass": 16, "pGen": 18.9, "eff": "D" },
"6C":{ "grp": "pp", "class": 6, "rating": "C", "cost": 1797726, "mass": 20, "pGen": 21, "eff": "C" },
"6B":{ "grp": "pp", "class": 6, "rating": "B", "cost": 5393177, "mass": 32, "pGen": 23.1, "eff": "C" },
"6A":{ "grp": "pp", "class": 6, "rating": "A", "cost": 16179531, "mass": 20, "pGen": 25.2, "eff": "B" },
"5E":{ "grp": "pp", "class": 5, "rating": "E", "cost": 63012, "mass": 20, "pGen": 13.6, "eff": "F" },
"5D":{ "grp": "pp", "class": 5, "rating": "D", "cost": 189035, "mass": 8, "pGen": 15.3, "eff": "D" },
"5C":{ "grp": "pp", "class": 5, "rating": "C", "cost": 567106, "mass": 10, "pGen": 17, "eff": "C" },
"5B":{ "grp": "pp", "class": 5, "rating": "B", "cost": 1701318, "mass": 16, "pGen": 18.7, "eff": "C" },
"5A":{ "grp": "pp", "class": 5, "rating": "A", "cost": 5103953, "mass": 10, "pGen": 20.4, "eff": "B" },
"4E":{ "grp": "pp", "class": 4, "rating": "E", "cost": 19878, "mass": 10, "pGen": 10.4, "eff": "F" },
"4D":{ "grp": "pp", "class": 4, "rating": "D", "cost": 59633, "mass": 4, "pGen": 11.7, "eff": "D" },
"4C":{ "grp": "pp", "class": 4, "rating": "C", "cost": 178898, "mass": 5, "pGen": 13, "eff": "C" },
"4B":{ "grp": "pp", "class": 4, "rating": "B", "cost": 536693, "mass": 8, "pGen": 14.3, "eff": "C" },
"7B":{ "grp": "pp", "class": 7, "rating": "B", "cost": 17096370, "mass": 64, "pGen": 27.5, "eff": "C" },
"7A":{ "grp": "pp", "class": 7, "rating": "A", "cost": 51289110, "mass": 40, "pGen": 30, "eff": "B" },
"6E":{ "grp": "pp", "class": 6, "rating": "E", "cost": 199750, "mass": 40, "pGen": 16.8, "eff": "F" },
"6D":{ "grp": "pp", "class": 6, "rating": "D", "cost": 599240, "mass": 16, "pGen": 18.9, "eff": "D" },
"6C":{ "grp": "pp", "class": 6, "rating": "C", "cost": 1797730, "mass": 20, "pGen": 21, "eff": "C" },
"6B":{ "grp": "pp", "class": 6, "rating": "B", "cost": 5393180, "mass": 32, "pGen": 23.1, "eff": "C" },
"6A":{ "grp": "pp", "class": 6, "rating": "A", "cost": 16179530, "mass": 20, "pGen": 25.2, "eff": "B" },
"5E":{ "grp": "pp", "class": 5, "rating": "E", "cost": 63010, "mass": 20, "pGen": 13.6, "eff": "F" },
"5D":{ "grp": "pp", "class": 5, "rating": "D", "cost": 189040, "mass": 8, "pGen": 15.3, "eff": "D" },
"5C":{ "grp": "pp", "class": 5, "rating": "C", "cost": 567110, "mass": 10, "pGen": 17, "eff": "C" },
"5B":{ "grp": "pp", "class": 5, "rating": "B", "cost": 1701320, "mass": 16, "pGen": 18.7, "eff": "C" },
"5A":{ "grp": "pp", "class": 5, "rating": "A", "cost": 5103950, "mass": 10, "pGen": 20.4, "eff": "B" },
"4E":{ "grp": "pp", "class": 4, "rating": "E", "cost": 19880, "mass": 10, "pGen": 10.4, "eff": "F" },
"4D":{ "grp": "pp", "class": 4, "rating": "D", "cost": 59630, "mass": 4, "pGen": 11.7, "eff": "D" },
"4C":{ "grp": "pp", "class": 4, "rating": "C", "cost": 178900, "mass": 5, "pGen": 13, "eff": "C" },
"4B":{ "grp": "pp", "class": 4, "rating": "B", "cost": 536690, "mass": 8, "pGen": 14.3, "eff": "C" },
"4A":{ "grp": "pp", "class": 4, "rating": "A", "cost": 1610080, "mass": 5, "pGen": 15.6, "eff": "B" },
"3E":{ "grp": "pp", "class": 3, "rating": "E", "cost": 6271, "mass": 5, "pGen": 8, "eff": "F" },
"3D":{ "grp": "pp", "class": 3, "rating": "D", "cost": 18812, "mass": 2, "pGen": 9, "eff": "D" },
"3C":{ "grp": "pp", "class": 3, "rating": "C", "cost": 56435, "mass": 2.5, "pGen": 10, "eff": "C" },
"3B":{ "grp": "pp", "class": 3, "rating": "B", "cost": 169304, "mass": 4, "pGen": 11, "eff": "C" },
"3A":{ "grp": "pp", "class": 3, "rating": "A", "cost": 507912, "mass": 2.5, "pGen": 12, "eff": "B" },
"2E":{ "grp": "pp", "class": 2, "rating": "E", "cost": 1978, "mass": 2.5, "pGen": 6.4, "eff": "F" },
"2D":{ "grp": "pp", "class": 2, "rating": "D", "cost": 5934, "mass": 1, "pGen": 7.2, "eff": "D" },
"2C":{ "grp": "pp", "class": 2, "rating": "C", "cost": 17803, "mass": 1.3, "pGen": 8, "eff": "C" },
"2B":{ "grp": "pp", "class": 2, "rating": "B", "cost": 53408, "mass": 2, "pGen": 8.8, "eff": "C" },
"2A":{ "grp": "pp", "class": 2, "rating": "A", "cost": 160224, "mass": 1.3, "pGen": 9.6, "eff": "B" }
"3E":{ "grp": "pp", "class": 3, "rating": "E", "cost": 6270, "mass": 5, "pGen": 8, "eff": "F" },
"3D":{ "grp": "pp", "class": 3, "rating": "D", "cost": 18810, "mass": 2, "pGen": 9, "eff": "D" },
"3C":{ "grp": "pp", "class": 3, "rating": "C", "cost": 56440, "mass": 2.5, "pGen": 10, "eff": "C" },
"3B":{ "grp": "pp", "class": 3, "rating": "B", "cost": 169300, "mass": 4, "pGen": 11, "eff": "C" },
"3A":{ "grp": "pp", "class": 3, "rating": "A", "cost": 507910, "mass": 2.5, "pGen": 12, "eff": "B" },
"2E":{ "grp": "pp", "class": 2, "rating": "E", "cost": 1980, "mass": 2.5, "pGen": 6.4, "eff": "F" },
"2D":{ "grp": "pp", "class": 2, "rating": "D", "cost": 5930, "mass": 1, "pGen": 7.2, "eff": "D" },
"2C":{ "grp": "pp", "class": 2, "rating": "C", "cost": 17800, "mass": 1.3, "pGen": 8, "eff": "C" },
"2B":{ "grp": "pp", "class": 2, "rating": "B", "cost": 53410, "mass": 2, "pGen": 8.8, "eff": "C" },
"2A":{ "grp": "pp", "class": 2, "rating": "A", "cost": 160220, "mass": 1.3, "pGen": 9.6, "eff": "B" }
}

View File

@@ -1,43 +1,43 @@
{
"8E": { "grp": "s", "class": 8, "rating": "E", "cost": 697584, "mass": 160, "power": 0.55, "range": 5.12 },
"8D": { "grp": "s", "class": 8, "rating": "D", "cost": 1743961, "mass": 64, "power": 0.62, "range": 5.76 },
"8C": { "grp": "s", "class": 8, "rating": "C", "cost": 4359903, "mass": 160, "power": 0.69, "range": 6.4 },
"8B": { "grp": "s", "class": 8, "rating": "B", "cost": 10899756, "mass": 256, "power": 1.14, "range": 7.04 },
"8A": { "grp": "s", "class": 8, "rating": "A", "cost": 27249391, "mass": 160, "power": 2.07, "range": 7.68 },
"8E": { "grp": "s", "class": 8, "rating": "E", "cost": 697580, "mass": 160, "power": 0.55, "range": 5.12 },
"8D": { "grp": "s", "class": 8, "rating": "D", "cost": 1743960, "mass": 64, "power": 0.62, "range": 5.76 },
"8C": { "grp": "s", "class": 8, "rating": "C", "cost": 4359900, "mass": 160, "power": 0.69, "range": 6.4 },
"8B": { "grp": "s", "class": 8, "rating": "B", "cost": 10899760, "mass": 256, "power": 1.14, "range": 7.04 },
"8A": { "grp": "s", "class": 8, "rating": "A", "cost": 27249390, "mass": 160, "power": 2.07, "range": 7.68 },
"6E": { "grp": "s", "class": 6, "rating": "E", "cost": 88978, "mass": 40, "power": 0.4, "range": 4.8 },
"6D": { "grp": "s", "class": 6, "rating": "D", "cost": 222444, "mass": 16, "power": 0.45, "range": 5.4 },
"6E": { "grp": "s", "class": 6, "rating": "E", "cost": 88980, "mass": 40, "power": 0.4, "range": 4.8 },
"6D": { "grp": "s", "class": 6, "rating": "D", "cost": 222440, "mass": 16, "power": 0.45, "range": 5.4 },
"6C": { "grp": "s", "class": 6, "rating": "C", "cost": 556110, "mass": 40, "power": 0.5, "range": 6 },
"6B": { "grp": "s", "class": 6, "rating": "B", "cost": 1390275, "mass": 64, "power": 0.83, "range": 6.6 },
"6A": { "grp": "s", "class": 6, "rating": "A", "cost": 3475688, "mass": 40, "power": 1.5, "range": 7.2 },
"6B": { "grp": "s", "class": 6, "rating": "B", "cost": 1390280, "mass": 64, "power": 0.83, "range": 6.6 },
"6A": { "grp": "s", "class": 6, "rating": "A", "cost": 3475690, "mass": 40, "power": 1.5, "range": 7.2 },
"5E": { "grp": "s", "class": 5, "rating": "E", "cost": 31778, "mass": 20, "power": 0.33, "range": 4.64 },
"5D": { "grp": "s", "class": 5, "rating": "D", "cost": 79444, "mass": 8, "power": 0.37, "range": 5.22 },
"5C": { "grp": "s", "class": 5, "rating": "C", "cost": 198611, "mass": 20, "power": 0.41, "range": 5.8 },
"5B": { "grp": "s", "class": 5, "rating": "B", "cost": 496527, "mass": 32, "power": 0.68, "range": 6.38 },
"5A": { "grp": "s", "class": 5, "rating": "A", "cost": 1241317, "mass": 20, "power": 1.23, "range": 6.96 },
"5E": { "grp": "s", "class": 5, "rating": "E", "cost": 31780, "mass": 20, "power": 0.33, "range": 4.64 },
"5D": { "grp": "s", "class": 5, "rating": "D", "cost": 79440, "mass": 8, "power": 0.37, "range": 5.22 },
"5C": { "grp": "s", "class": 5, "rating": "C", "cost": 198610, "mass": 20, "power": 0.41, "range": 5.8 },
"5B": { "grp": "s", "class": 5, "rating": "B", "cost": 496530, "mass": 32, "power": 0.68, "range": 6.38 },
"5A": { "grp": "s", "class": 5, "rating": "A", "cost": 1241320, "mass": 20, "power": 1.23, "range": 6.96 },
"4E": { "grp": "s", "class": 4, "rating": "E", "cost": 11349, "mass": 10, "power": 0.27, "range": 4.48 },
"4D": { "grp": "s", "class": 4, "rating": "D", "cost": 28373, "mass": 4, "power": 0.31, "range": 5.04 },
"4C": { "grp": "s", "class": 4, "rating": "C", "cost": 70932, "mass": 10, "power": 0.34, "range": 5.6 },
"4B": { "grp": "s", "class": 4, "rating": "B", "cost": 177331, "mass": 16, "power": 0.56, "range": 6.16 },
"4A": { "grp": "s", "class": 4, "rating": "A", "cost": 443328, "mass": 10, "power": 1.02, "range": 6.72 },
"4E": { "grp": "s", "class": 4, "rating": "E", "cost": 11350, "mass": 10, "power": 0.27, "range": 4.48 },
"4D": { "grp": "s", "class": 4, "rating": "D", "cost": 28370, "mass": 4, "power": 0.31, "range": 5.04 },
"4C": { "grp": "s", "class": 4, "rating": "C", "cost": 70930, "mass": 10, "power": 0.34, "range": 5.6 },
"4B": { "grp": "s", "class": 4, "rating": "B", "cost": 177330, "mass": 16, "power": 0.56, "range": 6.16 },
"4A": { "grp": "s", "class": 4, "rating": "A", "cost": 443330, "mass": 10, "power": 1.02, "range": 6.72 },
"3E": { "grp": "s", "class": 3, "rating": "E", "cost": 4053, "mass": 5, "power": 0.22, "range": 4.32 },
"3D": { "grp": "s", "class": 3, "rating": "D", "cost": 10133, "mass": 2, "power": 0.25, "range": 4.86 },
"3C": { "grp": "s", "class": 3, "rating": "C", "cost": 25333, "mass": 5, "power": 0.28, "range": 5.4 },
"3B": { "grp": "s", "class": 3, "rating": "B", "cost": 63333, "mass": 8, "power": 0.46, "range": 5.94 },
"3A": { "grp": "s", "class": 3, "rating": "A", "cost": 158331, "mass": 5, "power": 0.84, "range": 6.48 },
"3E": { "grp": "s", "class": 3, "rating": "E", "cost": 4050, "mass": 5, "power": 0.22, "range": 4.32 },
"3D": { "grp": "s", "class": 3, "rating": "D", "cost": 10130, "mass": 2, "power": 0.25, "range": 4.86 },
"3C": { "grp": "s", "class": 3, "rating": "C", "cost": 25330, "mass": 5, "power": 0.28, "range": 5.4 },
"3B": { "grp": "s", "class": 3, "rating": "B", "cost": 63330, "mass": 8, "power": 0.46, "range": 5.94 },
"3A": { "grp": "s", "class": 3, "rating": "A", "cost": 158330, "mass": 5, "power": 0.84, "range": 6.48 },
"2E": { "grp": "s", "class": 2, "rating": "E", "cost": 1448, "mass": 2.5, "power": 0.18, "range": 4.16 },
"2D": { "grp": "s", "class": 2, "rating": "D", "cost": 3619, "mass": 1, "power": 0.21, "range": 4.68 },
"2C": { "grp": "s", "class": 2, "rating": "C", "cost": 9048, "mass": 2.5, "power": 0.23, "range": 5.2 },
"2B": { "grp": "s", "class": 2, "rating": "B", "cost": 22619, "mass": 4, "power": 0.38, "range": 5.72 },
"2A": { "grp": "s", "class": 2, "rating": "A", "cost": 56547, "mass": 2.5, "power": 0.69, "range": 6.24 },
"2E": { "grp": "s", "class": 2, "rating": "E", "cost": 1450, "mass": 2.5, "power": 0.18, "range": 4.16 },
"2D": { "grp": "s", "class": 2, "rating": "D", "cost": 3620, "mass": 1, "power": 0.21, "range": 4.68 },
"2C": { "grp": "s", "class": 2, "rating": "C", "cost": 9050, "mass": 2.5, "power": 0.23, "range": 5.2 },
"2B": { "grp": "s", "class": 2, "rating": "B", "cost": 22620, "mass": 4, "power": 0.38, "range": 5.72 },
"2A": { "grp": "s", "class": 2, "rating": "A", "cost": 56550, "mass": 2.5, "power": 0.69, "range": 6.24 },
"1E": { "grp": "s", "class": 1, "rating": "E", "cost": 517, "mass": 1.3, "power": 0.16, "range": 4 },
"1D": { "grp": "s", "class": 1, "rating": "D", "cost": 1293, "mass": 0.5, "power": 0.18, "range": 4.5 },
"1C": { "grp": "s", "class": 1, "rating": "C", "cost": 3231, "mass": 1.3, "power": 0.2, "range": 5 },
"1B": { "grp": "s", "class": 1, "rating": "B", "cost": 8078, "mass": 2, "power": 0.33, "range": 5.5 },
"1A": { "grp": "s", "class": 1, "rating": "A", "cost": 20195, "mass": 1.3, "power": 0.6, "range": 6 }
"1E": { "grp": "s", "class": 1, "rating": "E", "cost": 520, "mass": 1.3, "power": 0.16, "range": 4 },
"1D": { "grp": "s", "class": 1, "rating": "D", "cost": 1290, "mass": 0.5, "power": 0.18, "range": 4.5 },
"1C": { "grp": "s", "class": 1, "rating": "C", "cost": 3230, "mass": 1.3, "power": 0.2, "range": 5 },
"1B": { "grp": "s", "class": 1, "rating": "B", "cost": 8080, "mass": 2, "power": 0.33, "range": 5.5 },
"1A": { "grp": "s", "class": 1, "rating": "A", "cost": 20200, "mass": 1.3, "power": 0.6, "range": 6 }
}

View File

@@ -1,37 +1,37 @@
{
"7E": { "grp": "t", "class": 7, "rating": "E", "M": 0.17, "P": 0.235, "cost": 633199, "mass": 80, "power": 6.08, "optmass": 1440, "maxmass": 2160 },
"7D": { "grp": "t", "class": 7, "rating": "D", "M": 0.14, "P": 0.5145, "cost": 1899597, "mass": 32, "power": 6.84, "optmass": 1620, "maxmass": 2430 },
"7E": { "grp": "t", "class": 7, "rating": "E", "M": 0.17, "P": 0.235, "cost": 633200, "mass": 80, "power": 6.08, "optmass": 1440, "maxmass": 2160 },
"7D": { "grp": "t", "class": 7, "rating": "D", "M": 0.14, "P": 0.5145, "cost": 1899600, "mass": 32, "power": 6.84, "optmass": 1620, "maxmass": 2430 },
"7C": { "grp": "t", "class": 7, "rating": "C", "M": 0.10, "P": 1, "cost": 5698790, "mass": 80, "power": 7.6, "optmass": 1800, "maxmass": 2700 },
"7B": { "grp": "t", "class": 7, "rating": "B", "M": 0.07, "P": 1.51, "cost": 17096371, "mass": 128, "power": 8.36, "optmass": 1980, "maxmass": 2970 },
"7A": { "grp": "t", "class": 7, "rating": "A", "M": 0.04, "P": 2.33, "cost": 51289112, "mass": 80, "power": 9.12, "optmass": 2160, "maxmass": 3240 },
"7B": { "grp": "t", "class": 7, "rating": "B", "M": 0.07, "P": 1.51, "cost": 17096370, "mass": 128, "power": 8.36, "optmass": 1980, "maxmass": 2970 },
"7A": { "grp": "t", "class": 7, "rating": "A", "M": 0.04, "P": 2.33, "cost": 51289110, "mass": 80, "power": 9.12, "optmass": 2160, "maxmass": 3240 },
"6E": { "grp": "t", "class": 6, "rating": "E", "M": 0.17, "P": 0.235, "cost": 199747, "mass": 40, "power": 5.04, "optmass": 960, "maxmass": 1440 },
"6D": { "grp": "t", "class": 6, "rating": "D", "M": 0.14, "P": 0.5145, "cost": 599242, "mass": 16, "power": 5.67, "optmass": 1080, "maxmass": 1620 },
"6C": { "grp": "t", "class": 6, "rating": "C", "M": 0.10, "P": 1, "cost": 1797726, "mass": 40, "power": 6.3, "optmass": 1200, "maxmass": 1800 },
"6B": { "grp": "t", "class": 6, "rating": "B", "M": 0.07, "P": 1.51, "cost": 5393177, "mass": 64, "power": 6.93, "optmass": 1320, "maxmass": 1980 },
"6A": { "grp": "t", "class": 6, "rating": "A", "M": 0.04, "P": 2.33, "cost": 16179531, "mass": 40, "power": 7.56, "optmass": 1440, "maxmass": 2160 },
"6E": { "grp": "t", "class": 6, "rating": "E", "M": 0.17, "P": 0.235, "cost": 199750, "mass": 40, "power": 5.04, "optmass": 960, "maxmass": 1440 },
"6D": { "grp": "t", "class": 6, "rating": "D", "M": 0.14, "P": 0.5145, "cost": 599240, "mass": 16, "power": 5.67, "optmass": 1080, "maxmass": 1620 },
"6C": { "grp": "t", "class": 6, "rating": "C", "M": 0.10, "P": 1, "cost": 1797730, "mass": 40, "power": 6.3, "optmass": 1200, "maxmass": 1800 },
"6B": { "grp": "t", "class": 6, "rating": "B", "M": 0.07, "P": 1.51, "cost": 5393180, "mass": 64, "power": 6.93, "optmass": 1320, "maxmass": 1980 },
"6A": { "grp": "t", "class": 6, "rating": "A", "M": 0.04, "P": 2.33, "cost": 16179530, "mass": 40, "power": 7.56, "optmass": 1440, "maxmass": 2160 },
"5E": { "grp": "t", "class": 5, "rating": "E", "M": 0.17, "P": 0.235, "cost": 63012, "mass": 20, "power": 4.08, "optmass": 560, "maxmass": 840 },
"5D": { "grp": "t", "class": 5, "rating": "D", "M": 0.14, "P": 0.5145, "cost": 189035, "mass": 8, "power": 4.59, "optmass": 630, "maxmass": 945 },
"5C": { "grp": "t", "class": 5, "rating": "C", "M": 0.10, "P": 1, "cost": 567106, "mass": 20, "power": 5.1, "optmass": 700, "maxmass": 1050 },
"5B": { "grp": "t", "class": 5, "rating": "B", "M": 0.07, "P": 1.51, "cost": 1701318, "mass": 32, "power": 5.61, "optmass": 770, "maxmass": 1155 },
"5A": { "grp": "t", "class": 5, "rating": "A", "M": 0.04, "P": 2.33, "cost": 5103953, "mass": 20, "power": 6.12, "optmass": 840, "maxmass": 1260 },
"5E": { "grp": "t", "class": 5, "rating": "E", "M": 0.17, "P": 0.235, "cost": 63010, "mass": 20, "power": 4.08, "optmass": 560, "maxmass": 840 },
"5D": { "grp": "t", "class": 5, "rating": "D", "M": 0.14, "P": 0.5145, "cost": 189040, "mass": 8, "power": 4.59, "optmass": 630, "maxmass": 945 },
"5C": { "grp": "t", "class": 5, "rating": "C", "M": 0.10, "P": 1, "cost": 567110, "mass": 20, "power": 5.1, "optmass": 700, "maxmass": 1050 },
"5B": { "grp": "t", "class": 5, "rating": "B", "M": 0.07, "P": 1.51, "cost": 1701320, "mass": 32, "power": 5.61, "optmass": 770, "maxmass": 1155 },
"5A": { "grp": "t", "class": 5, "rating": "A", "M": 0.04, "P": 2.33, "cost": 5103950, "mass": 20, "power": 6.12, "optmass": 840, "maxmass": 1260 },
"4E": { "grp": "t", "class": 4, "rating": "E", "M": 0.17, "P": 0.235, "cost": 19878, "mass": 10, "power": 3.82, "optmass": 280, "maxmass": 420 },
"4D": { "grp": "t", "class": 4, "rating": "D", "M": 0.14, "P": 0.5145, "cost": 59633, "mass": 4, "power": 3.69, "optmass": 315, "maxmass": 473 },
"4C": { "grp": "t", "class": 4, "rating": "C", "M": 0.10, "P": 1, "cost": 178898, "mass": 10, "power": 4.1, "optmass": 350, "maxmass": 525 },
"4B": { "grp": "t", "class": 4, "rating": "B", "M": 0.07, "P": 1.51, "cost": 536693, "mass": 16, "power": 4.51, "optmass": 385, "maxmass": 578 },
"4E": { "grp": "t", "class": 4, "rating": "E", "M": 0.17, "P": 0.235, "cost": 19880, "mass": 10, "power": 3.82, "optmass": 280, "maxmass": 420 },
"4D": { "grp": "t", "class": 4, "rating": "D", "M": 0.14, "P": 0.5145, "cost": 59630, "mass": 4, "power": 3.69, "optmass": 315, "maxmass": 473 },
"4C": { "grp": "t", "class": 4, "rating": "C", "M": 0.10, "P": 1, "cost": 178900, "mass": 10, "power": 4.1, "optmass": 350, "maxmass": 525 },
"4B": { "grp": "t", "class": 4, "rating": "B", "M": 0.07, "P": 1.51, "cost": 536690, "mass": 16, "power": 4.51, "optmass": 385, "maxmass": 578 },
"4A": { "grp": "t", "class": 4, "rating": "A", "M": 0.04, "P": 2.33, "cost": 1610080, "mass": 10, "power": 4.92, "optmass": 420, "maxmass": 630 },
"3E": { "grp": "t", "class": 3, "rating": "E", "M": 0.17, "P": 0.235, "cost": 6271, "mass": 5, "power": 2.48, "optmass": 80, "maxmass": 120 },
"3D": { "grp": "t", "class": 3, "rating": "D", "M": 0.14, "P": 0.5145, "cost": 18812, "mass": 2, "power": 2.79, "optmass": 90, "maxmass": 135 },
"3C": { "grp": "t", "class": 3, "rating": "C", "M": 0.10, "P": 1, "cost": 56435, "mass": 5, "power": 3.1, "optmass": 100, "maxmass": 150 },
"3B": { "grp": "t", "class": 3, "rating": "B", "M": 0.07, "P": 1.51, "cost": 169304, "mass": 8, "power": 3.41, "optmass": 110, "maxmass": 165 },
"3A": { "grp": "t", "class": 3, "rating": "A", "M": 0.04, "P": 2.33, "cost": 507912, "mass": 5, "power": 3.72, "optmass": 120, "maxmass": 180 },
"3E": { "grp": "t", "class": 3, "rating": "E", "M": 0.17, "P": 0.235, "cost": 6270, "mass": 5, "power": 2.48, "optmass": 80, "maxmass": 120 },
"3D": { "grp": "t", "class": 3, "rating": "D", "M": 0.14, "P": 0.5145, "cost": 18810, "mass": 2, "power": 2.79, "optmass": 90, "maxmass": 135 },
"3C": { "grp": "t", "class": 3, "rating": "C", "M": 0.10, "P": 1, "cost": 56440, "mass": 5, "power": 3.1, "optmass": 100, "maxmass": 150 },
"3B": { "grp": "t", "class": 3, "rating": "B", "M": 0.07, "P": 1.51, "cost": 169300, "mass": 8, "power": 3.41, "optmass": 110, "maxmass": 165 },
"3A": { "grp": "t", "class": 3, "rating": "A", "M": 0.04, "P": 2.33, "cost": 507910, "mass": 5, "power": 3.72, "optmass": 120, "maxmass": 180 },
"2E": { "grp": "t", "class": 2, "rating": "E", "M": 0.17, "P": 0.235, "cost": 1978, "mass": 2.5, "power": 2, "optmass": 48, "maxmass": 72 },
"2D": { "grp": "t", "class": 2, "rating": "D", "M": 0.14, "P": 0.5145, "cost": 5934, "mass": 1, "power": 2.25, "optmass": 54, "maxmass": 81 },
"2C": { "grp": "t", "class": 2, "rating": "C", "M": 0.10, "P": 1, "cost": 17803, "mass": 2.5, "power": 2.5, "optmass": 60, "maxmass": 90 },
"2B": { "grp": "t", "class": 2, "rating": "B", "M": 0.07, "P": 1.51, "cost": 53408, "mass": 4, "power": 2.75, "optmass": 66, "maxmass": 99 },
"2A": { "grp": "t", "class": 2, "rating": "A", "M": 0.04, "P": 2.33, "cost": 160224, "mass": 2.5, "power": 3, "optmass": 72, "maxmass": 108 }
"2E": { "grp": "t", "class": 2, "rating": "E", "M": 0.17, "P": 0.235, "cost": 1980, "mass": 2.5, "power": 2, "optmass": 48, "maxmass": 72 },
"2D": { "grp": "t", "class": 2, "rating": "D", "M": 0.14, "P": 0.5145, "cost": 5930, "mass": 1, "power": 2.25, "optmass": 54, "maxmass": 81 },
"2C": { "grp": "t", "class": 2, "rating": "C", "M": 0.10, "P": 1, "cost": 17800, "mass": 2.5, "power": 2.5, "optmass": 60, "maxmass": 90 },
"2B": { "grp": "t", "class": 2, "rating": "B", "M": 0.07, "P": 1.51, "cost": 53410, "mass": 4, "power": 2.75, "optmass": 66, "maxmass": 99 },
"2A": { "grp": "t", "class": 2, "rating": "A", "M": 0.04, "P": 2.33, "cost": 160220, "mass": 2.5, "power": 3, "optmass": 72, "maxmass": 108 }
}

View File

@@ -168,7 +168,7 @@
"name": "Retributor",
"class": 1,
"rating": "E",
"cost": 56145,
"cost": 56150,
"mass": 2,
"power": 0.69,
"mode": "F",

View File

@@ -18,7 +18,8 @@
"clip": 5,
"mjdps": 8.13,
"ssdam" : 37.13,
"ammo": 100
"ammo": 100,
"ammocost": 20
},
{
"id": "1r",
@@ -38,7 +39,8 @@
"clip": 5,
"mjdps": 10.97,
"ssdam" : 30.94,
"ammo": 100
"ammo": 100,
"ammocost": 20
},
{
"id": "1n",
@@ -58,7 +60,8 @@
"clip": 5,
"mjdps": 8.13,
"ssdam" : 22.28,
"ammo": 100
"ammo": 100,
"ammocost": 20
},
{
"id": "1o",
@@ -78,7 +81,8 @@
"clip": 5,
"mjdps" : 7.95,
"ssdam" : 21.04,
"ammo": 100
"ammo": 100,
"ammocost": 20
},
{
"id": "1p",
@@ -98,7 +102,8 @@
"clip": 5,
"mjdps" : 3.58,
"ssdam" : 12.38,
"ammo": 100
"ammo": 100,
"ammocost": 20
},
{
"id": "1k",
@@ -118,7 +123,8 @@
"clip": 5,
"mjdps" : 6.00,
"ssdam" : 15.47,
"ammo": 100
"ammo": 100,
"ammocost": 20
},
{
"id": "1l",
@@ -138,7 +144,8 @@
"clip": 5,
"mjdps" : 6.24,
"ssdam" : 15.47,
"ammo": 100
"ammo": 100,
"ammocost": 20
},
{
"id": "1m",
@@ -158,7 +165,8 @@
"clip": 5,
"mjdps" : 2.41,
"ssdam" : 7.74,
"ammo": 100
"ammo": 100,
"ammocost": 20
},
{
"id": "1h",
@@ -178,7 +186,8 @@
"clip": 5,
"mjdps" : 4.00,
"ssdam" : 9.59,
"ammo": 100
"ammo": 100,
"ammocost": 20
},
{
"id": "1i",
@@ -198,7 +207,8 @@
"clip": 5,
"mjdps" : 3.80,
"ssdam" : 8.97,
"ammo": 100
"ammo": 100,
"ammocost": 20
},
{
"id": "1j",
@@ -218,7 +228,8 @@
"clip": 5,
"mjdps" : 1.35,
"ssdam" : 4.13,
"ammo": 100
"ammo": 100,
"ammocost": 20
}
]
}
}

View File

@@ -5,7 +5,7 @@
"grp": "cs",
"class": 0,
"rating": "E",
"cost": 13544,
"cost": 13540,
"mass": 1.3,
"power": 0.2,
"range": 2,
@@ -16,7 +16,7 @@
"grp": "cs",
"class": 0,
"rating": "D",
"cost": 40633,
"cost": 40630,
"mass": 1.3,
"power": 0.4,
"range": 2.5,
@@ -27,7 +27,7 @@
"grp": "cs",
"class": 0,
"rating": "C",
"cost": 121899,
"cost": 121900,
"mass": 1.3,
"power": 0.8,
"range": 3,
@@ -38,7 +38,7 @@
"grp": "cs",
"class": 0,
"rating": "B",
"cost": 365698,
"cost": 365700,
"mass": 1.3,
"power": 1.6,
"range": 3.5,
@@ -49,7 +49,7 @@
"grp": "cs",
"class": 0,
"rating": "A",
"cost": 1097095,
"cost": 1097100,
"mass": 1.3,
"power": 3.2,
"range": 4,

View File

@@ -13,7 +13,8 @@
"armourpen": "F",
"thermload": 2,
"clip": 1,
"ammo": 10
"ammo": 10,
"ammocost": 30
},
{
"id": "01",
@@ -42,7 +43,8 @@
"armourpen": "F",
"thermload": 0,
"clip": 1,
"ammo": 3
"ammo": 3,
"ammocost": 25
},
{
"id": "03",
@@ -50,14 +52,15 @@
"name": "Point Defence",
"class": 0,
"rating": "I",
"cost": 18546,
"cost": 18550,
"mass": 0.5,
"power": 0.2,
"passive": 1,
"armourpen": "F",
"thermload": 1,
"clip": 50,
"ammo": 10000
"ammo": 10000,
"ammocost": 1
}
]
}
}

View File

@@ -18,7 +18,8 @@
"clip": 3,
"mjdps": 15.19,
"ssdam" : 28.36,
"ammo": 30
"ammo": 30,
"ammocost": 50
},
{
"id": "1u",
@@ -38,7 +39,8 @@
"clip": 3,
"mjdps" : 12.77,
"ssdam" : 23.21,
"ammo": 30
"ammo": 30,
"ammocost": 50
},
{
"id": "1v",
@@ -58,7 +60,8 @@
"clip": 3,
"mjdps" : 6.85,
"ssdam" : 12.89,
"ammo": 30
"ammo": 30,
"ammocost": 50
},
{
"id": "1s",
@@ -78,7 +81,8 @@
"clip": 3,
"mjdps" : 9.50,
"ssdam" : 18.05,
"ammo": 30
"ammo": 30,
"ammocost": 50
},
{
@@ -97,7 +101,8 @@
"dps": 9,
"thermload": 1,
"clip": 3,
"ammo": 30
"ammo": 30,
"ammocost": 50
},
{
"id": "7f",
@@ -115,7 +120,8 @@
"dps": 9,
"thermload": 1,
"clip": 3,
"ammo": 30
"ammo": 30,
"ammocost": 50
},
{
"id": "20",
@@ -135,7 +141,8 @@
"clip": 3,
"mjdps" : 5.53,
"ssdam" : 10.31,
"ammo": 30
"ammo": 30,
"ammocost": 50
},
{
"id": "21",
@@ -155,7 +162,8 @@
"clip": 3,
"mjdps" : 3.58,
"ssdam" : 6.45,
"ammo": 30
"ammo": 30,
"ammocost": 50
},
{
"id": "22",
@@ -175,7 +183,8 @@
"clip": 3,
"mjdps" : 2.11,
"ssdam" : 3.87,
"ammo": 30
"ammo": 30,
"ammocost": 50
},
{
"id": "pa",
@@ -183,7 +192,7 @@
"name": "Pacifier",
"class": 3,
"rating": "C",
"cost": 1400832,
"cost": 1400830,
"mass": 8,
"power": 1.02,
"mode": "F",
@@ -197,4 +206,4 @@
"ammo": 30
}
]
}
}

View File

@@ -5,7 +5,7 @@
"grp": "ws",
"class": 0,
"rating": "E",
"cost": 13544,
"cost": 13540,
"mass": 1.3,
"power": 0.2,
"range": 2,
@@ -16,7 +16,7 @@
"grp": "ws",
"class": 0,
"rating": "D",
"cost": 40633,
"cost": 40630,
"mass": 1.3,
"power": 0.4,
"range": 2.5,
@@ -27,7 +27,7 @@
"grp": "ws",
"class": 0,
"rating": "C",
"cost": 121899,
"cost": 121900,
"mass": 1.3,
"power": 0.8,
"range": 3,
@@ -38,7 +38,7 @@
"grp": "ws",
"class": 0,
"rating": "B",
"cost": 365698,
"cost": 365700,
"mass": 1.3,
"power": 1.6,
"range": 3.5,
@@ -49,7 +49,7 @@
"grp": "ws",
"class": 0,
"rating": "A",
"cost": 1097095,
"cost": 1097100,
"mass": 1.3,
"power": 3.2,
"range": 4,

View File

@@ -5,7 +5,7 @@
"grp": "kw",
"class": 0,
"rating": "E",
"cost": 13544,
"cost": 13540,
"mass": 1.3,
"power": 0.2,
"range": 2,
@@ -16,7 +16,7 @@
"grp": "kw",
"class": 0,
"rating": "D",
"cost": 40633,
"cost": 40630,
"mass": 1.3,
"power": 0.4,
"range": 2.5,
@@ -27,7 +27,7 @@
"grp": "kw",
"class": 0,
"rating": "C",
"cost": 121899,
"cost": 121900,
"mass": 1.3,
"power": 0.8,
"range": 3,
@@ -38,7 +38,7 @@
"grp": "kw",
"class": 0,
"rating": "B",
"cost": 365698,
"cost": 365700,
"mass": 1.3,
"power": 1.6,
"range": 3.5,
@@ -49,7 +49,7 @@
"grp": "kw",
"class": 0,
"rating": "A",
"cost": 1097095,
"cost": 1097100,
"mass": 1.3,
"power": 3.2,
"range": 4,

View File

@@ -13,7 +13,8 @@
"armourpen": "C",
"thermload": 2,
"clip": 1,
"ammo": 24
"ammo": 24,
"ammocost": 209
},
{
"id": "2k",
@@ -28,7 +29,8 @@
"armourpen": "C",
"thermload": 3,
"clip": 3,
"ammo": 24
"ammo": 24,
"ammocost": 209
}
]
}
}

View File

@@ -17,7 +17,7 @@
"grp": "ml",
"class": 2,
"rating": "D",
"cost": 22576,
"cost": 22580,
"mass": 2,
"power": 0.75,
"mode": "F",

View File

@@ -19,7 +19,8 @@
"ammo": 24,
"mjdps": 1.72,
"ssdam" : 3.87,
"missile": "D"
"missile": "D",
"ammocost": 500
},
{
"id": "2g",
@@ -40,14 +41,15 @@
"ammo": 18,
"mjdps": 0.57,
"ssdam" : 2.58,
"missile": "S"
"missile": "S",
"ammocost": 666.67
},
{
"id": "2d",
"grp": "mr",
"class": 1,
"rating": "B",
"cost": 32175,
"cost": 32180,
"mass": 2,
"power": 0.4,
"mode": "F",
@@ -61,7 +63,8 @@
"ammo": 16,
"mjdps": 1.63,
"ssdam" : 3.87,
"missile": "D"
"missile": "D",
"ammocost": 500
},
{
"id": "2e",
@@ -82,7 +85,8 @@
"ammo": 6,
"mjdps": 0.57,
"ssdam" : 2.58,
"missile": "S"
"missile": "S",
"ammocost": 666.67
},
{
"id": "Ph",
@@ -90,7 +94,7 @@
"name": "Pack-Hound",
"class": 2,
"rating": "B",
"cost": 1000832,
"cost": 768600,
"mass": 4,
"power": 1.2,
"mode": "F",
@@ -106,4 +110,4 @@
"missile": "S"
}
]
}
}

View File

@@ -18,7 +18,8 @@
"clip": 90,
"mjdps" : 6.02,
"ssdam" : 1.20,
"ammo": 2100
"ammo": 2100,
"ammocost": 1
},
{
"id": "27",
@@ -38,7 +39,8 @@
"clip": 90,
"mjdps" : 5.59,
"ssdam" : 1.03,
"ammo": 2100
"ammo": 2100,
"ammocost": 1
},
{
"id": "28",
@@ -58,7 +60,8 @@
"clip": 90,
"mjdps" : 2.15,
"ssdam" : 0.52,
"ammo": 2100
"ammo": 2100,
"ammocost": 1
},
{
"id": "23",
@@ -78,7 +81,8 @@
"clip": 90,
"mjdps" : 3.75,
"ssdam" : 0.69,
"ammo": 2100
"ammo": 2100,
"ammocost": 1
},
{
"id": "24",
@@ -98,7 +102,8 @@
"clip": 90,
"mjdps" : 2.03,
"ssdam" : 0.34,
"ammo": 2100
"ammo": 2100,
"ammocost": 1
},
{
"id": "25",
@@ -118,7 +123,8 @@
"clip": 90,
"mjdps" : 1.54,
"ssdam" : 0.34,
"ammo": 2100
"ammo": 2100,
"ammocost": 1
},
{
"id": "e0",
@@ -126,7 +132,7 @@
"name": "Enforcer",
"class": 1,
"rating": "F",
"cost": 13984,
"cost": 13980,
"mass": 2,
"power": 0.28,
"mode": "F",
@@ -140,4 +146,4 @@
"ammo": 1000
}
]
}
}

View File

@@ -18,7 +18,8 @@
"clip": 5,
"mjdps" : 6.89,
"ssdam" : 27.85,
"ammo": 100
"ammo": 100,
"ammocost": 200
},
{
"id": "2b",
@@ -38,7 +39,8 @@
"clip": 5,
"mjdps" : 20.98,
"ssdam" : 92.82,
"ammo": 100
"ammo": 100,
"ammocost": 200
},
{
"id": "2c",
@@ -58,12 +60,13 @@
"clip": 5,
"mjdps" : 25.55,
"ssdam" : 123.76,
"ammo": 100
"ammo": 100,
"ammocost": 200
},
{
"id": "Ap",
"grp": "pa",
"name": "Advanced",
"name": "Advanced Plasma Accelerator",
"class": 3,
"rating": "B",
"cost": 4119120,
@@ -80,4 +83,4 @@
"ammo": 300
}
]
}
}

View File

@@ -18,7 +18,8 @@
"clip": 1,
"mjdps" : 13.75,
"ssdam" : 24.75,
"ammo": 30
"ammo": 30,
"ammocost": 200
},
{
"id": "2a",
@@ -38,7 +39,8 @@
"clip": 1,
"mjdps" : 21.66,
"ssdam" : 43.32,
"ammo": 30
"ammo": 30,
"ammocost": 200
},
{
"id": "ih",
@@ -60,4 +62,4 @@
"ammo": 90
}
]
}
}

View File

@@ -13,7 +13,8 @@
"thermload": 10,
"grp": "tp",
"clip": 1,
"ammo": 1,
"ammo": 0,
"ammocost": 15000,
"missile": "S"
},
{
@@ -29,8 +30,9 @@
"thermload": 10,
"grp": "tp",
"clip": 2,
"ammo": 1,
"ammo": 0,
"ammocost": 15000,
"missile": "S"
}
]
}
}

View File

@@ -1,404 +1,51 @@
{
"am": [
{
"id": "1f",
"grp": "am",
"class": 8,
"rating": "E",
"cost": 612220,
"power": 1.8,
"ammo": 10000,
"repair": 120
},
{
"id": "1e",
"grp": "am",
"class": 8,
"rating": "D",
"cost": 1836660,
"power": 2.4,
"ammo": 9000,
"repair": 144
},
{
"id": "1d",
"grp": "am",
"class": 8,
"rating": "C",
"cost": 5509980,
"power": 3,
"ammo": 10000,
"repair": 200
},
{
"id": "1c",
"grp": "am",
"class": 8,
"rating": "B",
"cost": 16529941,
"power": 3.45,
"ammo": 12000,
"repair": 276
},
{
"id": "1b",
"grp": "am",
"class": 8,
"rating": "A",
"cost": 49589823,
"power": 4.2,
"ammo": 11000,
"repair": 308
},
{
"id": "1a",
"grp": "am",
"class": 7,
"rating": "E",
"cost": 340122,
"power": 1.58,
"ammo": 8700,
"repair": 104.4
},
{
"id": "19",
"grp": "am",
"class": 7,
"rating": "D",
"cost": 1020367,
"power": 2.1,
"ammo": 7800,
"repair": 124.8
},
{
"id": "18",
"grp": "am",
"class": 7,
"rating": "C",
"cost": 3061100,
"power": 2.63,
"ammo": 8700,
"repair": 174
},
{
"id": "17",
"grp": "am",
"class": 7,
"rating": "B",
"cost": 9183300,
"power": 3.02,
"ammo": 10400,
"repair": 239.2
},
{
"id": "16",
"grp": "am",
"class": 7,
"rating": "A",
"cost": 27549901,
"power": 3.68,
"ammo": 9600,
"repair": 268.8
},
{
"id": "15",
"grp": "am",
"class": 6,
"rating": "E",
"cost": 188957,
"power": 1.4,
"ammo": 7400,
"repair": 88.8
},
{
"id": "14",
"grp": "am",
"class": 6,
"rating": "D",
"cost": 566870,
"power": 1.86,
"ammo": 6700,
"repair": 107.2
},
{
"id": "13",
"grp": "am",
"class": 6,
"rating": "C",
"cost": 1700611,
"power": 2.33,
"ammo": 7400,
"repair": 148
},
{
"id": "12",
"grp": "am",
"class": 6,
"rating": "B",
"cost": 5101834,
"power": 2.67,
"ammo": 8900,
"repair": 204.7
},
{
"id": "11",
"grp": "am",
"class": 6,
"rating": "A",
"cost": 15305501,
"power": 3.26,
"ammo": 8100,
"repair": 226.8
},
{
"id": "10",
"grp": "am",
"class": 5,
"rating": "E",
"cost": 104976,
"power": 1.17,
"ammo": 6100,
"repair": 73.2
},
{
"id": "0v",
"grp": "am",
"class": 5,
"rating": "D",
"cost": 314928,
"power": 1.56,
"ammo": 5500,
"repair": 88
},
{
"id": "0u",
"grp": "am",
"class": 5,
"rating": "C",
"cost": 944784,
"power": 1.95,
"ammo": 6100,
"repair": 122
},
{
"id": "0t",
"grp": "am",
"class": 5,
"rating": "B",
"cost": 2834352,
"power": 2.24,
"ammo": 7300,
"repair": 167.9
},
{
"id": "0s",
"grp": "am",
"class": 5,
"rating": "A",
"cost": 8503056,
"power": 2.73,
"ammo": 6700,
"repair": 187.6
},
{
"id": "0r",
"grp": "am",
"class": 4,
"rating": "E",
"cost": 58320,
"power": 0.99,
"ammo": 4900,
"repair": 58.8
},
{
"id": "0q",
"grp": "am",
"class": 4,
"rating": "D",
"cost": 174960,
"power": 1.32,
"ammo": 4400,
"repair": 70.4
},
{
"id": "0p",
"grp": "am",
"class": 4,
"rating": "C",
"cost": 524880,
"power": 1.65,
"ammo": 4900,
"repair": 98
},
{
"id": "0o",
"grp": "am",
"class": 4,
"rating": "B",
"cost": 1574640,
"power": 1.9,
"ammo": 5900,
"repair": 135.7
},
{
"id": "0n",
"grp": "am",
"class": 4,
"rating": "A",
"cost": 4723920,
"power": 2.31,
"ammo": 5400,
"repair": 151.2
},
{
"id": "0m",
"grp": "am",
"class": 3,
"rating": "E",
"cost": 32400,
"power": 0.81,
"ammo": 3600,
"repair": 43.2
},
{
"id": "0l",
"grp": "am",
"class": 3,
"rating": "D",
"cost": 97200,
"power": 1.08,
"ammo": 3200,
"repair": 51.2
},
{
"id": "0k",
"grp": "am",
"class": 3,
"rating": "C",
"cost": 291600,
"power": 1.35,
"ammo": 3600,
"repair": 72
},
{
"id": "0j",
"grp": "am",
"class": 3,
"rating": "B",
"cost": 874800,
"power": 1.55,
"ammo": 4300,
"repair": 98.9
},
{
"id": "0i",
"grp": "am",
"class": 3,
"rating": "A",
"cost": 2624400,
"power": 1.89,
"ammo": 4000,
"repair": 112
},
{
"id": "0h",
"grp": "am",
"class": 2,
"rating": "E",
"cost": 18000,
"power": 0.68,
"ammo": 2300,
"repair": 27.6
},
{
"id": "0g",
"grp": "am",
"class": 2,
"rating": "D",
"cost": 54000,
"power": 0.9,
"ammo": 2100,
"repair": 33.6
},
{
"id": "0f",
"grp": "am",
"class": 2,
"rating": "C",
"cost": 162000,
"power": 1.13,
"ammo": 2300,
"repair": 46
},
{
"id": "0e",
"grp": "am",
"class": 2,
"rating": "B",
"cost": 486000,
"power": 1.29,
"ammo": 2800,
"repair": 64.4
},
{
"id": "0d",
"grp": "am",
"class": 2,
"rating": "A",
"cost": 1458000,
"power": 1.58,
"ammo": 2500,
"repair": 70
},
{
"id": "0c",
"grp": "am",
"class": 1,
"rating": "E",
"cost": 10000,
"power": 0.54,
"ammo": 1000,
"repair": 12
},
{
"id": "0b",
"grp": "am",
"class": 1,
"rating": "D",
"cost": 30000,
"power": 0.72,
"ammo": 900,
"repair": 14.4
},
{
"id": "0a",
"grp": "am",
"class": 1,
"rating": "C",
"cost": 90000,
"power": 0.9,
"ammo": 1000,
"repair": 20
},
{
"id": "09",
"grp": "am",
"class": 1,
"rating": "B",
"cost": 270000,
"power": 1.04,
"ammo": 1200,
"repair": 27.6
},
{
"id": "08",
"grp": "am",
"class": 1,
"rating": "A",
"cost": 810000,
"power": 1.26,
"ammo": 1100,
"repair": 30.8
}
{ "id": "1f", "grp": "am", "class": 8, "rating": "E", "cost": 612220, "power": 1.8, "ammo": 10000, "repair": 120, "ammocost": 100 },
{ "id": "1e", "grp": "am", "class": 8, "rating": "D", "cost": 1836660, "power": 2.4, "ammo": 9000, "repair": 144, "ammocost": 100 },
{ "id": "1d", "grp": "am", "class": 8, "rating": "C", "cost": 5509980, "power": 3, "ammo": 10000, "repair": 200, "ammocost": 100 },
{ "id": "1c", "grp": "am", "class": 8, "rating": "B", "cost": 16529940, "power": 3.45, "ammo": 12000, "repair": 276, "ammocost": 100 },
{ "id": "1b", "grp": "am", "class": 8, "rating": "A", "cost": 49589820, "power": 4.2, "ammo": 11000, "repair": 308, "ammocost": 100 },
{ "id": "1a", "grp": "am", "class": 7, "rating": "E", "cost": 340120, "power": 1.58, "ammo": 8700, "repair": 104.4, "ammocost": 100 },
{ "id": "19", "grp": "am", "class": 7, "rating": "D", "cost": 1020370, "power": 2.1, "ammo": 7800, "repair": 124.8, "ammocost": 100 },
{ "id": "18", "grp": "am", "class": 7, "rating": "C", "cost": 3061100, "power": 2.63, "ammo": 8700, "repair": 174, "ammocost": 100 },
{ "id": "17", "grp": "am", "class": 7, "rating": "B", "cost": 9183300, "power": 3.02, "ammo": 10400, "repair": 239.2, "ammocost": 100 },
{ "id": "16", "grp": "am", "class": 7, "rating": "A", "cost": 27549900, "power": 3.68, "ammo": 9600, "repair": 268.8, "ammocost": 100 },
{ "id": "15", "grp": "am", "class": 6, "rating": "E", "cost": 188960, "power": 1.4, "ammo": 7400, "repair": 88.8, "ammocost": 100 },
{ "id": "14", "grp": "am", "class": 6, "rating": "D", "cost": 566870, "power": 1.86, "ammo": 6700, "repair": 107.2, "ammocost": 100 },
{ "id": "13", "grp": "am", "class": 6, "rating": "C", "cost": 1700610, "power": 2.33, "ammo": 7400, "repair": 148, "ammocost": 100 },
{ "id": "12", "grp": "am", "class": 6, "rating": "B", "cost": 5101830, "power": 2.67, "ammo": 8900, "repair": 204.7, "ammocost": 100 },
{ "id": "11", "grp": "am", "class": 6, "rating": "A", "cost": 15305500, "power": 3.26, "ammo": 8100, "repair": 226.8, "ammocost": 100 },
{ "id": "10", "grp": "am", "class": 5, "rating": "E", "cost": 104980, "power": 1.17, "ammo": 6100, "repair": 73.2, "ammocost": 100 },
{ "id": "0v", "grp": "am", "class": 5, "rating": "D", "cost": 314930, "power": 1.56, "ammo": 5500, "repair": 88, "ammocost": 100 },
{ "id": "0u", "grp": "am", "class": 5, "rating": "C", "cost": 944780, "power": 1.95, "ammo": 6100, "repair": 122, "ammocost": 100 },
{ "id": "0t", "grp": "am", "class": 5, "rating": "B", "cost": 2834350, "power": 2.24, "ammo": 7300, "repair": 167.9, "ammocost": 100 },
{ "id": "0s", "grp": "am", "class": 5, "rating": "A", "cost": 8503060, "power": 2.73, "ammo": 6700, "repair": 187.6, "ammocost": 100 },
{ "id": "0r", "grp": "am", "class": 4, "rating": "E", "cost": 58320, "power": 0.99, "ammo": 4900, "repair": 58.8, "ammocost": 100 },
{ "id": "0q", "grp": "am", "class": 4, "rating": "D", "cost": 174960, "power": 1.32, "ammo": 4400, "repair": 70.4, "ammocost": 100 },
{ "id": "0p", "grp": "am", "class": 4, "rating": "C", "cost": 524880, "power": 1.65, "ammo": 4900, "repair": 98, "ammocost": 100 },
{ "id": "0o", "grp": "am", "class": 4, "rating": "B", "cost": 1574640, "power": 1.9, "ammo": 5900, "repair": 135.7, "ammocost": 100 },
{ "id": "0n", "grp": "am", "class": 4, "rating": "A", "cost": 4723920, "power": 2.31, "ammo": 5400, "repair": 151.2, "ammocost": 100 },
{ "id": "0m", "grp": "am", "class": 3, "rating": "E", "cost": 32400, "power": 0.81, "ammo": 3600, "repair": 43.2, "ammocost": 100 },
{ "id": "0l", "grp": "am", "class": 3, "rating": "D", "cost": 97200, "power": 1.08, "ammo": 3200, "repair": 51.2, "ammocost": 100 },
{ "id": "0k", "grp": "am", "class": 3, "rating": "C", "cost": 291600, "power": 1.35, "ammo": 3600, "repair": 72, "ammocost": 100 },
{ "id": "0j", "grp": "am", "class": 3, "rating": "B", "cost": 874800, "power": 1.55, "ammo": 4300, "repair": 98.9, "ammocost": 100 },
{ "id": "0i", "grp": "am", "class": 3, "rating": "A", "cost": 2624400, "power": 1.89, "ammo": 4000, "repair": 112, "ammocost": 100 },
{ "id": "0h", "grp": "am", "class": 2, "rating": "E", "cost": 18000, "power": 0.68, "ammo": 2300, "repair": 27.6, "ammocost": 100 },
{ "id": "0g", "grp": "am", "class": 2, "rating": "D", "cost": 54000, "power": 0.9, "ammo": 2100, "repair": 33.6, "ammocost": 100 },
{ "id": "0f", "grp": "am", "class": 2, "rating": "C", "cost": 162000, "power": 1.13, "ammo": 2300, "repair": 46, "ammocost": 100 },
{ "id": "0e", "grp": "am", "class": 2, "rating": "B", "cost": 486000, "power": 1.29, "ammo": 2800, "repair": 64.4, "ammocost": 100 },
{ "id": "0d", "grp": "am", "class": 2, "rating": "A", "cost": 1458000, "power": 1.58, "ammo": 2500, "repair": 70, "ammocost": 100 },
{ "id": "0c", "grp": "am", "class": 1, "rating": "E", "cost": 10000, "power": 0.54, "ammo": 1000, "repair": 12, "ammocost": 100 },
{ "id": "0b", "grp": "am", "class": 1, "rating": "D", "cost": 30000, "power": 0.72, "ammo": 900, "repair": 14.4, "ammocost": 100 },
{ "id": "0a", "grp": "am", "class": 1, "rating": "C", "cost": 90000, "power": 0.9, "ammo": 1000, "repair": 20, "ammocost": 100 },
{ "id": "09", "grp": "am", "class": 1, "rating": "B", "cost": 270000, "power": 1.04, "ammo": 1200, "repair": 27.6, "ammocost": 100 },
{ "id": "08", "grp": "am", "class": 1, "rating": "A", "cost": 810000, "power": 1.26, "ammo": 1100, "repair": 30.8, "ammocost": 100 }
]
}
}

View File

@@ -2,11 +2,11 @@
"cr": [
{ "id": "00", "grp": "cr", "class": 1, "rating": "E", "cost": 1000, "capacity": 2 },
{ "id": "01", "grp": "cr", "class": 2, "rating": "E", "cost": 3250, "capacity": 4 },
{ "id": "02", "grp": "cr", "class": 3, "rating": "E", "cost": 10563, "capacity": 8 },
{ "id": "03", "grp": "cr", "class": 4, "rating": "E", "cost": 34328, "capacity": 16 },
{ "id": "04", "grp": "cr", "class": 5, "rating": "E", "cost": 111566, "capacity": 32 },
{ "id": "05", "grp": "cr", "class": 6, "rating": "E", "cost": 362591, "capacity": 64 },
{ "id": "02", "grp": "cr", "class": 3, "rating": "E", "cost": 10560, "capacity": 8 },
{ "id": "03", "grp": "cr", "class": 4, "rating": "E", "cost": 34330, "capacity": 16 },
{ "id": "04", "grp": "cr", "class": 5, "rating": "E", "cost": 111570, "capacity": 32 },
{ "id": "05", "grp": "cr", "class": 6, "rating": "E", "cost": 362590, "capacity": 64 },
{ "id": "06", "grp": "cr", "class": 7, "rating": "E", "cost": 1178420, "capacity": 128 },
{ "id": "07", "grp": "cr", "class": 8, "rating": "E", "cost": 3829866, "capacity": 256 }
{ "id": "07", "grp": "cr", "class": 8, "rating": "E", "cost": 3829870, "capacity": 256 }
]
}

View File

@@ -1,204 +1,27 @@
{
"fi": [
{
"id": "6p",
"grp": "fi",
"class": 4,
"rating": "E",
"cost": 263424,
"mass": 10,
"power": 0.25,
"rangeRating": "B"
},
{
"id": "6o",
"grp": "fi",
"class": 4,
"rating": "D",
"cost": 790272,
"mass": 4,
"power": 0.33,
"rangeRating": "A"
},
{
"id": "6n",
"grp": "fi",
"class": 4,
"rating": "C",
"cost": 2370816,
"mass": 10,
"power": 0.41,
"rangeRating": "A"
},
{
"id": "6m",
"grp": "fi",
"class": 4,
"rating": "B",
"cost": 7112448,
"mass": 16,
"power": 0.49,
"rangeRating": "A"
},
{
"id": "6l",
"grp": "fi",
"class": 4,
"rating": "A",
"cost": 21337344,
"mass": 10,
"power": 0.57,
"rangeRating": "A"
},
{
"id": "6k",
"grp": "fi",
"class": 3,
"rating": "E",
"cost": 94080,
"mass": 5,
"power": 0.2,
"rangeRating": "C"
},
{
"id": "6j",
"grp": "fi",
"class": 3,
"rating": "D",
"cost": 282240,
"mass": 2,
"power": 0.27,
"rangeRating": "B"
},
{
"id": "6i",
"grp": "fi",
"class": 3,
"rating": "C",
"cost": 846720,
"mass": 5,
"power": 0.34,
"rangeRating": "B"
},
{
"id": "6h",
"grp": "fi",
"class": 3,
"rating": "B",
"cost": 2540160,
"mass": 8,
"power": 0.41,
"rangeRating": "B"
},
{
"id": "6g",
"grp": "fi",
"class": 3,
"rating": "A",
"cost": 7620480,
"mass": 5,
"power": 0.48,
"rangeRating": "A"
},
{
"id": "6f",
"grp": "fi",
"class": 2,
"rating": "E",
"cost": 33600,
"mass": 2.5,
"power": 0.17,
"rangeRating": "D"
},
{
"id": "6e",
"grp": "fi",
"class": 2,
"rating": "D",
"cost": 100800,
"mass": 1,
"power": 0.22,
"rangeRating": "C"
},
{
"id": "6d",
"grp": "fi",
"class": 2,
"rating": "C",
"cost": 302400,
"mass": 2.5,
"power": 0.28,
"rangeRating": "C"
},
{
"id": "6c",
"grp": "fi",
"class": 2,
"rating": "B",
"cost": 907200,
"mass": 4,
"power": 0.34,
"rangeRating": "C"
},
{
"id": "6b",
"grp": "fi",
"class": 2,
"rating": "A",
"cost": 2721600,
"mass": 2.5,
"power": 0.39,
"rangeRating": "B"
},
{
"id": "6a",
"grp": "fi",
"class": 1,
"rating": "E",
"cost": 12000,
"mass": 1.3,
"power": 0.14,
"rangeRating": "E"
},
{
"id": "69",
"grp": "fi",
"class": 1,
"rating": "D",
"cost": 36000,
"mass": 0.5,
"power": 0.18,
"rangeRating": "D"
},
{
"id": "68",
"grp": "fi",
"class": 1,
"rating": "C",
"cost": 108000,
"mass": 1.3,
"power": 0.23,
"rangeRating": "D"
},
{
"id": "67",
"grp": "fi",
"class": 1,
"rating": "B",
"cost": 324000,
"mass": 2,
"power": 0.28,
"rangeRating": "D"
},
{
"id": "66",
"grp": "fi",
"class": 1,
"rating": "A",
"cost": 972000,
"mass": 1.3,
"power": 0.32,
"rangeRating": "C"
}
{ "id": "6p", "grp": "fi", "class": 4, "rating": "E", "cost": 263420, "mass": 10, "power": 0.25, "rangeRating": "B" },
{ "id": "6o", "grp": "fi", "class": 4, "rating": "D", "cost": 790270, "mass": 4, "power": 0.33, "rangeRating": "A" },
{ "id": "6n", "grp": "fi", "class": 4, "rating": "C", "cost": 2370820, "mass": 10, "power": 0.41, "rangeRating": "A" },
{ "id": "6m", "grp": "fi", "class": 4, "rating": "B", "cost": 7112450, "mass": 16, "power": 0.49, "rangeRating": "A" },
{ "id": "6l", "grp": "fi", "class": 4, "rating": "A", "cost": 21337340, "mass": 10, "power": 0.57, "rangeRating": "A" },
{ "id": "6k", "grp": "fi", "class": 3, "rating": "E", "cost": 94080, "mass": 5, "power": 0.2, "rangeRating": "C" },
{ "id": "6j", "grp": "fi", "class": 3, "rating": "D", "cost": 282240, "mass": 2, "power": 0.27, "rangeRating": "B" },
{ "id": "6i", "grp": "fi", "class": 3, "rating": "C", "cost": 846720, "mass": 5, "power": 0.34, "rangeRating": "B" },
{ "id": "6h", "grp": "fi", "class": 3, "rating": "B", "cost": 2540160, "mass": 8, "power": 0.41, "rangeRating": "B" },
{ "id": "6g", "grp": "fi", "class": 3, "rating": "A", "cost": 7620480, "mass": 5, "power": 0.48, "rangeRating": "A" },
{ "id": "6f", "grp": "fi", "class": 2, "rating": "E", "cost": 33600, "mass": 2.5, "power": 0.17, "rangeRating": "D" },
{ "id": "6e", "grp": "fi", "class": 2, "rating": "D", "cost": 100800, "mass": 1, "power": 0.22, "rangeRating": "C" },
{ "id": "6d", "grp": "fi", "class": 2, "rating": "C", "cost": 302400, "mass": 2.5, "power": 0.28, "rangeRating": "C" },
{ "id": "6c", "grp": "fi", "class": 2, "rating": "B", "cost": 907200, "mass": 4, "power": 0.34, "rangeRating": "C" },
{ "id": "6b", "grp": "fi", "class": 2, "rating": "A", "cost": 2721600, "mass": 2.5, "power": 0.39, "rangeRating": "B" },
{ "id": "6a", "grp": "fi", "class": 1, "rating": "E", "cost": 12000, "mass": 1.3, "power": 0.14, "rangeRating": "E" },
{ "id": "69", "grp": "fi", "class": 1, "rating": "D", "cost": 36000, "mass": 0.5, "power": 0.18, "rangeRating": "D" },
{ "id": "68", "grp": "fi", "class": 1, "rating": "C", "cost": 108000, "mass": 1.3, "power": 0.23, "rangeRating": "D" },
{ "id": "67", "grp": "fi", "class": 1, "rating": "B", "cost": 324000, "mass": 2, "power": 0.28, "rangeRating": "D" },
{ "id": "66", "grp": "fi", "class": 1, "rating": "A", "cost": 972000, "mass": 1.3, "power": 0.32, "rangeRating": "C" }
]
}

View File

@@ -1,364 +1,51 @@
{
"fs": [
{
"id": "3q",
"grp": "fs",
"class": 8,
"rating": "E",
"cost": 1083910,
"power": 0.48,
"rate": 720
},
{
"id": "3p",
"grp": "fs",
"class": 8,
"rating": "D",
"cost": 4516291,
"power": 0.64,
"rate": 960
},
{
"id": "3o",
"grp": "fs",
"class": 8,
"rating": "C",
"cost": 18065165,
"power": 0.8,
"rate": 1200
},
{
"id": "3n",
"grp": "fs",
"class": 8,
"rating": "B",
"cost": 72260660,
"power": 0.96,
"rate": 1440
},
{
"id": "3m",
"grp": "fs",
"class": 8,
"rating": "A",
"cost": 289042541,
"power": 1.12,
"rate": 1680
},
{
"id": "3l",
"grp": "fs",
"class": 7,
"rating": "E",
"cost": 341927,
"power": 0.41,
"rate": 534
},
{
"id": "3k",
"grp": "fs",
"class": 7,
"rating": "D",
"cost": 1424698,
"power": 0.55,
"rate": 712
},
{
"id": "3j",
"grp": "fs",
"class": 7,
"rating": "C",
"cost": 5698790,
"power": 0.69,
"rate": 890
},
{
"id": "3i",
"grp": "fs",
"class": 7,
"rating": "B",
"cost": 22795161,
"power": 0.83,
"rate": 1068
},
{
"id": "3h",
"grp": "fs",
"class": 7,
"rating": "A",
"cost": 91180644,
"power": 0.97,
"rate": 1245
},
{
"id": "3g",
"grp": "fs",
"class": 6,
"rating": "E",
"cost": 107864,
"power": 0.35,
"rate": 376
},
{
"id": "3f",
"grp": "fs",
"class": 6,
"rating": "D",
"cost": 449431,
"power": 0.47,
"rate": 502
},
{
"id": "3e",
"grp": "fs",
"class": 6,
"rating": "C",
"cost": 1797726,
"power": 0.59,
"rate": 627
},
{
"id": "3d",
"grp": "fs",
"class": 6,
"rating": "B",
"cost": 7190903,
"power": 0.71,
"rate": 752
},
{
"id": "3c",
"grp": "fs",
"class": 6,
"rating": "A",
"cost": 28763610,
"power": 0.83,
"rate": 878
},
{
"id": "3b",
"grp": "fs",
"class": 5,
"rating": "E",
"cost": 34026,
"power": 0.3,
"rate": 247
},
{
"id": "3a",
"grp": "fs",
"class": 5,
"rating": "D",
"cost": 141776,
"power": 0.4,
"rate": 330
},
{
"id": "39",
"grp": "fs",
"class": 5,
"rating": "C",
"cost": 567106,
"power": 0.5,
"rate": 412
},
{
"id": "38",
"grp": "fs",
"class": 5,
"rating": "B",
"cost": 2268424,
"power": 0.6,
"rate": 494
},
{
"id": "37",
"grp": "fs",
"class": 5,
"rating": "A",
"cost": 9073694,
"power": 0.7,
"rate": 577
},
{
"id": "36",
"grp": "fs",
"class": 4,
"rating": "E",
"cost": 10734,
"power": 0.25,
"rate": 147
},
{
"id": "35",
"grp": "fs",
"class": 4,
"rating": "D",
"cost": 44724,
"power": 0.33,
"rate": 196
},
{
"id": "34",
"grp": "fs",
"class": 4,
"rating": "C",
"cost": 178898,
"power": 0.41,
"rate": 245
},
{
"id": "33",
"grp": "fs",
"class": 4,
"rating": "B",
"cost": 715591,
"power": 0.49,
"rate": 294
},
{
"id": "32",
"grp": "fs",
"class": 4,
"rating": "A",
"cost": 2862364,
"power": 0.57,
"rate": 342
},
{
"id": "31",
"grp": "fs",
"class": 3,
"rating": "E",
"cost": 3386,
"power": 0.2,
"rate": 75
},
{
"id": "30",
"grp": "fs",
"class": 3,
"rating": "D",
"cost": 14109,
"power": 0.27,
"rate": 100
},
{
"id": "2v",
"grp": "fs",
"class": 3,
"rating": "C",
"cost": 56435,
"power": 0.34,
"rate": 126
},
{
"id": "2u",
"grp": "fs",
"class": 3,
"rating": "B",
"cost": 225738,
"power": 0.41,
"rate": 151
},
{
"id": "2t",
"grp": "fs",
"class": 3,
"rating": "A",
"cost": 902954,
"power": 0.48,
"rate": 176
},
{
"id": "2s",
"grp": "fs",
"class": 2,
"rating": "E",
"cost": 1068,
"power": 0.17,
"rate": 32
},
{
"id": "2r",
"grp": "fs",
"class": 2,
"rating": "D",
"cost": 4451,
"power": 0.22,
"rate": 43
},
{
"id": "2q",
"grp": "fs",
"class": 2,
"rating": "C",
"cost": 17803,
"power": 0.28,
"rate": 54
},
{
"id": "2p",
"grp": "fs",
"class": 2,
"rating": "B",
"cost": 71211,
"power": 0.34,
"rate": 65
},
{
"id": "2o",
"grp": "fs",
"class": 2,
"rating": "A",
"cost": 284844,
"power": 0.39,
"rate": 75
},
{
"id": "2n",
"grp": "fs",
"class": 1,
"rating": "E",
"cost": 309,
"power": 0.14,
"rate": 18
},
{
"id": "2m",
"grp": "fs",
"class": 1,
"rating": "D",
"cost": 1285,
"power": 0.18,
"rate": 24
},
{
"id": "2l",
"grp": "fs",
"class": 1,
"rating": "C",
"cost": 5142,
"power": 0.23,
"rate": 30
},
{
"id": "2k",
"grp": "fs",
"class": 1,
"rating": "B",
"cost": 20568,
"power": 0.28,
"rate": 36
},
{
"id": "2j",
"grp": "fs",
"class": 1,
"rating": "A",
"cost": 82270,
"power": 0.32,
"rate": 42
}
{ "id": "3q", "grp": "fs", "class": 8, "rating": "E", "cost": 1083910, "power": 0.48, "rate": 720 },
{ "id": "3p", "grp": "fs", "class": 8, "rating": "D", "cost": 4516290, "power": 0.64, "rate": 960 },
{ "id": "3o", "grp": "fs", "class": 8, "rating": "C", "cost": 18065160, "power": 0.8, "rate": 1200 },
{ "id": "3n", "grp": "fs", "class": 8, "rating": "B", "cost": 72260660, "power": 0.96, "rate": 1440 },
{ "id": "3m", "grp": "fs", "class": 8, "rating": "A", "cost": 289042540, "power": 1.12, "rate": 1680 },
{ "id": "3l", "grp": "fs", "class": 7, "rating": "E", "cost": 341930, "power": 0.41, "rate": 534 },
{ "id": "3k", "grp": "fs", "class": 7, "rating": "D", "cost": 1424700, "power": 0.55, "rate": 712 },
{ "id": "3j", "grp": "fs", "class": 7, "rating": "C", "cost": 5698790, "power": 0.69, "rate": 890 },
{ "id": "3i", "grp": "fs", "class": 7, "rating": "B", "cost": 22795160, "power": 0.83, "rate": 1068 },
{ "id": "3h", "grp": "fs", "class": 7, "rating": "A", "cost": 91180640, "power": 0.97, "rate": 1245 },
{ "id": "3g", "grp": "fs", "class": 6, "rating": "E", "cost": 107860, "power": 0.35, "rate": 376 },
{ "id": "3f", "grp": "fs", "class": 6, "rating": "D", "cost": 449430, "power": 0.47, "rate": 502 },
{ "id": "3e", "grp": "fs", "class": 6, "rating": "C", "cost": 1797730, "power": 0.59, "rate": 627 },
{ "id": "3d", "grp": "fs", "class": 6, "rating": "B", "cost": 7190900, "power": 0.71, "rate": 752 },
{ "id": "3c", "grp": "fs", "class": 6, "rating": "A", "cost": 28763610, "power": 0.83, "rate": 878 },
{ "id": "3b", "grp": "fs", "class": 5, "rating": "E", "cost": 34030, "power": 0.3, "rate": 247 },
{ "id": "3a", "grp": "fs", "class": 5, "rating": "D", "cost": 141780, "power": 0.4, "rate": 330 },
{ "id": "39", "grp": "fs", "class": 5, "rating": "C", "cost": 567110, "power": 0.5, "rate": 412 },
{ "id": "38", "grp": "fs", "class": 5, "rating": "B", "cost": 2268420, "power": 0.6, "rate": 494 },
{ "id": "37", "grp": "fs", "class": 5, "rating": "A", "cost": 9073690, "power": 0.7, "rate": 577 },
{ "id": "36", "grp": "fs", "class": 4, "rating": "E", "cost": 10730, "power": 0.25, "rate": 147 },
{ "id": "35", "grp": "fs", "class": 4, "rating": "D", "cost": 44720, "power": 0.33, "rate": 196 },
{ "id": "34", "grp": "fs", "class": 4, "rating": "C", "cost": 178900, "power": 0.41, "rate": 245 },
{ "id": "33", "grp": "fs", "class": 4, "rating": "B", "cost": 715590, "power": 0.49, "rate": 294 },
{ "id": "32", "grp": "fs", "class": 4, "rating": "A", "cost": 2862360, "power": 0.57, "rate": 342 },
{ "id": "31", "grp": "fs", "class": 3, "rating": "E", "cost": 3390, "power": 0.2, "rate": 75 },
{ "id": "30", "grp": "fs", "class": 3, "rating": "D", "cost": 14110, "power": 0.27, "rate": 100 },
{ "id": "2v", "grp": "fs", "class": 3, "rating": "C", "cost": 56440, "power": 0.34, "rate": 126 },
{ "id": "2u", "grp": "fs", "class": 3, "rating": "B", "cost": 225740, "power": 0.41, "rate": 151 },
{ "id": "2t", "grp": "fs", "class": 3, "rating": "A", "cost": 902950, "power": 0.48, "rate": 176 },
{ "id": "2s", "grp": "fs", "class": 2, "rating": "E", "cost": 1070, "power": 0.17, "rate": 32 },
{ "id": "2r", "grp": "fs", "class": 2, "rating": "D", "cost": 4450, "power": 0.22, "rate": 43 },
{ "id": "2q", "grp": "fs", "class": 2, "rating": "C", "cost": 17800, "power": 0.28, "rate": 54 },
{ "id": "2p", "grp": "fs", "class": 2, "rating": "B", "cost": 71210, "power": 0.34, "rate": 65 },
{ "id": "2o", "grp": "fs", "class": 2, "rating": "A", "cost": 284840, "power": 0.39, "rate": 75 },
{ "id": "2n", "grp": "fs", "class": 1, "rating": "E", "cost": 310, "power": 0.14, "rate": 18 },
{ "id": "2m", "grp": "fs", "class": 1, "rating": "D", "cost": 1290, "power": 0.18, "rate": 24 },
{ "id": "2l", "grp": "fs", "class": 1, "rating": "C", "cost": 5140, "power": 0.23, "rate": 30 },
{ "id": "2k", "grp": "fs", "class": 1, "rating": "B", "cost": 20570, "power": 0.28, "rate": 36 },
{ "id": "2j", "grp": "fs", "class": 1, "rating": "A", "cost": 82270, "power": 0.32, "rate": 42 }
]
}

View File

@@ -1,224 +1,27 @@
{
"hb": [
{
"id": "7d",
"grp": "hb",
"class": 7,
"rating": "E",
"cost": 437400,
"power": 0.42,
"range": 2.58,
"maximum": 18,
"time": 25
},
{
"id": "7c",
"grp": "hb",
"class": 7,
"rating": "D",
"cost": 874800,
"power": 0.56,
"range": 3.44,
"maximum": 12,
"time": 22
},
{
"id": "7b",
"grp": "hb",
"class": 7,
"rating": "C",
"cost": 1749600,
"power": 0.7,
"range": 4.3,
"maximum": 15,
"time": 18
},
{
"id": "7a",
"grp": "hb",
"class": 7,
"rating": "B",
"cost": 3499200,
"power": 0.84,
"range": 5.16,
"maximum": 18,
"time": 14
},
{
"id": "79",
"grp": "hb",
"class": 7,
"rating": "A",
"cost": 6998400,
"power": 0.98,
"range": 6.02,
"maximum": 12,
"time": 11
},
{
"id": "78",
"grp": "hb",
"class": 5,
"rating": "E",
"cost": 48600,
"power": 0.3,
"range": 1.98,
"maximum": 9,
"time": 31
},
{
"id": "77",
"grp": "hb",
"class": 5,
"rating": "D",
"cost": 97200,
"power": 0.4,
"range": 2.64,
"maximum": 6,
"time": 26
},
{
"id": "76",
"grp": "hb",
"class": 5,
"rating": "C",
"cost": 194400,
"power": 0.5,
"range": 3.3,
"maximum": 7,
"time": 22
},
{
"id": "75",
"grp": "hb",
"class": 5,
"rating": "B",
"cost": 388800,
"power": 0.6,
"range": 3.96,
"maximum": 9,
"time": 18
},
{
"id": "74",
"grp": "hb",
"class": 5,
"rating": "A",
"cost": 777600,
"power": 0.7,
"range": 4.62,
"maximum": 6,
"time": 13
},
{
"id": "73",
"grp": "hb",
"class": 3,
"rating": "E",
"cost": 5400,
"power": 0.18,
"range": 1.62,
"maximum": 4,
"time": 36
},
{
"id": "72",
"grp": "hb",
"class": 3,
"rating": "D",
"cost": 10800,
"power": 0.24,
"range": 2.16,
"maximum": 3,
"time": 31
},
{
"id": "71",
"grp": "hb",
"class": 3,
"rating": "C",
"cost": 21600,
"power": 0.3,
"range": 2.7,
"maximum": 3,
"time": 26
},
{
"id": "70",
"grp": "hb",
"class": 3,
"rating": "B",
"cost": 43200,
"power": 0.36,
"range": 3.24,
"maximum": 4,
"time": 21
},
{
"id": "6v",
"grp": "hb",
"class": 3,
"rating": "A",
"cost": 86400,
"power": 0.42,
"range": 3.78,
"maximum": 3,
"time": 16
},
{
"id": "6u",
"grp": "hb",
"class": 1,
"rating": "E",
"cost": 600,
"power": 0.12,
"range": 1.5,
"maximum": 2,
"time": 42
},
{
"id": "6t",
"grp": "hb",
"class": 1,
"rating": "D",
"cost": 1200,
"power": 0.16,
"range": 2,
"maximum": 1,
"time": 36
},
{
"id": "6s",
"grp": "hb",
"class": 1,
"rating": "C",
"cost": 2400,
"power": 0.2,
"range": 2.5,
"maximum": 1,
"time": 30
},
{
"id": "6r",
"grp": "hb",
"class": 1,
"rating": "B",
"cost": 4800,
"power": 0.24,
"range": 3,
"maximum": 2,
"time": 24
},
{
"id": "6q",
"grp": "hb",
"class": 1,
"rating": "A",
"cost": 9600,
"power": 0.28,
"range": 3.5,
"maximum": 1,
"time": 18
}
{ "id": "7d", "grp": "hb", "class": 7, "rating": "E", "cost": 437400, "power": 0.42, "range": 2.58, "maximum": 18, "time": 25 },
{ "id": "7c", "grp": "hb", "class": 7, "rating": "D", "cost": 874800, "power": 0.56, "range": 3.44, "maximum": 12, "time": 22 },
{ "id": "7b", "grp": "hb", "class": 7, "rating": "C", "cost": 1749600, "power": 0.7, "range": 4.3, "maximum": 15, "time": 18 },
{ "id": "7a", "grp": "hb", "class": 7, "rating": "B", "cost": 3499200, "power": 0.84, "range": 5.16, "maximum": 18, "time": 14 },
{ "id": "79", "grp": "hb", "class": 7, "rating": "A", "cost": 6998400, "power": 0.98, "range": 6.02, "maximum": 12, "time": 11 },
{ "id": "78", "grp": "hb", "class": 5, "rating": "E", "cost": 48600, "power": 0.3, "range": 1.98, "maximum": 9, "time": 31 },
{ "id": "77", "grp": "hb", "class": 5, "rating": "D", "cost": 97200, "power": 0.4, "range": 2.64, "maximum": 6, "time": 26 },
{ "id": "76", "grp": "hb", "class": 5, "rating": "C", "cost": 194400, "power": 0.5, "range": 3.3, "maximum": 7, "time": 22 },
{ "id": "75", "grp": "hb", "class": 5, "rating": "B", "cost": 388800, "power": 0.6, "range": 3.96, "maximum": 9, "time": 18 },
{ "id": "74", "grp": "hb", "class": 5, "rating": "A", "cost": 777600, "power": 0.7, "range": 4.62, "maximum": 6, "time": 13 },
{ "id": "73", "grp": "hb", "class": 3, "rating": "E", "cost": 5400, "power": 0.18, "range": 1.62, "maximum": 4, "time": 36 },
{ "id": "72", "grp": "hb", "class": 3, "rating": "D", "cost": 10800, "power": 0.24, "range": 2.16, "maximum": 3, "time": 31 },
{ "id": "71", "grp": "hb", "class": 3, "rating": "C", "cost": 21600, "power": 0.3, "range": 2.7, "maximum": 3, "time": 26 },
{ "id": "70", "grp": "hb", "class": 3, "rating": "B", "cost": 43200, "power": 0.36, "range": 3.24, "maximum": 4, "time": 21 },
{ "id": "6v", "grp": "hb", "class": 3, "rating": "A", "cost": 86400, "power": 0.42, "range": 3.78, "maximum": 3, "time": 16 },
{ "id": "6u", "grp": "hb", "class": 1, "rating": "E", "cost": 600, "power": 0.12, "range": 1.5, "maximum": 2, "time": 42 },
{ "id": "6t", "grp": "hb", "class": 1, "rating": "D", "cost": 1200, "power": 0.16, "range": 2, "maximum": 1, "time": 36 },
{ "id": "6s", "grp": "hb", "class": 1, "rating": "C", "cost": 2400, "power": 0.2, "range": 2.5, "maximum": 1, "time": 30 },
{ "id": "6r", "grp": "hb", "class": 1, "rating": "B", "cost": 4800, "power": 0.24, "range": 3, "maximum": 2, "time": 24 },
{ "id": "6q", "grp": "hb", "class": 1, "rating": "A", "cost": 9600, "power": 0.28, "range": 3.5, "maximum": 1, "time": 18 }
]
}

View File

@@ -1,94 +1,18 @@
{
"hr": [
{
"id": "2e",
"grp": "hr",
"class": 5,
"rating": "E",
"cost": 150000,
"mass": 64,
"armouradd": 160
},
{
"id": "2d",
"grp": "hr",
"class": 5,
"rating": "D",
"cost": 450000,
"mass": 32,
"armouradd": 240
},
{
"id": "2c",
"grp": "hr",
"class": 4,
"rating": "E",
"cost": 65000,
"mass": 32,
"armouradd": 80
},
{
"id": "2b",
"grp": "hr",
"class": 4,
"rating": "D",
"cost": 195000,
"mass": 16,
"armouradd": 120
},
{
"id": "2a",
"grp": "hr",
"class": 3,
"rating": "E",
"cost": 28000,
"mass": 16,
"armouradd": 40
},
{
"id": "29",
"grp": "hr",
"class": 3,
"rating": "D",
"cost": 84000,
"mass": 8,
"armouradd": 60
},
{
"id": "28",
"grp": "hr",
"class": 2,
"rating": "E",
"cost": 12000,
"mass": 8,
"armouradd": 20
},
{
"id": "27",
"grp": "hr",
"class": 2,
"rating": "D",
"cost": 36000,
"mass": 4,
"armouradd": 30
},
{
"id": "26",
"grp": "hr",
"class": 1,
"rating": "E",
"cost": 5000,
"mass": 4,
"armouradd": 10
},
{
"id": "25",
"grp": "hr",
"class": 1,
"rating": "D",
"cost": 15000,
"mass": 2,
"armouradd": 15
}
{ "id": "2e", "grp": "hr", "class": 5, "rating": "E", "cost": 150000, "mass": 64, "armouradd": 160 },
{ "id": "2d", "grp": "hr", "class": 5, "rating": "D", "cost": 450000, "mass": 32, "armouradd": 240 },
{ "id": "2c", "grp": "hr", "class": 4, "rating": "E", "cost": 65000, "mass": 32, "armouradd": 80 },
{ "id": "2b", "grp": "hr", "class": 4, "rating": "D", "cost": 195000, "mass": 16, "armouradd": 120 },
{ "id": "2a", "grp": "hr", "class": 3, "rating": "E", "cost": 28000, "mass": 16, "armouradd": 40 },
{ "id": "29", "grp": "hr", "class": 3, "rating": "D", "cost": 84000, "mass": 8, "armouradd": 60 },
{ "id": "28", "grp": "hr", "class": 2, "rating": "E", "cost": 12000, "mass": 8, "armouradd": 20 },
{ "id": "27", "grp": "hr", "class": 2, "rating": "D", "cost": 36000, "mass": 4, "armouradd": 30 },
{ "id": "26", "grp": "hr", "class": 1, "rating": "E", "cost": 5000, "mass": 4, "armouradd": 10 },
{ "id": "25", "grp": "hr", "class": 1, "rating": "D", "cost": 15000, "mass": 2, "armouradd": 15 }
]
}

View File

@@ -2,11 +2,11 @@
"ft": [
{ "id": "f1", "grp": "ft", "class": 1, "rating": "C", "cost": 1000, "capacity": 2 },
{ "id": "f2", "grp": "ft", "class": 2, "rating": "C", "cost": 3750, "capacity": 4 },
{ "id": "f3", "grp": "ft", "class": 3, "rating": "C", "cost": 7063, "capacity": 8 },
{ "id": "f4", "grp": "ft", "class": 4, "rating": "C", "cost": 24734, "capacity": 16 },
{ "id": "f5", "grp": "ft", "class": 5, "rating": "C", "cost": 97754, "capacity": 32 },
{ "id": "f6", "grp": "ft", "class": 6, "rating": "C", "cost": 341577, "capacity": 64 },
{ "id": "f7", "grp": "ft", "class": 7, "rating": "C", "cost": 1780900, "capacity": 128 },
{ "id": "f3", "grp": "ft", "class": 3, "rating": "C", "cost": 7060, "capacity": 8 },
{ "id": "f4", "grp": "ft", "class": 4, "rating": "C", "cost": 24730, "capacity": 16 },
{ "id": "f5", "grp": "ft", "class": 5, "rating": "C", "cost": 97750, "capacity": 32 },
{ "id": "f6", "grp": "ft", "class": 6, "rating": "C", "cost": 341580, "capacity": 64 },
{ "id": "f7", "grp": "ft", "class": 7, "rating": "C", "cost": 1780910, "capacity": 128 },
{ "id": "f8", "grp": "ft", "class": 8, "rating": "C", "cost": 5428400, "capacity": 256 }
]
}

View File

@@ -1,12 +1,12 @@
{
"psg": [
{ "id": "p6", "grp": "psg", "class": 1, "rating": "A", "cost": 132195, "mass": 2.5, "power": 2.52, "minmass": 13, "optmass": 25, "maxmass": 63, "minmul": 2, "optmul": 1.5, "maxmul": 1 },
{ "id": "p5", "grp": "psg", "class": 2, "rating": "A", "cost": 240336, "mass": 5, "power": 3.15, "minmass": 23, "optmass": 55, "maxmass": 138, "minmul": 2, "optmul": 1.5, "maxmul": 1 },
{ "id": "p4", "grp": "psg", "class": 3, "rating": "A", "cost": 761868, "mass": 10, "power": 3.78, "minmass": 83, "optmass": 165, "maxmass": 413, "minmul": 2, "optmul": 1.5, "maxmul": 1 },
{ "id": "p6", "grp": "psg", "class": 1, "rating": "A", "cost": 132200, "mass": 2.5, "power": 2.52, "minmass": 13, "optmass": 25, "maxmass": 63, "minmul": 2, "optmul": 1.5, "maxmul": 1 },
{ "id": "p5", "grp": "psg", "class": 2, "rating": "A", "cost": 240340, "mass": 5, "power": 3.15, "minmass": 23, "optmass": 55, "maxmass": 138, "minmul": 2, "optmul": 1.5, "maxmul": 1 },
{ "id": "p4", "grp": "psg", "class": 3, "rating": "A", "cost": 761870, "mass": 10, "power": 3.78, "minmass": 83, "optmass": 165, "maxmass": 413, "minmul": 2, "optmul": 1.5, "maxmul": 1 },
{ "id": "p3", "grp": "psg", "class": 4, "rating": "A", "cost": 2415120, "mass": 20, "power": 4.62, "minmass": 143, "optmass": 285, "maxmass": 713, "minmul": 2, "optmul": 1.5, "maxmul": 1 },
{ "id": "p2", "grp": "psg", "class": 5, "rating": "A", "cost": 7655930, "mass": 40, "power": 5.46, "minmass": 203, "optmass": 405, "maxmass": 1013, "minmul": 2, "optmul": 1.5, "maxmul": 1 },
{ "id": "p1", "grp": "psg", "class": 6, "rating": "A", "cost": 24269297, "mass": 80, "power": 6.51, "minmass": 270, "optmass": 540, "maxmass": 1350, "minmul": 2, "optmul": 1.5, "maxmul": 1 },
{ "id": "p0", "grp": "psg", "class": 7, "rating": "A", "cost": 76933668, "mass": 160, "power": 7.35, "minmass": 530, "optmass": 1060, "maxmass": 2650, "minmul": 2, "optmul": 1.5, "maxmul": 1 },
{ "id": "p7", "grp": "psg", "class": 8, "rating": "A", "cost": 243879729, "mass": 320, "power": 8.4, "minmass": 900, "optmass": 1800, "maxmass": 4500, "minmul": 2, "optmul": 1.5, "maxmul": 1 }
{ "id": "p1", "grp": "psg", "class": 6, "rating": "A", "cost": 24269300, "mass": 80, "power": 6.51, "minmass": 270, "optmass": 540, "maxmass": 1350, "minmul": 2, "optmul": 1.5, "maxmul": 1 },
{ "id": "p0", "grp": "psg", "class": 7, "rating": "A", "cost": 76933670, "mass": 160, "power": 7.35, "minmass": 530, "optmass": 1060, "maxmass": 2650, "minmul": 2, "optmul": 1.5, "maxmul": 1 },
{ "id": "p7", "grp": "psg", "class": 8, "rating": "A", "cost": 243879730, "mass": 320, "power": 8.4, "minmass": 900, "optmass": 1800, "maxmass": 4500, "minmul": 2, "optmul": 1.5, "maxmul": 1 }
]
}

View File

@@ -1,184 +1,27 @@
{
"rf": [
{
"id": "23",
"grp": "rf",
"class": 4,
"rating": "E",
"cost": 55566,
"power": 0.25,
"bins": 4
},
{
"id": "22",
"grp": "rf",
"class": 4,
"rating": "D",
"cost": 166698,
"power": 0.33,
"bins": 5
},
{
"id": "21",
"grp": "rf",
"class": 4,
"rating": "C",
"cost": 500094,
"power": 0.41,
"bins": 7
},
{
"id": "20",
"grp": "rf",
"class": 4,
"rating": "B",
"cost": 1500282,
"power": 0.49,
"bins": 9
},
{
"id": "1v",
"grp": "rf",
"class": 4,
"rating": "A",
"cost": 4500846,
"power": 0.57,
"bins": 10
},
{
"id": "1u",
"grp": "rf",
"class": 3,
"rating": "E",
"cost": 26460,
"power": 0.2,
"bins": 3
},
{
"id": "1t",
"grp": "rf",
"class": 3,
"rating": "D",
"cost": 79380,
"power": 0.27,
"bins": 4
},
{
"id": "1s",
"grp": "rf",
"class": 3,
"rating": "C",
"cost": 238140,
"power": 0.34,
"bins": 6
},
{
"id": "1r",
"grp": "rf",
"class": 3,
"rating": "B",
"cost": 714420,
"power": 0.41,
"bins": 7
},
{
"id": "1q",
"grp": "rf",
"class": 3,
"rating": "A",
"cost": 2143260,
"power": 0.48,
"bins": 8
},
{
"id": "1p",
"grp": "rf",
"class": 2,
"rating": "E",
"cost": 12600,
"power": 0.17,
"bins": 2
},
{
"id": "1o",
"grp": "rf",
"class": 2,
"rating": "D",
"cost": 37800,
"power": 0.22,
"bins": 3
},
{
"id": "1n",
"grp": "rf",
"class": 2,
"rating": "C",
"cost": 113400,
"power": 0.28,
"bins": 4
},
{
"id": "1m",
"grp": "rf",
"class": 2,
"rating": "B",
"cost": 340200,
"power": 0.34,
"bins": 5
},
{
"id": "1l",
"grp": "rf",
"class": 2,
"rating": "A",
"cost": 1020600,
"power": 0.39,
"bins": 6
},
{
"id": "1k",
"grp": "rf",
"class": 1,
"rating": "E",
"cost": 6000,
"power": 0.14,
"bins": 1
},
{
"id": "1j",
"grp": "rf",
"class": 1,
"rating": "D",
"cost": 18000,
"power": 0.18,
"bins": 1
},
{
"id": "1i",
"grp": "rf",
"class": 1,
"rating": "C",
"cost": 54000,
"power": 0.23,
"bins": 2
},
{
"id": "1h",
"grp": "rf",
"class": 1,
"rating": "B",
"cost": 162000,
"power": 0.28,
"bins": 3
},
{
"id": "1g",
"grp": "rf",
"class": 1,
"rating": "A",
"cost": 486000,
"power": 0.32,
"bins": 4
}
{ "id": "23", "grp": "rf", "class": 4, "rating": "E", "cost": 55570, "power": 0.25, "bins": 4 },
{ "id": "22", "grp": "rf", "class": 4, "rating": "D", "cost": 166700, "power": 0.33, "bins": 5 },
{ "id": "21", "grp": "rf", "class": 4, "rating": "C", "cost": 500090, "power": 0.41, "bins": 7 },
{ "id": "20", "grp": "rf", "class": 4, "rating": "B", "cost": 1500280, "power": 0.49, "bins": 9 },
{ "id": "1v", "grp": "rf", "class": 4, "rating": "A", "cost": 4500850, "power": 0.57, "bins": 10 },
{ "id": "1u", "grp": "rf", "class": 3, "rating": "E", "cost": 26460, "power": 0.2, "bins": 3 },
{ "id": "1t", "grp": "rf", "class": 3, "rating": "D", "cost": 79380, "power": 0.27, "bins": 4 },
{ "id": "1s", "grp": "rf", "class": 3, "rating": "C", "cost": 238140, "power": 0.34, "bins": 6 },
{ "id": "1r", "grp": "rf", "class": 3, "rating": "B", "cost": 714420, "power": 0.41, "bins": 7 },
{ "id": "1q", "grp": "rf", "class": 3, "rating": "A", "cost": 2143260, "power": 0.48, "bins": 8 },
{ "id": "1p", "grp": "rf", "class": 2, "rating": "E", "cost": 12600, "power": 0.17, "bins": 2 },
{ "id": "1o", "grp": "rf", "class": 2, "rating": "D", "cost": 37800, "power": 0.22, "bins": 3 },
{ "id": "1n", "grp": "rf", "class": 2, "rating": "C", "cost": 113400, "power": 0.28, "bins": 4 },
{ "id": "1m", "grp": "rf", "class": 2, "rating": "B", "cost": 340200, "power": 0.34, "bins": 5 },
{ "id": "1l", "grp": "rf", "class": 2, "rating": "A", "cost": 1020600, "power": 0.39, "bins": 6 },
{ "id": "1k", "grp": "rf", "class": 1, "rating": "E", "cost": 6000, "power": 0.14, "bins": 1 },
{ "id": "1j", "grp": "rf", "class": 1, "rating": "D", "cost": 18000, "power": 0.18, "bins": 1 },
{ "id": "1i", "grp": "rf", "class": 1, "rating": "C", "cost": 54000, "power": 0.23, "bins": 2 },
{ "id": "1h", "grp": "rf", "class": 1, "rating": "B", "cost": 162000, "power": 0.28, "bins": 3 },
{ "id": "1g", "grp": "rf", "class": 1, "rating": "A", "cost": 486000, "power": 0.32, "bins": 4 }
]
}

View File

@@ -38,11 +38,10 @@
"grp": "sc",
"name": "Detailed Surface Scanner",
"class": 1,
"retractedOnly": 1,
"rating": "C",
"cost": 250000,
"mass": 1.3,
"power": 0.6,
"power": 0,
"rangeLS": 0.33
}
]

View File

@@ -1,51 +1,51 @@
{
"scb": [
{ "id": "65", "grp": "scb", "class": 8, "rating": "E", "cost": 697584, "mass": 160, "power": 1.44, "cells": 6, "rechargeRating": "C", "recharge": 0 },
{ "id": "64", "grp": "scb", "class": 8, "rating": "D", "cost": 1743961, "mass": 64, "power": 1.92, "cells": 4, "rechargeRating": "C", "recharge": 0 },
{ "id": "63", "grp": "scb", "class": 8, "rating": "C", "cost": 4359903, "mass": 160, "power": 2.4, "cells": 5, "rechargeRating": "B", "recharge": 0 },
{ "id": "62", "grp": "scb", "class": 8, "rating": "B", "cost": 10899756, "mass": 256, "power": 2.88, "cells": 6, "rechargeRating": "A", "recharge": 0 },
{ "id": "61", "grp": "scb", "class": 8, "rating": "A", "cost": 27249391, "mass": 160, "power": 3.36, "cells": 5, "rechargeRating": "A", "recharge": 0 },
{ "id": "65", "grp": "scb", "class": 8, "rating": "E", "cost": 697580, "mass": 160, "power": 1.44, "cells": 6, "rechargeRating": "C", "recharge": 105, "ammocost": 300 },
{ "id": "64", "grp": "scb", "class": 8, "rating": "D", "cost": 1743960, "mass": 64, "power": 1.92, "cells": 4, "rechargeRating": "C", "recharge": 140, "ammocost": 300 },
{ "id": "63", "grp": "scb", "class": 8, "rating": "C", "cost": 4359900, "mass": 160, "power": 2.4, "cells": 5, "rechargeRating": "B", "recharge": 175, "ammocost": 300 },
{ "id": "62", "grp": "scb", "class": 8, "rating": "B", "cost": 10899760, "mass": 256, "power": 2.88, "cells": 6, "rechargeRating": "A", "recharge": 210, "ammocost": 300 },
{ "id": "61", "grp": "scb", "class": 8, "rating": "A", "cost": 27249390, "mass": 160, "power": 3.36, "cells": 5, "rechargeRating": "A", "recharge": 245, "ammocost": 300 },
{ "id": "60", "grp": "scb", "class": 7, "rating": "E", "cost": 249137, "mass": 80, "power": 1.24, "cells": 6, "rechargeRating": "D", "recharge": 97 },
{ "id": "5v", "grp": "scb", "class": 7, "rating": "D", "cost": 622843, "mass": 32, "power": 1.66, "cells": 4, "rechargeRating": "C", "recharge": 130 },
{ "id": "5u", "grp": "scb", "class": 7, "rating": "C", "cost": 1557108, "mass": 80, "power": 2.07, "cells": 5, "rechargeRating": "B", "recharge": 163 },
{ "id": "5t", "grp": "scb", "class": 7, "rating": "B", "cost": 3892770, "mass": 128, "power": 2.48, "cells": 6, "rechargeRating": "B", "recharge": 197 },
{ "id": "5s", "grp": "scb", "class": 7, "rating": "A", "cost": 9731925, "mass": 80, "power": 2.9, "cells": 5, "rechargeRating": "A", "recharge": 230 },
{ "id": "60", "grp": "scb", "class": 7, "rating": "E", "cost": 249140, "mass": 80, "power": 1.24, "cells": 6, "rechargeRating": "D", "recharge": 95, "ammocost": 300 },
{ "id": "5v", "grp": "scb", "class": 7, "rating": "D", "cost": 622840, "mass": 32, "power": 1.66, "cells": 4, "rechargeRating": "C", "recharge": 130, "ammocost": 300 },
{ "id": "5u", "grp": "scb", "class": 7, "rating": "C", "cost": 1557110, "mass": 80, "power": 2.07, "cells": 5, "rechargeRating": "B", "recharge": 160, "ammocost": 300 },
{ "id": "5t", "grp": "scb", "class": 7, "rating": "B", "cost": 3892770, "mass": 128, "power": 2.48, "cells": 6, "rechargeRating": "B", "recharge": 195, "ammocost": 300 },
{ "id": "5s", "grp": "scb", "class": 7, "rating": "A", "cost": 9731930, "mass": 80, "power": 2.9, "cells": 5, "rechargeRating": "A", "recharge": 225, "ammocost": 300 },
{ "id": "5r", "grp": "scb", "class": 6, "rating": "E", "cost": 88978, "mass": 40, "power": 1.06, "cells": 6, "rechargeRating": "D", "recharge": 92 },
{ "id": "5q", "grp": "scb", "class": 6, "rating": "D", "cost": 222444, "mass": 16, "power": 1.42, "cells": 4, "rechargeRating": "C", "recharge": 120 },
{ "id": "5p", "grp": "scb", "class": 6, "rating": "C", "cost": 556110, "mass": 40, "power": 1.77, "cells": 5, "rechargeRating": "C", "recharge": 148 },
{ "id": "5o", "grp": "scb", "class": 6, "rating": "B", "cost": 1390275, "mass": 64, "power": 2.12, "cells": 6, "rechargeRating": "B", "recharge": 176 },
{ "id": "5n", "grp": "scb", "class": 6, "rating": "A", "cost": 3475688, "mass": 40, "power": 2.48, "cells": 5, "rechargeRating": "A", "recharge": 204 },
{ "id": "5r", "grp": "scb", "class": 6, "rating": "E", "cost": 88980, "mass": 40, "power": 1.06, "cells": 6, "rechargeRating": "D", "recharge": 90, "ammocost": 300 },
{ "id": "5q", "grp": "scb", "class": 6, "rating": "D", "cost": 222440, "mass": 16, "power": 1.42, "cells": 4, "rechargeRating": "C", "recharge": 115, "ammocost": 300 },
{ "id": "5p", "grp": "scb", "class": 6, "rating": "C", "cost": 556110, "mass": 40, "power": 1.77, "cells": 5, "rechargeRating": "C", "recharge": 145, "ammocost": 300 },
{ "id": "5o", "grp": "scb", "class": 6, "rating": "B", "cost": 1390280, "mass": 64, "power": 2.12, "cells": 6, "rechargeRating": "B", "recharge": 175, "ammocost": 300 },
{ "id": "5n", "grp": "scb", "class": 6, "rating": "A", "cost": 3475690, "mass": 40, "power": 2.48, "cells": 5, "rechargeRating": "A", "recharge": 205, "ammocost": 300 },
{ "id": "5m", "grp": "scb", "class": 5, "rating": "E", "cost": 31778, "mass": 20, "power": 0.9, "cells": 5, "rechargeRating": "D", "recharge": 82 },
{ "id": "5l", "grp": "scb", "class": 5, "rating": "D", "cost": 79444, "mass": 8, "power": 1.2, "cells": 3, "rechargeRating": "C", "recharge": 109 },
{ "id": "5k", "grp": "scb", "class": 5, "rating": "C", "cost": 198611, "mass": 20, "power": 1.5, "cells": 4, "rechargeRating": "C", "recharge": 135 },
{ "id": "5j", "grp": "scb", "class": 5, "rating": "B", "cost": 496527, "mass": 32, "power": 1.8, "cells": 5, "rechargeRating": "B", "recharge": 162 },
{ "id": "5i", "grp": "scb", "class": 5, "rating": "A", "cost": 1241317, "mass": 20, "power": 2.1, "cells": 4, "rechargeRating": "B", "recharge": 189 },
{ "id": "5m", "grp": "scb", "class": 5, "rating": "E", "cost": 31780, "mass": 20, "power": 0.9, "cells": 5, "rechargeRating": "D", "recharge": 80, "ammocost": 300 },
{ "id": "5l", "grp": "scb", "class": 5, "rating": "D", "cost": 79440, "mass": 8, "power": 1.2, "cells": 3, "rechargeRating": "C", "recharge": 105, "ammocost": 300 },
{ "id": "5k", "grp": "scb", "class": 5, "rating": "C", "cost": 198610, "mass": 20, "power": 1.5, "cells": 4, "rechargeRating": "C", "recharge": 130, "ammocost": 300 },
{ "id": "5j", "grp": "scb", "class": 5, "rating": "B", "cost": 496530, "mass": 32, "power": 1.8, "cells": 5, "rechargeRating": "B", "recharge": 160, "ammocost": 300 },
{ "id": "5i", "grp": "scb", "class": 5, "rating": "A", "cost": 1241320, "mass": 20, "power": 2.1, "cells": 4, "rechargeRating": "B", "recharge": 185, "ammocost": 300 },
{ "id": "5h", "grp": "scb", "class": 4, "rating": "E", "cost": 11349, "mass": 10, "power": 0.74, "cells": 5, "rechargeRating": "D", "recharge": 72 },
{ "id": "5g", "grp": "scb", "class": 4, "rating": "D", "cost": 28373, "mass": 4, "power": 0.98, "cells": 3, "rechargeRating": "D", "recharge": 94 },
{ "id": "5f", "grp": "scb", "class": 4, "rating": "C", "cost": 70932, "mass": 10, "power": 1.23, "cells": 4, "rechargeRating": "C", "recharge": 117 },
{ "id": "5e", "grp": "scb", "class": 4, "rating": "B", "cost": 177331, "mass": 16, "power": 1.48, "cells": 5, "rechargeRating": "C", "recharge": 140 },
{ "id": "5d", "grp": "scb", "class": 4, "rating": "A", "cost": 443328, "mass": 10, "power": 1.72, "cells": 4, "rechargeRating": "B", "recharge": 163 },
{ "id": "5h", "grp": "scb", "class": 4, "rating": "E", "cost": 11350, "mass": 10, "power": 0.74, "cells": 5, "rechargeRating": "D", "recharge": 70, "ammocost": 300 },
{ "id": "5g", "grp": "scb", "class": 4, "rating": "D", "cost": 28370, "mass": 4, "power": 0.98, "cells": 3, "rechargeRating": "D", "recharge": 90, "ammocost": 300 },
{ "id": "5f", "grp": "scb", "class": 4, "rating": "C", "cost": 70930, "mass": 10, "power": 1.23, "cells": 4, "rechargeRating": "C", "recharge": 115, "ammocost": 300 },
{ "id": "5e", "grp": "scb", "class": 4, "rating": "B", "cost": 177330, "mass": 16, "power": 1.48, "cells": 5, "rechargeRating": "C", "recharge": 140, "ammocost": 300 },
{ "id": "5d", "grp": "scb", "class": 4, "rating": "A", "cost": 443330, "mass": 10, "power": 1.72, "cells": 4, "rechargeRating": "B", "recharge": 160, "ammocost": 300 },
{ "id": "5c", "grp": "scb", "class": 3, "rating": "E", "cost": 4053, "mass": 5, "power": 0.61, "cells": 5, "rechargeRating": "D", "recharge": 61 },
{ "id": "5b", "grp": "scb", "class": 3, "rating": "D", "cost": 10133, "mass": 2, "power": 0.82, "cells": 3, "rechargeRating": "D", "recharge": 80 },
{ "id": "5a", "grp": "scb", "class": 3, "rating": "C", "cost": 25333, "mass": 5, "power": 1.02, "cells": 4, "rechargeRating": "D", "recharge": 100 },
{ "id": "59", "grp": "scb", "class": 3, "rating": "B", "cost": 63333, "mass": 8, "power": 1.22, "cells": 5, "rechargeRating": "C", "recharge": 119 },
{ "id": "58", "grp": "scb", "class": 3, "rating": "A", "cost": 158331, "mass": 5, "power": 1.43, "cells": 4, "rechargeRating": "C", "recharge": 138 },
{ "id": "5c", "grp": "scb", "class": 3, "rating": "E", "cost": 4050, "mass": 5, "power": 0.61, "cells": 5, "rechargeRating": "D", "recharge": 60, "ammocost": 300 },
{ "id": "5b", "grp": "scb", "class": 3, "rating": "D", "cost": 10130, "mass": 2, "power": 0.82, "cells": 3, "rechargeRating": "D", "recharge": 75, "ammocost": 300 },
{ "id": "5a", "grp": "scb", "class": 3, "rating": "C", "cost": 25330, "mass": 5, "power": 1.02, "cells": 4, "rechargeRating": "D", "recharge": 95, "ammocost": 300 },
{ "id": "59", "grp": "scb", "class": 3, "rating": "B", "cost": 63330, "mass": 8, "power": 1.22, "cells": 5, "rechargeRating": "C", "recharge": 115, "ammocost": 300 },
{ "id": "58", "grp": "scb", "class": 3, "rating": "A", "cost": 158330, "mass": 5, "power": 1.43, "cells": 4, "rechargeRating": "C", "recharge": 135, "ammocost": 300 },
{ "id": "57", "grp": "scb", "class": 2, "rating": "E", "cost": 1448, "mass": 2.5, "power": 0.5, "cells": 5, "rechargeRating": "E", "recharge": 46 },
{ "id": "56", "grp": "scb", "class": 2, "rating": "D", "cost": 3619, "mass": 1, "power": 0.67, "cells": 3, "rechargeRating": "D", "recharge": 61 },
{ "id": "55", "grp": "scb", "class": 2, "rating": "C", "cost": 9048, "mass": 2.5, "power": 0.84, "cells": 4, "rechargeRating": "D", "recharge": 77 },
{ "id": "54", "grp": "scb", "class": 2, "rating": "B", "cost": 22619, "mass": 4, "power": 1.01, "cells": 5, "rechargeRating": "D", "recharge": 92 },
{ "id": "53", "grp": "scb", "class": 2, "rating": "A", "cost": 56547, "mass": 2.5, "power": 1.18, "cells": 4, "rechargeRating": "C", "recharge": 107 },
{ "id": "57", "grp": "scb", "class": 2, "rating": "E", "cost": 1450, "mass": 2.5, "power": 0.5, "cells": 5, "rechargeRating": "E", "recharge": 45, "ammocost": 300 },
{ "id": "56", "grp": "scb", "class": 2, "rating": "D", "cost": 3620, "mass": 1, "power": 0.67, "cells": 3, "rechargeRating": "D", "recharge": 60, "ammocost": 300 },
{ "id": "55", "grp": "scb", "class": 2, "rating": "C", "cost": 9050, "mass": 2.5, "power": 0.84, "cells": 4, "rechargeRating": "D", "recharge": 75, "ammocost": 300 },
{ "id": "54", "grp": "scb", "class": 2, "rating": "B", "cost": 22620, "mass": 4, "power": 1.01, "cells": 5, "rechargeRating": "D", "recharge": 90, "ammocost": 300 },
{ "id": "53", "grp": "scb", "class": 2, "rating": "A", "cost": 56550, "mass": 2.5, "power": 1.18, "cells": 4, "rechargeRating": "C", "recharge": 105, "ammocost": 300 },
{ "id": "52", "grp": "scb", "class": 1, "rating": "E", "cost": 517, "mass": 1.3, "power": 0.41, "cells": 4, "rechargeRating": "E", "recharge": 31 },
{ "id": "51", "grp": "scb", "class": 1, "rating": "D", "cost": 1293, "mass": 0.5, "power": 0.55, "cells": 2, "rechargeRating": "E", "recharge": 41 },
{ "id": "50", "grp": "scb", "class": 1, "rating": "C", "cost": 3231, "mass": 1.3, "power": 0.69, "cells": 3, "rechargeRating": "D", "recharge": 51 },
{ "id": "4v", "grp": "scb", "class": 1, "rating": "B", "cost": 8078, "mass": 2, "power": 0.83, "cells": 4, "rechargeRating": "D", "recharge": 61 },
{ "id": "4u", "grp": "scb", "class": 1, "rating": "A", "cost": 20195, "mass": 1.3, "power": 0.97, "cells": 3, "rechargeRating": "D", "recharge": 72 }
{ "id": "52", "grp": "scb", "class": 1, "rating": "E", "cost": 520, "mass": 1.3, "power": 0.41, "cells": 4, "rechargeRating": "E", "recharge": 30, "ammocost": 300 },
{ "id": "51", "grp": "scb", "class": 1, "rating": "D", "cost": 1290, "mass": 0.5, "power": 0.55, "cells": 2, "rechargeRating": "E", "recharge": 40, "ammocost": 300 },
{ "id": "50", "grp": "scb", "class": 1, "rating": "C", "cost": 3230, "mass": 1.3, "power": 0.69, "cells": 3, "rechargeRating": "D", "recharge": 50, "ammocost": 300 },
{ "id": "4v", "grp": "scb", "class": 1, "rating": "B", "cost": 8080, "mass": 2, "power": 0.83, "cells": 4, "rechargeRating": "D", "recharge": 60, "ammocost": 300 },
{ "id": "4u", "grp": "scb", "class": 1, "rating": "A", "cost": 20200, "mass": 1.3, "power": 0.97, "cells": 3, "rechargeRating": "D", "recharge": 70, "ammocost": 300 }
]
}

View File

@@ -1,39 +1,45 @@
{
"sg": [
{ "id": "4t", "grp": "sg", "class": 8, "rating": "E", "cost": 2007241, "mass": 160, "power": 2.4, "minmass": 900, "optmass": 1800, "maxmass": 4500, "minmul": 1.3, "optmul": 0.8, "maxmul": 0.3 },
{ "id": "4s", "grp": "sg", "class": 8, "rating": "D", "cost": 6021722, "mass": 64, "power": 3.2, "minmass": 900, "optmass": 1800, "maxmass": 4500, "minmul": 1.4, "optmul": 0.9, "maxmul": 0.4 },
{ "id": "4r", "grp": "sg", "class": 8, "rating": "C", "cost": 18065165, "mass": 160, "power": 4, "minmass": 900, "optmass": 1800, "maxmass": 4500, "minmul": 1.5, "optmul": 1, "maxmul": 0.5 },
{ "id": "4q", "grp": "sg", "class": 8, "rating": "B", "cost": 54195495, "mass": 256, "power": 4.8, "minmass": 900, "optmass": 1800, "maxmass": 4500, "minmul": 1.6, "optmul": 1.1, "maxmul": 0.6 },
{ "id": "4p", "grp": "sg", "class": 8, "rating": "A", "cost": 162586486, "mass": 160, "power": 5.6, "minmass": 900, "optmass": 1800, "maxmass": 4500, "minmul": 1.7, "optmul": 1.2, "maxmul": 0.7 },
{ "id": "4o", "grp": "sg", "class": 7, "rating": "E", "cost": 633199, "mass": 80, "power": 2.1, "minmass": 530, "optmass": 1060, "maxmass": 2650, "minmul": 1.3, "optmul": 0.8, "maxmul": 0.3 },
{ "id": "4n", "grp": "sg", "class": 7, "rating": "D", "cost": 1899597, "mass": 32, "power": 2.8, "minmass": 530, "optmass": 1060, "maxmass": 2650, "minmul": 1.4, "optmul": 0.9, "maxmul": 0.4 },
{ "id": "4t", "grp": "sg", "class": 8, "rating": "E", "cost": 2007240, "mass": 160, "power": 2.4, "minmass": 900, "optmass": 1800, "maxmass": 4500, "minmul": 1.3, "optmul": 0.8, "maxmul": 0.3 },
{ "id": "4s", "grp": "sg", "class": 8, "rating": "D", "cost": 6021720, "mass": 64, "power": 3.2, "minmass": 900, "optmass": 1800, "maxmass": 4500, "minmul": 1.4, "optmul": 0.9, "maxmul": 0.4 },
{ "id": "4r", "grp": "sg", "class": 8, "rating": "C", "cost": 18065170, "mass": 160, "power": 4, "minmass": 900, "optmass": 1800, "maxmass": 4500, "minmul": 1.5, "optmul": 1, "maxmul": 0.5 },
{ "id": "4q", "grp": "sg", "class": 8, "rating": "B", "cost": 54195500, "mass": 256, "power": 4.8, "minmass": 900, "optmass": 1800, "maxmass": 4500, "minmul": 1.6, "optmul": 1.1, "maxmul": 0.6 },
{ "id": "4p", "grp": "sg", "class": 8, "rating": "A", "cost": 162586490, "mass": 160, "power": 5.6, "minmass": 900, "optmass": 1800, "maxmass": 4500, "minmul": 1.7, "optmul": 1.2, "maxmul": 0.7 },
{ "id": "4o", "grp": "sg", "class": 7, "rating": "E", "cost": 633200, "mass": 80, "power": 2.1, "minmass": 530, "optmass": 1060, "maxmass": 2650, "minmul": 1.3, "optmul": 0.8, "maxmul": 0.3 },
{ "id": "4n", "grp": "sg", "class": 7, "rating": "D", "cost": 1899600, "mass": 32, "power": 2.8, "minmass": 530, "optmass": 1060, "maxmass": 2650, "minmul": 1.4, "optmul": 0.9, "maxmul": 0.4 },
{ "id": "4m", "grp": "sg", "class": 7, "rating": "C", "cost": 5698790, "mass": 80, "power": 3.5, "minmass": 530, "optmass": 1060, "maxmass": 2650, "minmul": 1.5, "optmul": 1, "maxmul": 0.5 },
{ "id": "4l", "grp": "sg", "class": 7, "rating": "B", "cost": 17096371, "mass": 128, "power": 4.2, "minmass": 530, "optmass": 1060, "maxmass": 2650, "minmul": 1.6, "optmul": 1.1, "maxmul": 0.6 },
{ "id": "4k", "grp": "sg", "class": 7, "rating": "A", "cost": 51289112, "mass": 80, "power": 4.9, "minmass": 530, "optmass": 1060, "maxmass": 2650, "minmul": 1.7, "optmul": 1.2, "maxmul": 0.7 },
{ "id": "4j", "grp": "sg", "class": 6, "rating": "E", "cost": 199747, "mass": 40, "power": 1.86, "minmass": 270, "optmass": 540, "maxmass": 1350, "minmul": 1.3, "optmul": 0.8, "maxmul": 0.3 },
{ "id": "4i", "grp": "sg", "class": 6, "rating": "D", "cost": 599242, "mass": 16, "power": 2.48, "minmass": 270, "optmass": 540, "maxmass": 1350, "minmul": 1.4, "optmul": 0.9, "maxmul": 0.4 },
{ "id": "4h", "grp": "sg", "class": 6, "rating": "C", "cost": 1797726, "mass": 40, "power": 3.1, "minmass": 270, "optmass": 540, "maxmass": 1350, "minmul": 1.5, "optmul": 1, "maxmul": 0.5 },
{ "id": "4g", "grp": "sg", "class": 6, "rating": "B", "cost": 5393177, "mass": 64, "power": 3.72, "minmass": 270, "optmass": 540, "maxmass": 1350, "minmul": 1.6, "optmul": 1.1, "maxmul": 0.6 },
{ "id": "4f", "grp": "sg", "class": 6, "rating": "A", "cost": 16179531, "mass": 40, "power": 4.34, "minmass": 270, "optmass": 540, "maxmass": 1350, "minmul": 1.7, "optmul": 1.2, "maxmul": 0.7 },
{ "id": "4e", "grp": "sg", "class": 5, "rating": "E", "cost": 63012, "mass": 20, "power": 1.56, "minmass": 203, "optmass": 405, "maxmass": 1013, "minmul": 1.3, "optmul": 0.8, "maxmul": 0.3 },
{ "id": "4d", "grp": "sg", "class": 5, "rating": "D", "cost": 189035, "mass": 8, "power": 2.08, "minmass": 203, "optmass": 405, "maxmass": 1013, "minmul": 1.4, "optmul": 0.9, "maxmul": 0.4 },
{ "id": "4c", "grp": "sg", "class": 5, "rating": "C", "cost": 567106, "mass": 20, "power": 2.6, "minmass": 203, "optmass": 405, "maxmass": 1013, "minmul": 1.5, "optmul": 1, "maxmul": 0.5 },
{ "id": "4b", "grp": "sg", "class": 5, "rating": "B", "cost": 1701318, "mass": 32, "power": 3.12, "minmass": 203, "optmass": 405, "maxmass": 1013, "minmul": 1.6, "optmul": 1.1, "maxmul": 0.6 },
{ "id": "4a", "grp": "sg", "class": 5, "rating": "A", "cost": 5103953, "mass": 20, "power": 3.64, "minmass": 203, "optmass": 405, "maxmass": 1013, "minmul": 1.7, "optmul": 1.2, "maxmul": 0.7 },
{ "id": "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 },
{ "id": "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 },
{ "id": "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 },
{ "id": "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 },
{ "id": "4l", "grp": "sg", "class": 7, "rating": "B", "cost": 17096370, "mass": 128, "power": 4.2, "minmass": 530, "optmass": 1060, "maxmass": 2650, "minmul": 1.6, "optmul": 1.1, "maxmul": 0.6 },
{ "id": "4k", "grp": "sg", "class": 7, "rating": "A", "cost": 51289110, "mass": 80, "power": 4.9, "minmass": 530, "optmass": 1060, "maxmass": 2650, "minmul": 1.7, "optmul": 1.2, "maxmul": 0.7 },
{ "id": "4j", "grp": "sg", "class": 6, "rating": "E", "cost": 199750, "mass": 40, "power": 1.86, "minmass": 270, "optmass": 540, "maxmass": 1350, "minmul": 1.3, "optmul": 0.8, "maxmul": 0.3 },
{ "id": "4i", "grp": "sg", "class": 6, "rating": "D", "cost": 599240, "mass": 16, "power": 2.48, "minmass": 270, "optmass": 540, "maxmass": 1350, "minmul": 1.4, "optmul": 0.9, "maxmul": 0.4 },
{ "id": "4h", "grp": "sg", "class": 6, "rating": "C", "cost": 1797730, "mass": 40, "power": 3.1, "minmass": 270, "optmass": 540, "maxmass": 1350, "minmul": 1.5, "optmul": 1, "maxmul": 0.5 },
{ "id": "4g", "grp": "sg", "class": 6, "rating": "B", "cost": 5393180, "mass": 64, "power": 3.72, "minmass": 270, "optmass": 540, "maxmass": 1350, "minmul": 1.6, "optmul": 1.1, "maxmul": 0.6 },
{ "id": "4f", "grp": "sg", "class": 6, "rating": "A", "cost": 16179530, "mass": 40, "power": 4.34, "minmass": 270, "optmass": 540, "maxmass": 1350, "minmul": 1.7, "optmul": 1.2, "maxmul": 0.7 },
{ "id": "4e", "grp": "sg", "class": 5, "rating": "E", "cost": 63010, "mass": 20, "power": 1.56, "minmass": 203, "optmass": 405, "maxmass": 1013, "minmul": 1.3, "optmul": 0.8, "maxmul": 0.3 },
{ "id": "4d", "grp": "sg", "class": 5, "rating": "D", "cost": 189040, "mass": 8, "power": 2.08, "minmass": 203, "optmass": 405, "maxmass": 1013, "minmul": 1.4, "optmul": 0.9, "maxmul": 0.4 },
{ "id": "4c", "grp": "sg", "class": 5, "rating": "C", "cost": 567110, "mass": 20, "power": 2.6, "minmass": 203, "optmass": 405, "maxmass": 1013, "minmul": 1.5, "optmul": 1, "maxmul": 0.5 },
{ "id": "4b", "grp": "sg", "class": 5, "rating": "B", "cost": 1701320, "mass": 32, "power": 3.12, "minmass": 203, "optmass": 405, "maxmass": 1013, "minmul": 1.6, "optmul": 1.1, "maxmul": 0.6 },
{ "id": "4a", "grp": "sg", "class": 5, "rating": "A", "cost": 5103950, "mass": 20, "power": 3.64, "minmass": 203, "optmass": 405, "maxmass": 1013, "minmul": 1.7, "optmul": 1.2, "maxmul": 0.7 },
{ "id": "49", "grp": "sg", "class": 4, "rating": "E", "cost": 19880, "mass": 10, "power": 1.32, "minmass": 143, "optmass": 285, "maxmass": 713, "minmul": 1.3, "optmul": 0.8, "maxmul": 0.3 },
{ "id": "48", "grp": "sg", "class": 4, "rating": "D", "cost": 59630, "mass": 4, "power": 1.76, "minmass": 143, "optmass": 285, "maxmass": 713, "minmul": 1.4, "optmul": 0.9, "maxmul": 0.4 },
{ "id": "47", "grp": "sg", "class": 4, "rating": "C", "cost": 178900, "mass": 10, "power": 2.2, "minmass": 143, "optmass": 285, "maxmass": 713, "minmul": 1.5, "optmul": 1, "maxmul": 0.5 },
{ "id": "46", "grp": "sg", "class": 4, "rating": "B", "cost": 536690, "mass": 16, "power": 2.64, "minmass": 143, "optmass": 285, "maxmass": 713, "minmul": 1.6, "optmul": 1.1, "maxmul": 0.6 },
{ "id": "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 },
{ "id": "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 },
{ "id": "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 },
{ "id": "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 },
{ "id": "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 },
{ "id": "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 },
{ "id": "3v", "grp": "sg", "class": 2, "rating": "E", "cost": 1978, "mass": 2.5, "power": 0.9, "minmass": 28, "optmass": 55, "maxmass": 138, "minmul": 1.3, "optmul": 0.8, "maxmul": 0.3 },
{ "id": "3u", "grp": "sg", "class": 2, "rating": "D", "cost": 5934, "mass": 1, "power": 1.2, "minmass": 28, "optmass": 55, "maxmass": 138, "minmul": 1.4, "optmul": 0.9, "maxmul": 0.4 },
{ "id": "3t", "grp": "sg", "class": 2, "rating": "C", "cost": 17803, "mass": 2.5, "power": 1.5, "minmass": 28, "optmass": 55, "maxmass": 138, "minmul": 1.5, "optmul": 1, "maxmul": 0.5 },
{ "id": "3s", "grp": "sg", "class": 2, "rating": "B", "cost": 53408, "mass": 4, "power": 1.8, "minmass": 28, "optmass": 55, "maxmass": 138, "minmul": 1.6, "optmul": 1.1, "maxmul": 0.6 },
{ "id": "3r", "grp": "sg", "class": 2, "rating": "A", "cost": 160224, "mass": 2.5, "power": 2.1, "minmass": 28, "optmass": 55, "maxmass": 138, "minmul": 1.7, "optmul": 1.2, "maxmul": 0.7 }
{ "id": "44", "grp": "sg", "class": 3, "rating": "E", "cost": 6270, "mass": 5, "power": 1.08, "minmass": 83, "optmass": 165, "maxmass": 413, "minmul": 1.3, "optmul": 0.8, "maxmul": 0.3 },
{ "id": "43", "grp": "sg", "class": 3, "rating": "D", "cost": 18810, "mass": 2, "power": 1.44, "minmass": 83, "optmass": 165, "maxmass": 413, "minmul": 1.4, "optmul": 0.9, "maxmul": 0.4 },
{ "id": "42", "grp": "sg", "class": 3, "rating": "C", "cost": 56440, "mass": 5, "power": 1.8, "minmass": 83, "optmass": 165, "maxmass": 413, "minmul": 1.5, "optmul": 1, "maxmul": 0.5 },
{ "id": "41", "grp": "sg", "class": 3, "rating": "B", "cost": 169300, "mass": 8, "power": 2.16, "minmass": 83, "optmass": 165, "maxmass": 413, "minmul": 1.6, "optmul": 1.1, "maxmul": 0.6 },
{ "id": "40", "grp": "sg", "class": 3, "rating": "A", "cost": 507910, "mass": 5, "power": 2.52, "minmass": 83, "optmass": 165, "maxmass": 413, "minmul": 1.7, "optmul": 1.2, "maxmul": 0.7 },
{ "id": "3v", "grp": "sg", "class": 2, "rating": "E", "cost": 1980, "mass": 2.5, "power": 0.9, "minmass": 28, "optmass": 55, "maxmass": 138, "minmul": 1.3, "optmul": 0.8, "maxmul": 0.3 },
{ "id": "3u", "grp": "sg", "class": 2, "rating": "D", "cost": 5930, "mass": 1, "power": 1.2, "minmass": 28, "optmass": 55, "maxmass": 138, "minmul": 1.4, "optmul": 0.9, "maxmul": 0.4 },
{ "id": "3t", "grp": "sg", "class": 2, "rating": "C", "cost": 17800, "mass": 2.5, "power": 1.5, "minmass": 28, "optmass": 55, "maxmass": 138, "minmul": 1.5, "optmul": 1, "maxmul": 0.5 },
{ "id": "3s", "grp": "sg", "class": 2, "rating": "B", "cost": 53410, "mass": 4, "power": 1.8, "minmass": 28, "optmass": 55, "maxmass": 138, "minmul": 1.6, "optmul": 1.1, "maxmul": 0.6 },
{ "id": "3r", "grp": "sg", "class": 2, "rating": "A", "cost": 160220, "mass": 2.5, "power": 2.1, "minmass": 28, "optmass": 55, "maxmass": 138, "minmul": 1.7, "optmul": 1.2, "maxmul": 0.7 }
]
}

View File

@@ -4,7 +4,7 @@
"name": "Adder",
"manufacturer": "Zorgon Peterson",
"class": 1,
"hullCost": 39993,
"hullCost": 40000,
"speed": 220,
"boost": 320,
"boostEnergy": 9,
@@ -15,7 +15,7 @@
"masslock": 7,
"pipSpeed": 0.13625
},
"retailCost": 87808,
"retailCost": 87810,
"slots": {
"common": [
3,

View File

@@ -4,7 +4,7 @@
"name": "Anaconda",
"manufacturer": "Faulcon DeLacy",
"class": 3,
"hullCost": 141889932,
"hullCost": 141889930,
"speed": 180,
"boost": 240,
"boostEnergy": 29,
@@ -15,7 +15,7 @@
"masslock": 23,
"pipSpeed": 0.13875
},
"retailCost": 146969451,
"retailCost": 146969450,
"slots": {
"common": [
8,

View File

@@ -4,7 +4,7 @@
"name": "Asp Explorer",
"manufacturer": "Lakon",
"class": 2,
"hullCost": 6135658,
"hullCost": 6135660,
"speed": 250,
"boost": 340,
"boostEnergy": 14,
@@ -15,7 +15,7 @@
"masslock": 11,
"pipSpeed": 0.13
},
"retailCost": 6661153,
"retailCost": 6661150,
"slots": {
"common": [
5,

View File

@@ -4,7 +4,7 @@
"name": "Cobra Mk III",
"manufacturer": "Faulcon DeLacy",
"class": 1,
"hullCost": 235787,
"hullCost": 235800,
"speed": 280,
"boost": 400,
"boostEnergy": 11,
@@ -15,7 +15,7 @@
"masslock": 8,
"pipSpeed": 0.125
},
"retailCost": 379718,
"retailCost": 379720,
"slots": {
"common": [
4,

View File

@@ -4,7 +4,7 @@
"name": "Diamondback Explorer",
"manufacturer": "Lakon",
"class": 1,
"hullCost": 1635691,
"hullCost": 1635700,
"speed": 260,
"boost": 340,
"boostEnergy": 14,

View File

@@ -4,7 +4,7 @@
"name": "Diamondback Scout",
"manufacturer": "Lakon",
"class": 1,
"hullCost": 461341,
"hullCost": 461340,
"speed": 283,
"boost": 380,
"boostEnergy": 11,
@@ -15,8 +15,7 @@
"masslock": 8,
"pipSpeed": 0.09875
},
"retailCost": 564329,
"minMassFilter": 180.5,
"retailCost": 564330,
"slots": {
"common": [
4,

View File

@@ -4,7 +4,7 @@
"name": "Eagle",
"manufacturer": "Core Dynamics",
"class": 1,
"hullCost": 10446,
"hullCost": 10440,
"speed": 240,
"boost": 350,
"boostEnergy": 9,

View File

@@ -4,7 +4,7 @@
"name": "Federal Assault Ship",
"manufacturer": "Core Dynamics",
"class": 2,
"hullCost": 19071993,
"hullCost": 19072000,
"speed": 210,
"boost": 350,
"boostEnergy": 21,
@@ -15,7 +15,7 @@
"masslock": 14,
"pipSpeed": 0.11125
},
"retailCost": 19814205,
"retailCost": 19814210,
"slots": {
"common": [
6,

View File

@@ -4,7 +4,7 @@
"name": "Federal Dropship",
"manufacturer": "Core Dynamics",
"class": 2,
"hullCost": 18969990,
"hullCost": 13469990,
"speed": 180,
"boost": 300,
"boostEnergy": 21,
@@ -15,7 +15,7 @@
"masslock": 14,
"pipSpeed": 0.0725
},
"retailCost": 19814205,
"retailCost": 14314210,
"slots": {
"common": [
6,

View File

@@ -4,7 +4,7 @@
"name": "Federal Gunship",
"manufacturer": "Core Dynamics",
"class": 2,
"hullCost": 44774591,
"hullCost": 34774790,
"speed": 170,
"boost": 280,
"boostEnergy": 21,
@@ -15,7 +15,7 @@
"masslock": 14,
"pipSpeed": 0.1025
},
"retailCost": 45814000,
"retailCost": 35814210,
"slots": {
"common": [
6,

View File

@@ -4,7 +4,7 @@
"name": "Hauler",
"manufacturer": "Zorgon Peterson",
"class": 1,
"hullCost": 29807,
"hullCost": 29790,
"speed": 200,
"boost": 300,
"agility": 6,

View File

@@ -4,7 +4,7 @@
"name": "Imperial Clipper",
"manufacturer": "Gutamaya",
"class": 3,
"hullCost": 21077784,
"hullCost": 21077780,
"speed": 300,
"boost": 380,
"boostEnergy": 21,

View File

@@ -4,7 +4,7 @@
"name": "Imperial Courier",
"manufacturer": "Gutamaya",
"class": 1,
"hullCost": 2481552,
"hullCost": 2481550,
"speed": 280,
"boost": 380,
"boostEnergy": 11,
@@ -15,7 +15,7 @@
"masslock": 7,
"pipSpeed": 0.05375
},
"retailCost": 2542931,
"retailCost": 2542930,
"slots": {
"common": [
4,

View File

@@ -4,7 +4,7 @@
"name": "Imperial Eagle",
"manufacturer": "Core Dynamics",
"class": 1,
"hullCost": 72186,
"hullCost": 72180,
"speed": 300,
"boost": 400,
"boostEnergy": 9,
@@ -15,7 +15,7 @@
"masslock": 6,
"pipSpeed": 0.075
},
"retailCost": 110833,
"retailCost": 110830,
"slots": {
"common": [
3,

View File

@@ -4,7 +4,7 @@
"name": "Orca",
"manufacturer": "Saud Kruger",
"class": 3,
"hullCost": 47798079,
"hullCost": 47798080,
"speed": 300,
"boost": 380,
"boostEnergy": 17,
@@ -15,7 +15,7 @@
"masslock": 13,
"pipSpeed": 0.08375
},
"retailCost": 48539887,
"retailCost": 48539890,
"slots": {
"common": [
5,

View File

@@ -4,7 +4,7 @@
"name": "Python",
"manufacturer": "Faulcon DeLacy",
"class": 2,
"hullCost": 55171395,
"hullCost": 55171380,
"speed": 230,
"boost": 300,
"boostEnergy": 24,
@@ -15,7 +15,7 @@
"masslock": 17,
"pipSpeed": 0.0975
},
"retailCost": 56978179,
"retailCost": 56978180,
"slots": {
"common": [
7,

View File

@@ -4,7 +4,7 @@
"name": "Sidewinder",
"manufacturer": "Faulcon DeLacy",
"class": 1,
"hullCost": 12887,
"hullCost": 12870,
"speed": 220,
"boost": 320,
"boostEnergy": 7,

View File

@@ -4,7 +4,7 @@
"name": "Type-6 Transporter",
"manufacturer": "Lakon",
"class": 2,
"hullCost": 865782,
"hullCost": 865790,
"speed": 220,
"boost": 350,
"boostEnergy": 11,
@@ -15,7 +15,7 @@
"masslock": 8,
"pipSpeed": 0.1475
},
"retailCost": 1045945,
"retailCost": 1045950,
"slots": {
"common": [
3,

View File

@@ -4,7 +4,7 @@
"name": "Type-7 Transporter",
"manufacturer": "Lakon",
"class": 3,
"hullCost": 16881511,
"hullCost": 16881510,
"speed": 180,
"boost": 300,
"boostEnergy": 11,
@@ -15,7 +15,7 @@
"masslock": 10,
"pipSpeed": 0.16625
},
"retailCost": 17472252,
"retailCost": 17472250,
"slots": {
"common": [
4,

View File

@@ -4,7 +4,7 @@
"name": "Type-9 Heavy",
"manufacturer": "Lakon",
"class": 3,
"hullCost": 73255168,
"hullCost": 73255150,
"speed": 130,
"boost": 200,
"boostEnergy": 21,
@@ -15,7 +15,7 @@
"masslock": 16,
"pipSpeed": 0.17375
},
"retailCost": 76555842,
"retailCost": 76555840,
"slots": {
"common": [
6,

View File

@@ -4,9 +4,9 @@
"name": "Viper",
"manufacturer": "Faulcon DeLacy",
"class": 1,
"hullCost": 95893,
"hullCost": 95900,
"speed": 320,
"boost": 380,
"boost": 400,
"boostEnergy": 11,
"agility": 6,
"baseShieldStrength": 105,
@@ -15,7 +15,7 @@
"masslock": 7,
"pipSpeed": 0.09375
},
"retailCost": 142931,
"retailCost": 142930,
"slots": {
"common": [
3,

View File

@@ -4,7 +4,7 @@
"name": "Vulture",
"manufacturer": "Core Dynamics",
"class": 1,
"hullCost": 4689629,
"hullCost": 4689640,
"speed": 210,
"boost": 340,
"boostEnergy": 17,
@@ -15,7 +15,7 @@
"masslock": 10,
"pipSpeed": 0.02375
},
"retailCost": 4925615,
"retailCost": 4925620,
"slots": {
"common": [
4,

View File

@@ -1,6 +1,6 @@
{
"name": "coriolis_shipyard",
"version": "1.7.1",
"version": "1.8.2",
"repository": {
"type": "git",
"url": "https://github.com/cmmcleod/coriolis"

View File

@@ -27,7 +27,7 @@ function done(err, json) { this(err,json); }
function writeDB(err, arr) {
var ships = {}, internal = {}, hardpoints = {};
var shipOrder = Object.keys(arr[0]).sort();
var shipOrder = Object.keys(arr[0]).sort(function(a,b) { return arr[0][a].properties.name < arr[0][b].properties.name ? -1 : 1; });
var internalOrder = Object.keys(arr[3]).sort();
var hpOrder = [
"pl",

View File

@@ -251,7 +251,7 @@
},
"stats": {
"class": 3,
"hullCost": 141889932,
"hullCost": 141889930,
"speed": 180,
"topSpeed": 186.5,
"boost": 240,
@@ -272,7 +272,7 @@
"armourAdded": 240,
"armourMultiplier": 1.95,
"shieldMultiplier": 1.4,
"totalCost": 882362049,
"totalCost": 882362060,
"unladenMass": 1179.2,
"totalDps": 29,
"powerAvailable": 36,

View File

@@ -41,7 +41,7 @@ describe("Outfit Controller", function() {
expect(scope.retrofitTotal).toEqual(1173200);
expect(scope.retrofitList.length).toEqual(3);
scope.select('i', scope.ship.internal[3], eventStub, "11"); // Use 6A Auto field maintenance unit
expect(scope.retrofitTotal).toEqual(16478701);
expect(scope.retrofitTotal).toEqual(16478700);
expect(scope.retrofitList.length).toEqual(4);
});

View File

@@ -54,18 +54,27 @@ describe("Ship Factory", function() {
testShip.buildWith(buildA);
for(var p in testShip) {
if (p == 'availCS') {
continue;
}
expect(testShip[p]).toEqual(shipA[p], p + ' does not match');
}
testShip.buildWith(buildB);
for(var p in testShip) {
if (p == 'availCS') {
continue;
}
expect(testShip[p]).toEqual(shipB[p], p + ' does not match');
}
testShip.buildWith(buildA);
for(var p in testShip) {
if (p == 'availCS') {
continue;
}
expect(testShip[p]).toEqual(shipA[p], p + ' does not match');
}
});

View File

@@ -47,6 +47,9 @@ describe("Serializer Service", function() {
testBuildB = Serializer.fromDetailedBuild(anacondaTestExport);
for(var p in testBuildB) {
if (p == 'availCS') {
continue;
}
expect(testBuildB[p]).toEqual(testBuildA[p], p + ' does not match');
}