Compare commits

...

36 Commits

Author SHA1 Message Date
Cmdr McDonald
fc649c6bbe Merge branch 'release/2.2.14' 2017-02-08 09:25:31 +00:00
Cmdr McDonald
41bc89df58 Package bump 2017-02-08 09:25:27 +00:00
Cmdr McDonald
229e2742a7 Merge branch 'feature/x' into develop 2017-02-08 09:24:27 +00:00
Cmdr McDonald
6d4f79dda9 Correct EDID for class 6 passenger cabin 2017-02-08 07:58:44 +00:00
Cmdr McDonald
827ed4a6dd Fix incorrect retail price for Keelback 2017-02-05 21:11:45 +00:00
Cmdr McDonald
c82b28448c Separate hidden attribute of modifications 2017-02-05 19:04:41 +00:00
Cmdr McDonald
f3e4a19645 Tidy-ups for blueprint info 2017-02-05 15:34:00 +00:00
Cmdr McDonald
0d803c7c50 Additional data for blueprints 2017-02-05 12:42:18 +00:00
Cmdr McDonald
f02b9e0cac Remove grade 5 life support modifications 2017-02-03 22:29:20 +00:00
Cmdr McDonald
ea9294fd88 Merge branch 'release/2.2.13' into develop 2017-02-02 23:00:04 +00:00
Cmdr McDonald
e020ee62c1 Merge branch 'release/2.2.13' 2017-02-02 23:00:00 +00:00
Cmdr McDonald
fa51463972 Bump package number 2017-02-02 22:59:55 +00:00
Cmdr McDonald
443ce708a5 Merge branch 'feature/fixes' into develop 2017-02-02 22:58:36 +00:00
Cmdr McDonald
1d2bb2d307 Tidy up blueprints 2017-02-01 18:49:53 +00:00
Cmdr McDonald
0026c1026e Dist 2017-02-01 08:49:13 +00:00
Cmdr McDonald
2d6ef26ab2 Tweak hull costs 2017-02-01 08:27:05 +00:00
Cmdr McDonald
3a27604d01 Add plasma slug special for PAs. Fix for #64 2017-01-29 21:50:54 +00:00
Cmdr McDonald
a62adecffa Merge branch 'release/2.2.12' into develop 2017-01-29 08:26:05 +00:00
Cmdr McDonald
67cb16da99 Merge branch 'release/2.2.12' 2017-01-29 08:26:02 +00:00
Cmdr McDonald
913406774c Version number bump 2017-01-29 08:25:55 +00:00
Cmdr McDonald
4e297e01db Merge branch 'feature/specials' into develop 2017-01-29 08:25:18 +00:00
Cmdr McDonald
9e330ea31a Add IDs for most powerplay modules 2017-01-29 08:22:51 +00:00
Cmdr McDonald
ff9060e5f1 Tidy up thruster information 2017-01-27 18:15:51 +00:00
Cmdr McDonald
4ffbab8ef1 Add per-blueprint specials 2017-01-26 16:01:03 +00:00
Cmdr McDonald
3e2b13654d Merge branch 'release/2.2.11' into develop 2017-01-25 19:33:43 +00:00
Cmdr McDonald
2d2f3548b5 Merge branch 'release/2.2.11' 2017-01-25 19:33:39 +00:00
Cmdr McDonald
91bbd53657 Bump version number 2017-01-25 19:33:31 +00:00
Cmdr McDonald
f34c839670 Merge branch 'feature/fixes' into develop 2017-01-25 19:31:51 +00:00
Cmdr McDonald
d6602dca06 Updates 2017-01-25 19:31:47 +00:00
Cmdr McDonald
7a63d71b0f Fixed for frag cannons 2017-01-25 14:25:16 +00:00
Cmdr McDonald
73d1c15609 Remove non-existant AFMU blueprints 2017-01-25 07:43:53 +00:00
Cmdr McDonald
bb3b299c7b dist 2017-01-24 11:50:04 +00:00
Cmdr McDonald
dfdc170639 Fix incorrect values for charge enhanced power distributor. Fixes #55 2017-01-24 11:41:32 +00:00
Cmdr McDonald
93166c2ea1 Changelog 2017-01-24 07:37:13 +00:00
Cmdr McDonald
700f730075 Remove erroneous chaff launcher capacity blueprint grades 2017-01-24 07:36:56 +00:00
Cmdr McDonald
3ad159fc4d Merge branch 'release/2.2.10' into develop 2017-01-23 13:04:12 +00:00
15 changed files with 16886 additions and 9965 deletions

