diff --git a/ChangeLog.md b/ChangeLog.md index 3901577..47ee592 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,5 +1,7 @@ #2.2.4 * Fix incorrect ID for class 5 luxury passenger cabin + * Add damage type modifier + * Change modifications from simple strings to objects, to allow more data-driven behaviour #2.2.3 * Fix mismatch between class 5 and class 7 fighter hangars diff --git a/dist/index.js b/dist/index.js index 8ea3be1..9cdd2f7 100644 --- a/dist/index.js +++ b/dist/index.js @@ -13710,7 +13710,254 @@ module.exports = { name: "Sturdy" } }, - modifications: [ "ammo", "boot", "brokenregen", "burst", "clip", "damage", "distdraw", "duration", "eff", "engcap", "engrate", "explres", "facinglimit", "hullboost", "hullreinforcement", "integrity", "jitter", "kinres", "mass", "maxfuel", "optmass", "optmul", "pgen", "piercing", "power", "range", "ranget", "regen", "reload", "rof", "shield", "shieldboost", "spinup", "syscap", "sysrate", "thermload", "thermres", "wepcap", "weprate", "shieldreinforcement", "type" ], + modifications: { + ammo: { + id: 0, + name: "ammo", + type: "numeric", + method: "multiplicative" + }, + 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" + }, + 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" + }, + duration: { + id: 7, + name: "duration", + type: "numeric", + method: "multiplicative" + }, + eff: { + id: 8, + name: "eff", + type: "numeric", + method: "multiplicative" + }, + engcap: { + id: 9, + name: "engcap", + type: "numeric", + method: "multiplicative" + }, + engrate: { + id: 10, + name: "engrate", + type: "numeric", + method: "multiplicative" + }, + explres: { + id: 11, + name: "explres", + type: "numeric", + method: "additive" + }, + facinglimit: { + id: 12, + name: "facinglimit", + type: "numeric", + method: "multiplicative" + }, + hullboost: { + id: 13, + name: "hullboost", + type: "numeric", + method: "multiplicative" + }, + hullreinforcement: { + id: 14, + name: "hullreinforcement", + type: "numeric", + method: "multiplicative" + }, + integrity: { + id: 15, + name: "integrity", + type: "numeric", + method: "multiplicative" + }, + jitter: { + id: 16, + name: "jitter", + type: "numeric", + method: "multiplicative" + }, + kinres: { + id: 17, + name: "kinres", + type: "numeric", + method: "additive" + }, + mass: { + id: 18, + name: "mass", + type: "numeric", + method: "multiplicative" + }, + maxfuel: { + id: 19, + name: "maxfuel", + type: "numeric", + method: "multiplicative" + }, + optmass: { + id: 20, + name: "optmass", + type: "numeric", + method: "multiplicative" + }, + optmul: { + id: 21, + name: "optmul", + type: "numeric", + method: "multiplicative" + }, + pgen: { + id: 22, + name: "pgen", + type: "numeric", + method: "multiplicative" + }, + piercing: { + id: 23, + name: "piercing", + type: "numeric", + method: "multiplicative" + }, + power: { + id: 24, + name: "power", + type: "numeric", + method: "multiplicative" + }, + range: { + id: 25, + name: "range", + type: "numeric", + method: "multiplicative" + }, + ranget: { + id: 26, + name: "ranget", + type: "numeric", + method: "multiplicative" + }, + regen: { + id: 27, + name: "regen", + type: "numeric", + method: "multiplicative" + }, + reload: { + id: 28, + name: "reload", + type: "numeric", + method: "multiplicative" + }, + rof: { + id: 29, + name: "rof", + type: "numeric", + method: "multiplicative" + }, + shield: { + id: 30, + name: "shield", + type: "numeric", + method: "multiplicative" + }, + shieldboost: { + id: 31, + name: "shieldboost", + type: "numeric", + method: "multiplicative" + }, + spinup: { + id: 32, + name: "spinup", + type: "numeric", + method: "multiplicative" + }, + syscap: { + id: 33, + name: "syscap", + type: "numeric", + method: "multiplicative" + }, + sysrate: { + id: 34, + name: "sysrate", + type: "numeric", + method: "multiplicative" + }, + thermload: { + id: 35, + name: "thermload", + type: "numeric", + method: "multiplicative" + }, + thermres: { + id: 36, + name: "thermres", + type: "numeric", + method: "additive" + }, + wepcap: { + id: 37, + name: "wepcap", + type: "numeric", + method: "multiplicative" + }, + weprate: { + id: 38, + name: "weprate", + type: "numeric", + method: "multiplicative" + }, + shieldreinforcement: { + id: 38, + name: "shieldreinforcement", + type: "numeric", + method: "multiplicative" + }, + type: { + id: 40, + name: "type", + type: "alphabetic", + method: "overwrite" + } + }, modifierActions: { mod_boot_time: { boot: 1 @@ -14034,7 +14281,7 @@ module.exports = { ch: [ "ammo", "integrity", "mass", "power", "reload" ], cs: [ "boot", "integrity", "mass", "power" ], ec: [ "integrity", "mass", "power" ], - fc: [ "ammo", "burst", "clip", "damage", "distdraw", "integrity", "jitter", "mass", "piercing", "power", "range", "reload", "rof", "thermload" ], + fc: [ "ammo", "burst", "clip", "damage", "distdraw", "integrity", "jitter", "mass", "piercing", "power", "range", "reload", "rof", "thermload", "type" ], fi: [ "boot", "facinglimit", "integrity", "mass", "power", "ranget" ], fs: [ "integrity", "power" ], fsd: [ "boot", "integrity", "mass", "maxfuel", "optmass", "power", "thermload" ], @@ -14044,7 +14291,7 @@ module.exports = { hs: [ "ammo", "integrity", "mass", "power", "reload" ], kw: [ "boot", "integrity", "mass", "power" ], ls: [ "boot", "integrity", "mass", "power" ], - mc: [ "ammo", "clip", "damage", "distdraw", "integrity", "jitter", "mass", "piercing", "power", "range", "reload", "rof", "thermload" ], + mc: [ "ammo", "clip", "damage", "distdraw", "integrity", "jitter", "mass", "piercing", "power", "range", "reload", "rof", "thermload", "type" ], mr: [ "ammo", "clip", "damage", "distdraw", "integrity", "jitter", "mass", "piercing", "power", "reload", "rof", "thermload" ], nl: [ "ammo", "boot", "clip", "damage", "integrity", "jitter", "mass", "piercing", "power", "reload", "rof", "thermload" ], pa: [ "ammo", "clip", "damage", "distdraw", "integrity", "jitter", "mass", "piercing", "power", "range", "reload", "rof", "thermload" ], diff --git a/dist/index.json b/dist/index.json index a8e9915..eef4271 100644 --- a/dist/index.json +++ b/dist/index.json @@ -16106,49 +16106,254 @@ "name": "Sturdy" } }, - "modifications": [ - "ammo", - "boot", - "brokenregen", - "burst", - "clip", - "damage", - "distdraw", - "duration", - "eff", - "engcap", - "engrate", - "explres", - "facinglimit", - "hullboost", - "hullreinforcement", - "integrity", - "jitter", - "kinres", - "mass", - "maxfuel", - "optmass", - "optmul", - "pgen", - "piercing", - "power", - "range", - "ranget", - "regen", - "reload", - "rof", - "shield", - "shieldboost", - "spinup", - "syscap", - "sysrate", - "thermload", - "thermres", - "wepcap", - "weprate", - "shieldreinforcement", - "type" - ], + "modifications": { + "ammo": { + "id": 0, + "name": "ammo", + "type": "numeric", + "method": "multiplicative" + }, + "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" + }, + "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" + }, + "duration": { + "id": 7, + "name": "duration", + "type": "numeric", + "method": "multiplicative" + }, + "eff": { + "id": 8, + "name": "eff", + "type": "numeric", + "method": "multiplicative" + }, + "engcap": { + "id": 9, + "name": "engcap", + "type": "numeric", + "method": "multiplicative" + }, + "engrate": { + "id": 10, + "name": "engrate", + "type": "numeric", + "method": "multiplicative" + }, + "explres": { + "id": 11, + "name": "explres", + "type": "numeric", + "method": "additive" + }, + "facinglimit": { + "id": 12, + "name": "facinglimit", + "type": "numeric", + "method": "multiplicative" + }, + "hullboost": { + "id": 13, + "name": "hullboost", + "type": "numeric", + "method": "multiplicative" + }, + "hullreinforcement": { + "id": 14, + "name": "hullreinforcement", + "type": "numeric", + "method": "multiplicative" + }, + "integrity": { + "id": 15, + "name": "integrity", + "type": "numeric", + "method": "multiplicative" + }, + "jitter": { + "id": 16, + "name": "jitter", + "type": "numeric", + "method": "multiplicative" + }, + "kinres": { + "id": 17, + "name": "kinres", + "type": "numeric", + "method": "additive" + }, + "mass": { + "id": 18, + "name": "mass", + "type": "numeric", + "method": "multiplicative" + }, + "maxfuel": { + "id": 19, + "name": "maxfuel", + "type": "numeric", + "method": "multiplicative" + }, + "optmass": { + "id": 20, + "name": "optmass", + "type": "numeric", + "method": "multiplicative" + }, + "optmul": { + "id": 21, + "name": "optmul", + "type": "numeric", + "method": "multiplicative" + }, + "pgen": { + "id": 22, + "name": "pgen", + "type": "numeric", + "method": "multiplicative" + }, + "piercing": { + "id": 23, + "name": "piercing", + "type": "numeric", + "method": "multiplicative" + }, + "power": { + "id": 24, + "name": "power", + "type": "numeric", + "method": "multiplicative" + }, + "range": { + "id": 25, + "name": "range", + "type": "numeric", + "method": "multiplicative" + }, + "ranget": { + "id": 26, + "name": "ranget", + "type": "numeric", + "method": "multiplicative" + }, + "regen": { + "id": 27, + "name": "regen", + "type": "numeric", + "method": "multiplicative" + }, + "reload": { + "id": 28, + "name": "reload", + "type": "numeric", + "method": "multiplicative" + }, + "rof": { + "id": 29, + "name": "rof", + "type": "numeric", + "method": "multiplicative" + }, + "shield": { + "id": 30, + "name": "shield", + "type": "numeric", + "method": "multiplicative" + }, + "shieldboost": { + "id": 31, + "name": "shieldboost", + "type": "numeric", + "method": "multiplicative" + }, + "spinup": { + "id": 32, + "name": "spinup", + "type": "numeric", + "method": "multiplicative" + }, + "syscap": { + "id": 33, + "name": "syscap", + "type": "numeric", + "method": "multiplicative" + }, + "sysrate": { + "id": 34, + "name": "sysrate", + "type": "numeric", + "method": "multiplicative" + }, + "thermload": { + "id": 35, + "name": "thermload", + "type": "numeric", + "method": "multiplicative" + }, + "thermres": { + "id": 36, + "name": "thermres", + "type": "numeric", + "method": "additive" + }, + "wepcap": { + "id": 37, + "name": "wepcap", + "type": "numeric", + "method": "multiplicative" + }, + "weprate": { + "id": 38, + "name": "weprate", + "type": "numeric", + "method": "multiplicative" + }, + "shieldreinforcement": { + "id": 38, + "name": "shieldreinforcement", + "type": "numeric", + "method": "multiplicative" + }, + "type": { + "id": 40, + "name": "type", + "type": "alphabetic", + "method": "overwrite" + } + }, "modifierActions": { "mod_boot_time": { "boot": 1 @@ -16551,7 +16756,8 @@ "range", "reload", "rof", - "thermload" + "thermload", + "type" ], "fi": [ "boot", @@ -16624,7 +16830,8 @@ "range", "reload", "rof", - "thermload" + "thermload", + "type" ], "mr": [ "ammo", diff --git a/modifications/modifications.json b/modifications/modifications.json index 5388eff..f83f299 100644 --- a/modifications/modifications.json +++ b/modifications/modifications.json @@ -1,43 +1,43 @@ -[ - "ammo", - "boot", - "brokenregen", - "burst", - "clip", - "damage", - "distdraw", - "duration", - "eff", - "engcap", - "engrate", - "explres", - "facinglimit", - "hullboost", - "hullreinforcement", - "integrity", - "jitter", - "kinres", - "mass", - "maxfuel", - "optmass", - "optmul", - "pgen", - "piercing", - "power", - "range", - "ranget", - "regen", - "reload", - "rof", - "shield", - "shieldboost", - "spinup", - "syscap", - "sysrate", - "thermload", - "thermres", - "wepcap", - "weprate", - "shieldreinforcement", - "type" -] +{ + "ammo": {"id": 0, "name": "ammo", "type": "numeric", "method": "multiplicative"}, + "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"}, + "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"}, + "duration": {"id": 7, "name": "duration", "type": "numeric", "method": "multiplicative"}, + "eff": {"id": 8, "name": "eff", "type": "numeric", "method": "multiplicative"}, + "engcap": {"id": 9, "name": "engcap", "type": "numeric", "method": "multiplicative"}, + "engrate": {"id": 10, "name": "engrate", "type": "numeric", "method": "multiplicative"}, + "explres": {"id": 11, "name": "explres", "type": "numeric", "method": "additive"}, + "facinglimit": {"id": 12, "name": "facinglimit", "type": "numeric", "method": "multiplicative"}, + "hullboost": {"id": 13, "name": "hullboost", "type": "numeric", "method": "multiplicative"}, + "hullreinforcement": {"id": 14, "name": "hullreinforcement", "type": "numeric", "method": "multiplicative"}, + "integrity": {"id": 15, "name": "integrity", "type": "numeric", "method": "multiplicative"}, + "jitter": {"id": 16, "name": "jitter", "type": "numeric", "method": "multiplicative"}, + "kinres": {"id": 17, "name": "kinres", "type": "numeric", "method": "additive"}, + "mass": {"id": 18, "name": "mass", "type": "numeric", "method": "multiplicative"}, + "maxfuel": {"id": 19, "name": "maxfuel", "type": "numeric", "method": "multiplicative"}, + "optmass": {"id": 20, "name": "optmass", "type": "numeric", "method": "multiplicative"}, + "optmul": {"id": 21, "name": "optmul", "type": "numeric", "method": "multiplicative"}, + "pgen": {"id": 22, "name": "pgen", "type": "numeric", "method": "multiplicative"}, + "piercing": {"id": 23, "name": "piercing", "type": "numeric", "method": "multiplicative"}, + "power": {"id": 24, "name": "power", "type": "numeric", "method": "multiplicative"}, + "range": {"id": 25, "name": "range", "type": "numeric", "method": "multiplicative"}, + "ranget": {"id": 26, "name": "ranget", "type": "numeric", "method": "multiplicative"}, + "regen": {"id": 27, "name": "regen", "type": "numeric", "method": "multiplicative"}, + "reload": {"id": 28, "name": "reload", "type": "numeric", "method": "multiplicative"}, + "rof": {"id": 29, "name": "rof", "type": "numeric", "method": "multiplicative"}, + "shield": {"id": 30, "name": "shield", "type": "numeric", "method": "multiplicative"}, + "shieldboost": {"id": 31, "name": "shieldboost", "type": "numeric", "method": "multiplicative"}, + "spinup": {"id": 32, "name": "spinup", "type": "numeric", "method": "multiplicative"}, + "syscap": {"id": 33, "name": "syscap", "type": "numeric", "method": "multiplicative"}, + "sysrate": {"id": 34, "name": "sysrate", "type": "numeric", "method": "multiplicative"}, + "thermload": {"id": 35, "name": "thermload", "type": "numeric", "method": "multiplicative"}, + "thermres": {"id": 36, "name": "thermres", "type": "numeric", "method": "additive"}, + "wepcap": {"id": 37, "name": "wepcap", "type": "numeric", "method": "multiplicative"}, + "weprate": {"id": 38, "name": "weprate", "type": "numeric", "method": "multiplicative"}, + "shieldreinforcement": {"id": 38, "name": "shieldreinforcement", "type": "numeric", "method": "multiplicative"}, + "type": {"id": 40, "name": "type", "type": "alphabetic", "method": "overwrite"} +} diff --git a/modifications/validity.json b/modifications/validity.json index 13920bd..6308624 100644 --- a/modifications/validity.json +++ b/modifications/validity.json @@ -87,7 +87,8 @@ "range", "reload", "rof", - "thermload" + "thermload", + "type" ], "fi": [ "boot", @@ -160,7 +161,8 @@ "range", "reload", "rof", - "thermload" + "thermload", + "type" ], "mr": [ "ammo",