diff --git a/ChangeLog.md b/ChangeLog.md
index c469a2e1..bc86add2 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -3,6 +3,12 @@
* Use damagedist for exact breakdown of weapons that have more than one type of damage
* Use new-style modification validity data
* Provide ability to select engineering blueprint and roll sample values for them
+ * Use coriolis-data 2.2.10:
+ * Fix incorrect base shield values for Cutter and Corvette
+ * Update weapons to have %-based damage distributions
+ * Remove power draw for detailed surface scanner - although shown in outfitting it is not part of active power
+ * Fix incorrect names for lightweight and kinetic armour
+ * Add engineering blueprints
#2.2.9
* Use SSL-enabled server for shortlinks
diff --git a/package.json b/package.json
index 7738c704..880c6da2 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "coriolis_shipyard",
- "version": "2.2.9",
+ "version": "2.2.10",
"repository": {
"type": "git",
"url": "https://github.com/EDCD/coriolis"
diff --git a/src/app/components/HardpointSlot.jsx b/src/app/components/HardpointSlot.jsx
index a8fc6c9f..f6232568 100644
--- a/src/app/components/HardpointSlot.jsx
+++ b/src/app/components/HardpointSlot.jsx
@@ -77,6 +77,7 @@ export default class HardpointSlot extends Slot {
{ m.getFalloff() ?
{translate('falloff')} {formats.f1(m.getFalloff() / 1000)}{u.km}
: null }
{ m.getShieldBoost() ? +{formats.pct1(m.getShieldBoost())}
: null }
{ m.getAmmo() ? {translate('ammunition')}: {formats.int(m.getClip())}/{formats.int(m.getAmmo())}
: null }
+ { m.getShotSpeed() ? {translate('shotspeed')}: {formats.int(m.getShotSpeed())}{u.mps}
: null }
{ m.getPiercing() ? {translate('piercing')}: {formats.int(m.getPiercing())}
: null }
{ m.getJitter() ? {translate('jitter')}: {formats.f2(m.getJitter())}°
: null }
{ showModuleResistances && m.getExplosiveResistance() ? {translate('explres')}: {formats.pct(m.getExplosiveResistance())}
: null }
diff --git a/src/app/i18n/Language.jsx b/src/app/i18n/Language.jsx
index d16b2e1f..4fbac2e4 100644
--- a/src/app/i18n/Language.jsx
+++ b/src/app/i18n/Language.jsx
@@ -67,6 +67,7 @@ export function getLanguage(langCode) {
'm/s': {translate('m/s')}, // Meters per second
'°/s': {translate('°/s')}, // Degrees per second
MW: {translate('MW')}, // Mega Watts (same as Mega Joules per second)
+ mps: {translate('m/s')}, // Metres per second
ps: {translate('/s')}, // per second
pm: {translate('/min')}, // per minute
s: {translate('secs')}, // Seconds
diff --git a/src/app/i18n/en.js b/src/app/i18n/en.js
index 93fc57b7..03c96387 100644
--- a/src/app/i18n/en.js
+++ b/src/app/i18n/en.js
@@ -174,6 +174,7 @@ export const terms = {
shield: 'Shield',
shieldboost: 'Shield boost',
shieldreinforcement: 'Shield reinforcement',
+ shotspeed: 'Shot speed',
spinup: 'Spin up time',
syscap: 'Systems capacity',
sysrate: 'Systems recharge rate',
diff --git a/src/app/shipyard/Module.js b/src/app/shipyard/Module.js
index bd4b9adb..7b58e6b4 100755
--- a/src/app/shipyard/Module.js
+++ b/src/app/shipyard/Module.js
@@ -656,4 +656,12 @@ export default class Module {
getDamageDist() {
return this.getModValue('damagedist') || this.damagedist;
}
+
+ /**
+ * Get the shot speed for this module, taking in to account modifications
+ * @return {string} the damage distribution for this module
+ */
+ getShotSpeed() {
+ return this._getModifiedValue('shotspeed');
+ }
}