View File

@@ -1,3 +1,23 @@
#2.2.14
* Alter blueprint structure to combine components and features
* Make hidden value of modifications its own attribute
* Fix incorrect ED ID for class 6 passenger cabins
#2.2.13
* Add plasma slug special effect for plasma accelerator
* Tweak hull costs of ships
#2.2.12
* Add special effects for each blueprint
* Add IDs for most Powerplay modules
#2.2.11
* Remove non-existant chaff launcher capacity blueprint grades
* Fix incorrect values for charge enhanced power distributor
* Remove incorrect AFMU blueprints
* Correct fragment cannon Double Shot blueprint information
* Correct Focused weapon blueprint information
#2.2.10
* Fix incorrect base shield values for Cutter and Corvette
* Update weapons to have %-based damage distributions

6282
dist/index.js vendored

File diff suppressed because it is too large Load Diff

14154
dist/index.json vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -2,11 +2,11 @@
"ammo": {"id": 0, "name": "ammo", "type": "percentage", "method": "multiplicative"},
"boot": {"id": 1, "name": "boot", "type": "percentage", "method": "multiplicative"},
"brokenregen": {"id": 2, "name": "brokenregen", "type": "percentage", "method": "multiplicative"},
"burst": {"id": 3, "name": "burst", "type": "numeric", "method": "multiplicative"},
"burstrof": {"id": 41, "name": "burstrof", "type": "percentage", "method": "multiplicative"},
"burst": {"id": 3, "name": "burst", "type": "numeric", "method": "overwrite"},
"burstrof": {"id": 41, "name": "burstrof", "type": "numeric", "method": "overwrite"},
"clip": {"id": 4, "name": "clip", "type": "percentage", "method": "multiplicative"},
"damage": {"id": 5, "name": "damage", "type": "percentage", "method": "multiplicative"},
"damagedist": {"id": 40, "name": "damage", "type": "hidden", "method": "overwrite"},
"damagedist": {"id": 40, "name": "damage", "type": "object", "hidden": true, "method": "overwrite"},
"distdraw": {"id": 6, "name": "distdraw", "type": "percentage", "method": "multiplicative"},
"duration": {"id": 7, "name": "duration", "type": "percentage", "method": "multiplicative"},
"eff": {"id": 8, "name": "eff", "type": "percentage", "method": "multiplicative"},
@@ -14,7 +14,8 @@
"engrate": {"id": 10, "name": "engrate", "type": "percentage", "method": "multiplicative"},
"explres": {"id": 11, "name": "explres", "type": "percentage", "method": "additive"},
"facinglimit": {"id": 12, "name": "facinglimit", "type": "percentage", "method": "multiplicative"},
"fallofffromrange": {"id": 42, "name": "fallofffromrange", "type": "hidden", "method": "overwrite"},
"falloff": {"id": 45, "name": "falloff", "type": "percentage", "method": "multiplicative"},
"fallofffromrange": {"id": 42, "name": "fallofffromrange", "type": "numeric", "hidden": true, "method": "overwrite"},
"hullboost": {"id": 13, "name": "hullboost", "type": "percentage", "method": "multiplicative"},
"hullreinforcement": {"id": 14, "name": "hullreinforcement", "type": "percentage", "method": "multiplicative"},
"integrity": {"id": 15, "name": "integrity", "type": "percentage", "method": "multiplicative"},
@@ -27,6 +28,7 @@
"pgen": {"id": 22, "name": "pgen", "type": "percentage", "method": "multiplicative"},
"piercing": {"id": 23, "name": "piercing", "type": "percentage", "method": "multiplicative"},
"power": {"id": 24, "name": "power", "type": "percentage", "method": "multiplicative"},
"protection": {"id": 44, "name": "protection", "type": "percentage", "method": "multiplicative"},
"range": {"id": 25, "name": "range", "type": "percentage", "method": "multiplicative"},
"ranget": {"id": 26, "name": "ranget", "type": "percentage", "method": "multiplicative"},
"regen": {"id": 27, "name": "regen", "type": "percentage", "method": "multiplicative"},

