+The engine profile panel provides information about the capabilities of your current thrusters. The graph shows you how the maximum speed (with 4 pips to engines) alters with the overall mass of your build. The slider can be altered to change the amount of cargo you have on-board. Your engine profile can be altered by obtaining different thrusters or engineering your existing thrusters.
+
+
FSD Profile
+The FSD profile panel provides information about the capabilities of your current frame shift drive. The graph shows you how the maximum jump range alters with the overall mass of your build. The slider can be altered to change the amount of cargo you have on-board. Your FSD profile can be altered by obtaining a different FSD or engineering your existing FSD.
+
Jump Range
The jump range panel provides information about the build' jump range. The graph shows how the build's jump range changes with the amount of cargo on-board. The slider can be altered to change the amount of fuel you have on-board.
diff --git a/src/app/pages/OutfittingPage.jsx b/src/app/pages/OutfittingPage.jsx
index 6819a8a7..0e50fc63 100644
--- a/src/app/pages/OutfittingPage.jsx
+++ b/src/app/pages/OutfittingPage.jsx
@@ -8,7 +8,7 @@ import Persist from '../stores/Persist';
import Ship from '../shipyard/Ship';
import { toDetailedBuild } from '../shipyard/Serializer';
import { outfitURL } from '../utils/UrlGenerators';
-import { FloppyDisk, Bin, Switch, Download, Reload, Fuel, LinkIcon, ShoppingIcon } from '../components/SvgIcons';
+import { FloppyDisk, Bin, Switch, Download, Reload, LinkIcon, ShoppingIcon } from '../components/SvgIcons';
import ShipSummaryTable from '../components/ShipSummaryTable';
import StandardSlotSection from '../components/StandardSlotSection';
import HardpointsSlotSection from '../components/HardpointsSlotSection';
@@ -17,18 +17,17 @@ import UtilitySlotSection from '../components/UtilitySlotSection';
import OffenceSummary from '../components/OffenceSummary';
import DefenceSummary from '../components/DefenceSummary';
import MovementSummary from '../components/MovementSummary';
+import EngineProfile from '../components/EngineProfile';
+import FSDProfile from '../components/FSDProfile';
+import JumpRange from '../components/JumpRange';
import DamageDealt from '../components/DamageDealt';
import DamageReceived from '../components/DamageReceived';
-import LineChart from '../components/LineChart';
import PowerManagement from '../components/PowerManagement';
import CostSection from '../components/CostSection';
import ModalExport from '../components/ModalExport';
import ModalPermalink from '../components/ModalPermalink';
import Slider from '../components/Slider';
-const SPEED_SERIES = ['boost', '4 Pips', '2 Pips', '0 Pips'];
-const SPEED_COLORS = ['#0088d2', '#ff8c0d', '#D26D00', '#c06400'];
-
/**
* Document Title Generator
* @param {String} shipName Ship Name
@@ -81,7 +80,6 @@ export default class OutfittingPage extends Page {
ship.buildWith(data.defaults); // Populate with default components
}
- let fuelCapacity = ship.fuelCapacity;
this._getTitle = getTitle.bind(this, data.properties.name);
return {
@@ -93,12 +91,7 @@ export default class OutfittingPage extends Page {
shipId,
ship,
code,
- savedCode,
- fuelCapacity,
- fuelLevel: 1,
- jumpRangeChartFunc: ship.calcJumpRangeWith.bind(ship, fuelCapacity),
- fastestRangeChartFunc: ship.calcFastestRangeWith.bind(ship, fuelCapacity),
- speedChartFunc: ship.calcSpeedsWith.bind(ship, fuelCapacity)
+ savedCode
};
}
@@ -193,13 +186,9 @@ export default class OutfittingPage extends Page {
* Trigger render on ship model change
*/
_shipUpdated() {
- let { shipId, buildName, ship, fuelCapacity } = this.state;
+ let { shipId, buildName, ship } = this.state;
let code = ship.toString();
- if (fuelCapacity != ship.fuelCapacity) {
- this._fuelChange(this.state.fuelLevel);
- }
-
this._updateRoute(shipId, buildName, code);
this.setState({ code });
}
@@ -214,23 +203,6 @@ export default class OutfittingPage extends Page {
Router.replace(outfitURL(shipId, code, buildName));
}
- /**
- * Update current fuel level
- * @param {number} fuelLevel Fuel leval 0 - 1
- */
- _fuelChange(fuelLevel) {
- let ship = this.state.ship;
- let fuelCapacity = ship.fuelCapacity;
- let fuel = fuelCapacity * fuelLevel;
- this.setState({
- fuelLevel,
- fuelCapacity,
- jumpRangeChartFunc: ship.calcJumpRangeWith.bind(ship, fuel),
- fastestRangeChartFunc: ship.calcFastestRangeWith.bind(ship, fuel),
- speedChartFunc: ship.calcSpeedsWith.bind(ship, fuel)
- });
- }
-
/**
* Update dimenions from rendered DOM
*/
@@ -240,7 +212,7 @@ export default class OutfittingPage extends Page {
if (elem) {
this.setState({
thirdChartWidth: findDOMNode(this.refs.chartThird).offsetWidth,
- halfChartWidth: findDOMNode(this.refs.chartHalf).offsetWidth
+ halfChartWidth: findDOMNode(this.refs.chartThird).offsetWidth * 3 / 2
});
}
}
@@ -323,7 +295,7 @@ export default class OutfittingPage extends Page {
let state = this.state,
{ language, termtip, tooltip, sizeRatio, onWindowResize } = this.context,
{ translate, units, formats } = language,
- { ship, code, savedCode, buildName, newBuildName, halfChartWidth, thirdChartWidth, fuelCapacity, fuelLevel } = state,
+ { ship, code, savedCode, buildName, newBuildName, halfChartWidth, thirdChartWidth } = state,
hide = tooltip.bind(null, null),
menu = this.props.currentMenu,
shipUpdated = this._shipUpdated,
@@ -333,6 +305,9 @@ export default class OutfittingPage extends Page {
hStr = ship.getHardpointsString() + '.' + ship.getModificationsString(),
iStr = ship.getInternalString() + '.' + ship.getModificationsString();
+ // Code can be blank for a default loadout. Prefix it with the ship name to ensure that changes in default ships is picked up
+ code = ship.name + (code || '');
+
return (