diff --git a/ChangeLog.md b/ChangeLog.md index e8485ce..129fb76 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,7 @@ +#2.2.5 + * Fix rate of fire for burst lasers + * Add fragment cannon modifications + #2.2.4 * Fix incorrect ID for class 5 luxury passenger cabin * Add damage type modifier diff --git a/dist/index.js b/dist/index.js index e80f931..275b1fb 100644 --- a/dist/index.js +++ b/dist/index.js @@ -6286,7 +6286,7 @@ module.exports = { power: .65, range: 3e3, rating: "F", - rof: 4.735, + rof: 2, thermload: .4, type: "T" }, { @@ -6297,7 +6297,7 @@ module.exports = { burstrof: 17, class: 1, cost: 8600, - damage: 1.22, + damage: 1.2, distdraw: .27, edID: 128049404, eddbID: 835, @@ -6310,7 +6310,7 @@ module.exports = { power: .64, range: 3e3, rating: "G", - rof: 5.28, + rof: 2.23, thermload: .3, type: "T" }, { @@ -6334,7 +6334,7 @@ module.exports = { power: .6, range: 3e3, rating: "G", - rof: 4.795, + rof: 1.92, thermload: .2, type: "T" }, { @@ -6360,7 +6360,7 @@ module.exports = { pp: "Archon Delaine", range: 600, rating: "F", - rof: 7.615, + rof: 1.98, thermload: .3, type: "T" }, { @@ -6371,7 +6371,7 @@ module.exports = { burstrof: 11, class: 2, cost: 23e3, - damage: 3.53, + damage: 3.5, distdraw: .63, edID: 128049401, eddbID: 833, @@ -6384,7 +6384,7 @@ module.exports = { power: 1.05, range: 3e3, rating: "E", - rof: 3.695, + rof: 1.6, thermload: .8, type: "T" }, { @@ -6408,7 +6408,7 @@ module.exports = { power: 1.04, range: 3e3, rating: "F", - rof: 4.2, + rof: 1.78, thermload: .7, type: "T" }, { @@ -6419,7 +6419,7 @@ module.exports = { burstrof: 15, class: 2, cost: 162800, - damage: 1.72, + damage: 1.74, distdraw: .31, edID: 128049408, eddbID: 839, @@ -6432,7 +6432,7 @@ module.exports = { power: .98, range: 3e3, rating: "F", - rof: 3.93, + rof: 1.57, thermload: .4, type: "T" }, { @@ -6443,7 +6443,7 @@ module.exports = { burstrof: 7, class: 3, cost: 140400, - damage: 7.74, + damage: 7.75, distdraw: 1.39, edID: 128049402, eddbID: 834, @@ -6456,7 +6456,7 @@ module.exports = { power: 1.66, range: 3e3, rating: "D", - rof: 2.685, + rof: 1.2, thermload: 1.7, type: "T" }, { @@ -6467,7 +6467,7 @@ module.exports = { burstrof: 9, class: 3, cost: 281600, - damage: 5.16, + damage: 5.18, distdraw: 1.16, edID: 128049406, eddbID: 837, @@ -6480,7 +6480,7 @@ module.exports = { power: 1.65, range: 3e3, rating: "E", - rof: 3.215, + rof: 1.4, thermload: 1.4, type: "T" }, { @@ -6491,7 +6491,7 @@ module.exports = { burstrof: 11, class: 3, cost: 800400, - damage: 3.53, + damage: 3.54, distdraw: .63, edID: 128049409, eddbID: 840, @@ -6504,7 +6504,7 @@ module.exports = { power: 1.57, range: 3e3, rating: "E", - rof: 3.115, + rof: 1.272, thermload: .8, type: "T" }, { @@ -6528,7 +6528,7 @@ module.exports = { power: 2.58, range: 3e3, rating: "E", - rof: 1.565, + rof: .8, thermload: 4.5, type: "T" }, { @@ -6552,7 +6552,7 @@ module.exports = { power: 2.59, range: 3e3, rating: "E", - rof: 2.14, + rof: 1, thermload: 3.3, type: "T" } ], @@ -13602,7 +13602,7 @@ module.exports = { name: "Low emissions" }, ProspectingLimpet_LightWeight: { - id: 63, + id: 65, name: "Lightweight" }, ProspectingLimpet_Reinforced: { @@ -13735,6 +13735,12 @@ module.exports = { type: "numeric", method: "multiplicative" }, + burstrof: { + id: 41, + name: "burst", + type: "numeric", + method: "multiplicative" + }, clip: { id: 4, name: "clip", @@ -14119,11 +14125,18 @@ module.exports = { mod_weapon_burst_interval: { rof: 1 }, - mod_weapon_burst_rof: {}, - mod_weapon_burst_size: {}, + mod_weapon_burst_rof: { + burstrof: 1 + }, + mod_weapon_burst_size: { + burst: 1 + }, mod_weapon_clip_size: { clip: 1 }, + mod_weapon_clip_size_override: { + clip: 1 + }, mod_weapon_damage: { damage: 1 }, @@ -14173,6 +14186,9 @@ module.exports = { special_scramble_spectrum: { rof: .1111111111111111 }, + special_screening_shell: { + reload: -.5 + }, special_shiftlock_canister: { damage: -.2 }, @@ -14305,7 +14321,7 @@ module.exports = { name: "Drag munitions" }, special_emissive_munitions: { - id: 9, + id: 8, name: "Emissive munitions" }, special_feedback_cascade: { diff --git a/dist/index.json b/dist/index.json index bf27b0b..5175d23 100644 --- a/dist/index.json +++ b/dist/index.json @@ -8192,7 +8192,7 @@ "power": 0.65, "range": 3000, "rating": "F", - "rof": 4.735, + "rof": 2, "thermload": 0.4, "type": "T" }, @@ -8204,7 +8204,7 @@ "burstrof": 17, "class": 1, "cost": 8600, - "damage": 1.22, + "damage": 1.2, "distdraw": 0.27, "edID": 128049404, "eddbID": 835, @@ -8217,7 +8217,7 @@ "power": 0.64, "range": 3000, "rating": "G", - "rof": 5.28, + "rof": 2.23, "thermload": 0.3, "type": "T" }, @@ -8242,7 +8242,7 @@ "power": 0.6, "range": 3000, "rating": "G", - "rof": 4.795, + "rof": 1.92, "thermload": 0.2, "type": "T" }, @@ -8269,7 +8269,7 @@ "pp": "Archon Delaine", "range": 600, "rating": "F", - "rof": 7.615, + "rof": 1.98, "thermload": 0.3, "type": "T" }, @@ -8281,7 +8281,7 @@ "burstrof": 11, "class": 2, "cost": 23000, - "damage": 3.53, + "damage": 3.5, "distdraw": 0.63, "edID": 128049401, "eddbID": 833, @@ -8294,7 +8294,7 @@ "power": 1.05, "range": 3000, "rating": "E", - "rof": 3.695, + "rof": 1.6, "thermload": 0.8, "type": "T" }, @@ -8319,7 +8319,7 @@ "power": 1.04, "range": 3000, "rating": "F", - "rof": 4.2, + "rof": 1.78, "thermload": 0.7, "type": "T" }, @@ -8331,7 +8331,7 @@ "burstrof": 15, "class": 2, "cost": 162800, - "damage": 1.72, + "damage": 1.74, "distdraw": 0.31, "edID": 128049408, "eddbID": 839, @@ -8344,7 +8344,7 @@ "power": 0.98, "range": 3000, "rating": "F", - "rof": 3.93, + "rof": 1.57, "thermload": 0.4, "type": "T" }, @@ -8356,7 +8356,7 @@ "burstrof": 7, "class": 3, "cost": 140400, - "damage": 7.74, + "damage": 7.75, "distdraw": 1.39, "edID": 128049402, "eddbID": 834, @@ -8369,7 +8369,7 @@ "power": 1.66, "range": 3000, "rating": "D", - "rof": 2.685, + "rof": 1.2, "thermload": 1.7, "type": "T" }, @@ -8381,7 +8381,7 @@ "burstrof": 9, "class": 3, "cost": 281600, - "damage": 5.16, + "damage": 5.18, "distdraw": 1.16, "edID": 128049406, "eddbID": 837, @@ -8394,7 +8394,7 @@ "power": 1.65, "range": 3000, "rating": "E", - "rof": 3.215, + "rof": 1.4, "thermload": 1.4, "type": "T" }, @@ -8406,7 +8406,7 @@ "burstrof": 11, "class": 3, "cost": 800400, - "damage": 3.53, + "damage": 3.54, "distdraw": 0.63, "edID": 128049409, "eddbID": 840, @@ -8419,7 +8419,7 @@ "power": 1.57, "range": 3000, "rating": "E", - "rof": 3.115, + "rof": 1.272, "thermload": 0.8, "type": "T" }, @@ -8444,7 +8444,7 @@ "power": 2.58, "range": 3000, "rating": "E", - "rof": 1.565, + "rof": 0.8, "thermload": 4.5, "type": "T" }, @@ -8469,7 +8469,7 @@ "power": 2.59, "range": 3000, "rating": "E", - "rof": 2.14, + "rof": 1, "thermload": 3.3, "type": "T" } @@ -15998,7 +15998,7 @@ "name": "Low emissions" }, "ProspectingLimpet_LightWeight": { - "id": 63, + "id": 65, "name": "Lightweight" }, "ProspectingLimpet_Reinforced": { @@ -16131,6 +16131,12 @@ "type": "numeric", "method": "multiplicative" }, + "burstrof": { + "id": 41, + "name": "burst", + "type": "numeric", + "method": "multiplicative" + }, "clip": { "id": 4, "name": "clip", @@ -16515,11 +16521,18 @@ "mod_weapon_burst_interval": { "rof": 1 }, - "mod_weapon_burst_rof": {}, - "mod_weapon_burst_size": {}, + "mod_weapon_burst_rof": { + "burstrof": 1 + }, + "mod_weapon_burst_size": { + "burst": 1 + }, "mod_weapon_clip_size": { "clip": 1 }, + "mod_weapon_clip_size_override": { + "clip": 1 + }, "mod_weapon_damage": { "damage": 1 }, @@ -16569,6 +16582,9 @@ "special_scramble_spectrum": { "rof": 0.1111111111111111 }, + "special_screening_shell": { + "reload": -0.5 + }, "special_shiftlock_canister": { "damage": -0.2 }, @@ -16701,7 +16717,7 @@ "name": "Drag munitions" }, "special_emissive_munitions": { - "id": 9, + "id": 8, "name": "Emissive munitions" }, "special_feedback_cascade": { diff --git a/modifications/blueprints.json b/modifications/blueprints.json index e6655ed..75e58e7 100644 --- a/modifications/blueprints.json +++ b/modifications/blueprints.json @@ -63,7 +63,7 @@ "PowerPlant_Armoured": { "id": 62, "name": "Armoured" }, "PowerPlant_Boosted": { "id": 63, "name": "Overcharged" }, "PowerPlant_Stealth": { "id": 64, "name": "Low emissions" }, - "ProspectingLimpet_LightWeight": { "id": 63, "name": "Lightweight" }, + "ProspectingLimpet_LightWeight": { "id": 65, "name": "Lightweight" }, "ProspectingLimpet_Reinforced": { "id": 66, "name": "Reinforced" }, "ProspectingLimpet_Shielded": { "id": 67, "name": "Shielded" }, "ShieldBooster_Explosive": { "id": 68, "name": "Blast resistant" }, diff --git a/modifications/modifications.json b/modifications/modifications.json index 9ecbbd2..720cf6b 100644 --- a/modifications/modifications.json +++ b/modifications/modifications.json @@ -3,6 +3,7 @@ "boot": {"id": 1, "name": "boot", "type": "numeric", "method": "multiplicative"}, "brokenregen": {"id": 2, "name": "brokenregen", "type": "numeric", "method": "multiplicative"}, "burst": {"id": 3, "name": "burst", "type": "numeric", "method": "multiplicative"}, + "burstrof": {"id": 41, "name": "burst", "type": "numeric", "method": "multiplicative"}, "clip": {"id": 4, "name": "clip", "type": "numeric", "method": "multiplicative"}, "damage": {"id": 5, "name": "damage", "type": "numeric", "method": "multiplicative"}, "distdraw": {"id": 6, "name": "distdraw", "type": "numeric", "method": "multiplicative"}, diff --git a/modifications/modifierActions.json b/modifications/modifierActions.json index 1e3582a..a395568 100644 --- a/modifications/modifierActions.json +++ b/modifications/modifierActions.json @@ -159,11 +159,18 @@ "mod_weapon_burst_interval": { "rof": 1 }, - "mod_weapon_burst_rof": {}, - "mod_weapon_burst_size": {}, + "mod_weapon_burst_rof": { + "burstrof": 1 + }, + "mod_weapon_burst_size": { + "burst": 1 + }, "mod_weapon_clip_size": { "clip": 1 }, + "mod_weapon_clip_size_override": { + "clip": 1 + }, "mod_weapon_damage": { "damage": 1 }, @@ -213,6 +220,9 @@ "special_scramble_spectrum": { "rof": 0.1111111111111111 }, + "special_screening_shell": { + "reload": -0.5 + }, "special_shiftlock_canister": { "damage": -0.2 }, diff --git a/modifications/specials.json b/modifications/specials.json index 3d5e47d..441edcb 100644 --- a/modifications/specials.json +++ b/modifications/specials.json @@ -7,7 +7,7 @@ "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": 9, "name": "Emissive 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"}, diff --git a/spec/data-spec.js b/spec/data-spec.js index cb82885..196374b 100644 --- a/spec/data-spec.js +++ b/spec/data-spec.js @@ -168,7 +168,31 @@ describe('JSON Data', function() { const blueprint = Modifications.blueprints[k]; expect(ids[blueprint.id]).toBeFalsy('ID already exists: ' + blueprint.id); expect(blueprint.name).toBeDefined('Blueprint has no name, ID:' + blueprint.id); - ids[blueprint.idid] = true; + ids[blueprint.id] = true; + } + }); + + it('has valid modifications', function() { + var ids = {}; + + for (var k in Modifications.modifications) { + const modification = Modifications.modifications[k]; + expect(ids[modification.id]).toBeFalsy('ID already exists: ' + modification.id); + expect(modification.name).toBeDefined('Modification has no name, ID:' + modification.id); + expect(modification.type).toBeDefined('Modification has no type, ID:' + modification.id); + expect(modification.method).toBeDefined('Modification has no method, ID:' + modification.id); + ids[modification.id] = true; + } + }); + + it('has valid specials', function() { + var ids = {}; + + for (var k in Modifications.specials) { + const special = Modifications.specials[k]; + expect(ids[special.id]).toBeFalsy('ID already exists: ' + special.id); + expect(special.name).toBeDefined('Special has no name, ID:' + special.id); + ids[special.id] = true; } });