View File

@@ -1,9 +1,7 @@
{
"am": {
"blueprints": {
"AFM_LightWeight": [1, 2, 3, 4, 5],
"AFM_Reinforced": [1, 2, 3, 4, 5],
"AFM_Shielded": [1, 2, 3, 4, 5]
"AFM_Shielded": [1, 2, 3, 4]
},
"modifications": [
"integrity",
@@ -47,6 +45,13 @@
"power",
"range",
"thermload"
],
"specials": [
"special_concordant_sequence",
"special_regeneration_sequence",
"special_thermal_conduit",
"special_thermalshock",
"special_thermal_vent"
]
},
"bsg": {
@@ -100,6 +105,14 @@
"rof",
"shotspeed",
"thermload"
],
"specials": [
"special_auto_loader",
"special_dispersal_field",
"special_smart_rounds",
"special_force_shell",
"special_high_yield_shell",
"special_thermal_cascade"
]
},
"cc": {
@@ -116,7 +129,7 @@
},
"ch": {
"blueprints": {
"ChaffLauncher_ChaffCapacity": [1, 2, 3, 4, 5],
"ChaffLauncher_ChaffCapacity": [3],
"ChaffLauncher_LightWeight": [1, 2, 3, 4, 5],
"ChaffLauncher_Reinforced": [1, 2, 3, 4, 5],
"ChaffLauncher_Shielded": [1, 2, 3, 4, 5]
@@ -196,6 +209,13 @@
"rof",
"shotspeed",
"thermload"
],
"specials": [
"special_corrosive_shell",
"special_blinding_shell",
"special_incendiary_rounds",
"special_drag_munitions",
"special_screening_shell"
]
},
"fh": {
@@ -320,9 +340,9 @@
},
"ls": {
"blueprints": {
"LifeSupport_LightWeight": [1, 2, 3, 4, 5],
"LifeSupport_Reinforced": [1, 2, 3, 4, 5],
"LifeSupport_Shielded": [1, 2, 3, 4, 5]
"LifeSupport_LightWeight": [1, 2, 3, 4],
"LifeSupport_Reinforced": [1, 2, 3, 4],
"LifeSupport_Shielded": [1, 2, 3, 4]
},
"modifications": [
"boot",
@@ -359,6 +379,14 @@
"rof",
"shotspeed",
"thermload"
],
"specials": [
"special_auto_loader",
"special_corrosive_shell",
"special_emissive_munitions",
"special_incendiary_rounds",
"special_smart_rounds",
"special_thermalshock"
]
},
"ml": {
@@ -389,6 +417,13 @@
"reload",
"rof",
"thermload"
],
"specials": [
"special_drag_munitions",
"special_emissive_munitions",
"special_overload_munitions",
"special_penetrator_payload",
"special_thermal_cascade"
]
},
"mrp": {
@@ -419,6 +454,14 @@
"reload",
"rof",
"thermload"
],
"specials": [
"special_ion_disruptor",
"special_overload_munitions",
"special_radiant_canister",
"special_reverberating_cascade",
"special_shiftlock_canister",
"special_emissive_munitions"
]
},
"pa": {
@@ -449,6 +492,14 @@
"rof",
"shotspeed",
"thermload"
],
"specials": [
"special_blinding_shell",
"special_dispersal_field",
"special_phasing_sequence",
"special_plasma_slug",
"special_target_lock_breaker",
"special_thermal_conduit"
]
},
"pas": {
@@ -539,6 +590,13 @@
"range",
"rof",
"thermload"
],
"specials": [
"special_concordant_sequence",
"special_emissive_munitions",
"special_phasing_sequence",
"special_scramble_spectrum",
"special_thermalshock"
]
},
"po": {
@@ -631,6 +689,11 @@
"reload",
"rof",
"thermload"
],
"specials": [
"special_feedback_cascade",
"special_plasma_slug",
"special_super_penetrator"
]
},
"s": {
@@ -665,8 +728,8 @@
},
"scb": {
"blueprints": {
"ShieldCellBank_Rapid": [1, 2, 3, 4],
"ShieldCellBank_Specialised": [1, 2, 3, 4]
"ShieldCellBank_Rapid": [1, 2, 3],
"ShieldCellBank_Specialised": [1, 2, 3]
},
"modifications": [
"boot",
@@ -734,6 +797,11 @@
"range",
"rof",
"thermload"
],
"specials": [
"special_mass_lock_munition",
"special_penetrator_payload",
"special_reverberating_cascade"
]
},
"ul": {
@@ -762,6 +830,13 @@
"range",
"rof",
"thermload"
],
"specials": [
"special_concordant_sequence",
"special_inertial_impact",
"special_phasing_sequence",
"special_scramble_spectrum",
"special_thermalshock"
]
},
"ws": {

View File

@@ -1,35 +1,35 @@
{
"special_auto_loader": {"id": 0, "name": "Auto loader"},
"special_choke_canister": {"id": 1, "name": "Choke canister"},
"special_concordant_sequence": {"id": 2, "name": "Concordant sequence"},
"special_corrosive_shell": {"id": 3, "name": "Corrosive shell"},
"special_blinding_shell": {"id": 4, "name": "Dazzle shell"},
"special_dispersal_field": {"id": 5, "name": "Dispersal field"},
"special_distortion_field": {"id": 6, "name": "Distortion field"},
"special_drag_munitions": {"id": 7, "name": "Drag munitions"},
"special_emissive_munitions": {"id": 8, "name": "Emissive munitions"},
"special_feedback_cascade": {"id": 9, "name": "Feedback cascade"},
"special_force_shell": {"id": 10, "name": "Force shell"},
"special_high_yield_shell": {"id": 11, "name": "High yield shell"},
"special_incendiary_rounds": {"id": 12, "name": "Incendiary rounds"},
"special_inertial_impact": {"id": 32, "name": "Inertial impact"},
"special_ion_disruptor": {"id": 13, "name": "Ion disruptor"},
"special_mass_lock_munition": {"id": 14, "name": "Mass lock munition"},
"special_overload_munitions": {"id": 15, "name": "Overload munitions"},
"special_penetrator_payload": {"id": 16, "name": "Penetrator payload"},
"special_phasing_sequence": {"id": 17, "name": "Phasing sequence"},
"special_plasma_slug": {"id": 18, "name": "Plasma slug"},
"special_radiant_canister": {"id": 19, "name": "Radiant Canister"},
"special_regeneration_sequence": {"id": 20, "name": "Regeneration sequence"},
"special_reverberating_cascade": {"id": 21, "name": "Reverberating cascade"},
"special_scramble_spectrum": {"id": 22, "name": "Scramble spectrum"},
"special_screening_shell": {"id": 23, "name": "Screening shell"},
"special_shiftlock_canister": {"id": 24, "name": "Shift-lock canister"},
"special_smart_rounds": {"id": 25, "name": "Smart rounds"},
"special_super_penetrator": {"id": 26, "name": "Super penetrator"},
"special_target_lock_breaker": {"id": 27, "name": "Target lock breaker"},
"special_thermal_cascade": {"id": 28, "name": "Thermal cascade"},
"special_thermal_conduit": {"id": 29, "name": "Thermal conduit"},
"special_thermal_vent": {"id": 30, "name": "Thermal vent"},
"special_thermalshock": {"id": 31, "name": "Thermal shock"}
"special_auto_loader": {"id": 0, "edname": "special_auto_loader", "name": "Auto loader"},
"special_choke_canister": {"id": 1, "edname": "special_choke_canister", "name": "Choke canister"},
"special_concordant_sequence": {"id": 2, "edname": "special_concordant_sequence", "name": "Concordant sequence"},
"special_corrosive_shell": {"id": 3, "edname": "special_corrosive_shell", "name": "Corrosive shell"},
"special_blinding_shell": {"id": 4, "edname": "special_blinding_shell", "name": "Dazzle shell"},
"special_dispersal_field": {"id": 5, "edname": "special_dispersal_field", "name": "Dispersal field"},
"special_distortion_field": {"id": 6, "edname": "special_distortion_field", "name": "Distortion field"},
"special_drag_munitions": {"id": 7, "edname": "special_drag_munitions", "name": "Drag munitions"},
"special_emissive_munitions": {"id": 8, "edname": "special_emissive_munitions", "name": "Emissive munitions"},
"special_feedback_cascade": {"id": 9, "edname": "special_feedback_cascade", "name": "Feedback cascade"},
"special_force_shell": {"id": 10, "edname": "special_force_shell", "name": "Force shell"},
"special_high_yield_shell": {"id": 11, "edname": "special_high_yield_shell", "name": "High yield shell"},
"special_incendiary_rounds": {"id": 12, "edname": "special_incendiary_rounds", "name": "Incendiary rounds"},
"special_inertial_impact": {"id": 32, "edname": "special_inertial_impact", "name": "Inertial impact"},
"special_ion_disruptor": {"id": 13, "edname": "special_ion_disruptor", "name": "Ion disruptor"},
"special_mass_lock_munition": {"id": 14, "edname": "special_mass_lock_munition", "name": "Mass lock munition"},
"special_overload_munitions": {"id": 15, "edname": "special_overload_munitions", "name": "Overload munitions"},
"special_penetrator_payload": {"id": 16, "edname": "special_penetrator_payload", "name": "Penetrator payload"},
"special_phasing_sequence": {"id": 17, "edname": "special_phasing_sequence", "name": "Phasing sequence"},
"special_plasma_slug": {"id": 18, "edname": "special_plasma_slug", "name": "Plasma slug"},
"special_radiant_canister": {"id": 19, "edname": "special_radiant_canister", "name": "Radiant Canister"},
"special_regeneration_sequence": {"id": 20, "edname": "special_regeneration_sequence", "name": "Regeneration sequence"},
"special_reverberating_cascade": {"id": 21, "edname": "special_reverberating_cascade", "name": "Reverberating cascade"},
"special_scramble_spectrum": {"id": 22, "edname": "special_scramble_spectrum", "name": "Scramble spectrum"},
"special_screening_shell": {"id": 23, "edname": "special_screening_shell", "name": "Screening shell"},
"special_shiftlock_canister": {"id": 24, "edname": "special_shiftlock_canister", "name": "Shift-lock canister"},
"special_smart_rounds": {"id": 25, "edname": "special_smart_rounds", "name": "Smart rounds"},
"special_super_penetrator": {"id": 26, "edname": "special_super_penetrator", "name": "Super penetrator"},
"special_target_lock_breaker": {"id": 27, "edname": "special_target_lock_breaker", "name": "Target lock breaker"},
"special_thermal_cascade": {"id": 28, "edname": "special_thermal_cascade", "name": "Thermal cascade"},
"special_thermal_conduit": {"id": 29, "edname": "special_thermal_conduit", "name": "Thermal conduit"},
"special_thermal_vent": {"id": 30, "edname": "special_thermal_vent", "name": "Thermal vent"},
"special_thermalshock": {"id": 31, "edname": "special_thermalshock", "name": "Thermal shock"}
}

View File

@@ -34,6 +34,7 @@
"T": 1
},
"distdraw": 1.75,
"edID": 128671347,
"eddbID": 1479,
"falloff": 400,
"grp": "ml",

