mirror of
https://github.com/EDCD/coriolis.git
synced 2025-12-08 22:33:24 +00:00
Compare commits
19 Commits
00f098ca29
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1dfd3cdc23 | ||
|
|
a3d7c8b7a7 | ||
|
|
60a05d93c8 | ||
|
|
7f3056560d | ||
|
|
43718e15cf | ||
|
|
8a1ad353e2 | ||
|
|
fbe29d8087 | ||
|
|
8583c6a811 | ||
|
|
620a82faf2 | ||
|
|
8296562640 | ||
|
|
505c6809a1 | ||
|
|
35a24a55e8 | ||
|
|
b365faed0a | ||
|
|
060b98cc89 | ||
|
|
6a1eae8e9e | ||
|
|
98126267e7 | ||
|
|
22b73b9b0c | ||
|
|
f769a0d40d | ||
|
|
4ae2140178 |
@@ -69,7 +69,7 @@ export default class Coriolis extends React.Component {
|
||||
noTouch: !('ontouchstart' in window || navigator.msMaxTouchPoints || navigator.maxTouchPoints),
|
||||
page: null,
|
||||
// Announcements must have an expiry date in format "YYYY-MM-DDTHH:MM:SSZ"
|
||||
announcements: [{expiry: "2024-11-30T00:00:00Z", text: "Mandalay added"}, {expiry: "2024-12-06T00:00:00Z", text: "Concord Cannon added"}, {expiry: "2024-12-08T00:00:00Z", text: "Boost Interval Feature added"}],
|
||||
announcements: [{expiry: "2025-04-10T00:00:00Z", text: "Corsair added"}],
|
||||
language: getLanguage(Persist.getLangCode()),
|
||||
route: {},
|
||||
sizeRatio: Persist.getSizeRatio()
|
||||
@@ -123,7 +123,15 @@ export default class Coriolis extends React.Component {
|
||||
this._showModal(<ModalImport importString={data}/>);
|
||||
}
|
||||
} catch (err) {
|
||||
this._onError('Failed to import ship', r.path, 0, 0, err);
|
||||
const fullUrl = window.location.href;
|
||||
|
||||
if (fullUrl.length >= 2083) {
|
||||
err = 'URL Length = ' + fullUrl.length;
|
||||
this._onError('Failed to import ship - Potential URL Length issue', r.path, 0, 0, err);
|
||||
}
|
||||
else {
|
||||
this._onError('Failed to import ship - Unknown Reason', r.path, 0, 0, err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ export default class JumpRange extends TranslatedComponent {
|
||||
const fuel = this.state.fuelLevel * ship.fuelCapacity;
|
||||
|
||||
// Obtain the jump range
|
||||
return Calc.jumpRange(ship.unladenMass + fuel + cargo, fsd, fuel, ship);
|
||||
return Calc.jumpRange(ship.unladenMass + cargo, fsd, fuel, ship);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -126,7 +126,6 @@ export default class PowerManagement extends TranslatedComponent {
|
||||
}
|
||||
|
||||
// If this is a Guardian Shield Reinforcement Package or Guardian Hull Reinforcement Package, or Guardian Module Reinforcement Package, it cannot change priority
|
||||
console.log(slot);
|
||||
let priorityField;
|
||||
if (m.symbol) {
|
||||
if (m.symbol.match(/GuardianShield/i) || m.symbol.match(/GuardianHull/i) || m.symbol.match(/GuardianModule/i)) {
|
||||
|
||||
@@ -109,11 +109,11 @@ export default class ShipSummaryTable extends TranslatedComponent {
|
||||
<td onMouseEnter={termtip.bind(null, boostTooltip, { cap: 0 })} onMouseLeave={hide}>{ canBoost ? <span>{int(ship.calcSpeed(4, ship.fuelCapacity, 0, true))}{u['m/s']}</span> : <span className='warning'>0 <Warning/></span> }</td>
|
||||
<td>{distBoost !== 'No Boost' ? formats.time(distBoost) : 'No Boost'}</td>
|
||||
<td>{ship.boostInt && ship.boostInt !== 'undefined' ? formats.time(ship.boostInt) : 0 }</td>
|
||||
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_MAX_SINGLE_JUMP', { cap: 0 })} onMouseLeave={hide}>{ canJump ? <span>{ f2(Calc.jumpRange(ship.unladenMass + ship.standard[2].m.getMaxFuelPerJump(), ship.standard[2].m, ship.standard[2].m.getMaxFuelPerJump(), ship))}{u.LY}</span> : <span className='warning'>0 <Warning/></span> }</td>
|
||||
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_UNLADEN_SINGLE_JUMP', { cap: 0 })} onMouseLeave={hide}>{ canJump ? <span>{f2(Calc.jumpRange(ship.unladenMass + ship.fuelCapacity, ship.standard[2].m, ship.fuelCapacity, ship))}{u.LY}</span> : <span className='warning'>0 <Warning/></span> }</td>
|
||||
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_LADEN_SINGLE_JUMP', { cap: 0 })} onMouseLeave={hide}>{ canJump ? <span>{f2(Calc.jumpRange(ship.unladenMass + ship.fuelCapacity + ship.cargoCapacity, ship.standard[2].m, ship.fuelCapacity, ship))}{u.LY}</span> : <span className='warning'>0 <Warning/></span> }</td>
|
||||
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_UNLADEN_TOTAL_JUMP', { cap: 0 })} onMouseLeave={hide}>{ canJump ? <span>{f2(Calc.totalJumpRange(ship.unladenMass + ship.fuelCapacity, ship.standard[2].m, ship.fuelCapacity, ship))}{u.LY}</span> : <span className='warning'>0 <Warning/></span> }</td>
|
||||
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_LADEN_TOTAL_JUMP', { cap: 0 })} onMouseLeave={hide}>{ canJump ? <span>{f2(Calc.totalJumpRange(ship.unladenMass + ship.fuelCapacity + ship.cargoCapacity, ship.standard[2].m, ship.fuelCapacity, ship))}{u.LY}</span> : <span className='warning'>0 <Warning/></span> }</td>
|
||||
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_MAX_SINGLE_JUMP', { cap: 0 })} onMouseLeave={hide}>{ canJump ? <span>{ f2(Calc.jumpRange(ship.unladenMass - ship.fuelCapacity + ship.standard[2].m.getMaxFuelPerJump(), ship.standard[2].m, ship.standard[2].m.getMaxFuelPerJump(), ship))}{u.LY}</span> : <span className='warning'>0 <Warning/></span> }</td>
|
||||
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_UNLADEN_SINGLE_JUMP', { cap: 0 })} onMouseLeave={hide}>{ canJump ? <span>{f2(Calc.jumpRange(ship.unladenMass, ship.standard[2].m, ship.fuelCapacity, ship))}{u.LY}</span> : <span className='warning'>0 <Warning/></span> }</td>
|
||||
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_LADEN_SINGLE_JUMP', { cap: 0 })} onMouseLeave={hide}>{ canJump ? <span>{f2(Calc.jumpRange(ship.unladenMass + ship.cargoCapacity, ship.standard[2].m, ship.fuelCapacity, ship))}{u.LY}</span> : <span className='warning'>0 <Warning/></span> }</td>
|
||||
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_UNLADEN_TOTAL_JUMP', { cap: 0 })} onMouseLeave={hide}>{ canJump ? <span>{f2(Calc.totalJumpRange(ship.unladenMass, ship.standard[2].m, ship.fuelCapacity, ship))}{u.LY}</span> : <span className='warning'>0 <Warning/></span> }</td>
|
||||
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_LADEN_TOTAL_JUMP', { cap: 0 })} onMouseLeave={hide}>{ canJump ? <span>{f2(Calc.totalJumpRange(ship.unladenMass + ship.cargoCapacity, ship.standard[2].m, ship.fuelCapacity, ship))}{u.LY}</span> : <span className='warning'>0 <Warning/></span> }</td>
|
||||
<td className={sgClassNames} onMouseEnter={termtip.bind(null, sgTooltip, { cap: 0 })} onMouseLeave={hide}>{int(ship.shield)}{u.MJ}</td>
|
||||
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_INTEGRITY', { cap: 0 })} onMouseLeave={hide}>{int(ship.armour)}</td>
|
||||
<td onMouseEnter={termtip.bind(null, 'TT_SUMMARY_DPS', { cap: 0 })} onMouseLeave={hide}>{f1(ship.totalDps)}</td>
|
||||
|
||||
@@ -75,8 +75,8 @@
|
||||
"TT_SUMMARY_SHIELDS_NONFUNCTIONAL": "No shield generator or shield generator powered off",
|
||||
"TT_SUMMARY_INTEGRITY": "Ship integrity, including bulkheads and hull reinforcement packages",
|
||||
"TT_SUMMARY_HULL_MASS": "Mass of the hull prior to any modules being installed",
|
||||
"TT_SUMMARY_UNLADEN_MASS": "Mass of the hull and modules prior to any fuel or cargo",
|
||||
"TT_SUMMARY_LADEN_MASS": "Mass of the hull and modules with full fuel and cargo",
|
||||
"TT_SUMMARY_UNLADEN_MASS": "Mass of the hull and modules prior to any cargo or passengers",
|
||||
"TT_SUMMARY_LADEN_MASS": "Mass of the hull and modules with full fuel, cargo, passengers, etc.",
|
||||
"TT_SUMMARY_DPS": "Damage per second with all weapons firing",
|
||||
"TT_SUMMARY_EPS": "WEP capacitor consumed per second with all weapons firing",
|
||||
"TT_SUMMARY_TTD": "Time to drain WEP capacitor with all weapons firing and 4 pips to WEP",
|
||||
|
||||
@@ -33,24 +33,27 @@ export default class AboutPage extends Page {
|
||||
</h1>
|
||||
|
||||
<p>
|
||||
This is a clone of the Coriolis project, whose original author is
|
||||
currently unable to maintain it. This clone is maintained by the{' '}
|
||||
This is now the only active version of the Coriolis project. The original author has handed over the maintenance of the project to the {' '}
|
||||
<a href="http://edcd.github.io/">EDCD community</a>.
|
||||
</p>
|
||||
<h3>Expectations</h3>
|
||||
<p>
|
||||
To recover your builds, go to{' '}
|
||||
<a href="https://coriolis.io/" target="_blank">
|
||||
https://coriolis.io/
|
||||
</a>
|
||||
, backup your builds (Settings / Backup), copy the text, return here
|
||||
and import (Settings / Import).
|
||||
Although every attempt is made to update the data as soon as possible, following the release of new modules and ships, there may be a delay, of up-to a few days, before the data is available. Wherever possible, the current maintainers aim to keep this delay to a minimum. Please be aware that the project maintainers are volunteers and have real lives to attend to, so please be patient. If you would like to help with the maintenance of the project, please see the link to the EDCD Discord Server below, where you can get involved.
|
||||
</p>
|
||||
<p>
|
||||
The Coriolis project was inspired by{' '}
|
||||
<a href="http://www.edshipyard.com/" target="_blank">
|
||||
E:D Shipyard
|
||||
</a>{' '}
|
||||
and, of course,{' '}
|
||||
There are, some missing modules from the time where the project was essentially not being maintained. These modules are gradually being added to the Coriolis database as and when the maintainers have the time to do so.
|
||||
</p>
|
||||
<p>
|
||||
Please check the {' '} <a href="https://github.com/EDCD/coriolis/issues/" target="_blank" >Github Issues List</a> for any specific modules you cannot find and see if there is an open request for them. If not, please feel free to open a new issue, however, please note that there is an existing issue open for the addition of pre-engineered modules, so please do not open a new issue for these.
|
||||
</p>
|
||||
<h3>Donations</h3>
|
||||
<p>
|
||||
If you would like to donate to the project, in order to help with the costs of hosting and maintainence, please see the link to the {' '}
|
||||
<a href="https://github.com/Brighter-Applications/coriolis" target="_blank">Current Maintainers version of the Git Repository</a> and use the 'Sponsor' button at the top of the page.
|
||||
</p>
|
||||
<h3>History</h3>
|
||||
<p>
|
||||
The Coriolis project was inspired by 'E:D Shipyard' (Now Defunct) and, of course,{' '}
|
||||
<a href="http://www.elitedangerous.com" target="_blank">
|
||||
Elite Dangerous
|
||||
</a>
|
||||
|
||||
@@ -33,7 +33,7 @@ export default class ErrorDetails extends React.Component {
|
||||
<div style={{ marginTop: '2em' }}>
|
||||
<div><span className='warning'>Browser:</span> {window.navigator.userAgent}</div>
|
||||
<div><span className='warning'>Path:</span> {this.context.route.canonicalPath}</div>
|
||||
<div><span className='warning'>Error:</span> {error.type || 'Unknown'}</div>
|
||||
<div><span className='warning'>Error:</span> {ed["error"] || 'Unknown'}</div>
|
||||
<div className='warning'>Details:</div>
|
||||
<div><pre>{typeof ed == 'object' ? Object.keys(ed).map((e) => `${e}: ${ed[e]}\n`) : ed}</pre></div>
|
||||
</div>
|
||||
@@ -42,18 +42,67 @@ export default class ErrorDetails extends React.Component {
|
||||
|
||||
const importerror = ed && ed.scriptUrl && ed.scriptUrl.indexOf('/import') != -1;
|
||||
|
||||
if (ed['error'].match(/URL Length/i)) {
|
||||
return <div className='error'>
|
||||
<h1>Jameson, we have a problem..</h1>
|
||||
<h1><small>{error.message}</small></h1>
|
||||
Import Error handling has been improved, but still isn't perfect. <br/>MOST Import failures are a result of missing modules in Coriolis, <br />OR incorrect import strings generated by third party apps. If you're seeing this page, we may have failed to handle the errors in your import correctly. Please see the data output below, specifically the 'scriptUrl:' section if it's there and then if you feel confident enough, please check the github issues page linked below and see if there is a similar issue already logged. If not, please create a new issue with the data below. If you're not confident, please ask for help on the Coriolis Channel of the EDCD Discord server.
|
||||
<br/>
|
||||
<br/>
|
||||
<br/>
|
||||
{importerror ? <div>If you are attempting to import a ship from EDDI or EDMC and are seeing a 'Z_BUF_ERROR' it means that the URL has not been provided correctly. This is a common problem when using Microsoft Internet Explorer or Microsoft Edge, and you should use another browser instead.</div> : null }
|
||||
It looks as though you've encountered a URL Length issue for your browser.
|
||||
|
||||
<br /><br />
|
||||
|
||||
This is a known issue with Internet Explorer and Edge, as well as Google Chrome, all of which only support 2083 characters and your URL is:
|
||||
|
||||
<br /><br />
|
||||
|
||||
{ed["error"]} characters.
|
||||
|
||||
<br /><br />
|
||||
|
||||
Please try using another browser first, before reporting an issue, such as Firefox which supports 65,536 characters or Safari, which supports 80,000 characters.
|
||||
|
||||
<br /><br />
|
||||
|
||||
Don't copy the URL from Explorer, Edge or Chrome, as they will have truncated it and the data string will be incorrect. You'll need to change your default browser settings, so that when you click the link, it opens in the browser you want to use.
|
||||
<br /><br />
|
||||
If you're already using Firefox, which supports up to 65,536 characters or Safari, which supports up to 80,000 characters, please see the data output below.
|
||||
<br/><br />
|
||||
<h3>Data Output</h3>
|
||||
{content}
|
||||
</div>;
|
||||
}
|
||||
else {
|
||||
return <div className='error'>
|
||||
<h1>Jameson, we have a problem..</h1>
|
||||
<h1><small>{error.message}</small></h1>
|
||||
Import Error handling has been improved, but still isn't perfect.
|
||||
|
||||
<br /><br />
|
||||
|
||||
If you're seeing this page, we may have failed to handle the errors in your import correctly. Please check the common import failures list and then the data output below, specifically the 'scriptUrl:' section if it's there and then if you feel confident enough, please check the github issues page linked below and see if there is a similar issue already logged. If not, please create a new issue with the data below. If you're not confident, please ask for help on the Coriolis Channel of the EDCD Discord server.
|
||||
|
||||
<br /><br />
|
||||
<h3>Common Import Failures</h3>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
Previously, most failures were a result of missing modules in Coriolis, although this is rarer now since the import system was improved. If you're using a module in game and you know it isn't in Coriolis, this could be the problem, please check the data output section below.
|
||||
</li>
|
||||
<li>
|
||||
Incorrect import strings generated by third party apps do still occur, please check the data output below and if the import was from something like EDMC, please check you're using the latest version.
|
||||
</li>
|
||||
<li>
|
||||
You've hit a 'maximum URL Length' for your browser. This is a known issue with Internet Explorer and Edge, as well as Google Chrome, all of which only support 2083 characters. Please try using another browser first, before reporting an issue, such as Firefox which supports 65,536 characters or Safari, which supports 80,000 characters. Don't copy the URL from Explorer, Edge or Chrome, as they will have truncated it and the data string will be incorrect. You'll need to change your default browser settings, so that when you click the link, it opens in the browser you want to use.
|
||||
</li>
|
||||
<li>
|
||||
{importerror ? <div>If you are attempting to import a ship from EDDI or EDMC and are seeing a 'Z_BUF_ERROR' it means that the URL has not been understood correctly by the browser. This is a common problem when using Microsoft Internet Explorer or Microsoft Edge, and you should use another browser instead.</div> : null }
|
||||
</li>
|
||||
</ul>
|
||||
<br/>
|
||||
<div>Please note that this site uses Google Analytics to track performance and usage. If you are blocking cookies, for example using Ghostery, please disable blocking for this site and try again.</div>
|
||||
<br/>
|
||||
<h3>Data Output</h3>
|
||||
{content}
|
||||
</div>;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -927,8 +927,9 @@ export default class Module {
|
||||
const burst = this.get('burst', modified) || 1;
|
||||
const burstRoF = this.get('burstrof', modified) || 1;
|
||||
const intRoF = this.get('rof', modified);
|
||||
const charge = this.get('charge', modified) || 0;
|
||||
|
||||
return burst / (((burst - 1) / burstRoF) + 1 / intRoF);
|
||||
return burst / (((burst - 1) / burstRoF) + 1 / intRoF + charge);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1210,12 +1210,11 @@ export default class Ship {
|
||||
.value();
|
||||
|
||||
// Update global stats
|
||||
this.unladenMass = unladenMass;
|
||||
this.unladenMass = unladenMass + fuelCapacity;
|
||||
this.cargoCapacity = cargoCapacity;
|
||||
this.fuelCapacity = fuelCapacity;
|
||||
this.passengerCapacity = passengerCapacity;
|
||||
this.ladenMass = unladenMass + fuelCapacity + cargoCapacity;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import { STATS_FORMATTING } from '../shipyard/StatsFormatting';
|
||||
* @returns {Object} The react components
|
||||
*/
|
||||
export function specialToolTip(translate, blueprint, grp, m, specialName) {
|
||||
const description = [];
|
||||
const effects = [];
|
||||
if (!blueprint || !blueprint.features) {
|
||||
return undefined;
|
||||
@@ -19,6 +20,15 @@ export function specialToolTip(translate, blueprint, grp, m, specialName) {
|
||||
if (m) {
|
||||
// We also add in any benefits from specials that aren't covered above
|
||||
if (m.blueprint) {
|
||||
if (specialName) {
|
||||
if (Modifications.specials[specialName].description) {
|
||||
description.push(
|
||||
<div className={'success'} style={{ maxWidth: 350, padding: 5, marginBottom: 10 }}>
|
||||
{Modifications.specials[specialName].description}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
for (const feature in Modifications.modifierActions[specialName]) {
|
||||
// if (!blueprint.features[feature] && !m.mods.feature) {
|
||||
const featureDef = Modifications.modifications[feature];
|
||||
@@ -53,6 +63,7 @@ export function specialToolTip(translate, blueprint, grp, m, specialName) {
|
||||
|
||||
return (
|
||||
<div>
|
||||
{description}
|
||||
<table width='100%'>
|
||||
<tbody>
|
||||
{effects}
|
||||
|
||||
@@ -14,6 +14,8 @@ export const SHIP_FD_NAME_TO_CORIOLIS_NAME = {
|
||||
'BelugaLiner': 'beluga',
|
||||
'CobraMkIII': 'cobra_mk_iii',
|
||||
'CobraMkIV': 'cobra_mk_iv',
|
||||
'CobraMkV': 'cobramkv',
|
||||
'Corsair': 'imperial_corsair',
|
||||
'Cutter': 'imperial_cutter',
|
||||
'DiamondBackXL': 'diamondback_explorer',
|
||||
'DiamondBack': 'diamondback',
|
||||
|
||||
@@ -9,6 +9,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
pre {
|
||||
white-space: pre-wrap;
|
||||
white-space: -moz-pre-wrap;
|
||||
|
||||
Reference in New Issue
Block a user