mirror of
https://github.com/EDCD/coriolis.git
synced 2025-12-09 22:55:35 +00:00
Add ability to export module list to EDDB to find where they can be purchased
This commit is contained in:
@@ -4,6 +4,7 @@
|
|||||||
* Handle import of ships with incorrectly-sized slots
|
* Handle import of ships with incorrectly-sized slots
|
||||||
* Add 'Extreme' blueprint roll: best beneficial and worst detrimental outcome (in place of 'Average' roll)
|
* Add 'Extreme' blueprint roll: best beneficial and worst detrimental outcome (in place of 'Average' roll)
|
||||||
* Display information about Microsoft browser issues when an import fails
|
* Display information about Microsoft browser issues when an import fails
|
||||||
|
* Add 'purchase this build' icon link to EDDB
|
||||||
|
|
||||||
#2.2.14
|
#2.2.14
|
||||||
* Ensure that jitter is shown correctly when the result of a special effect
|
* Ensure that jitter is shown correctly when the result of a special effect
|
||||||
|
|||||||
@@ -227,6 +227,26 @@ export class LinkIcon extends SvgIcon {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shopping icon (dollar sign)
|
||||||
|
*/
|
||||||
|
export class ShoppingIcon extends SvgIcon {
|
||||||
|
/**
|
||||||
|
* Overriden view box
|
||||||
|
* @return {String} view box
|
||||||
|
*/
|
||||||
|
viewBox() { return '0 0 200 200'; }
|
||||||
|
/**
|
||||||
|
* Generate the SVG
|
||||||
|
* @return {React.Component} SVG Contents
|
||||||
|
*/
|
||||||
|
svg() {
|
||||||
|
return <g>
|
||||||
|
<path d='M94 188v-17c-9-1-16-3-21-6-6-3-11-7-15-14-4-6-6-14-6-23l17-3c2 9 4 16 7 21 5 6 11 9 18 10v-56c-7-1-14-4-22-8-6-3-10-8-13-13-3-6-4-12-4-19 0-13 4-23 13-31 6-5 15-8 26-9v-8h11v8c10 1 18 4 24 9 8 6 12 15 14 26l-18 3c-1-7-4-12-7-16s-8-6-13-7v50l17 6c6 2 10 5 13 8 4 4 7 8 8 13 2 4 3 10 3 15 0 12-4 22-11 31-8 8-18 12-30 13v17H94zm0-153c-7 1-12 3-16 8-4 4-6 9-6 15s2 11 5 16c4 4 9 7 17 9V35zm11 121a28 28 0 0 0 24-28c-1-6-2-11-6-15-3-4-9-7-18-10v53z'/>
|
||||||
|
</g>;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* No Power - Lightning bolt + no entry
|
* No Power - Lightning bolt + no entry
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ export const terms = {
|
|||||||
PHRASE_BLUEPRINT_RESET: 'Remove all modifications and blueprint',
|
PHRASE_BLUEPRINT_RESET: 'Remove all modifications and blueprint',
|
||||||
PHRASE_SELECT_SPECIAL: 'Click to select an experimental effect',
|
PHRASE_SELECT_SPECIAL: 'Click to select an experimental effect',
|
||||||
PHRASE_NO_SPECIAL: 'No experimental effect',
|
PHRASE_NO_SPECIAL: 'No experimental effect',
|
||||||
|
PHRASE_SHOPPING_LIST: 'Stations that sell this build',
|
||||||
|
|
||||||
HELP_MODIFICATIONS_MENU: 'Click on a number to enter a new value, or drag along the bar for small changes',
|
HELP_MODIFICATIONS_MENU: 'Click on a number to enter a new value, or drag along the bar for small changes',
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import Persist from '../stores/Persist';
|
|||||||
import Ship from '../shipyard/Ship';
|
import Ship from '../shipyard/Ship';
|
||||||
import { toDetailedBuild } from '../shipyard/Serializer';
|
import { toDetailedBuild } from '../shipyard/Serializer';
|
||||||
import { outfitURL } from '../utils/UrlGenerators';
|
import { outfitURL } from '../utils/UrlGenerators';
|
||||||
import { FloppyDisk, Bin, Switch, Download, Reload, Fuel, LinkIcon } from '../components/SvgIcons';
|
import { FloppyDisk, Bin, Switch, Download, Reload, Fuel, LinkIcon, ShoppingIcon } from '../components/SvgIcons';
|
||||||
import ShipSummaryTable from '../components/ShipSummaryTable';
|
import ShipSummaryTable from '../components/ShipSummaryTable';
|
||||||
import StandardSlotSection from '../components/StandardSlotSection';
|
import StandardSlotSection from '../components/StandardSlotSection';
|
||||||
import HardpointsSlotSection from '../components/HardpointsSlotSection';
|
import HardpointsSlotSection from '../components/HardpointsSlotSection';
|
||||||
@@ -284,6 +284,20 @@ export default class OutfittingPage extends Page {
|
|||||||
this.context.showModal(<ModalPermalink url={window.location.href}/>);
|
this.context.showModal(<ModalPermalink url={window.location.href}/>);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Open up a window for EDDB with a shopping list of our components
|
||||||
|
*/
|
||||||
|
_eddbShoppingList() {
|
||||||
|
const ship = this.state.ship;
|
||||||
|
|
||||||
|
const shipId = Ships[ship.id].eddbID;
|
||||||
|
// Provide unique list of non-PP module EDDB IDs
|
||||||
|
const modIds = ship.internal.concat(ship.bulkheads, ship.standard, ship.hardpoints).filter(slot => slot !== null && slot.m !== null && !slot.m.pp).map(slot => slot.m.eddbID).filter((v, i, a) => a.indexOf(v) === i);
|
||||||
|
|
||||||
|
// Open up the relevant URL
|
||||||
|
window.open('https://eddb.io/station?s=' + shipId + '&m=' + modIds.join(','));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle Key Down
|
* Handle Key Down
|
||||||
* @param {Event} e Keyboard Event
|
* @param {Event} e Keyboard Event
|
||||||
@@ -342,6 +356,9 @@ export default class OutfittingPage extends Page {
|
|||||||
<button onClick={buildName && this._exportBuild} disabled={!buildName} onMouseOver={termtip.bind(null, 'export')} onMouseOut={hide}>
|
<button onClick={buildName && this._exportBuild} disabled={!buildName} onMouseOver={termtip.bind(null, 'export')} onMouseOut={hide}>
|
||||||
<Download className='lg'/>
|
<Download className='lg'/>
|
||||||
</button>
|
</button>
|
||||||
|
<button onClick={this._eddbShoppingList} onMouseOver={termtip.bind(null, 'PHRASE_SHOPPING_LIST')} onMouseOut={hide}>
|
||||||
|
<ShoppingIcon className='lg' />
|
||||||
|
</button>
|
||||||
<button onClick={this._genShortlink} onMouseOver={termtip.bind(null, 'shortlink')} onMouseOut={hide}>
|
<button onClick={this._genShortlink} onMouseOver={termtip.bind(null, 'shortlink')} onMouseOut={hide}>
|
||||||
<LinkIcon className='lg' />
|
<LinkIcon className='lg' />
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
Reference in New Issue
Block a user