View File

@@ -103,6 +103,7 @@
"K": 1
},
"distdraw": 0.12,
"edID": 128671345,
"eddbID": 1481,
"falloff": 1800,
"grp": "mc",

View File

@@ -100,7 +100,7 @@
"piercing": 35,
"power": 0.6,
"range": 3000,
"rating": "F",
"rating": "E",
"rof": 3.448,
"thermload": 0.6
},
@@ -167,6 +167,7 @@
"T": 1
},
"distdraw": 0.9,
"edID": 128671342,
"eddbID": 1483,
"falloff": 500,
"grp": "pl",

View File

@@ -47,7 +47,7 @@
{
"class": 6,
"cost": 61420,
"edID": 12872926,
"edID": 128727926,
"eddbID": 1567,
"grp": "pce",
"id": "me",

View File

@@ -1,6 +1,6 @@
{
"name": "coriolis-data",
"version": "2.2.10",
"version": "2.2.14",
"repository": {
"type": "git",
"url": "https://github.com/EDCD/coriolis-data"

View File

@@ -6,7 +6,7 @@
"name": "Keelback",
"manufacturer": "Lakon",
"class": 2,
"hullCost": 2943880,
"hullCost": 2943870,
"speed": 200,
"boost": 300,
"boostEnergy": 10,
@@ -21,7 +21,7 @@
"roll": 100,
"yaw": 15
},
"retailCost": 3126160,
"retailCost": 3126150,
"bulkheads": [
{ "id": "cb", "edID": 128672271, "eddbID": 1513, "grp": "bh", "cost": 0, "mass": 0, "explres": -0.4, "kinres": -0.2, "thermres": 0, "hullboost": 0.8 },
{ "id": "cc", "edID": 128672272, "eddbID": 1514, "grp": "bh", "cost": 1250460, "mass": 12, "explres": -0.4, "kinres": -0.2, "thermres": 0, "hullboost": 1.52 },

View File

@@ -6,7 +6,7 @@
"name": "Sidewinder",
"manufacturer": "Faulcon DeLacy",
"class": 1,
"hullCost": 12870,
"hullCost": 4070,
"speed": 220,
"boost": 320,
"boostEnergy": 7,
@@ -20,7 +20,7 @@
"roll": 110,
"yaw": 16
},
"retailCost": 40800,
"retailCost": 32000,
"bulkheads": [
{ "id": "b0", "edID": 128049250, "eddbID": 738, "grp": "bh", "cost": 0, "mass": 0, "explres": -0.4, "kinres": -0.2, "thermres": 0, "hullboost": 0.8 },
{ "id": "b1", "edID": 128049251, "eddbID": 739, "grp": "bh", "cost": 25600, "mass": 2, "explres": -0.4, "kinres": -0.2, "thermres": 0, "hullboost": 1.52 },

View File

@@ -40,7 +40,7 @@ describe('JSON Data', function() {
var id = group[i].id;
expect(ids[id]).toBeFalsy('ID already exists: ' + id);
expect(group[i].edID > 0).toBeTruthy('Standard module ' + id + ' is missing E:D ID');
expect(group[i].eddbID > 0 || group[i].pp).toBeTruthy('Standard module ' + id + ' is missing EDDB ID');
expect(group[i].eddbID > 0).toBeTruthy('Standard module ' + id + ' is missing EDDB ID');
if (s != 'ft' && s != 'pas' ) {
expect(group[i].integrity).toBeDefined('Standard module ' + id + ' is missing integrity');
}
@@ -70,7 +70,7 @@ describe('JSON Data', function() {
expect(group[i].mass).toBeDefined(`Hardpoint ${group[i].grp}:${id} ${group[i].name ? group[i].name : ''} is missing mass`);
expect(group[i].integrity).toBeDefined(`Hardpoint ${group[i].grp}:${id} ${group[i].name ? group[i].name : ''} is missing integrity`);
expect(group[i].eddbID > 0).toBeTruthy(`Hardpoint ${group[i].grp}:${id} ${group[i].name ? group[i].name : ''} is missing EDDB ID`);
expect(group[i].edID > 0 || group[i].pp).toBeTruthy(`Hardpoint ${group[i].grp}:${id} ${group[i].name ? group[i].name : ''} is missing E:D ID`);
expect(group[i].edID > 0).toBeTruthy(`Hardpoint ${group[i].grp}:${id} ${group[i].name ? group[i].name : ''} is missing E:D ID`);
expect(eddbIDs[group[i].eddbID]).toBeFalsy(`EDDB ID [${group[i].eddbID}] already exists: ${group[i].grp}:${id} ${group[i].name ? group[i].name : ''}`);
expect(edIDs[group[i].edID]).toBeFalsy(`E:D ID [${group[i].edID}] already exists: ${group[i].grp}:${id} ${group[i].name ? group[i].name : ''}`);
if (group[i].eddbID) {
@@ -110,7 +110,7 @@ describe('JSON Data', function() {
var id = group[i].id;
expect(group[i].grp).toBeDefined(`No group defined, ID: ${id}`);
expect(ids[id]).toBeFalsy('ID already exists: ' + id);
expect(group[i].eddbID > 0 || group[i].pp).toBeTruthy(`${group[i].grp}:${id} ${group[i].name ? group[i].name : ''} is missing EDDB ID`);
expect(group[i].eddbID > 0).toBeTruthy(`${group[i].grp}:${id} ${group[i].name ? group[i].name : ''} is missing EDDB ID`);
expect(group[i].edID > 0).toBeTruthy(`${group[i].grp}:${id} ${group[i].name ? group[i].name : ''} is missing E:D ID`);
if (group[i].grp != 'ft') { // Standard and Internal Fuel tanks have the same IDs
expect(eddbIDs[group[i].eddbID]).toBeFalsy(`EDDB ID [${group[i].eddbID}] already exists: ${id}`);
@@ -169,23 +169,26 @@ describe('JSON Data', function() {
it('has valid blueprints', function() {
var ids = {};
var names = {};
for (var k in Modifications.blueprints) {
const blueprint = Modifications.blueprints[k];
for (var blueprintname in Modifications.blueprints) {
const blueprint = Modifications.blueprints[blueprintname];
expect(names[blueprintname]).toBeFalsy('Name already exists: ' + blueprintname);
names[blueprintname] = true;
expect(ids[blueprint.id]).toBeFalsy('ID already exists: ' + blueprint.id);
expect(blueprint.name).toBeDefined('Blueprint has no name, ID:' + blueprint.id);
for (var x in blueprint.features) {
var b = blueprint.features[x];
var bfs = {};
for (var bf in b) {
expect(bfs[bf]).toBeFalsy(`Blueprint feature [${bf}] already exists: ${blueprint.name}`);
expect(Modifications.modifications[bf]).toBeDefined(`Blueprint feature [${bf}] uknown: ${blueprint.name}`);
bfs[bf] = true;
}
}
ids[blueprint.id] = true;
expect(blueprint.name).toBeDefined('Blueprint has no name, ID:' + blueprint.id);
expect(blueprint.grades).toBeDefined('Blueprint has no grades, ID:' + blueprint.id);
grades = {}
for (var grade in blueprint.grades) {
expect(grades[grade]).toBeFalsy('Grade already exists: ' + grade + ' for ' + blueprintname);
grades[grade] = true;
const blueprintgrade = blueprint.grades[grade];
expect(blueprintgrade.components).toBeDefined('Blueprint grade ' + grade + ' has no components for ' + blueprintname);
expect(blueprintgrade.features).toBeDefined('Blueprint grade ' + grade + ' has no features for ' + blueprintname);
}
}
});