diff --git a/.gitignore b/.gitignore index 7e3be73..7d5a785 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,9 @@ node_modules .vercel_build_output/ package-lock.json .svench + +.DS_STORE +.cache +.temp +node_modules/ +dist/yarn-error.log diff --git a/.storybook/main.js b/.storybook/main.js index 444611d..cbe87f7 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -1,12 +1,47 @@ -const path = require('path'); +const path = require("path"); +const preprocess = require("svelte-preprocess"); module.exports = { - addons: ['@storybook/addon-actions/register'], - stories: [ '../src/**/*stories.js' ], - webpackFinal: (config) => { - config.resolve.alias['~'] = path.resolve(__dirname, '../src/'); - config.resolve.alias['~C'] = path.resolve(__dirname, '../src/components/'); + core: { builder: "storybook-builder-vite" }, + staticDirs: ["../static", "../pictures"], + stories: [ + "../src/**/*.stories.mdx", + "../src/**/*.stories.svelte", + "../src/**/stories.svelte", + ], + addons: [ + "@storybook/addon-essentials", + "@storybook/addon-svelte-csf", + ], + framework: "@storybook/svelte", + svelteOptions: { + preprocess: preprocess(), + }, + async viteFinal(config, { configType }) { - return config; - } + if(!config.resolve.alias) config.resolve.alias = {}; + // customize the Vite config here + config.resolve.alias.$lib = path.resolve(__dirname, "../src/lib/"); + config.resolve.alias.$app = path.resolve(__dirname, "../fake/app/"); + + config.resolve.dedupe = ["@storybook/client-api"]; + + // return the customized config + return config; + }, + webpackFinal: async (config) => { + return { + ...config, + resolve: { + ...config.resolve, + alias: { + ...config.resolve?.alias, + $app: path.resolve("./fake/app"), + "\\$lib": path.resolve(__dirname, "../src/lib/"), + $lib: path.resolve(__dirname, "../src/lib/"), + "\\$app/env": path.resolve(__dirname, "../fake/app/env.js"), + }, + }, + }; + }, }; diff --git a/.storybook/package.json b/.storybook/package.json new file mode 100644 index 0000000..5bbefff --- /dev/null +++ b/.storybook/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/.storybook/preview.js b/.storybook/preview.js new file mode 100644 index 0000000..fe480ff --- /dev/null +++ b/.storybook/preview.js @@ -0,0 +1,11 @@ +import "$lib/style/index.js"; + +export const parameters = { + actions: { argTypesRegex: "^on[A-Z].*" }, + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/, + }, + }, +}; diff --git a/.vitebook/App.svelte b/.vitebook/App.svelte new file mode 100644 index 0000000..ae1b2b7 --- /dev/null +++ b/.vitebook/App.svelte @@ -0,0 +1,6 @@ + + + diff --git a/.vitebook/config.js b/.vitebook/config.js new file mode 100644 index 0000000..7bc7675 --- /dev/null +++ b/.vitebook/config.js @@ -0,0 +1,31 @@ +import { svelte } from "@sveltejs/vite-plugin-svelte"; +import { clientPlugin, defineConfig } from "@vitebook/client/node"; +import { defaultThemePlugin } from "@vitebook/theme-default/node"; +import preprocess from "svelte-preprocess"; + +export default defineConfig({ + include: ["src/**/*.story.svelte"], + alias: { + $app: "/node_modules/@sveltejs/kit/assets/app", + $lib: "/src/lib", + }, + plugins: [ + clientPlugin({ appFile: "App.svelte" }), + defaultThemePlugin(), + svelte({ + compilerOptions: { + hydratable: true, + }, + extensions: [".svelte"], + // Consult https://github.com/sveltejs/svelte-preprocess for more information + // about preprocessors. + preprocess: preprocess(), + }), + ], + site: { + title: "", + description: "", + /** @type {(import('@vitebook/theme-default/node').DefaultThemeConfig} */ + theme: {}, + }, +}); diff --git a/.vitebook/index.html b/.vitebook/index.html new file mode 100644 index 0000000..a027c25 --- /dev/null +++ b/.vitebook/index.html @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + +
+ + + diff --git a/.vitebook/public/404.svg b/.vitebook/public/404.svg new file mode 100644 index 0000000..7f86508 --- /dev/null +++ b/.vitebook/public/404.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/.vitebook/public/apple-touch-icon.png b/.vitebook/public/apple-touch-icon.png new file mode 100644 index 0000000..60128d8 Binary files /dev/null and b/.vitebook/public/apple-touch-icon.png differ diff --git a/.vitebook/public/favicon-16x16.png b/.vitebook/public/favicon-16x16.png new file mode 100644 index 0000000..1ff4ea4 Binary files /dev/null and b/.vitebook/public/favicon-16x16.png differ diff --git a/.vitebook/public/favicon-32x32.png b/.vitebook/public/favicon-32x32.png new file mode 100644 index 0000000..852b0ad Binary files /dev/null and b/.vitebook/public/favicon-32x32.png differ diff --git a/.vitebook/public/favicon.ico b/.vitebook/public/favicon.ico new file mode 100644 index 0000000..63f6e3f Binary files /dev/null and b/.vitebook/public/favicon.ico differ diff --git a/.vitebook/public/logo-192x192.png b/.vitebook/public/logo-192x192.png new file mode 100644 index 0000000..eec91f2 Binary files /dev/null and b/.vitebook/public/logo-192x192.png differ diff --git a/.vitebook/public/logo-512x512.png b/.vitebook/public/logo-512x512.png new file mode 100644 index 0000000..50ef1dd Binary files /dev/null and b/.vitebook/public/logo-512x512.png differ diff --git a/.vitebook/public/logo.svg b/.vitebook/public/logo.svg new file mode 100644 index 0000000..2fd73d6 --- /dev/null +++ b/.vitebook/public/logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.vitebook/public/manifest.json b/.vitebook/public/manifest.json new file mode 100644 index 0000000..457791e --- /dev/null +++ b/.vitebook/public/manifest.json @@ -0,0 +1,20 @@ +{ + "short_name": "", + "name": " Site", + "icons": [ + { + "src": "logo-192x192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo-512x512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#ffc107", + "background_color": "#212121" +} diff --git a/.vitebook/public/robots.txt b/.vitebook/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/.vitebook/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/.vitebook/theme/index.js b/.vitebook/theme/index.js new file mode 100644 index 0000000..3986997 --- /dev/null +++ b/.vitebook/theme/index.js @@ -0,0 +1,3 @@ +import Theme from "@vitebook/theme-default"; + +export default Theme; diff --git a/_templates/generator/help/index.ejs.t b/_templates/generator/help/index.ejs.t new file mode 100644 index 0000000..90a29af --- /dev/null +++ b/_templates/generator/help/index.ejs.t @@ -0,0 +1,5 @@ +--- +message: | + hygen {bold generator new} --name [NAME] --action [ACTION] + hygen {bold generator with-prompt} --name [NAME] --action [ACTION] +--- \ No newline at end of file diff --git a/_templates/generator/new/hello.ejs.t b/_templates/generator/new/hello.ejs.t new file mode 100644 index 0000000..5680d96 --- /dev/null +++ b/_templates/generator/new/hello.ejs.t @@ -0,0 +1,18 @@ +--- +to: _templates/<%= name %>/<%= action || 'new' %>/hello.ejs.t +--- +--- +to: app/hello.js +--- +const hello = ``` +Hello! +This is your first hygen template. + +Learn what it can do here: + +https://github.com/jondot/hygen +``` + +console.log(hello) + + diff --git a/_templates/generator/with-prompt/hello.ejs.t b/_templates/generator/with-prompt/hello.ejs.t new file mode 100644 index 0000000..ba6abc5 --- /dev/null +++ b/_templates/generator/with-prompt/hello.ejs.t @@ -0,0 +1,18 @@ +--- +to: _templates/<%= name %>/<%= action || 'new' %>/hello.ejs.t +--- +--- +to: app/hello.js +--- +const hello = ``` +Hello! +This is your first prompt based hygen template. + +Learn what it can do here: + +https://github.com/jondot/hygen +``` + +console.log(hello) + + diff --git a/_templates/generator/with-prompt/prompt.js b/_templates/generator/with-prompt/prompt.js new file mode 100644 index 0000000..76ea532 --- /dev/null +++ b/_templates/generator/with-prompt/prompt.js @@ -0,0 +1,14 @@ +--- +to: _templates/<%= name %>/<%= action || 'new' %>/prompt.js +--- + +// see types of prompts: +// https://github.com/enquirer/enquirer/tree/master/examples +// +module.exports = [ + { + type: 'input', + name: 'message', + message: "What's your message?" + } +] diff --git a/_templates/package.json b/_templates/package.json new file mode 100644 index 0000000..5bbefff --- /dev/null +++ b/_templates/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/_templates/story/new/index.js b/_templates/story/new/index.js new file mode 100644 index 0000000..5a3f060 --- /dev/null +++ b/_templates/story/new/index.js @@ -0,0 +1,13 @@ +const path = require('path'); + +module.exports = { + params: ({ args }) => { + + const storypath = args.path.replace( '.svelte', '.stories.svelte' ); + + const component = path.basename(args.path.replace('/index.svelte','')).replace('.svelte',''); + + const to = path.join(path.dirname(args.path), component + '.stories.svelte' ); + return { storypath, component, to} + } +} diff --git a/_templates/story/new/stories.svelte.temp b/_templates/story/new/stories.svelte.temp new file mode 100644 index 0000000..25911ce --- /dev/null +++ b/_templates/story/new/stories.svelte.temp @@ -0,0 +1,21 @@ +--- +to: <%= to %> +--- +} argTypes={{}} /> + + + + + + diff --git a/fake/app/env.js b/fake/app/env.js new file mode 100644 index 0000000..43dac6b --- /dev/null +++ b/fake/app/env.js @@ -0,0 +1 @@ +export const browser = true; diff --git a/package.json b/package.json index 2f4b0e3..bf57761 100644 --- a/package.json +++ b/package.json @@ -6,32 +6,44 @@ "build": "svelte-kit build", "preview": "svelte-kit preview", "lint": "prettier --check . && eslint --ignore-path .gitignore .", - "format": "prettier --write ." + "format": "prettier --write .", + "storybook": "storybook-server", + "vitebook:dev": "vitebook dev", + "vitebook:build": "vitebook build", + "vitebook:preview": "vitebook preview" }, "devDependencies": { - "@sveltejs/kit": "^1.0.0-next.115", - "@sveltejs/vite-plugin-svelte": "^1.0.0-next.10", - "eslint": "^7.22.0", - "eslint-config-prettier": "^8.1.0", - "eslint-plugin-svelte3": "^3.2.0", - "prettier": "~2.2.1", - "prettier-plugin-svelte": "^2.2.0", - "svelte": "^3.34.0", - "svench": "^0.2.0-14", - "vite": "^2.3.2" + "@sveltejs/adapter-static": "^1.0.0-next.28", + "@sveltejs/kit": "^1.0.0-next.288", + "@sveltejs/vite-plugin-svelte": "^1.0.0-next.38", + "@vitebook/client": "^0.23.2", + "@vitebook/core": "^0.23.2", + "@vitebook/theme-default": "^0.23.2", + "eslint": "^8.10.0", + "eslint-config-prettier": "^8.4.0", + "eslint-plugin-svelte3": "^3.4.1", + "prettier": "~2.5.1", + "prettier-plugin-svelte": "^2.6.0", + "storybook-builder-vite": "0.1.21", + "svelte": "^3.46.4", + "vite": "^2.7.0" }, "type": "module", "dependencies": { - "@sveltejs/adapter-node": "^1.0.0-next.18", - "@sveltejs/adapter-static": "^1.0.0-next.13", - "@yanick/updeep": "link:/home/yanick/work/javascript/updeep", - "bulma": "^0.9.2", + "@storybook/addon-essentials": "^6.4.19", + "@storybook/addon-svelte-csf": "^1.1.0", + "@storybook/svelte": "^6.4.19", + "@sveltejs/adapter-node": "^1.0.0-next.0", + "chota": "^0.8.0", "lodash": "^4.17.21", - "redux": "^4.1.0", - "reselect": "^4.0.0", + "redux": "^4.1.2", + "reselect": "^4.1.5", "rollup-plugin-analyzer": "^4.0.0", + "svelte-chota": "^1.8.6", + "svelte-knobby": "^0.3.4", "ts-action": "^11.0.0", - "updux": "link:/home/yanick/work/javascript/updux/" + "updux": "link:/home/yanick/work/javascript/updux-js/", + "webpack": "5" }, "prettier": { "svelteSortOrder": "options-markup-scripts-styles", diff --git a/src/components/Carrier/Squadron/index.svelte b/src/components/Carrier/Squadron/index.svelte deleted file mode 100644 index d4aebde..0000000 --- a/src/components/Carrier/Squadron/index.svelte +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - diff --git a/src/components/Carrier/stories.js b/src/components/Carrier/stories.js deleted file mode 100644 index db72155..0000000 --- a/src/components/Carrier/stories.js +++ /dev/null @@ -1,20 +0,0 @@ -import { action } from '@storybook/addon-actions'; - -import Carrier from './index.svelte'; - -export default { - title: 'Carrier', -}; - -export const basic = () => ({ - Component: Carrier, - props: { - bays: 3, - squadrons: [ - { id: 1, type: "standard", ftl: false, nbr_fighters: 6 }, - { id: 2, type: "fast", ftl: false, nbr_fighters: 6 }, - { id: 3, type: "none", ftl: false, nbr_fighters: 6 }, - ], - ship_change: action('ship_change'), - }, -}) diff --git a/src/components/CostMass.svelte b/src/components/CostMass.svelte deleted file mode 100644 index 425263a..0000000 --- a/src/components/CostMass.svelte +++ /dev/null @@ -1,21 +0,0 @@ -
{ mass }
-
{ cost }
- - - - diff --git a/src/components/Engine/index.svelte b/src/components/Engine/index.svelte deleted file mode 100644 index eb02c32..0000000 --- a/src/components/Engine/index.svelte +++ /dev/null @@ -1,40 +0,0 @@ - - -
- - - - - -
- -
- - - - - diff --git a/src/components/Field/index.svelte b/src/components/Field/index.svelte deleted file mode 100644 index 0a36d19..0000000 --- a/src/components/Field/index.svelte +++ /dev/null @@ -1,29 +0,0 @@ -
-{#if label} - -{/if} - - - -
- - - - diff --git a/src/components/Field/stories.js b/src/components/Field/stories.js deleted file mode 100644 index 313c746..0000000 --- a/src/components/Field/stories.js +++ /dev/null @@ -1,12 +0,0 @@ -import Component from './index.svelte'; -import BasicStory from './BasicStory.svelte'; - -import '../../../public/global.css'; - -export default { - title: 'Field' -}; - -export const basic = () => ({ - Component: BasicStory, -}); diff --git a/src/components/Firecons.svelte b/src/components/Firecons.svelte deleted file mode 100644 index 3c6ef71..0000000 --- a/src/components/Firecons.svelte +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - diff --git a/src/components/Ftl/index.svelte b/src/components/Ftl/index.svelte deleted file mode 100644 index c84f6e2..0000000 --- a/src/components/Ftl/index.svelte +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - {#each types as t (t)} - - {/each} - - - - diff --git a/src/components/Ftl/stories.js b/src/components/Ftl/stories.js deleted file mode 100644 index 72af859..0000000 --- a/src/components/Ftl/stories.js +++ /dev/null @@ -1,13 +0,0 @@ -export default { - title: 'FTL Drive' -}; - -import Component from '.'; -import shipStore from '../../stores/ship.js'; - -export const basic = () => ({ - Component, - props: { - ship: shipStore() - } -}); diff --git a/src/components/Header.svelte b/src/components/Header.svelte deleted file mode 100644 index 657fc5c..0000000 --- a/src/components/Header.svelte +++ /dev/null @@ -1,28 +0,0 @@ -
-

The Docks

-

a Full Thrust ship builder

-
- - diff --git a/src/components/Hull/Armour/Layer/index.svelte b/src/components/Hull/Armour/Layer/index.svelte deleted file mode 100644 index 1d30b50..0000000 --- a/src/components/Hull/Armour/Layer/index.svelte +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - diff --git a/src/components/Hull/Armour/index.svelte b/src/components/Hull/Armour/index.svelte deleted file mode 100644 index 11b9228..0000000 --- a/src/components/Hull/Armour/index.svelte +++ /dev/null @@ -1,56 +0,0 @@ - - -
- -
- - - -
- -
- {#each armour as layer ( layer.layer )} - - {/each} -
- - -
- -
- - - - diff --git a/src/components/Hull/Armour/stories.js b/src/components/Hull/Armour/stories.js deleted file mode 100644 index e5f1a41..0000000 --- a/src/components/Hull/Armour/stories.js +++ /dev/null @@ -1,18 +0,0 @@ -import Armour from './index.svelte'; - -export default { - title: "Armour", -}; - -export const basic = () => ({ - Component: Armour, - props: { - armour: [ - { layer: 1, rating: 12, cost: 1, mass: 2 }, - { layer: 2, rating: 12, cost: 1, mass: 2 }, - ] - }, - on: { - ship_change: ({detail}) => console.log(detail) - } -}); diff --git a/src/components/Hull/Screens/index.svelte b/src/components/Hull/Screens/index.svelte deleted file mode 100644 index ef3c905..0000000 --- a/src/components/Hull/Screens/index.svelte +++ /dev/null @@ -1,42 +0,0 @@ - -
- - - - - - - - -
- -
- - - - diff --git a/src/components/Hull/Streamlining/index.svelte b/src/components/Hull/Streamlining/index.svelte deleted file mode 100644 index 3dcb9e8..0000000 --- a/src/components/Hull/Streamlining/index.svelte +++ /dev/null @@ -1,38 +0,0 @@ - - -
- - - -
-
-
- - - - diff --git a/src/components/Hull/index.svelte b/src/components/Hull/index.svelte deleted file mode 100644 index 20d34d4..0000000 --- a/src/components/Hull/index.svelte +++ /dev/null @@ -1,51 +0,0 @@ -
- - - - - - - - - - - - - - - -
- - - - diff --git a/src/components/Output/Json.svelte b/src/components/Output/Json.svelte deleted file mode 100644 index b7d86c1..0000000 --- a/src/components/Output/Json.svelte +++ /dev/null @@ -1,35 +0,0 @@ - - - - - diff --git a/src/components/Output/Print/Hull/Armour/index.svelte b/src/components/Output/Print/Hull/Armour/index.svelte deleted file mode 100644 index f0be2fa..0000000 --- a/src/components/Output/Print/Hull/Armour/index.svelte +++ /dev/null @@ -1,34 +0,0 @@ -
- {#each armour as layer (layer)} -
- {#each _.range(layer.rating) as i (i) } -
-
- {/each} -
- {/each} - -
- - - - diff --git a/src/components/Output/Print/Hull/Integrity/index.svelte b/src/components/Output/Print/Hull/Integrity/index.svelte deleted file mode 100644 index 830952a..0000000 --- a/src/components/Output/Print/Hull/Integrity/index.svelte +++ /dev/null @@ -1,72 +0,0 @@ -
- {#each rows as row,i (i)} -
- {#each row as item,j (j)} -
- {#if item} - crew loss threshold - {/if} -
- {/each} -
- {/each} - -
- - - - diff --git a/src/components/Output/Print/Hull/Integrity/stories.js b/src/components/Output/Print/Hull/Integrity/stories.js deleted file mode 100644 index 3d1d9a9..0000000 --- a/src/components/Output/Print/Hull/Integrity/stories.js +++ /dev/null @@ -1,23 +0,0 @@ -import Component from '.'; - -export default { - title: "printouts/hull/integrity" -}; - -export const basic = () => ({ - Component, - props: { - ship_mass: 50, - rating: 14, - advanced: false, - } -}); - -export const advanced = () => ({ - Component, - props: { - ship_mass: 50, - rating: 14, - advanced: true, - } -}); diff --git a/src/components/Output/Print/Identification/index.svelte b/src/components/Output/Print/Identification/index.svelte deleted file mode 100644 index ddb05b7..0000000 --- a/src/components/Output/Print/Identification/index.svelte +++ /dev/null @@ -1,44 +0,0 @@ -

ship name:

- -
-

{ship_class}-class, {ship_type}

-
- -   - -
-
- - - - diff --git a/src/components/Output/Print/MainSystems/stories.js b/src/components/Output/Print/MainSystems/stories.js deleted file mode 100644 index 2b96e67..0000000 --- a/src/components/Output/Print/MainSystems/stories.js +++ /dev/null @@ -1,13 +0,0 @@ -import Component from '.'; - -export default { - title: "printouts/main_systems" -}; - -export const basic = () => ({ - Component, - props: { - ftl: 'standard', - engine: 4, - } -}) diff --git a/src/components/Output/Print/Weapons/stories.js b/src/components/Output/Print/Weapons/stories.js deleted file mode 100644 index c7778df..0000000 --- a/src/components/Output/Print/Weapons/stories.js +++ /dev/null @@ -1,33 +0,0 @@ -import Component from '.'; - -export default { - title: "printouts/weapons" -}; - -export const basic = () => ({ - Component, - props: { - "weapons": [ - { - "weapon_type": "submunition", - "arcs": [ - "F" - ], - "mass": 1, - "cost": 3, - "id": 1 - }, - { - "weapon_type": "beam", - "weapon_class": "2", - "arcs": [ - "A", - "AS", - "FS" - ], - "mass": 2, - "cost": 6, - "id": 2 - }, ] - } -}) diff --git a/src/components/Output/Print/index.svelte b/src/components/Output/Print/index.svelte deleted file mode 100644 index 8b47ed8..0000000 --- a/src/components/Output/Print/index.svelte +++ /dev/null @@ -1,53 +0,0 @@ - - - - - diff --git a/src/components/Output/Print/sample.js b/src/components/Output/Print/sample.js deleted file mode 100644 index 2ecdbf9..0000000 --- a/src/components/Output/Print/sample.js +++ /dev/null @@ -1,114 +0,0 @@ -export default { - "ftl": { - "mass": 0, - "cost": 0, - "type": "standard" - }, - "engine": { - "mass": 40, - "cost": 80, - "rating": 6, - "advanced": false - }, - "general": { - "ship_class": "Deviant", - "name": "", - "ship_type": "Battleship", - "mass": 132, - "used_mass": 131, - "cost": 415 - }, - "weaponry": { - "firecons": { - "nbr": 5, - "mass": 5, - "cost": 20 - }, - "weapons": [ - { - "weapon_type": "submunition", - "arcs": [ - "F" - ], - "mass": 1, - "cost": 3, - "id": 1 - }, - { - "weapon_type": "beam", - "weapon_class": "2", - "arcs": [ - "A", - "AS", - "FS" - ], - "mass": 2, - "cost": 6, - "id": 2 - }, - { - "weapon_type": "pds", - "mass": 1, - "cost": 3, - "id": 3 - } - ], - "adfc": { - "rating": 0, - "cost": 0, - "mass": 0 - } - }, - "structure": { - "mass": 0, - "cost": 0, - "hull": { - "rating": 22, - "advanced": false, - "cost": 44, - "mass": 22 - }, - "screens": { - "standard": 2, - "advanced": 1, - "cost": 105, - "mass": 35 - }, - "armour": [ - { - "layer": 1, - "rating": 7, - "cost": 14, - "mass": 14 - }, - { - "layer": 2, - "rating": 2, - "cost": 8, - "mass": 4 - }, - { - "layer": 3, - "rating": 0, - "cost": 0, - "mass": 0 - } - ] - }, - "cargo": { - "space": 7, - "cost": 0, - "mass": 7 - }, - "streamlining": { - "type": "none", - "cost": 0, - "mass": 0 - }, - "carrier": { - "bays": 0, - "cost": 0, - "mass": 0, - "squadrons": [] - } -} diff --git a/src/components/Output/Print/stories.js b/src/components/Output/Print/stories.js deleted file mode 100644 index e494b3b..0000000 --- a/src/components/Output/Print/stories.js +++ /dev/null @@ -1,13 +0,0 @@ -import Print from './index.svelte'; -import sample from './sample'; - -export default { - title: "printouts" -}; - -export const basic = () => ({ - Component: Print, - props: { - ship: sample - } -}); diff --git a/src/components/Propulsion/index.svelte b/src/components/Propulsion/index.svelte deleted file mode 100644 index 20a2a08..0000000 --- a/src/components/Propulsion/index.svelte +++ /dev/null @@ -1,18 +0,0 @@ - -
- - - - - -
- - diff --git a/src/components/ShipSpecs/Identification.svelte b/src/components/ShipSpecs/Identification.svelte deleted file mode 100644 index 0cc0bbc..0000000 --- a/src/components/ShipSpecs/Identification.svelte +++ /dev/null @@ -1,47 +0,0 @@ -
- - - - - -
- - - - diff --git a/src/components/Weapon/Arcs/index.svelte b/src/components/Weapon/Arcs/index.svelte deleted file mode 100644 index 8600deb..0000000 --- a/src/components/Weapon/Arcs/index.svelte +++ /dev/null @@ -1,32 +0,0 @@ - - -{#each all_arcs as arc (arc)} - click_arc(arc)} - /> -{/each} - - - - - - - diff --git a/src/components/Weapon/Needle/index.svelte b/src/components/Weapon/Needle/index.svelte deleted file mode 100644 index c0d658a..0000000 --- a/src/components/Weapon/Needle/index.svelte +++ /dev/null @@ -1,37 +0,0 @@ - - click_arc(detail)} /> - - - - - diff --git a/src/components/Weapon/Submunition/index.svelte b/src/components/Weapon/Submunition/index.svelte deleted file mode 100644 index e8ceb4b..0000000 --- a/src/components/Weapon/Submunition/index.svelte +++ /dev/null @@ -1,37 +0,0 @@ - - click_arc(detail)} /> - - - - - diff --git a/src/components/Weapons/Add.svelte b/src/components/Weapons/Add.svelte deleted file mode 100644 index 6bf67b6..0000000 --- a/src/components/Weapons/Add.svelte +++ /dev/null @@ -1,202 +0,0 @@ - - -
- - - - - - - - -{#each arcs as arc (arc)} - click_arc(arc)} - /> -{/each} - - - - - -
{weapon.cost}
-
{weapon.mass}
- -
- - - - diff --git a/src/components/Weapons/Arc.svelte b/src/components/Weapons/Arc.svelte deleted file mode 100644 index 792a068..0000000 --- a/src/components/Weapons/Arc.svelte +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - diff --git a/src/components/Weapons/stories.js b/src/components/Weapons/stories.js deleted file mode 100644 index 4f49d42..0000000 --- a/src/components/Weapons/stories.js +++ /dev/null @@ -1,10 +0,0 @@ -import AddWeapon from './Add.svelte'; - -export default { - title: "add weapon", -}; - -export const beam = () => ({ - Component: AddWeapon, -}); - diff --git a/src/dux/index.js b/src/dux/index.js index 3565298..2c234ca 100644 --- a/src/dux/index.js +++ b/src/dux/index.js @@ -5,15 +5,15 @@ import { createSelector } from "reselect"; import ftl from "./ftl"; import engine, { calc_drive_reqs } from "./engine"; -import weaponry from './weaponry'; +import weaponry from "./weaponry"; import { calc_ftl_reqs } from "./ftl/rules"; import { calc_ship_req } from "./utils"; -import { candidate_ship_types } from './ship_types'; -import structure from './structure'; -import cargo from './cargo'; -import streamlining from './streamlining'; -import carrier from './carrier'; -import { ceil } from './utils'; +import { candidate_ship_types } from "./ship_types"; +import structure from "./structure"; +import cargo from "./cargo"; +import streamlining from "./streamlining"; +import carrier from "./carrier"; +import { ceil } from "./utils"; const set_ship_mass = action("set_ship_mass", payload()); const set_name = action("set_name", payload()); @@ -21,31 +21,29 @@ const set_name = action("set_name", payload()); const set_ship_reqs = action("set_ship_reqs", payload()); const set_hull = action("set_hull", payload()); -const set_ship_type = action('set_ship_type',payload()); +const set_ship_type = action("set_ship_type", payload()); -const reset = action('reset' ); +const reset = action("reset"); const initial = { - general: { - ship_class: "", - name: "", - ship_type: "", - mass: 10, - used_mass: 0, - cost: 10, - }, - }; - -console.log(Updux); + general: { + ship_class: "", + name: "", + ship_type: "", + mass: 10, + used_mass: 0, + cost: 10, + }, +}; const dux = new Updux({ subduxes: { ftl, engine, weaponry, structure, cargo, streamlining, carrier }, - initial + initial, }); -dux.addMutation( reset, () => () => initial ); +dux.addMutation(reset, () => () => initial); -dux.addMutation(set_hull, ({rating}) => (state) => { +dux.addMutation(set_hull, ({ rating }) => (state) => { return u.updateIn("structure.hull", { cost: 2 * rating, rating, @@ -55,8 +53,8 @@ dux.addMutation(set_hull, ({rating}) => (state) => { dux.addMutation(set_ship_mass, (mass) => u.updateIn("general", { mass })); dux.addMutation(set_name, (name) => u.updateIn("general", { name })); -dux.addMutation( action('set_ship_class',payload() ), - ship_class => u.updateIn('general',{ship_class}) +dux.addMutation(action("set_ship_class", payload()), (ship_class) => + u.updateIn("general", { ship_class }) ); dux.addMutation(set_ship_reqs, ({ cost, mass: used_mass }) => @@ -68,73 +66,54 @@ dux.addSubscription((store) => createSelector(calc_ship_req, (reqs) => store.dispatch(set_ship_reqs(reqs))) ); + dux.addSubscription((store) => createSelector( - store => store.general.mass, - store => store.streamlining.type, - (ship_mass, streamlining ) => { - const mass = ceil( ship_mass * ( - streamlining === 'none' ? 0 - : streamlining === 'partial' ? 5 : 10 - ) / 100 ); - const cost = 2 * mass; + (store) => store.general.mass, + (store) => store.general.ship_type, + (store) => store.carrier.bays, + (mass, type, bays) => { + console.log({ bays }); + const candidates = candidate_ship_types(mass, bays > 0); - store.dispatch( dux.actions.set_streamlining_cost_mass({cost,mass}) ); - } + console.log({ candidates }); + if (candidates.length === 0) return; + + if (candidates.find(({ name }) => name === type)) return; + + store.dispatch(store.actions.set_ship_type(candidates[0].name)); + } ) ); -dux.addSubscription((store) => - createSelector( - store => store.general.mass, - store => store.general.ship_type, - store => store.carrier.bays, - (mass,type,bays) => { - console.log({bays}); - const candidates = candidate_ship_types(mass,bays > 0); - - console.log({candidates}); - if( candidates.length === 0 ) return; - - if( candidates.find( ({name}) => name === type ) ) return; - - store.dispatch( - store.actions.set_ship_type( - candidates[0].name - ) - ) - - } - ) -); - -dux.addMutation(set_ship_type, type => u.updateIn('general.ship_type',type) ); +dux.addMutation(set_ship_type, (type) => u.updateIn("general.ship_type", type)); dux.addSubscription((store) => createSelector( [(ship) => ship.general.mass, (ship) => ship.ftl.type], (ship_mass, type) => - store.dispatch(ftl.actions.set_ftl_reqs(calc_ftl_reqs(type,ship_mass))) + store.dispatch(ftl.actions.set_ftl_reqs(calc_ftl_reqs(type, ship_mass))) ) ); -dux.addSubscription( store => createSelector( - ship => ship.general.mass, - ship => ship.structure.screens.standard, - ship => ship.structure.screens.advanced, - (mass,standard,advanced) => { - console.log({ - mass, standard, advanced - }) - const standard_mass = standard * Math.max(3,ceil( 0.05 * mass )); - const advanced_mass = advanced * Math.max(4,ceil( 0.075 * mass )); +dux.addSubscription((store) => + createSelector( + (ship) => ship.general.mass, + (ship) => ship.structure.screens.standard, + (ship) => ship.structure.screens.advanced, + (mass, standard, advanced) => { + const standard_mass = standard * Math.max(3, ceil(0.05 * mass)); + const advanced_mass = advanced * Math.max(4, ceil(0.075 * mass)); - store.dispatch( dux.actions.set_screens_reqs({ - mass: standard_mass + advanced_mass, - cost: 3 * standard_mass + 4 * advanced_mass - })); + store.dispatch( + dux.actions.set_screens_reqs({ + mass: standard_mass + advanced_mass, + cost: 3 * standard_mass + 4 * advanced_mass, + }) + ); } -)); + ) +); dux.addSubscription((store) => createSelector( @@ -150,18 +129,6 @@ dux.addSubscription((store) => ) ); -const calc_firecons_reqs = (nbr) => ({ - cost: 4 * nbr, - mass: nbr, -}); - -const set_firecons = action("set_firecons", payload()); -dux.addMutation(set_firecons, (nbr) => - u.updateIn("weaponry.firecons", { - nbr, - ...calc_firecons_reqs(nbr), - }) -); export default dux.asDux; diff --git a/src/dux/structure/screens/index.js b/src/dux/structure/screens/index.js deleted file mode 100644 index 73a4a4e..0000000 --- a/src/dux/structure/screens/index.js +++ /dev/null @@ -1,18 +0,0 @@ -import Updux from "updux"; -import { action, payload } from "ts-action"; -import u from "@yanick/updeep"; -import { createSelector } from "reselect"; - -const dux = new Updux({ - initial: { - standard: 0, advanced: 0, cost: 0, mass: 0, - } -}); - -const set_screens = action('set_screens', payload() ); -dux.addMutation(set_screens, payload => u.update(payload) ); - -const set_screens_reqs = action('set_screens_reqs', payload() ); -dux.addMutation(set_screens_reqs, payload => u.update(payload) ); - -export default dux.asDux; diff --git a/src/dux/weaponry/adfc/index.js b/src/dux/weaponry/adfc/index.js deleted file mode 100644 index 485557a..0000000 --- a/src/dux/weaponry/adfc/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import Updux from "updux"; -import { action, payload } from "ts-action"; -import u from "@yanick/updeep"; - -const dux = new Updux({ - initial: { - rating: 0, - cost: 0, - mass: 0, - }, -}) - -dux.addMutation( action( 'set_adfc', payload() ), rating => - u.update({ rating, mass: 2 * rating, cost: 8 * rating }) -); - -export default dux.asDux; diff --git a/src/dux/weapons/rules.js b/src/dux/weapons/rules.js deleted file mode 100644 index 77d5c4d..0000000 --- a/src/dux/weapons/rules.js +++ /dev/null @@ -1,74 +0,0 @@ - -export function weapon_cost_mass(weapon){ - let cost = 0; - let mass = 0; - - if( weapon.weapon_type === 'beam' ) { - return beam_cost_mass(weapon); - } - - if( weapon.weapon_type == 'submunition' ) { - return { mass: 1, cost: 3 }; - } - - if( weapon.weapon_type === 'pds' ) { - return { mass: 1, cost: 3 }; - } - - if( weapon.weapon_type === 'scattergun' ) { - return { mass: 1, cost: 4 }; - } - - if( weapon.weapon_type === 'needle' ) { - return { mass: 2, cost: 6 }; - } - - return { cost, mass }; -} - -const is_broadside = arcs => { - if( arcs.length !== 4 ) return false; - - // that'd be A or F - return !arcs.some( a => a.length === 1 ); -} - -function beam_cost_mass({weapon_class, arcs}) { - let mass; - if( weapon_class === 1 ) { - mass = 1; - } - - if( weapon_class == 2 ) { - mass = 2 + (arcs.length > 3 ? 1 : 0); - } - - - if( weapon_class == 3 ) { - mass = 4; - - if( is_broadside(arcs) ) { - mass += 2; - } - else { - mass += arcs.length - 1; - } - } - - if( weapon_class == 4 ) { - mass = 8; - - if( is_broadside(arcs) ) { - mass += 4; - } - else { - mass += 2*(arcs.length - 1); - } - } - - return { - mass, cost: 3 * mass - } - - -} diff --git a/src/global.d.ts b/src/global.d.ts deleted file mode 100644 index 79d7d7f..0000000 --- a/src/global.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -/// -/// diff --git a/src/components/Notes.svelte b/src/lib/components/About.svelte similarity index 62% rename from src/components/Notes.svelte rename to src/lib/components/About.svelte index 5eb79ff..74a4977 100644 --- a/src/components/Notes.svelte +++ b/src/lib/components/About.svelte @@ -1,13 +1,5 @@ - +
+ diff --git a/src/components/App.svelte b/src/lib/components/App-original.svelte similarity index 94% rename from src/components/App.svelte rename to src/lib/components/App-original.svelte index 9de857f..0493fba 100644 --- a/src/components/App.svelte +++ b/src/lib/components/App-original.svelte @@ -1,10 +1,5 @@ - -
- @@ -68,12 +61,7 @@ {#each weapons as weapon (weapon.id)} - + {/each} @@ -89,7 +77,6 @@ + + diff --git a/src/lib/components/Carrier/Carrier.story.svelte b/src/lib/components/Carrier/Carrier.story.svelte new file mode 100644 index 0000000..446467c --- /dev/null +++ b/src/lib/components/Carrier/Carrier.story.svelte @@ -0,0 +1,14 @@ + + + diff --git a/src/components/Carrier/index.svelte b/src/lib/components/Carrier/index.svelte similarity index 58% rename from src/components/Carrier/index.svelte rename to src/lib/components/Carrier/index.svelte index cbdf0cd..e7321c9 100644 --- a/src/components/Carrier/index.svelte +++ b/src/lib/components/Carrier/index.svelte @@ -1,3 +1,4 @@ + + +Hey! diff --git a/src/lib/components/Carrier/stories.js b/src/lib/components/Carrier/stories.js new file mode 100644 index 0000000..e245b7b --- /dev/null +++ b/src/lib/components/Carrier/stories.js @@ -0,0 +1,20 @@ +import { action } from "@storybook/addon-actions"; + +import Carrier from "./index.svelte"; + +export default { + title: "Carrier", +}; + +export const basic = () => ({ + Component: Carrier, + props: { + bays: 3, + squadrons: [ + { id: 1, type: "standard", ftl: false, nbr_fighters: 6 }, + { id: 2, type: "fast", ftl: false, nbr_fighters: 6 }, + { id: 3, type: "none", ftl: false, nbr_fighters: 6 }, + ], + ship_change: action("ship_change"), + }, +}); diff --git a/src/lib/components/Cost.story.svelte b/src/lib/components/Cost.story.svelte new file mode 100644 index 0000000..29d5557 --- /dev/null +++ b/src/lib/components/Cost.story.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/components/Cost.svelte b/src/lib/components/Cost.svelte similarity index 55% rename from src/components/Cost.svelte rename to src/lib/components/Cost.svelte index dbdce51..cc3d237 100644 --- a/src/components/Cost.svelte +++ b/src/lib/components/Cost.svelte @@ -5,5 +5,8 @@ diff --git a/src/lib/components/CostMass.svelte b/src/lib/components/CostMass.svelte new file mode 100644 index 0000000..d463387 --- /dev/null +++ b/src/lib/components/CostMass.svelte @@ -0,0 +1,29 @@ +
{mass}
+
{cost}
+ + + + diff --git a/src/components/Field/BasicStory.svelte b/src/lib/components/Field/BasicStory.svelte similarity index 55% rename from src/components/Field/BasicStory.svelte rename to src/lib/components/Field/BasicStory.svelte index e20b928..e1ee11e 100644 --- a/src/components/Field/BasicStory.svelte +++ b/src/lib/components/Field/BasicStory.svelte @@ -1,5 +1,5 @@ diff --git a/src/lib/components/Field/index.svelte b/src/lib/components/Field/index.svelte new file mode 100644 index 0000000..764bd93 --- /dev/null +++ b/src/lib/components/Field/index.svelte @@ -0,0 +1,32 @@ +
+ {#if label} + + {/if} + + + +
+ + + + diff --git a/src/lib/components/Field/stories.js b/src/lib/components/Field/stories.js new file mode 100644 index 0000000..941369f --- /dev/null +++ b/src/lib/components/Field/stories.js @@ -0,0 +1,12 @@ +import Component from "./index.svelte"; +import BasicStory from "./BasicStory.svelte"; + +import "../../../public/global.css"; + +export default { + title: "Field", +}; + +export const basic = () => ({ + Component: BasicStory, +}); diff --git a/src/lib/components/Firecons.svelte b/src/lib/components/Firecons.svelte new file mode 100644 index 0000000..416659d --- /dev/null +++ b/src/lib/components/Firecons.svelte @@ -0,0 +1,21 @@ + + + + + + + + + diff --git a/src/lib/components/Ftl/index.svelte b/src/lib/components/Ftl/index.svelte new file mode 100644 index 0000000..2f7bda2 --- /dev/null +++ b/src/lib/components/Ftl/index.svelte @@ -0,0 +1,34 @@ + + + {#each types as t (t)} + + {/each} + + + + + + diff --git a/src/lib/components/Ftl/stories.js b/src/lib/components/Ftl/stories.js new file mode 100644 index 0000000..d49e876 --- /dev/null +++ b/src/lib/components/Ftl/stories.js @@ -0,0 +1,13 @@ +export default { + title: "FTL Drive", +}; + +import Component from "."; +import shipStore from "../../stores/ship.js"; + +export const basic = () => ({ + Component, + props: { + ship: shipStore(), + }, +}); diff --git a/src/lib/components/Header.svelte b/src/lib/components/Header.svelte new file mode 100644 index 0000000..26ecf9b --- /dev/null +++ b/src/lib/components/Header.svelte @@ -0,0 +1,76 @@ +
+

The Docks

+

+ a Full Thrust ship builder +

+ (showAbout = true)}>about the app +
+ +
+ + editor + json view + print view + +
+ + + + + + + + diff --git a/src/components/Mass.svelte b/src/lib/components/Mass.svelte similarity index 100% rename from src/components/Mass.svelte rename to src/lib/components/Mass.svelte diff --git a/src/lib/components/Output/Json.svelte b/src/lib/components/Output/Json.svelte new file mode 100644 index 0000000..e17d9dc --- /dev/null +++ b/src/lib/components/Output/Json.svelte @@ -0,0 +1,49 @@ +
+ + +
{json}
+
+ + + + + + diff --git a/src/components/Output/Json.svench b/src/lib/components/Output/Json.svench similarity index 100% rename from src/components/Output/Json.svench rename to src/lib/components/Output/Json.svench diff --git a/src/lib/components/Output/Print/Hull/Armor.svelte b/src/lib/components/Output/Print/Hull/Armor.svelte new file mode 100644 index 0000000..e2b4c63 --- /dev/null +++ b/src/lib/components/Output/Print/Hull/Armor.svelte @@ -0,0 +1,32 @@ +
+ {#each armor as layer,i (i)} +
+ {#each Array.from({length: layer}) as j} +
+ {/each} +
+ {/each} +
+ + + + diff --git a/src/lib/components/Output/Print/Hull/Armour.stories.svelte b/src/lib/components/Output/Print/Hull/Armour.stories.svelte new file mode 100644 index 0000000..a4fe341 --- /dev/null +++ b/src/lib/components/Output/Print/Hull/Armour.stories.svelte @@ -0,0 +1,22 @@ + + + + + + + diff --git a/src/lib/components/Output/Print/Hull/Integrity/Integrity.stories.svelte b/src/lib/components/Output/Print/Hull/Integrity/Integrity.stories.svelte new file mode 100644 index 0000000..c855685 --- /dev/null +++ b/src/lib/components/Output/Print/Hull/Integrity/Integrity.stories.svelte @@ -0,0 +1,20 @@ + + + + + + + + diff --git a/src/lib/components/Output/Print/Hull/Integrity/index.svelte b/src/lib/components/Output/Print/Hull/Integrity/index.svelte new file mode 100644 index 0000000..7bd339d --- /dev/null +++ b/src/lib/components/Output/Print/Hull/Integrity/index.svelte @@ -0,0 +1,66 @@ +
+ {#each rows as row, i (i)} +
+ {#each row as threshold, j (j)} +
+ {#if threshold} + crew loss threshold + {/if} +
+ {/each} +
+ {/each} +
+ + + + diff --git a/src/lib/components/Output/Print/Hull/Integrity/stories.js b/src/lib/components/Output/Print/Hull/Integrity/stories.js new file mode 100644 index 0000000..bef2dab --- /dev/null +++ b/src/lib/components/Output/Print/Hull/Integrity/stories.js @@ -0,0 +1,23 @@ +import Component from "."; + +export default { + title: "printouts/hull/integrity", +}; + +export const basic = () => ({ + Component, + props: { + ship_mass: 50, + rating: 14, + advanced: false, + }, +}); + +export const advanced = () => ({ + Component, + props: { + ship_mass: 50, + rating: 14, + advanced: true, + }, +}); diff --git a/src/components/Output/Print/Hull/index.svelte b/src/lib/components/Output/Print/Hull/index.svelte similarity index 70% rename from src/components/Output/Print/Hull/index.svelte rename to src/lib/components/Output/Print/Hull/index.svelte index d0506ea..52b32c5 100644 --- a/src/components/Output/Print/Hull/index.svelte +++ b/src/lib/components/Output/Print/Hull/index.svelte @@ -8,8 +8,8 @@
+ + diff --git a/src/components/Output/Print/MainSystems/index.svelte b/src/lib/components/Output/Print/MainSystems/index.svelte similarity index 59% rename from src/components/Output/Print/MainSystems/index.svelte rename to src/lib/components/Output/Print/MainSystems/index.svelte index c08e1bc..209cb39 100644 --- a/src/components/Output/Print/MainSystems/index.svelte +++ b/src/lib/components/Output/Print/MainSystems/index.svelte @@ -1,6 +1,5 @@
- - {#if ftl !== "none" } + {#if ftl !== "none"} ftl drive {/if} @@ -8,13 +7,16 @@
{engine}
{/if} - internal systems -
+ internal systems +
+ diff --git a/src/components/Output/Print/Weapons/Beam/index.svelte b/src/lib/components/Output/Print/Weapons/Beam/index.svelte similarity index 70% rename from src/components/Output/Print/Weapons/Beam/index.svelte rename to src/lib/components/Output/Print/Weapons/Beam/index.svelte index 1ffdc98..b42a6ec 100644 --- a/src/components/Output/Print/Weapons/Beam/index.svelte +++ b/src/lib/components/Output/Print/Weapons/Beam/index.svelte @@ -1,14 +1,14 @@
- - {weapon_class} + + {weaponClass}
diff --git a/src/components/Output/Print/Weapons/index.svelte b/src/lib/components/Output/Print/Weapons/index.svelte similarity index 58% rename from src/components/Output/Print/Weapons/index.svelte rename to src/lib/components/Output/Print/Weapons/index.svelte index b8e1e85..307318d 100644 --- a/src/components/Output/Print/Weapons/index.svelte +++ b/src/lib/components/Output/Print/Weapons/index.svelte @@ -1,21 +1,17 @@
-
- {#each beams as beam} - - {/each} + {#each beams as beam} + + {/each}
- -
diff --git a/src/lib/components/Output/Print/sample.js b/src/lib/components/Output/Print/sample.js new file mode 100644 index 0000000..bd9352c --- /dev/null +++ b/src/lib/components/Output/Print/sample.js @@ -0,0 +1,105 @@ +export default { + "identification": { + "shipType": "Scout", + "shipClass": "Blah", + "isCarrier": false, + "mass": 10 + }, + "propulsion": { + "drive": { + "reqs": { + "cost": 2, + "mass": 1 + }, + "rating": 3, + "advanced": true + }, + "ftl": { + "reqs": { + "cost": 0, + "mass": 0 + }, + "type": "none" + } + }, + "structure": { + "hull": { + "reqs": { + "cost": 2, + "mass": 1 + }, + "rating": 10, + "min": 1, + "max": 10 + }, + "screens": { + "reqs": { + "cost": 0, + "mass": 0 + }, + "standard": 3, + "advanced": 2 + }, + "cargo": { + "reqs": { + "cost": 0, + "mass": 0 + }, + "space": 0 + }, + "streamlining": { + "reqs": { + "cost": 0, + "mass": 0 + }, + "type": "none" + }, + "armor": { + "layers": [], + "reqs": { + "mass": 0, + "cost": 0 + } + } + }, + "carrier": { + "reqs": { + "cost": 0, + "mass": 0 + }, + "bays": 0, + "squadrons": [] + }, + "weaponry": { + "weapons": [ + { + "id": 1, + "type": "beam", + "reqs": { + "mass": 1, + "cost": 3 + }, + "weaponClass": 1 + } + ], + "firecons": { + "stations": 1, + "reqs": { + "cost": 4, + "mass": 1 + } + }, + "adfc": { + "rating": 1, + "reqs": { + "cost": 8, + "mass": 2 + } + } + }, + "reqs": { + "cost": 19, + "mass": 10, + "usedMass": 6 + } +} diff --git a/src/lib/components/Propulsion/index.svelte b/src/lib/components/Propulsion/index.svelte new file mode 100644 index 0000000..26276dc --- /dev/null +++ b/src/lib/components/Propulsion/index.svelte @@ -0,0 +1,14 @@ +
+ + + +
+ + diff --git a/src/components/Ribbon.svelte b/src/lib/components/Ribbon.svelte similarity index 100% rename from src/components/Ribbon.svelte rename to src/lib/components/Ribbon.svelte diff --git a/src/components/Section/index.svelte b/src/lib/components/Section/index.svelte similarity index 99% rename from src/components/Section/index.svelte rename to src/lib/components/Section/index.svelte index 19f58d5..caf4f94 100644 --- a/src/components/Section/index.svelte +++ b/src/lib/components/Section/index.svelte @@ -7,7 +7,6 @@ diff --git a/src/lib/components/ShipEdit/Carrier/Carrier.stories.svelte b/src/lib/components/ShipEdit/Carrier/Carrier.stories.svelte new file mode 100644 index 0000000..b17359f --- /dev/null +++ b/src/lib/components/ShipEdit/Carrier/Carrier.stories.svelte @@ -0,0 +1,33 @@ + + + + + + + diff --git a/src/lib/components/ShipEdit/Carrier/Squadron.svelte b/src/lib/components/ShipEdit/Carrier/Squadron.svelte new file mode 100644 index 0000000..4b17645 --- /dev/null +++ b/src/lib/components/ShipEdit/Carrier/Squadron.svelte @@ -0,0 +1,36 @@ + + + + + + + + + diff --git a/src/lib/components/ShipEdit/Carrier/index.svelte b/src/lib/components/ShipEdit/Carrier/index.svelte new file mode 100644 index 0000000..53b8907 --- /dev/null +++ b/src/lib/components/ShipEdit/Carrier/index.svelte @@ -0,0 +1,34 @@ +
+ + + + + + + {#each squadrons as squadron,id (id)} + + {/each} +
+ + + + diff --git a/src/lib/components/ShipEdit/Identification/Identification.stories.svelte b/src/lib/components/ShipEdit/Identification/Identification.stories.svelte new file mode 100644 index 0000000..a3d01ab --- /dev/null +++ b/src/lib/components/ShipEdit/Identification/Identification.stories.svelte @@ -0,0 +1,22 @@ + + + + + + + diff --git a/src/lib/components/ShipEdit/Identification/index.svelte b/src/lib/components/ShipEdit/Identification/index.svelte new file mode 100644 index 0000000..6d79133 --- /dev/null +++ b/src/lib/components/ShipEdit/Identification/index.svelte @@ -0,0 +1,40 @@ +
+ + + + +
+ + + + diff --git a/src/dux/ship_types.js b/src/lib/components/ShipEdit/Identification/shipTypes.js similarity index 75% rename from src/dux/ship_types.js rename to src/lib/components/ShipEdit/Identification/shipTypes.js index f37b43b..19ad819 100644 --- a/src/dux/ship_types.js +++ b/src/lib/components/ShipEdit/Identification/shipTypes.js @@ -1,5 +1,5 @@ const ship_types = [ - { name: "Scout", mass: [4, 10], abbrev: "SC" }, + { name: "Scout", mass: [0, 10], abbrev: "SC" }, { name: "Courier", mass: [4, 10], abbrev: "SC" }, { name: "Corvette", mass: [8, 16], abbrev: "CT" }, { name: "Frigate", mass: [14, 28], abbrev: "FF" }, @@ -14,13 +14,15 @@ const ship_types = [ { name: "Heavy Battleship", mass: [120, 160], abbrev: "BDN" }, { name: "Dreadnought", mass: [140, 180], abbrev: "DN" }, { name: "Superdreadnought", mass: [160, 300], abbrev: "SDN" }, - { name: "Escort Carrier", mass: [60, 140], abbrev: "CVE", carrier: true }, + { name: "Escort Carrier", mass: [0, 140], abbrev: "CVE", carrier: true }, { name: "Light Carrier", mass: [120, 180], abbrev: "CVL", carrier: true }, { name: "Heavy Carrier", mass: [160, 300], abbrev: "CVH", carrier: true }, { name: "Attack Carrier", mass: [150, 300], abbrev: "CVA", carrier: true }, ]; -export function candidate_ship_types(mass = 0, carrier = false) { - console.log({carrier}); - return ship_types.filter((c) => carrier == !!c.carrier).filter((c) => c.mass[0] <= mass).filter((c) => c.mass[1] >= mass); +export function candidateShipTypes(mass = 0, carrier = false) { + return ship_types + .filter((c) => carrier == !!c.carrier) + .filter((c) => c.mass[0] <= mass) + .filter((c) => c.mass[1] >= mass); } diff --git a/src/lib/components/ShipEdit/Propulsion/Drive/Engine.stories.svelte b/src/lib/components/ShipEdit/Propulsion/Drive/Engine.stories.svelte new file mode 100644 index 0000000..3e3fa70 --- /dev/null +++ b/src/lib/components/ShipEdit/Propulsion/Drive/Engine.stories.svelte @@ -0,0 +1,35 @@ + + + + + + + diff --git a/src/lib/components/ShipEdit/Propulsion/Drive/index.svelte b/src/lib/components/ShipEdit/Propulsion/Drive/index.svelte new file mode 100644 index 0000000..75d8eef --- /dev/null +++ b/src/lib/components/ShipEdit/Propulsion/Drive/index.svelte @@ -0,0 +1,37 @@ + +
+ + + + + +
+
+ + + + diff --git a/src/lib/components/ShipEdit/Propulsion/Ftl.svelte b/src/lib/components/ShipEdit/Propulsion/Ftl.svelte new file mode 100644 index 0000000..cce4738 --- /dev/null +++ b/src/lib/components/ShipEdit/Propulsion/Ftl.svelte @@ -0,0 +1,32 @@ + + + {#each types as t (t)} + + {/each} + + + + + + diff --git a/src/lib/components/ShipEdit/Propulsion/index.svelte b/src/lib/components/ShipEdit/Propulsion/index.svelte new file mode 100644 index 0000000..b0077ef --- /dev/null +++ b/src/lib/components/ShipEdit/Propulsion/index.svelte @@ -0,0 +1,12 @@ +
+ + +
+ + diff --git a/src/lib/components/ShipEdit/ShipCost.svelte b/src/lib/components/ShipEdit/ShipCost.svelte new file mode 100644 index 0000000..5589309 --- /dev/null +++ b/src/lib/components/ShipEdit/ShipCost.svelte @@ -0,0 +1,87 @@ +
+ + + + +
+ {#if withinBudget} + mass unused: {massUnused} + {:else} + excessive mass: {-massUnused} + {/if} +
+
+
+ +
+ + {cost} + +
+ + + + diff --git a/src/lib/components/ShipEdit/ShipEdit.stories.svelte b/src/lib/components/ShipEdit/ShipEdit.stories.svelte new file mode 100644 index 0000000..c1e743b --- /dev/null +++ b/src/lib/components/ShipEdit/ShipEdit.stories.svelte @@ -0,0 +1,21 @@ + + + + + + + diff --git a/src/lib/components/ShipEdit/Structure/Armor.svelte b/src/lib/components/ShipEdit/Structure/Armor.svelte new file mode 100644 index 0000000..b4a3a45 --- /dev/null +++ b/src/lib/components/ShipEdit/Structure/Armor.svelte @@ -0,0 +1,41 @@ + +
+
+ + + +
+ +
+ {#each layers as rating,i (i)} + + {/each} +
+
+
+ + + + diff --git a/src/lib/components/ShipEdit/Structure/Armor/Layer.svelte b/src/lib/components/ShipEdit/Structure/Armor/Layer.svelte new file mode 100644 index 0000000..ec80415 --- /dev/null +++ b/src/lib/components/ShipEdit/Structure/Armor/Layer.svelte @@ -0,0 +1,22 @@ + + + + + + + diff --git a/src/lib/components/ShipEdit/Structure/Cargo.svelte b/src/lib/components/ShipEdit/Structure/Cargo.svelte new file mode 100644 index 0000000..88f00cc --- /dev/null +++ b/src/lib/components/ShipEdit/Structure/Cargo.svelte @@ -0,0 +1,25 @@ + + + + + + + + + diff --git a/src/lib/components/ShipEdit/Structure/Hull.svelte b/src/lib/components/ShipEdit/Structure/Hull.svelte new file mode 100644 index 0000000..69dca24 --- /dev/null +++ b/src/lib/components/ShipEdit/Structure/Hull.svelte @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/src/lib/components/ShipEdit/Structure/Screens.svelte b/src/lib/components/ShipEdit/Structure/Screens.svelte new file mode 100644 index 0000000..70831b0 --- /dev/null +++ b/src/lib/components/ShipEdit/Structure/Screens.svelte @@ -0,0 +1,37 @@ + +
+ + + + + + + +
+
+ + + + diff --git a/src/lib/components/ShipEdit/Structure/Streamlining.svelte b/src/lib/components/ShipEdit/Structure/Streamlining.svelte new file mode 100644 index 0000000..f610be3 --- /dev/null +++ b/src/lib/components/ShipEdit/Structure/Streamlining.svelte @@ -0,0 +1,41 @@ + + +
+ + + +
+
+
+ + + + diff --git a/src/lib/components/ShipEdit/Structure/index.svelte b/src/lib/components/ShipEdit/Structure/index.svelte new file mode 100644 index 0000000..f6c583e --- /dev/null +++ b/src/lib/components/ShipEdit/Structure/index.svelte @@ -0,0 +1,27 @@ +
+ + + + + +
+ + + + diff --git a/src/lib/components/ShipEdit/Weaponry/ADFC.svelte b/src/lib/components/ShipEdit/Weaponry/ADFC.svelte new file mode 100644 index 0000000..93da8e6 --- /dev/null +++ b/src/lib/components/ShipEdit/Weaponry/ADFC.svelte @@ -0,0 +1,18 @@ + + + + + + + diff --git a/src/lib/components/ShipEdit/Weaponry/AddWeapon.svelte b/src/lib/components/ShipEdit/Weaponry/AddWeapon.svelte new file mode 100644 index 0000000..e72af04 --- /dev/null +++ b/src/lib/components/ShipEdit/Weaponry/AddWeapon.svelte @@ -0,0 +1,29 @@ + + + + + + + + + diff --git a/src/lib/components/ShipEdit/Weaponry/Firecons.svelte b/src/lib/components/ShipEdit/Weaponry/Firecons.svelte new file mode 100644 index 0000000..24ffc9c --- /dev/null +++ b/src/lib/components/ShipEdit/Weaponry/Firecons.svelte @@ -0,0 +1,21 @@ + + + + + + + + + diff --git a/src/lib/components/ShipEdit/Weaponry/Weapon/Arc.svelte b/src/lib/components/ShipEdit/Weaponry/Weapon/Arc.svelte new file mode 100644 index 0000000..47a73a0 --- /dev/null +++ b/src/lib/components/ShipEdit/Weaponry/Weapon/Arc.svelte @@ -0,0 +1,50 @@ + + + + + + + diff --git a/src/lib/components/ShipEdit/Weaponry/Weapon/Arcs.svelte b/src/lib/components/ShipEdit/Weaponry/Weapon/Arcs.svelte new file mode 100644 index 0000000..6657c21 --- /dev/null +++ b/src/lib/components/ShipEdit/Weaponry/Weapon/Arcs.svelte @@ -0,0 +1,32 @@ + + {#each all_arcs as arc (arc)} + click_arc(arc)} + /> + {/each} + + + + + + + diff --git a/src/lib/components/ShipEdit/Weaponry/Weapon/Beam/index.svelte b/src/lib/components/ShipEdit/Weaponry/Weapon/Beam/index.svelte new file mode 100644 index 0000000..0ba11a7 --- /dev/null +++ b/src/lib/components/ShipEdit/Weaponry/Weapon/Beam/index.svelte @@ -0,0 +1,80 @@ + + + + + + + + + + + setArcs(detail)} /> + + diff --git a/src/lib/components/ShipEdit/Weaponry/Weapon/Needle.svelte b/src/lib/components/ShipEdit/Weaponry/Weapon/Needle.svelte new file mode 100644 index 0000000..cdb17fd --- /dev/null +++ b/src/lib/components/ShipEdit/Weaponry/Weapon/Needle.svelte @@ -0,0 +1,27 @@ + + + click_arc(detail)} /> + + + + diff --git a/src/lib/components/ShipEdit/Weaponry/Weapon/PDS.svelte b/src/lib/components/ShipEdit/Weaponry/Weapon/PDS.svelte new file mode 100644 index 0000000..6c9c9ef --- /dev/null +++ b/src/lib/components/ShipEdit/Weaponry/Weapon/PDS.svelte @@ -0,0 +1 @@ + diff --git a/src/components/Weapon/Scattergun/index.svelte b/src/lib/components/ShipEdit/Weaponry/Weapon/Scattergun.svelte similarity index 96% rename from src/components/Weapon/Scattergun/index.svelte rename to src/lib/components/ShipEdit/Weaponry/Weapon/Scattergun.svelte index de8a6e0..8910b00 100644 --- a/src/components/Weapon/Scattergun/index.svelte +++ b/src/lib/components/ShipEdit/Weaponry/Weapon/Scattergun.svelte @@ -1,2 +1 @@ - diff --git a/src/lib/components/ShipEdit/Weaponry/Weapon/Submunition.svelte b/src/lib/components/ShipEdit/Weaponry/Weapon/Submunition.svelte new file mode 100644 index 0000000..070b55a --- /dev/null +++ b/src/lib/components/ShipEdit/Weaponry/Weapon/Submunition.svelte @@ -0,0 +1,19 @@ + + + click_arc(detail)} /> + + diff --git a/src/lib/components/ShipEdit/Weaponry/Weapon/index.svelte b/src/lib/components/ShipEdit/Weaponry/Weapon/index.svelte new file mode 100644 index 0000000..dc8965a --- /dev/null +++ b/src/lib/components/ShipEdit/Weaponry/Weapon/index.svelte @@ -0,0 +1,121 @@ + +
+ + + +
+
+ + + + diff --git a/src/lib/components/ShipEdit/Weaponry/Weaponry.stories.svelte b/src/lib/components/ShipEdit/Weaponry/Weaponry.stories.svelte new file mode 100644 index 0000000..4072200 --- /dev/null +++ b/src/lib/components/ShipEdit/Weaponry/Weaponry.stories.svelte @@ -0,0 +1,34 @@ + + + + + + + diff --git a/src/lib/components/ShipEdit/Weaponry/index.svelte b/src/lib/components/ShipEdit/Weaponry/index.svelte new file mode 100644 index 0000000..d9b168b --- /dev/null +++ b/src/lib/components/ShipEdit/Weaponry/index.svelte @@ -0,0 +1,34 @@ +
+ + + + + + + {#each weapons as weapon (weapon.id)} + + {/each} + +
+ + + + diff --git a/src/lib/components/ShipEdit/index.svelte b/src/lib/components/ShipEdit/index.svelte new file mode 100644 index 0000000..366fb15 --- /dev/null +++ b/src/lib/components/ShipEdit/index.svelte @@ -0,0 +1,44 @@ +
+
+ + + +
+ + + + + + + + +
+ + + + diff --git a/src/components/ShipItem/index.svelte b/src/lib/components/ShipItem/index.svelte similarity index 77% rename from src/components/ShipItem/index.svelte rename to src/lib/components/ShipItem/index.svelte index c1e9d59..7b5f447 100644 --- a/src/components/ShipItem/index.svelte +++ b/src/lib/components/ShipItem/index.svelte @@ -1,7 +1,11 @@ -
+
+
-
{mass}
-
{cost}
+
+
{mass}
+
{cost}
+
+
diff --git a/src/components/ShipSpecs/ShipCost.svelte b/src/lib/components/ShipSpecs/ShipCost.svelte similarity index 86% rename from src/components/ShipSpecs/ShipCost.svelte rename to src/lib/components/ShipSpecs/ShipCost.svelte index f5337c2..13cd8de 100644 --- a/src/components/ShipSpecs/ShipCost.svelte +++ b/src/lib/components/ShipSpecs/ShipCost.svelte @@ -5,8 +5,9 @@ on:change={change_tonnage} type="number" min="10" - max="300" /> - + max="300" + /> +
{#if within_budget} @@ -18,7 +19,8 @@
- {$ship.general.cost} + {$ship.general.cost}
- - diff --git a/src/lib/components/Structure/Armour/Layer/index.svelte b/src/lib/components/Structure/Armour/Layer/index.svelte new file mode 100644 index 0000000..a3d54ce --- /dev/null +++ b/src/lib/components/Structure/Armour/Layer/index.svelte @@ -0,0 +1,22 @@ + + + + + + + diff --git a/src/lib/components/Structure/Armour/index.svelte b/src/lib/components/Structure/Armour/index.svelte new file mode 100644 index 0000000..70d83d8 --- /dev/null +++ b/src/lib/components/Structure/Armour/index.svelte @@ -0,0 +1,48 @@ + +
+
+ + + +
+ +
+ {#each armour as layer (layer.layer)} + + {/each} +
+
+
+ + + + diff --git a/src/lib/components/Structure/Armour/stories.js b/src/lib/components/Structure/Armour/stories.js new file mode 100644 index 0000000..c016e17 --- /dev/null +++ b/src/lib/components/Structure/Armour/stories.js @@ -0,0 +1,18 @@ +import Armour from "./index.svelte"; + +export default { + title: "Armour", +}; + +export const basic = () => ({ + Component: Armour, + props: { + armour: [ + { layer: 1, rating: 12, cost: 1, mass: 2 }, + { layer: 2, rating: 12, cost: 1, mass: 2 }, + ], + }, + on: { + ship_change: ({ detail }) => console.log(detail), + }, +}); diff --git a/src/components/Hull/Cargo/index.svelte b/src/lib/components/Structure/Cargo/index.svelte similarity index 99% rename from src/components/Hull/Cargo/index.svelte rename to src/lib/components/Structure/Cargo/index.svelte index ffb786d..fd916be 100644 --- a/src/components/Hull/Cargo/index.svelte +++ b/src/lib/components/Structure/Cargo/index.svelte @@ -17,12 +17,10 @@ export let mass = 0; $: ship?.dispatch_action("set_cargo", space); - diff --git a/src/lib/components/Structure/Screens/index.svelte b/src/lib/components/Structure/Screens/index.svelte new file mode 100644 index 0000000..b19c7f0 --- /dev/null +++ b/src/lib/components/Structure/Screens/index.svelte @@ -0,0 +1,40 @@ + +
+ + + + + + + +
+
+ + + + diff --git a/src/lib/components/Structure/Streamlining/index.svelte b/src/lib/components/Structure/Streamlining/index.svelte new file mode 100644 index 0000000..cccb2b1 --- /dev/null +++ b/src/lib/components/Structure/Streamlining/index.svelte @@ -0,0 +1,41 @@ + + +
+ + + +
+
+
+ + + + diff --git a/src/lib/components/Structure/index.svelte b/src/lib/components/Structure/index.svelte new file mode 100644 index 0000000..c74b6e9 --- /dev/null +++ b/src/lib/components/Structure/index.svelte @@ -0,0 +1,51 @@ +
+ + + + + + + + + + + + + +
+ + + + diff --git a/src/components/Weapon/Beam/index.svelte b/src/lib/components/Weapon/Beam/index.svelte similarity index 99% rename from src/components/Weapon/Beam/index.svelte rename to src/lib/components/Weapon/Beam/index.svelte index 6269277..b0fc2c4 100644 --- a/src/components/Weapon/Beam/index.svelte +++ b/src/lib/components/Weapon/Beam/index.svelte @@ -93,7 +93,6 @@ weapon_class, arcs: cache.split(":"), }); - diff --git a/src/components/Weapon/PointDefenceSystem/index.svelte b/src/lib/components/Weapon/PointDefenceSystem/index.svelte similarity index 97% rename from src/components/Weapon/PointDefenceSystem/index.svelte rename to src/lib/components/Weapon/PointDefenceSystem/index.svelte index 27f4aa9..6c9c9ef 100644 --- a/src/components/Weapon/PointDefenceSystem/index.svelte +++ b/src/lib/components/Weapon/PointDefenceSystem/index.svelte @@ -1,2 +1 @@ - diff --git a/src/lib/components/Weapon/Submunition/index.svelte b/src/lib/components/Weapon/Submunition/index.svelte new file mode 100644 index 0000000..27174cb --- /dev/null +++ b/src/lib/components/Weapon/Submunition/index.svelte @@ -0,0 +1,35 @@ + + click_arc(detail)} /> + + + + diff --git a/src/components/Weapon/index.svelte b/src/lib/components/Weapon/index.svelte similarity index 99% rename from src/components/Weapon/index.svelte rename to src/lib/components/Weapon/index.svelte index df422ee..fea53a2 100644 --- a/src/components/Weapon/index.svelte +++ b/src/lib/components/Weapon/index.svelte @@ -56,7 +56,6 @@ ...detail, }); }; - diff --git a/src/components/Weaponry/ADFC/index.svelte b/src/lib/components/Weaponry/ADFC/index.svelte similarity index 89% rename from src/components/Weaponry/ADFC/index.svelte rename to src/lib/components/Weaponry/ADFC/index.svelte index 4a4e641..d574045 100644 --- a/src/components/Weaponry/ADFC/index.svelte +++ b/src/lib/components/Weaponry/ADFC/index.svelte @@ -4,7 +4,6 @@ - diff --git a/src/components/Weaponry/AddWeapon/index.svelte b/src/lib/components/Weaponry/AddWeapon/index.svelte similarity index 99% rename from src/components/Weaponry/AddWeapon/index.svelte rename to src/lib/components/Weaponry/AddWeapon/index.svelte index f6e66ba..6cfe6c2 100644 --- a/src/components/Weaponry/AddWeapon/index.svelte +++ b/src/lib/components/Weaponry/AddWeapon/index.svelte @@ -23,5 +23,4 @@ export let ship = getContext("ship"); const add_weapon = () => ship?.dispatch_action("add_weapon", weapon_type); - diff --git a/src/lib/components/Weapons/Add.svelte b/src/lib/components/Weapons/Add.svelte new file mode 100644 index 0000000..8cf4bf1 --- /dev/null +++ b/src/lib/components/Weapons/Add.svelte @@ -0,0 +1,194 @@ + + +
+ + + + + + + + {#each arcs as arc (arc)} + click_arc(arc)} + /> + {/each} + + + +
{weapon.cost}
+
{weapon.mass}
+
+ + + + diff --git a/src/lib/components/Weapons/stories.js b/src/lib/components/Weapons/stories.js new file mode 100644 index 0000000..f3923fe --- /dev/null +++ b/src/lib/components/Weapons/stories.js @@ -0,0 +1,9 @@ +import AddWeapon from "./Add.svelte"; + +export default { + title: "add weapon", +}; + +export const beam = () => ({ + Component: AddWeapon, +}); diff --git a/src/lib/shipDux/carrier.js b/src/lib/shipDux/carrier.js new file mode 100644 index 0000000..6d8d145 --- /dev/null +++ b/src/lib/shipDux/carrier.js @@ -0,0 +1,76 @@ +import { Updux } from "updux"; +import u from "updeep"; +import _ from 'lodash'; + +import reqs from "./reqs.js"; + +const dux = new Updux({ + subduxes: { reqs }, + initial: { + bays: 0, + squadrons: [], + }, + actions: { + setCarrierBays: null, + setSquadronType: null, + } +}); + +dux.setMutation( 'setCarrierBays', bays => u({bays, reqs: + calcBaysReqs(bays), + squadrons: adjustSquadrons(bays), +}) ); + +dux.setMutation('setSquadronType', ({type, id}) => state => { + + return u.updateIn(['squadrons', id-1], { + type, + reqs: squadronReqs(type) + }, state ) + +} ); + +export const squadronTypes= [ + { type: "standard", cost: 3 }, + { type: "fast", cost: 4 }, + { type: "heavy", cost: 5 }, + { type: "interceptor", cost: 3 }, + { type: "attack", cost: 4 }, + { type: "long range", cost: 4 }, + { type: "torpedo", cost: 6 }, +]; + +function squadronReqs(type) { + return { mass: 6, cost: 6 * squadronTypes.find( s => s.type === type )?.cost } +} + + +const adjustSquadrons = bays => squadrons => { + if( squadrons.length > bays ) { + squadrons = squadrons.slice(0,bays); + } + + if( squadrons.length < bays ) { + squadrons = [ ...squadrons, ..._.times( + bays - squadrons.length, () => ({ + type: squadronTypes[0].type, + reqs: { + cost: 6 * squadronTypes[0].cost, + mass: 6, + }, + }) + )]; + } + + return squadrons; + +} + +function calcBaysReqs(bays) { + return { + mass: 9 * bays, + cost: 18 * bays, + } +} + +export default dux; diff --git a/src/lib/shipDux/engine.js b/src/lib/shipDux/engine.js new file mode 100644 index 0000000..1e33ed8 --- /dev/null +++ b/src/lib/shipDux/engine.js @@ -0,0 +1,28 @@ +import { Updux } from "updux"; +import u from "updeep"; + +import reqs from "./reqs.js"; + +const dux = new Updux({ + subduxes: { reqs }, + initial: { + rating: 1, + advanced: false, + }, + actions: { + setDrive: null, + setDriveReqs: null, + }, +}); + +dux.setMutation("setDrive", (changes) => u(changes)); +dux.setMutation("setDriveReqs", (reqs) => u({ reqs })); + +export function calcDriveReqs(shipMass, rating, advanced = false) { + const mass = Math.ceil(rating * 0.05 * shipMass); + const cost = mass * (advanced ? 3 : 2); + + return { mass, cost }; +} + +export default dux; diff --git a/src/lib/shipDux/identification.js b/src/lib/shipDux/identification.js new file mode 100644 index 0000000..71e4085 --- /dev/null +++ b/src/lib/shipDux/identification.js @@ -0,0 +1,26 @@ +import { Updux } from "updux"; +import u from "updeep"; + +import carrier from './carrier.js'; + +const dux = new Updux({ + actions: { + setShipType: null, + setShipClass: null, + setCarrierBays: carrier.actions.setCarrierBays, + }, + initial: { + shipType: "", + shipClass: "", + isCarrier: false, + mass: 10, + }, +}); + +dux.setMutation("setShipType", (shipType) => u({ shipType })); +dux.setMutation("setShipClass", (shipClass) => u({ shipClass })); +dux.setMutation('setCarrierBays', (bays) => u({ + isCarrier: bays > 0, +})) + +export default dux; diff --git a/src/lib/shipDux/index.js b/src/lib/shipDux/index.js new file mode 100644 index 0000000..388af19 --- /dev/null +++ b/src/lib/shipDux/index.js @@ -0,0 +1,58 @@ +import { Updux } from "updux"; +import u from "updeep"; + +import propulsion from "./propulsion/index.js"; +import identification from "./identification.js"; +import { calculateDriveReqs } from "./propulsion/drive.js"; +import { ftlReqsReaction } from "./propulsion/ftl.js"; +import structure from "./structure/index.js"; +import carrier from "./carrier.js"; +import weaponry from "./weaponry/index.js"; +import { screensReqsReaction } from "./structure/screens.js"; + +const dux = new Updux({ + subduxes: { + identification, + propulsion, + structure, + carrier, + weaponry, + }, + initial: { + reqs: { cost: 0, mass: 10, usedMass: 0 }, + }, + actions: { + setShipReqs: null, + }, +}); + +dux.setMutation("setShipMass", (mass) => u({ reqs: { mass } })); +dux.setMutation('setShipReqs', reqs => u({reqs})); + +dux.addReaction(calculateDriveReqs); +dux.addReaction(ftlReqsReaction); +dux.addReaction(screensReqsReaction); + +dux.addReaction( (store) => (state) => { + let cost = 0; + let mass = 0; + + let subsystems = Object.values(state); + + while(subsystems.length>0) { + const subsystem = subsystems.shift(); + if( typeof subsystem !== 'object' ) continue; + + if( subsystem.reqs ) { + cost += subsystem.reqs.cost; + mass += subsystem.reqs.mass; + } + + subsystems.push( ...Object.values(subsystem)); + } + + store.dispatch.setShipReqs({cost,usedMass: mass}); + +}); + +export default dux; diff --git a/src/lib/shipDux/propulsion/drive.js b/src/lib/shipDux/propulsion/drive.js new file mode 100644 index 0000000..f165e7d --- /dev/null +++ b/src/lib/shipDux/propulsion/drive.js @@ -0,0 +1,41 @@ +import { Updux } from "updux"; +import u from "updeep"; +import { createSelector } from "reselect"; + +import reqs from "../reqs.js"; + +const dux = new Updux({ + subduxes: { reqs }, + initial: { + rating: 1, + advanced: false, + }, + actions: { + setDrive: null, + setDriveReqs: null, + }, +}); + +dux.setMutation("setDrive", (changes) => u(changes)); +dux.setMutation("setDriveReqs", (reqs) => u({ reqs })); + +// needs to be at the top level +export const calculateDriveReqs = store => + createSelector( + [ + (ship) => ship.reqs.mass, + (ship) => ship.propulsion.drive.rating, + (ship) => ship.propulsion.drive.advanced, + ], + (ship_mass, rating, advanced) => + store.dispatch.setDriveReqs(calcDriveReqs(ship_mass, rating, advanced)) + ); + +export function calcDriveReqs(shipMass, rating, advanced = false) { + const mass = Math.ceil(rating * 0.05 * shipMass); + const cost = mass * (advanced ? 3 : 2); + + return { mass, cost }; +} + +export default dux; diff --git a/src/lib/shipDux/propulsion/ftl.js b/src/lib/shipDux/propulsion/ftl.js new file mode 100644 index 0000000..ee42eca --- /dev/null +++ b/src/lib/shipDux/propulsion/ftl.js @@ -0,0 +1,44 @@ +import { Updux } from "updux"; +import u from "updeep"; +import { createSelector } from "reselect"; + +import reqs from "../reqs.js"; + +export const ftlTypes = ["none", "standard", "advanced"]; + +const dux = new Updux({ + subduxes: { reqs }, + initial: { + type: "none", + }, + actions: { + setFtl: null, + setFtlReqs: null, + }, +}); +export default dux; + +dux.setMutation( 'setFtl', type => u({type}) ); +dux.setMutation( 'setFtlReqs', reqs => u({reqs}) ); + +export function calcFtlReqs(type,shipMass) { + if(type==="none") return { cost: 0, mass: 0 }; + + const mass = Math.ceil(shipMass / 10); + + return { + mass, + cost: mass * ( type === 'advanced' ? 3 : 2 ), + } +} + +// needs to be at the top level +export const ftlReqsReaction = store => + createSelector( + [ + (ship) => ship.propulsion.ftl.type, + (ship) => ship.reqs.mass, + ], + (type,shipMass) => + store.dispatch.setFtlReqs(calcFtlReqs(type,shipMass)) + ); diff --git a/src/lib/shipDux/propulsion/index.js b/src/lib/shipDux/propulsion/index.js new file mode 100644 index 0000000..47d28fc --- /dev/null +++ b/src/lib/shipDux/propulsion/index.js @@ -0,0 +1,13 @@ +import { Updux } from "updux"; +import u from 'updeep'; + +import drive from './drive.js'; +import ftl from './ftl.js'; + +const dux = new Updux({ + subduxes: { + drive, ftl + }, +}); + +export default dux; diff --git a/src/lib/shipDux/reqs.js b/src/lib/shipDux/reqs.js new file mode 100644 index 0000000..62ea2dd --- /dev/null +++ b/src/lib/shipDux/reqs.js @@ -0,0 +1,10 @@ +import { Updux } from "updux"; + +const dux = new Updux({ + initial: { + cost: 0, + mass: 0, + }, +}); + +export default dux; diff --git a/src/lib/shipDux/structure/armor.js b/src/lib/shipDux/structure/armor.js new file mode 100644 index 0000000..0724399 --- /dev/null +++ b/src/lib/shipDux/structure/armor.js @@ -0,0 +1,64 @@ +import { Updux } from "updux"; +import u from "updeep"; + +import reqs from "../reqs.js"; + +const schema = { + type: 'object', + properties: { + reqs: { type: 'object', properties: { + cost: { type: 'number' }, + mass: { type: 'number' }, + } }, + layers: { type: 'array', items: 'number' } + }, + examples: [ + { reqs: { cost: 5, mass: 5 }, layers: [2,4 ] } + ] +} + +const dux = new Updux({ + subduxes: { + reqs, + }, + initial: { + layers: [], + }, + actions: { + setArmorLayers: null, + setArmorRating: null, + }, +}); +export default dux; + +dux.setMutation('setArmorRating', ({layer, rating}) => state => { + let layers = [ ...state.layers ].map( (v,k) => k === layer-1 ? rating : v ); + + return { layers, reqs: calcArmorReqs(layers) } +} ); + +dux.setMutation( 'setArmorLayers', nbrLayers => state => { + + let layers = [...state.layers]; + + if( nbrLayers < state.layers.length ) + layers = [ ...state.layers ].slice(0,nbrLayers); + + while( layers.length < nbrLayers ) { + layers.push(0); + } + + return { + layers, + reqs: calcArmorReqs(layers), + } +}); + +function calcArmorReqs(layers) { + const mass = 2* layers.reduce( (a,b) => a+ b,0 ); + const cost = 2* layers.map( (v,k) => v * (k+1) ).reduce( (a,b) => a+ b,0 ); + + return { + mass, cost + } +} diff --git a/src/lib/shipDux/structure/cargo.js b/src/lib/shipDux/structure/cargo.js new file mode 100644 index 0000000..204d94b --- /dev/null +++ b/src/lib/shipDux/structure/cargo.js @@ -0,0 +1,24 @@ +import { Updux } from "updux"; +import u from 'updeep'; +import { createSelector } from 'reselect'; + +import reqs from '../reqs.js'; + +const dux = new Updux({ + subduxes: { + reqs + }, + initial: { + space: 0, + }, + actions: { + setCargo: null, + } +}); +export default dux; + +dux.setMutation('setCargo', space => u({ + space, + reqs: { mass: space } +})); + diff --git a/src/lib/shipDux/structure/hull.js b/src/lib/shipDux/structure/hull.js new file mode 100644 index 0000000..a91160c --- /dev/null +++ b/src/lib/shipDux/structure/hull.js @@ -0,0 +1,31 @@ +import { Updux } from "updux"; +import u from 'updeep'; + +import reqs from '../reqs.js'; + +const dux = new Updux({ + subduxes: { + reqs + }, + initial: { + rating: 0, min: 0, max: 0, + }, + actions: { + setShipMass: null, + setHull: null, + } +}); +export default dux; + +dux.setMutation( 'setHull', rating => u({rating, + reqs: { +mass: rating, cost: 2 * rating + }}) ); + +dux.setMutation( 'setShipMass', mass => state => { + let {rating} = state; + if(rating > mass) rating = mass; + const min = Math.ceil(mass/10); + if(rating < min) rating = min; + return u({max: mass, min, rating}, state); +}) diff --git a/src/lib/shipDux/structure/index.js b/src/lib/shipDux/structure/index.js new file mode 100644 index 0000000..c5fe3cb --- /dev/null +++ b/src/lib/shipDux/structure/index.js @@ -0,0 +1,13 @@ +import { Updux } from 'updux'; + +import hull from './hull.js'; +import screens from './screens.js'; +import cargo from './cargo.js'; +import armor from './armor.js'; +import streamlining from './streamlining.js'; + +const dux = new Updux({ + subduxes: { hull, screens, cargo, streamlining, armor } +}); +export default dux; + diff --git a/src/lib/shipDux/structure/screens.js b/src/lib/shipDux/structure/screens.js new file mode 100644 index 0000000..068e653 --- /dev/null +++ b/src/lib/shipDux/structure/screens.js @@ -0,0 +1,40 @@ +import { Updux } from "updux"; +import u from 'updeep'; +import { createSelector } from 'reselect'; + +import reqs from '../reqs.js'; + +const dux = new Updux({ + subduxes: { + reqs + }, + initial: { + standard: 0, advanced: 0, + }, + actions: { + setScreens: null, + setScreensReqs: null, + } +}); +export default dux; + +dux.setMutation('setScreens', payload => u(payload)); +dux.setMutation('setScreensReqs', reqs => u({reqs})); + +export const screensReqsReaction = store => createSelector( + (ship) => ship.reqs.mass, + (ship) => ship.structure.screens.standard, + (ship) => ship.structure.screens.advanced, + (...args) => store.dispatch.setScreensReqs(calcScreensReqs(...args)), +); + +function calcScreensReqs(mass,standard,advanced) { + + const standard_mass = standard * Math.max(3, Math.ceil(0.05 * mass)); + const advanced_mass = advanced * Math.max(4, Math.ceil(0.075 * mass)); + + return { + mass: standard_mass + advanced_mass, + cost: 3 * standard_mass + 4 * advanced_mass, + } +} diff --git a/src/lib/shipDux/structure/streamlining.js b/src/lib/shipDux/structure/streamlining.js new file mode 100644 index 0000000..aca39e6 --- /dev/null +++ b/src/lib/shipDux/structure/streamlining.js @@ -0,0 +1,32 @@ +import { Updux } from "updux"; +import u from "updeep"; + +import reqs from "../reqs.js"; + +const dux = new Updux({ + subduxes: { + reqs, + }, + initial: { + type: "none", + }, + actions: { + setStreamlining: null, + }, +}); +export default dux; + +dux.setMutation("setStreamlining", ({ shipMass, type }) => + u({ + type, + reqs: calcStreamliningReqs({ shipMass, type }), + }) +); + +function calcStreamliningReqs({ shipMass, type }) { + const mass = Math.ceil( + (shipMass * (type === "none" ? 0 : type === "partial" ? 5 : 10)) / 100 + ); + + return { mass, cost: 2 * mass }; +} diff --git a/src/lib/shipDux/weaponry/index.js b/src/lib/shipDux/weaponry/index.js new file mode 100644 index 0000000..7cfbed7 --- /dev/null +++ b/src/lib/shipDux/weaponry/index.js @@ -0,0 +1,46 @@ +import { Updux } from "updux"; +import u from "updeep"; + +import weapons from './weapons.js'; + +const reqs = { cost: 0, mass: 0 }; + +const dux = new Updux({ + subduxes: { weapons }, + initial: { + firecons: { + stations: 0, + reqs, + }, + adfc: { rating: 0, reqs }, + }, + actions: { + setADFC: null, + setFirecons: null, + }, +}); + +dux.setMutation("setFirecons", (stations) => + u({ + firecons: { + stations, + reqs: { + cost: 4 * stations, + mass: stations, + }, + }, + }) +); +dux.setMutation("setADFC", (rating) => + u({ + adfc: { + rating, + reqs: { + cost: 8 * rating, + mass: 2 * rating, + }, + }, + }) +); + +export default dux; diff --git a/src/lib/shipDux/weaponry/weapons.js b/src/lib/shipDux/weaponry/weapons.js new file mode 100644 index 0000000..6aa6167 --- /dev/null +++ b/src/lib/shipDux/weaponry/weapons.js @@ -0,0 +1,122 @@ +import { Updux } from "updux"; +import u from "updeep"; + +const reqs = { cost: 0, mass: 0 }; + +export const weaponTypes = [ + { name: 'beam', type: 'beam', reqs: beam_cost_mass, initial: { + weaponClass: 1 + }}, + { name: 'submunition pack', type: 'submunition', reqs: { mass:1, cost:3 }, + initial: { arc: 'F' } + }, + { name: 'point defence system', type: 'pds', reqs: {mass:1,cost:3}, initial: {}}, + { name: 'scattergun', type: 'scattergun', reqs: { mass:1,cost:4 }, initial: {}}, + { name: 'needle weapon', type: 'needle', reqs: { mass: 2, cost: 6 }, + initial: { arc: 'F' }}, +]; + +const dux = new Updux({ + initial: [], + actions: { + addWeapon: null, + removeWeapon: null, + setWeapon: null, + }, +}); + +dux.setMutation('setWeapon', ({id,...rest}) => state => { +console.log(id,rest,state); + state = u.map( u.if( (w) => w.id === id, + weapon => { + return { + id, + ...rest, + reqs: weaponReqs(rest), + } + } ), state ); + console.log(state); + return state; + +} +); + +dux.setMutation('removeWeapon', id => state => [ + ...state.filter( (w) => w.id !== id ) +]); + +dux.setMutation('addWeapon', type => state => { + const initial = weaponTypes.find(w => w.type === type ).initial; + return [ + ...state, + { + id: state.length === 0 ? 1 : state[state.length -1]+1, + type, + reqs: weaponReqs({type,...initial}), + ...initial, + } + ] +}); + +function weaponReqs(weapon) { + + const {reqs} = weaponTypes.find( wt => wt.type === weapon.type ) ||{}; + + if(!reqs) return {}; + + if( typeof reqs === 'function' ) return reqs(weapon); + + return reqs; +} + +const isBroadside = arcs => { + if( arcs.length !== 4 ) return false; + + // that'd be A or F + return !arcs.some( a => a.length === 1 ); +} + +function beam_cost_mass({weaponClass, arcs}) { + console.log({weaponClass,arcs}) + let mass; + + if( weaponClass === 1 ) { + mass = 1; + } + + if( weaponClass === 2 ) { + mass = 2 + (arcs.length > 3 ? 1 : 0); + } + + + if( weaponClass == 3 ) { + mass = 4; + + if( isBroadside(arcs) ) { + mass += 2; + } + else { + mass += arcs.length - 1; + } + } + + if( weaponClass == 4 ) { + mass = 8; + + if( isBroadside(arcs) ) { + mass += 4; + } + else { + mass += 2*(arcs.length - 1); + } + } + + return { + mass, cost: 3 * mass + } + + +} + + +export default dux; diff --git a/src/lib/store/ship.js b/src/lib/store/ship.js new file mode 100644 index 0000000..2e507f1 --- /dev/null +++ b/src/lib/store/ship.js @@ -0,0 +1,32 @@ +import { browser } from "$app/env"; +import { readable, get, derived } from "svelte/store"; +import { compose, applyMiddleware } from "redux"; + +import shipDux from "../shipDux/index.js"; + +let composeEnhancers = compose; + +if (browser) { + composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__; +} + +export default () => { + const duxStore = shipDux.createStore(undefined, (mw) => + composeEnhancers(applyMiddleware(mw)) + ); + + let previous; + const state = readable(duxStore.getState(), (set) => { + duxStore.subscribe(() => { + if (previous === duxStore.getState()) return; + previous = duxStore.getState(); + set(previous); + }); + }); + + return { + dispatch: duxStore.dispatch, + state, + shipMass: derived( state, state => state.reqs.mass ) + }; +}; diff --git a/src/lib/style/index.css b/src/lib/style/index.css new file mode 100644 index 0000000..75866d1 --- /dev/null +++ b/src/lib/style/index.css @@ -0,0 +1,17 @@ +:root { + --main-font-family: "Dosis", -apple-system, BlinkMacSystemFont, "Segoe UI", + Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + + --font-scale-9: 0.75rem; + --font-scale-10: 1em; + --font-scale-11: 1.333rem; + --font-scale-12: 1.777rem; + --font-scale-13: 2.369rem; + --font-scale-14: 3.157rem; + --font-scale-15: 4.209rem; +} + +input.short { + width: 5em !important; +} + diff --git a/src/lib/style/index.js b/src/lib/style/index.js new file mode 100644 index 0000000..86e7d49 --- /dev/null +++ b/src/lib/style/index.js @@ -0,0 +1,5 @@ +import "../../../static/fonts/faktos.css"; +import "../../../static/fonts/dosis/dosis.css"; +import "../../../static/global.css"; +import 'chota'; +import "./index.css"; diff --git a/src/lib/utils.js b/src/lib/utils.js new file mode 100644 index 0000000..79226cb --- /dev/null +++ b/src/lib/utils.js @@ -0,0 +1,8 @@ +export function range(min, max) { + if(max === undefined) { + max = min; + min = 0; + } + + return Array.from({length: 1+max - min}).map( (_d,i) => i+ min); +} diff --git a/src/routes/index.svelte b/src/routes/index.svelte index c7121fd..df71d56 100644 --- a/src/routes/index.svelte +++ b/src/routes/index.svelte @@ -1,20 +1,12 @@ - - {#each stylesheets as href (href)} - - {/each} - - diff --git a/public/bulma/bulma-rtl.css b/static/bulma/bulma-rtl.css similarity index 100% rename from public/bulma/bulma-rtl.css rename to static/bulma/bulma-rtl.css diff --git a/public/bulma/bulma-rtl.css.map b/static/bulma/bulma-rtl.css.map similarity index 100% rename from public/bulma/bulma-rtl.css.map rename to static/bulma/bulma-rtl.css.map diff --git a/public/bulma/bulma-rtl.min.css b/static/bulma/bulma-rtl.min.css similarity index 100% rename from public/bulma/bulma-rtl.min.css rename to static/bulma/bulma-rtl.min.css diff --git a/public/bulma/bulma.css b/static/bulma/bulma.css similarity index 100% rename from public/bulma/bulma.css rename to static/bulma/bulma.css diff --git a/public/bulma/bulma.css.map b/static/bulma/bulma.css.map similarity index 100% rename from public/bulma/bulma.css.map rename to static/bulma/bulma.css.map diff --git a/public/bulma/bulma.min.css b/static/bulma/bulma.min.css similarity index 100% rename from public/bulma/bulma.min.css rename to static/bulma/bulma.min.css diff --git a/public/css/buttons.css b/static/css/buttons.css similarity index 100% rename from public/css/buttons.css rename to static/css/buttons.css diff --git a/public/favicon.ico b/static/favicon.ico similarity index 100% rename from public/favicon.ico rename to static/favicon.ico diff --git a/public/favicon.png b/static/favicon.png similarity index 100% rename from public/favicon.png rename to static/favicon.png diff --git a/public/fonts/Faktos.ttf b/static/fonts/Faktos.ttf similarity index 100% rename from public/fonts/Faktos.ttf rename to static/fonts/Faktos.ttf diff --git a/public/fonts/FaktosContour.ttf b/static/fonts/FaktosContour.ttf similarity index 100% rename from public/fonts/FaktosContour.ttf rename to static/fonts/FaktosContour.ttf diff --git a/public/fonts/FaktosOutline.ttf b/static/fonts/FaktosOutline.ttf similarity index 100% rename from public/fonts/FaktosOutline.ttf rename to static/fonts/FaktosOutline.ttf diff --git a/public/fonts/FaktosShadow.ttf b/static/fonts/FaktosShadow.ttf similarity index 100% rename from public/fonts/FaktosShadow.ttf rename to static/fonts/FaktosShadow.ttf diff --git a/public/fonts/dosis/Dosis-VariableFont_wght.ttf b/static/fonts/dosis/Dosis-VariableFont_wght.ttf similarity index 100% rename from public/fonts/dosis/Dosis-VariableFont_wght.ttf rename to static/fonts/dosis/Dosis-VariableFont_wght.ttf diff --git a/public/fonts/dosis/OFL.txt b/static/fonts/dosis/OFL.txt similarity index 100% rename from public/fonts/dosis/OFL.txt rename to static/fonts/dosis/OFL.txt diff --git a/public/fonts/dosis/README.txt b/static/fonts/dosis/README.txt similarity index 100% rename from public/fonts/dosis/README.txt rename to static/fonts/dosis/README.txt diff --git a/public/fonts/dosis/dosis.css b/static/fonts/dosis/dosis.css similarity index 100% rename from public/fonts/dosis/dosis.css rename to static/fonts/dosis/dosis.css diff --git a/public/fonts/dosis/static/Dosis-Bold.ttf b/static/fonts/dosis/static/Dosis-Bold.ttf similarity index 100% rename from public/fonts/dosis/static/Dosis-Bold.ttf rename to static/fonts/dosis/static/Dosis-Bold.ttf diff --git a/public/fonts/dosis/static/Dosis-ExtraBold.ttf b/static/fonts/dosis/static/Dosis-ExtraBold.ttf similarity index 100% rename from public/fonts/dosis/static/Dosis-ExtraBold.ttf rename to static/fonts/dosis/static/Dosis-ExtraBold.ttf diff --git a/public/fonts/dosis/static/Dosis-ExtraLight.ttf b/static/fonts/dosis/static/Dosis-ExtraLight.ttf similarity index 100% rename from public/fonts/dosis/static/Dosis-ExtraLight.ttf rename to static/fonts/dosis/static/Dosis-ExtraLight.ttf diff --git a/public/fonts/dosis/static/Dosis-Light.ttf b/static/fonts/dosis/static/Dosis-Light.ttf similarity index 100% rename from public/fonts/dosis/static/Dosis-Light.ttf rename to static/fonts/dosis/static/Dosis-Light.ttf diff --git a/public/fonts/dosis/static/Dosis-Medium.ttf b/static/fonts/dosis/static/Dosis-Medium.ttf similarity index 100% rename from public/fonts/dosis/static/Dosis-Medium.ttf rename to static/fonts/dosis/static/Dosis-Medium.ttf diff --git a/public/fonts/dosis/static/Dosis-Regular.ttf b/static/fonts/dosis/static/Dosis-Regular.ttf similarity index 100% rename from public/fonts/dosis/static/Dosis-Regular.ttf rename to static/fonts/dosis/static/Dosis-Regular.ttf diff --git a/public/fonts/dosis/static/Dosis-SemiBold.ttf b/static/fonts/dosis/static/Dosis-SemiBold.ttf similarity index 100% rename from public/fonts/dosis/static/Dosis-SemiBold.ttf rename to static/fonts/dosis/static/Dosis-SemiBold.ttf diff --git a/public/fonts/fakto10.ttf b/static/fonts/fakto10.ttf similarity index 100% rename from public/fonts/fakto10.ttf rename to static/fonts/fakto10.ttf diff --git a/public/fonts/fakto9.ttf b/static/fonts/fakto9.ttf similarity index 100% rename from public/fonts/fakto9.ttf rename to static/fonts/fakto9.ttf diff --git a/public/fonts/faktos.css b/static/fonts/faktos.css similarity index 100% rename from public/fonts/faktos.css rename to static/fonts/faktos.css diff --git a/public/fonts/faktos.ttf b/static/fonts/faktos.ttf similarity index 100% rename from public/fonts/faktos.ttf rename to static/fonts/faktos.ttf diff --git a/public/global.css b/static/global.css similarity index 76% rename from public/global.css rename to static/global.css index f3f5cd6..49c533a 100644 --- a/public/global.css +++ b/static/global.css @@ -1,11 +1,4 @@ :root { - --font-scale-9: 0.75rem; - --font-scale-10: 1em; - --font-scale-11: 1.333rem; - --font-scale-12: 1.777rem; - --font-scale-13: 2.369rem; - --font-scale-14: 3.157rem; - --font-scale-15: 4.209rem; --oxford-blue: hsla(226, 60%, 10%, 1); --royal-blue-dark: hsla(218, 100%, 16%, 1); @@ -79,24 +72,6 @@ input[type="range"] { height: 0; } -button { - color: #333; - background-color: #f4f4f4; - outline: none; -} - -button:disabled { - color: #999; -} - -button:not(:disabled):active { - background-color: #ddd; -} - -button:focus { - border-color: #666; -} - /* ---- inputs --- */ input, select { diff --git a/public/icons/crew-star.svg b/static/icons/crew-star.svg similarity index 100% rename from public/icons/crew-star.svg rename to static/icons/crew-star.svg diff --git a/public/icons/firecon.svg b/static/icons/firecon.svg similarity index 100% rename from public/icons/firecon.svg rename to static/icons/firecon.svg diff --git a/public/icons/ftl-drive.svg b/static/icons/ftl-drive.svg similarity index 100% rename from public/icons/ftl-drive.svg rename to static/icons/ftl-drive.svg diff --git a/public/icons/internal-systems.svg b/static/icons/internal-systems.svg similarity index 100% rename from public/icons/internal-systems.svg rename to static/icons/internal-systems.svg diff --git a/public/icons/screen-advanced.svg b/static/icons/screen-advanced.svg similarity index 100% rename from public/icons/screen-advanced.svg rename to static/icons/screen-advanced.svg diff --git a/public/icons/screen.svg b/static/icons/screen.svg similarity index 100% rename from public/icons/screen.svg rename to static/icons/screen.svg diff --git a/public/icons/standard-drive.svg b/static/icons/standard-drive.svg similarity index 100% rename from public/icons/standard-drive.svg rename to static/icons/standard-drive.svg diff --git a/public/mass.svg b/static/mass.svg similarity index 100% rename from public/mass.svg rename to static/mass.svg diff --git a/public/print.css b/static/print.css similarity index 100% rename from public/print.css rename to static/print.css diff --git a/public/ssd-icons/AADFC.svg b/static/ssd-icons/AADFC.svg similarity index 100% rename from public/ssd-icons/AADFC.svg rename to static/ssd-icons/AADFC.svg diff --git a/public/ssd-icons/ADS.svg b/static/ssd-icons/ADS.svg similarity index 100% rename from public/ssd-icons/ADS.svg rename to static/ssd-icons/ADS.svg diff --git a/public/ssd-icons/AMSuicide.svg b/static/ssd-icons/AMSuicide.svg similarity index 100% rename from public/ssd-icons/AMSuicide.svg rename to static/ssd-icons/AMSuicide.svg diff --git a/public/ssd-icons/AMT.svg b/static/ssd-icons/AMT.svg similarity index 100% rename from public/ssd-icons/AMT.svg rename to static/ssd-icons/AMT.svg diff --git a/public/ssd-icons/AdvFireCont2.svg b/static/ssd-icons/AdvFireCont2.svg similarity index 100% rename from public/ssd-icons/AdvFireCont2.svg rename to static/ssd-icons/AdvFireCont2.svg diff --git a/public/ssd-icons/Advanced FTL Drive.svg b/static/ssd-icons/Advanced FTL Drive.svg similarity index 100% rename from public/ssd-icons/Advanced FTL Drive.svg rename to static/ssd-icons/Advanced FTL Drive.svg diff --git a/public/ssd-icons/AlternativeIcon.svg b/static/ssd-icons/AlternativeIcon.svg similarity index 100% rename from public/ssd-icons/AlternativeIcon.svg rename to static/ssd-icons/AlternativeIcon.svg diff --git a/public/ssd-icons/AndvancedDrives (2).svg b/static/ssd-icons/AndvancedDrives (2).svg similarity index 100% rename from public/ssd-icons/AndvancedDrives (2).svg rename to static/ssd-icons/AndvancedDrives (2).svg diff --git a/public/ssd-icons/AndvancedDrives (3).svg b/static/ssd-icons/AndvancedDrives (3).svg similarity index 100% rename from public/ssd-icons/AndvancedDrives (3).svg rename to static/ssd-icons/AndvancedDrives (3).svg diff --git a/public/ssd-icons/AndvancedDrives (4).svg b/static/ssd-icons/AndvancedDrives (4).svg similarity index 100% rename from public/ssd-icons/AndvancedDrives (4).svg rename to static/ssd-icons/AndvancedDrives (4).svg diff --git a/public/ssd-icons/AndvancedDrives (5).svg b/static/ssd-icons/AndvancedDrives (5).svg similarity index 100% rename from public/ssd-icons/AndvancedDrives (5).svg rename to static/ssd-icons/AndvancedDrives (5).svg diff --git a/public/ssd-icons/AndvancedDrives (6).svg b/static/ssd-icons/AndvancedDrives (6).svg similarity index 100% rename from public/ssd-icons/AndvancedDrives (6).svg rename to static/ssd-icons/AndvancedDrives (6).svg diff --git a/public/ssd-icons/AndvancedDrives (7).svg b/static/ssd-icons/AndvancedDrives (7).svg similarity index 100% rename from public/ssd-icons/AndvancedDrives (7).svg rename to static/ssd-icons/AndvancedDrives (7).svg diff --git a/public/ssd-icons/AndvancedDrives (8).svg b/static/ssd-icons/AndvancedDrives (8).svg similarity index 100% rename from public/ssd-icons/AndvancedDrives (8).svg rename to static/ssd-icons/AndvancedDrives (8).svg diff --git a/public/ssd-icons/AndvancedDrives.svg b/static/ssd-icons/AndvancedDrives.svg similarity index 100% rename from public/ssd-icons/AndvancedDrives.svg rename to static/ssd-icons/AndvancedDrives.svg diff --git a/public/ssd-icons/AreaECM.svg b/static/ssd-icons/AreaECM.svg similarity index 100% rename from public/ssd-icons/AreaECM.svg rename to static/ssd-icons/AreaECM.svg diff --git a/public/ssd-icons/AreaScreens1.svg b/static/ssd-icons/AreaScreens1.svg similarity index 100% rename from public/ssd-icons/AreaScreens1.svg rename to static/ssd-icons/AreaScreens1.svg diff --git a/public/ssd-icons/AreaScreens2.svg b/static/ssd-icons/AreaScreens2.svg similarity index 100% rename from public/ssd-icons/AreaScreens2.svg rename to static/ssd-icons/AreaScreens2.svg diff --git a/public/ssd-icons/Beam1 (2).svg b/static/ssd-icons/Beam1 (2).svg similarity index 100% rename from public/ssd-icons/Beam1 (2).svg rename to static/ssd-icons/Beam1 (2).svg diff --git a/public/ssd-icons/Beam1.svg b/static/ssd-icons/Beam1.svg similarity index 100% rename from public/ssd-icons/Beam1.svg rename to static/ssd-icons/Beam1.svg diff --git a/public/ssd-icons/Beam2 (2).svg b/static/ssd-icons/Beam2 (2).svg similarity index 100% rename from public/ssd-icons/Beam2 (2).svg rename to static/ssd-icons/Beam2 (2).svg diff --git a/public/ssd-icons/Beam2.svg b/static/ssd-icons/Beam2.svg similarity index 100% rename from public/ssd-icons/Beam2.svg rename to static/ssd-icons/Beam2.svg diff --git a/public/ssd-icons/Beam3 (2).svg b/static/ssd-icons/Beam3 (2).svg similarity index 100% rename from public/ssd-icons/Beam3 (2).svg rename to static/ssd-icons/Beam3 (2).svg diff --git a/public/ssd-icons/Beam3.svg b/static/ssd-icons/Beam3.svg similarity index 100% rename from public/ssd-icons/Beam3.svg rename to static/ssd-icons/Beam3.svg diff --git a/public/ssd-icons/Beam4.svg b/static/ssd-icons/Beam4.svg similarity index 100% rename from public/ssd-icons/Beam4.svg rename to static/ssd-icons/Beam4.svg diff --git a/public/ssd-icons/Boarding Torps.svg b/static/ssd-icons/Boarding Torps.svg similarity index 100% rename from public/ssd-icons/Boarding Torps.svg rename to static/ssd-icons/Boarding Torps.svg diff --git a/public/ssd-icons/Capital Decoy.svg b/static/ssd-icons/Capital Decoy.svg similarity index 100% rename from public/ssd-icons/Capital Decoy.svg rename to static/ssd-icons/Capital Decoy.svg diff --git a/public/ssd-icons/Cargo Hold.svg b/static/ssd-icons/Cargo Hold.svg similarity index 100% rename from public/ssd-icons/Cargo Hold.svg rename to static/ssd-icons/Cargo Hold.svg diff --git a/public/ssd-icons/Cruiser Decoy.svg b/static/ssd-icons/Cruiser Decoy.svg similarity index 100% rename from public/ssd-icons/Cruiser Decoy.svg rename to static/ssd-icons/Cruiser Decoy.svg diff --git a/public/ssd-icons/DamageControl.svg b/static/ssd-icons/DamageControl.svg similarity index 100% rename from public/ssd-icons/DamageControl.svg rename to static/ssd-icons/DamageControl.svg diff --git a/public/ssd-icons/Defenses1.svg b/static/ssd-icons/Defenses1.svg similarity index 100% rename from public/ssd-icons/Defenses1.svg rename to static/ssd-icons/Defenses1.svg diff --git a/public/ssd-icons/Defenses2.svg b/static/ssd-icons/Defenses2.svg similarity index 100% rename from public/ssd-icons/Defenses2.svg rename to static/ssd-icons/Defenses2.svg diff --git a/public/ssd-icons/Defenses3.svg b/static/ssd-icons/Defenses3.svg similarity index 100% rename from public/ssd-icons/Defenses3.svg rename to static/ssd-icons/Defenses3.svg diff --git a/public/ssd-icons/Defenses4.svg b/static/ssd-icons/Defenses4.svg similarity index 100% rename from public/ssd-icons/Defenses4.svg rename to static/ssd-icons/Defenses4.svg diff --git a/public/ssd-icons/ECM.svg b/static/ssd-icons/ECM.svg similarity index 100% rename from public/ssd-icons/ECM.svg rename to static/ssd-icons/ECM.svg diff --git a/public/ssd-icons/EMP1.svg b/static/ssd-icons/EMP1.svg similarity index 100% rename from public/ssd-icons/EMP1.svg rename to static/ssd-icons/EMP1.svg diff --git a/public/ssd-icons/EMP2.svg b/static/ssd-icons/EMP2.svg similarity index 100% rename from public/ssd-icons/EMP2.svg rename to static/ssd-icons/EMP2.svg diff --git a/public/ssd-icons/EMP3.svg b/static/ssd-icons/EMP3.svg similarity index 100% rename from public/ssd-icons/EMP3.svg rename to static/ssd-icons/EMP3.svg diff --git a/public/ssd-icons/EMP4.svg b/static/ssd-icons/EMP4.svg similarity index 100% rename from public/ssd-icons/EMP4.svg rename to static/ssd-icons/EMP4.svg diff --git a/public/ssd-icons/Energy1.svg b/static/ssd-icons/Energy1.svg similarity index 100% rename from public/ssd-icons/Energy1.svg rename to static/ssd-icons/Energy1.svg diff --git a/public/ssd-icons/FTL Tug.svg b/static/ssd-icons/FTL Tug.svg similarity index 100% rename from public/ssd-icons/FTL Tug.svg rename to static/ssd-icons/FTL Tug.svg diff --git a/public/ssd-icons/FusionArray.svg b/static/ssd-icons/FusionArray.svg similarity index 100% rename from public/ssd-icons/FusionArray.svg rename to static/ssd-icons/FusionArray.svg diff --git a/public/ssd-icons/Gattling battery.svg b/static/ssd-icons/Gattling battery.svg similarity index 100% rename from public/ssd-icons/Gattling battery.svg rename to static/ssd-icons/Gattling battery.svg diff --git a/public/ssd-icons/GrapeShot.svg b/static/ssd-icons/GrapeShot.svg similarity index 100% rename from public/ssd-icons/GrapeShot.svg rename to static/ssd-icons/GrapeShot.svg diff --git a/public/ssd-icons/Gravity1.svg b/static/ssd-icons/Gravity1.svg similarity index 100% rename from public/ssd-icons/Gravity1.svg rename to static/ssd-icons/Gravity1.svg diff --git a/public/ssd-icons/Gravity2.svg b/static/ssd-icons/Gravity2.svg similarity index 100% rename from public/ssd-icons/Gravity2.svg rename to static/ssd-icons/Gravity2.svg diff --git a/public/ssd-icons/Gravity3.svg b/static/ssd-icons/Gravity3.svg similarity index 100% rename from public/ssd-icons/Gravity3.svg rename to static/ssd-icons/Gravity3.svg diff --git a/public/ssd-icons/Gravity4.svg b/static/ssd-icons/Gravity4.svg similarity index 100% rename from public/ssd-icons/Gravity4.svg rename to static/ssd-icons/Gravity4.svg diff --git a/public/ssd-icons/Hangar Rack 1.svg b/static/ssd-icons/Hangar Rack 1.svg similarity index 100% rename from public/ssd-icons/Hangar Rack 1.svg rename to static/ssd-icons/Hangar Rack 1.svg diff --git a/public/ssd-icons/Hangar Rack 2.svg b/static/ssd-icons/Hangar Rack 2.svg similarity index 100% rename from public/ssd-icons/Hangar Rack 2.svg rename to static/ssd-icons/Hangar Rack 2.svg diff --git a/public/ssd-icons/HeavyGraser1.svg b/static/ssd-icons/HeavyGraser1.svg similarity index 100% rename from public/ssd-icons/HeavyGraser1.svg rename to static/ssd-icons/HeavyGraser1.svg diff --git a/public/ssd-icons/HeavyGraser2.svg b/static/ssd-icons/HeavyGraser2.svg similarity index 100% rename from public/ssd-icons/HeavyGraser2.svg rename to static/ssd-icons/HeavyGraser2.svg diff --git a/public/ssd-icons/HeavyGraser3.svg b/static/ssd-icons/HeavyGraser3.svg similarity index 100% rename from public/ssd-icons/HeavyGraser3.svg rename to static/ssd-icons/HeavyGraser3.svg diff --git a/public/ssd-icons/HeavyGraser4.svg b/static/ssd-icons/HeavyGraser4.svg similarity index 100% rename from public/ssd-icons/HeavyGraser4.svg rename to static/ssd-icons/HeavyGraser4.svg diff --git a/public/ssd-icons/Holofield.svg b/static/ssd-icons/Holofield.svg similarity index 100% rename from public/ssd-icons/Holofield.svg rename to static/ssd-icons/Holofield.svg diff --git a/public/ssd-icons/Hull.svg b/static/ssd-icons/Hull.svg similarity index 100% rename from public/ssd-icons/Hull.svg rename to static/ssd-icons/Hull.svg diff --git a/public/ssd-icons/LRK1.svg b/static/ssd-icons/LRK1.svg similarity index 100% rename from public/ssd-icons/LRK1.svg rename to static/ssd-icons/LRK1.svg diff --git a/public/ssd-icons/LRK2.svg b/static/ssd-icons/LRK2.svg similarity index 100% rename from public/ssd-icons/LRK2.svg rename to static/ssd-icons/LRK2.svg diff --git a/public/ssd-icons/LRK3.svg b/static/ssd-icons/LRK3.svg similarity index 100% rename from public/ssd-icons/LRK3.svg rename to static/ssd-icons/LRK3.svg diff --git a/public/ssd-icons/LRK4.svg b/static/ssd-icons/LRK4.svg similarity index 100% rename from public/ssd-icons/LRK4.svg rename to static/ssd-icons/LRK4.svg diff --git a/public/ssd-icons/LRK5.svg b/static/ssd-icons/LRK5.svg similarity index 100% rename from public/ssd-icons/LRK5.svg rename to static/ssd-icons/LRK5.svg diff --git a/public/ssd-icons/Launch Tube Catapult 2.svg b/static/ssd-icons/Launch Tube Catapult 2.svg similarity index 100% rename from public/ssd-icons/Launch Tube Catapult 2.svg rename to static/ssd-icons/Launch Tube Catapult 2.svg diff --git a/public/ssd-icons/Launch Tube Catapult.svg b/static/ssd-icons/Launch Tube Catapult.svg similarity index 100% rename from public/ssd-icons/Launch Tube Catapult.svg rename to static/ssd-icons/Launch Tube Catapult.svg diff --git a/public/ssd-icons/Launch Tube.svg b/static/ssd-icons/Launch Tube.svg similarity index 100% rename from public/ssd-icons/Launch Tube.svg rename to static/ssd-icons/Launch Tube.svg diff --git a/public/ssd-icons/Marines1.svg b/static/ssd-icons/Marines1.svg similarity index 100% rename from public/ssd-icons/Marines1.svg rename to static/ssd-icons/Marines1.svg diff --git a/public/ssd-icons/Marines2.svg b/static/ssd-icons/Marines2.svg similarity index 100% rename from public/ssd-icons/Marines2.svg rename to static/ssd-icons/Marines2.svg diff --git a/public/ssd-icons/Marines3.svg b/static/ssd-icons/Marines3.svg similarity index 100% rename from public/ssd-icons/Marines3.svg rename to static/ssd-icons/Marines3.svg diff --git a/public/ssd-icons/MesonProjector.svg b/static/ssd-icons/MesonProjector.svg similarity index 100% rename from public/ssd-icons/MesonProjector.svg rename to static/ssd-icons/MesonProjector.svg diff --git a/public/ssd-icons/Mine Rack.svg b/static/ssd-icons/Mine Rack.svg similarity index 100% rename from public/ssd-icons/Mine Rack.svg rename to static/ssd-icons/Mine Rack.svg diff --git a/public/ssd-icons/Minesweep.svg b/static/ssd-icons/Minesweep.svg similarity index 100% rename from public/ssd-icons/Minesweep.svg rename to static/ssd-icons/Minesweep.svg diff --git a/public/ssd-icons/Needle1.svg b/static/ssd-icons/Needle1.svg similarity index 100% rename from public/ssd-icons/Needle1.svg rename to static/ssd-icons/Needle1.svg diff --git a/public/ssd-icons/Needle2.svg b/static/ssd-icons/Needle2.svg similarity index 100% rename from public/ssd-icons/Needle2.svg rename to static/ssd-icons/Needle2.svg diff --git a/public/ssd-icons/Needle3.svg b/static/ssd-icons/Needle3.svg similarity index 100% rename from public/ssd-icons/Needle3.svg rename to static/ssd-icons/Needle3.svg diff --git a/public/ssd-icons/Needle4.svg b/static/ssd-icons/Needle4.svg similarity index 100% rename from public/ssd-icons/Needle4.svg rename to static/ssd-icons/Needle4.svg diff --git a/public/ssd-icons/Nova Cannon.svg b/static/ssd-icons/Nova Cannon.svg similarity index 100% rename from public/ssd-icons/Nova Cannon.svg rename to static/ssd-icons/Nova Cannon.svg diff --git a/public/ssd-icons/Ortillery.svg b/static/ssd-icons/Ortillery.svg similarity index 100% rename from public/ssd-icons/Ortillery.svg rename to static/ssd-icons/Ortillery.svg diff --git a/public/ssd-icons/Passenger Berth.svg b/static/ssd-icons/Passenger Berth.svg similarity index 100% rename from public/ssd-icons/Passenger Berth.svg rename to static/ssd-icons/Passenger Berth.svg diff --git a/public/ssd-icons/Phasers1.svg b/static/ssd-icons/Phasers1.svg similarity index 100% rename from public/ssd-icons/Phasers1.svg rename to static/ssd-icons/Phasers1.svg diff --git a/public/ssd-icons/Phasers2.svg b/static/ssd-icons/Phasers2.svg similarity index 100% rename from public/ssd-icons/Phasers2.svg rename to static/ssd-icons/Phasers2.svg diff --git a/public/ssd-icons/Phasers3.svg b/static/ssd-icons/Phasers3.svg similarity index 100% rename from public/ssd-icons/Phasers3.svg rename to static/ssd-icons/Phasers3.svg diff --git a/public/ssd-icons/Phasers4.svg b/static/ssd-icons/Phasers4.svg similarity index 100% rename from public/ssd-icons/Phasers4.svg rename to static/ssd-icons/Phasers4.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 1 v1.svg b/static/ssd-icons/Plasma Bolt Launcher 1 v1.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 1 v1.svg rename to static/ssd-icons/Plasma Bolt Launcher 1 v1.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 1 v2.svg b/static/ssd-icons/Plasma Bolt Launcher 1 v2.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 1 v2.svg rename to static/ssd-icons/Plasma Bolt Launcher 1 v2.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 1.svg b/static/ssd-icons/Plasma Bolt Launcher 1.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 1.svg rename to static/ssd-icons/Plasma Bolt Launcher 1.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 2 v1.svg b/static/ssd-icons/Plasma Bolt Launcher 2 v1.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 2 v1.svg rename to static/ssd-icons/Plasma Bolt Launcher 2 v1.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 2 v2.svg b/static/ssd-icons/Plasma Bolt Launcher 2 v2.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 2 v2.svg rename to static/ssd-icons/Plasma Bolt Launcher 2 v2.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 2.svg b/static/ssd-icons/Plasma Bolt Launcher 2.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 2.svg rename to static/ssd-icons/Plasma Bolt Launcher 2.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 3 v1.svg b/static/ssd-icons/Plasma Bolt Launcher 3 v1.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 3 v1.svg rename to static/ssd-icons/Plasma Bolt Launcher 3 v1.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 3 v2.svg b/static/ssd-icons/Plasma Bolt Launcher 3 v2.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 3 v2.svg rename to static/ssd-icons/Plasma Bolt Launcher 3 v2.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 3.svg b/static/ssd-icons/Plasma Bolt Launcher 3.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 3.svg rename to static/ssd-icons/Plasma Bolt Launcher 3.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 4 v1.svg b/static/ssd-icons/Plasma Bolt Launcher 4 v1.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 4 v1.svg rename to static/ssd-icons/Plasma Bolt Launcher 4 v1.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 4 v2.svg b/static/ssd-icons/Plasma Bolt Launcher 4 v2.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 4 v2.svg rename to static/ssd-icons/Plasma Bolt Launcher 4 v2.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 4.svg b/static/ssd-icons/Plasma Bolt Launcher 4.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 4.svg rename to static/ssd-icons/Plasma Bolt Launcher 4.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 5 v1.svg b/static/ssd-icons/Plasma Bolt Launcher 5 v1.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 5 v1.svg rename to static/ssd-icons/Plasma Bolt Launcher 5 v1.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 5 v2.svg b/static/ssd-icons/Plasma Bolt Launcher 5 v2.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 5 v2.svg rename to static/ssd-icons/Plasma Bolt Launcher 5 v2.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 5.svg b/static/ssd-icons/Plasma Bolt Launcher 5.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 5.svg rename to static/ssd-icons/Plasma Bolt Launcher 5.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 6 v1.svg b/static/ssd-icons/Plasma Bolt Launcher 6 v1.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 6 v1.svg rename to static/ssd-icons/Plasma Bolt Launcher 6 v1.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 6 v2.svg b/static/ssd-icons/Plasma Bolt Launcher 6 v2.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 6 v2.svg rename to static/ssd-icons/Plasma Bolt Launcher 6 v2.svg diff --git a/public/ssd-icons/Plasma Bolt Launcher 6.svg b/static/ssd-icons/Plasma Bolt Launcher 6.svg similarity index 100% rename from public/ssd-icons/Plasma Bolt Launcher 6.svg rename to static/ssd-icons/Plasma Bolt Launcher 6.svg diff --git a/public/ssd-icons/Plasma1.svg b/static/ssd-icons/Plasma1.svg similarity index 100% rename from public/ssd-icons/Plasma1.svg rename to static/ssd-icons/Plasma1.svg diff --git a/public/ssd-icons/Plasma2.svg b/static/ssd-icons/Plasma2.svg similarity index 100% rename from public/ssd-icons/Plasma2.svg rename to static/ssd-icons/Plasma2.svg diff --git a/public/ssd-icons/Plasma3.svg b/static/ssd-icons/Plasma3.svg similarity index 100% rename from public/ssd-icons/Plasma3.svg rename to static/ssd-icons/Plasma3.svg diff --git a/public/ssd-icons/PlasmaCannon1.svg b/static/ssd-icons/PlasmaCannon1.svg similarity index 100% rename from public/ssd-icons/PlasmaCannon1.svg rename to static/ssd-icons/PlasmaCannon1.svg diff --git a/public/ssd-icons/PlasmaCannon2.svg b/static/ssd-icons/PlasmaCannon2.svg similarity index 100% rename from public/ssd-icons/PlasmaCannon2.svg rename to static/ssd-icons/PlasmaCannon2.svg diff --git a/public/ssd-icons/PlasmaCannon3.svg b/static/ssd-icons/PlasmaCannon3.svg similarity index 100% rename from public/ssd-icons/PlasmaCannon3.svg rename to static/ssd-icons/PlasmaCannon3.svg diff --git a/public/ssd-icons/PlasmaCannon4.svg b/static/ssd-icons/PlasmaCannon4.svg similarity index 100% rename from public/ssd-icons/PlasmaCannon4.svg rename to static/ssd-icons/PlasmaCannon4.svg diff --git a/public/ssd-icons/Psp1.svg b/static/ssd-icons/Psp1.svg similarity index 100% rename from public/ssd-icons/Psp1.svg rename to static/ssd-icons/Psp1.svg diff --git a/public/ssd-icons/Psp2.svg b/static/ssd-icons/Psp2.svg similarity index 100% rename from public/ssd-icons/Psp2.svg rename to static/ssd-icons/Psp2.svg diff --git a/public/ssd-icons/Psp3.svg b/static/ssd-icons/Psp3.svg similarity index 100% rename from public/ssd-icons/Psp3.svg rename to static/ssd-icons/Psp3.svg diff --git a/public/ssd-icons/Pulser1.svg b/static/ssd-icons/Pulser1.svg similarity index 100% rename from public/ssd-icons/Pulser1.svg rename to static/ssd-icons/Pulser1.svg diff --git a/public/ssd-icons/Pulser2.svg b/static/ssd-icons/Pulser2.svg similarity index 100% rename from public/ssd-icons/Pulser2.svg rename to static/ssd-icons/Pulser2.svg diff --git a/public/ssd-icons/Pulser3.svg b/static/ssd-icons/Pulser3.svg similarity index 100% rename from public/ssd-icons/Pulser3.svg rename to static/ssd-icons/Pulser3.svg diff --git a/public/ssd-icons/Pulser4.svg b/static/ssd-icons/Pulser4.svg similarity index 100% rename from public/ssd-icons/Pulser4.svg rename to static/ssd-icons/Pulser4.svg diff --git a/public/ssd-icons/Pulser5.svg b/static/ssd-icons/Pulser5.svg similarity index 100% rename from public/ssd-icons/Pulser5.svg rename to static/ssd-icons/Pulser5.svg diff --git a/public/ssd-icons/Pulser6.svg b/static/ssd-icons/Pulser6.svg similarity index 100% rename from public/ssd-icons/Pulser6.svg rename to static/ssd-icons/Pulser6.svg diff --git a/public/ssd-icons/Pulser7.svg b/static/ssd-icons/Pulser7.svg similarity index 100% rename from public/ssd-icons/Pulser7.svg rename to static/ssd-icons/Pulser7.svg diff --git a/public/ssd-icons/Pulser8.svg b/static/ssd-icons/Pulser8.svg similarity index 100% rename from public/ssd-icons/Pulser8.svg rename to static/ssd-icons/Pulser8.svg diff --git a/public/ssd-icons/Reflex Field.svg b/static/ssd-icons/Reflex Field.svg similarity index 100% rename from public/ssd-icons/Reflex Field.svg rename to static/ssd-icons/Reflex Field.svg diff --git a/public/ssd-icons/Rocket Pod 2.svg b/static/ssd-icons/Rocket Pod 2.svg similarity index 100% rename from public/ssd-icons/Rocket Pod 2.svg rename to static/ssd-icons/Rocket Pod 2.svg diff --git a/public/ssd-icons/Rocket Pod.svg b/static/ssd-icons/Rocket Pod.svg similarity index 100% rename from public/ssd-icons/Rocket Pod.svg rename to static/ssd-icons/Rocket Pod.svg diff --git a/public/ssd-icons/SRK1(v1).svg b/static/ssd-icons/SRK1(v1).svg similarity index 100% rename from public/ssd-icons/SRK1(v1).svg rename to static/ssd-icons/SRK1(v1).svg diff --git a/public/ssd-icons/SRK1(v2).svg b/static/ssd-icons/SRK1(v2).svg similarity index 100% rename from public/ssd-icons/SRK1(v2).svg rename to static/ssd-icons/SRK1(v2).svg diff --git a/public/ssd-icons/SRK2(v1).svg b/static/ssd-icons/SRK2(v1).svg similarity index 100% rename from public/ssd-icons/SRK2(v1).svg rename to static/ssd-icons/SRK2(v1).svg diff --git a/public/ssd-icons/SRK2(v2).svg b/static/ssd-icons/SRK2(v2).svg similarity index 100% rename from public/ssd-icons/SRK2(v2).svg rename to static/ssd-icons/SRK2(v2).svg diff --git a/public/ssd-icons/SRK3(v1).svg b/static/ssd-icons/SRK3(v1).svg similarity index 100% rename from public/ssd-icons/SRK3(v1).svg rename to static/ssd-icons/SRK3(v1).svg diff --git a/public/ssd-icons/SRK3(v2).svg b/static/ssd-icons/SRK3(v2).svg similarity index 100% rename from public/ssd-icons/SRK3(v2).svg rename to static/ssd-icons/SRK3(v2).svg diff --git a/public/ssd-icons/SRK4(v1).svg b/static/ssd-icons/SRK4(v1).svg similarity index 100% rename from public/ssd-icons/SRK4(v1).svg rename to static/ssd-icons/SRK4(v1).svg diff --git a/public/ssd-icons/SRK4(v2).svg b/static/ssd-icons/SRK4(v2).svg similarity index 100% rename from public/ssd-icons/SRK4(v2).svg rename to static/ssd-icons/SRK4(v2).svg diff --git a/public/ssd-icons/SRK5(v1).svg b/static/ssd-icons/SRK5(v1).svg similarity index 100% rename from public/ssd-icons/SRK5(v1).svg rename to static/ssd-icons/SRK5(v1).svg diff --git a/public/ssd-icons/SRK5(v2).svg b/static/ssd-icons/SRK5(v2).svg similarity index 100% rename from public/ssd-icons/SRK5(v2).svg rename to static/ssd-icons/SRK5(v2).svg diff --git a/public/ssd-icons/Salvo Missiles Magazines (2).svg b/static/ssd-icons/Salvo Missiles Magazines (2).svg similarity index 100% rename from public/ssd-icons/Salvo Missiles Magazines (2).svg rename to static/ssd-icons/Salvo Missiles Magazines (2).svg diff --git a/public/ssd-icons/Salvo Missiles Magazines (3).svg b/static/ssd-icons/Salvo Missiles Magazines (3).svg similarity index 100% rename from public/ssd-icons/Salvo Missiles Magazines (3).svg rename to static/ssd-icons/Salvo Missiles Magazines (3).svg diff --git a/public/ssd-icons/Salvo Missiles Magazines (4).svg b/static/ssd-icons/Salvo Missiles Magazines (4).svg similarity index 100% rename from public/ssd-icons/Salvo Missiles Magazines (4).svg rename to static/ssd-icons/Salvo Missiles Magazines (4).svg diff --git a/public/ssd-icons/Salvo Missiles Magazines (5).svg b/static/ssd-icons/Salvo Missiles Magazines (5).svg similarity index 100% rename from public/ssd-icons/Salvo Missiles Magazines (5).svg rename to static/ssd-icons/Salvo Missiles Magazines (5).svg diff --git a/public/ssd-icons/Salvo Missiles Magazines (6).svg b/static/ssd-icons/Salvo Missiles Magazines (6).svg similarity index 100% rename from public/ssd-icons/Salvo Missiles Magazines (6).svg rename to static/ssd-icons/Salvo Missiles Magazines (6).svg diff --git a/public/ssd-icons/Salvo Missiles Magazines.svg b/static/ssd-icons/Salvo Missiles Magazines.svg similarity index 100% rename from public/ssd-icons/Salvo Missiles Magazines.svg rename to static/ssd-icons/Salvo Missiles Magazines.svg diff --git a/public/ssd-icons/Salvo Missiles.svg b/static/ssd-icons/Salvo Missiles.svg similarity index 100% rename from public/ssd-icons/Salvo Missiles.svg rename to static/ssd-icons/Salvo Missiles.svg diff --git a/public/ssd-icons/SensorsLVL1.svg b/static/ssd-icons/SensorsLVL1.svg similarity index 100% rename from public/ssd-icons/SensorsLVL1.svg rename to static/ssd-icons/SensorsLVL1.svg diff --git a/public/ssd-icons/SensorsLVL2.svg b/static/ssd-icons/SensorsLVL2.svg similarity index 100% rename from public/ssd-icons/SensorsLVL2.svg rename to static/ssd-icons/SensorsLVL2.svg diff --git a/public/ssd-icons/Shroud.svg b/static/ssd-icons/Shroud.svg similarity index 100% rename from public/ssd-icons/Shroud.svg rename to static/ssd-icons/Shroud.svg diff --git a/public/ssd-icons/StandardDrives (2).svg b/static/ssd-icons/StandardDrives (2).svg similarity index 100% rename from public/ssd-icons/StandardDrives (2).svg rename to static/ssd-icons/StandardDrives (2).svg diff --git a/public/ssd-icons/StandardDrives (3).svg b/static/ssd-icons/StandardDrives (3).svg similarity index 100% rename from public/ssd-icons/StandardDrives (3).svg rename to static/ssd-icons/StandardDrives (3).svg diff --git a/public/ssd-icons/StandardDrives (4).svg b/static/ssd-icons/StandardDrives (4).svg similarity index 100% rename from public/ssd-icons/StandardDrives (4).svg rename to static/ssd-icons/StandardDrives (4).svg diff --git a/public/ssd-icons/StandardDrives (5).svg b/static/ssd-icons/StandardDrives (5).svg similarity index 100% rename from public/ssd-icons/StandardDrives (5).svg rename to static/ssd-icons/StandardDrives (5).svg diff --git a/public/ssd-icons/StandardDrives (6).svg b/static/ssd-icons/StandardDrives (6).svg similarity index 100% rename from public/ssd-icons/StandardDrives (6).svg rename to static/ssd-icons/StandardDrives (6).svg diff --git a/public/ssd-icons/StandardDrives (7).svg b/static/ssd-icons/StandardDrives (7).svg similarity index 100% rename from public/ssd-icons/StandardDrives (7).svg rename to static/ssd-icons/StandardDrives (7).svg diff --git a/public/ssd-icons/StandardDrives (8).svg b/static/ssd-icons/StandardDrives (8).svg similarity index 100% rename from public/ssd-icons/StandardDrives (8).svg rename to static/ssd-icons/StandardDrives (8).svg diff --git a/public/ssd-icons/StandardDrives.svg b/static/ssd-icons/StandardDrives.svg similarity index 100% rename from public/ssd-icons/StandardDrives.svg rename to static/ssd-icons/StandardDrives.svg diff --git a/public/ssd-icons/StandardGraser1.svg b/static/ssd-icons/StandardGraser1.svg similarity index 100% rename from public/ssd-icons/StandardGraser1.svg rename to static/ssd-icons/StandardGraser1.svg diff --git a/public/ssd-icons/StandardGraser2.svg b/static/ssd-icons/StandardGraser2.svg similarity index 100% rename from public/ssd-icons/StandardGraser2.svg rename to static/ssd-icons/StandardGraser2.svg diff --git a/public/ssd-icons/StandardGraser3.svg b/static/ssd-icons/StandardGraser3.svg similarity index 100% rename from public/ssd-icons/StandardGraser3.svg rename to static/ssd-icons/StandardGraser3.svg diff --git a/public/ssd-icons/Stealth Hull.svg b/static/ssd-icons/Stealth Hull.svg similarity index 100% rename from public/ssd-icons/Stealth Hull.svg rename to static/ssd-icons/Stealth Hull.svg diff --git a/public/ssd-icons/StealthField.svg b/static/ssd-icons/StealthField.svg similarity index 100% rename from public/ssd-icons/StealthField.svg rename to static/ssd-icons/StealthField.svg diff --git a/public/ssd-icons/Transport Craft.svg b/static/ssd-icons/Transport Craft.svg similarity index 100% rename from public/ssd-icons/Transport Craft.svg rename to static/ssd-icons/Transport Craft.svg diff --git a/public/ssd-icons/Transporter1.svg b/static/ssd-icons/Transporter1.svg similarity index 100% rename from public/ssd-icons/Transporter1.svg rename to static/ssd-icons/Transporter1.svg diff --git a/public/ssd-icons/Transporter2.svg b/static/ssd-icons/Transporter2.svg similarity index 100% rename from public/ssd-icons/Transporter2.svg rename to static/ssd-icons/Transporter2.svg diff --git a/public/ssd-icons/Transporter3.svg b/static/ssd-icons/Transporter3.svg similarity index 100% rename from public/ssd-icons/Transporter3.svg rename to static/ssd-icons/Transporter3.svg diff --git a/public/ssd-icons/Transporter4.svg b/static/ssd-icons/Transporter4.svg similarity index 100% rename from public/ssd-icons/Transporter4.svg rename to static/ssd-icons/Transporter4.svg diff --git a/public/ssd-icons/Troop Berth.svg b/static/ssd-icons/Troop Berth.svg similarity index 100% rename from public/ssd-icons/Troop Berth.svg rename to static/ssd-icons/Troop Berth.svg diff --git a/public/ssd-icons/Turret1.svg b/static/ssd-icons/Turret1.svg similarity index 100% rename from public/ssd-icons/Turret1.svg rename to static/ssd-icons/Turret1.svg diff --git a/public/ssd-icons/Turret2.svg b/static/ssd-icons/Turret2.svg similarity index 100% rename from public/ssd-icons/Turret2.svg rename to static/ssd-icons/Turret2.svg diff --git a/public/ssd-icons/TwinParticleArray.svg b/static/ssd-icons/TwinParticleArray.svg similarity index 100% rename from public/ssd-icons/TwinParticleArray.svg rename to static/ssd-icons/TwinParticleArray.svg diff --git a/public/ssd-icons/Type I Cloak.svg b/static/ssd-icons/Type I Cloak.svg similarity index 100% rename from public/ssd-icons/Type I Cloak.svg rename to static/ssd-icons/Type I Cloak.svg diff --git a/public/ssd-icons/Type II Cloak.svg b/static/ssd-icons/Type II Cloak.svg similarity index 100% rename from public/ssd-icons/Type II Cloak.svg rename to static/ssd-icons/Type II Cloak.svg diff --git a/public/ssd-icons/Type III Cloak.svg b/static/ssd-icons/Type III Cloak.svg similarity index 100% rename from public/ssd-icons/Type III Cloak.svg rename to static/ssd-icons/Type III Cloak.svg diff --git a/public/ssd-icons/Wave Gun.svg b/static/ssd-icons/Wave Gun.svg similarity index 100% rename from public/ssd-icons/Wave Gun.svg rename to static/ssd-icons/Wave Gun.svg diff --git a/public/ssd-icons/armor.svg b/static/ssd-icons/armor.svg similarity index 100% rename from public/ssd-icons/armor.svg rename to static/ssd-icons/armor.svg diff --git a/public/ssd-icons/fighter 1.svg b/static/ssd-icons/fighter 1.svg similarity index 100% rename from public/ssd-icons/fighter 1.svg rename to static/ssd-icons/fighter 1.svg diff --git a/public/ssd-icons/fighter 2.svg b/static/ssd-icons/fighter 2.svg similarity index 100% rename from public/ssd-icons/fighter 2.svg rename to static/ssd-icons/fighter 2.svg diff --git a/public/ssd-icons/fighter 3.svg b/static/ssd-icons/fighter 3.svg similarity index 100% rename from public/ssd-icons/fighter 3.svg rename to static/ssd-icons/fighter 3.svg diff --git a/public/ssd-icons/fighter 4.svg b/static/ssd-icons/fighter 4.svg similarity index 100% rename from public/ssd-icons/fighter 4.svg rename to static/ssd-icons/fighter 4.svg diff --git a/public/ssd-icons/fighter 5.svg b/static/ssd-icons/fighter 5.svg similarity index 100% rename from public/ssd-icons/fighter 5.svg rename to static/ssd-icons/fighter 5.svg diff --git a/public/ssd-icons/fighter 6.svg b/static/ssd-icons/fighter 6.svg similarity index 100% rename from public/ssd-icons/fighter 6.svg rename to static/ssd-icons/fighter 6.svg diff --git a/public/ssd-icons/fighter 7.svg b/static/ssd-icons/fighter 7.svg similarity index 100% rename from public/ssd-icons/fighter 7.svg rename to static/ssd-icons/fighter 7.svg diff --git a/public/ssd-icons/fighter 8.svg b/static/ssd-icons/fighter 8.svg similarity index 100% rename from public/ssd-icons/fighter 8.svg rename to static/ssd-icons/fighter 8.svg diff --git a/public/ssd-icons/fighter 9.svg b/static/ssd-icons/fighter 9.svg similarity index 100% rename from public/ssd-icons/fighter 9.svg rename to static/ssd-icons/fighter 9.svg diff --git a/public/ssd-icons/fighter bays (1).svg b/static/ssd-icons/fighter bays (1).svg similarity index 100% rename from public/ssd-icons/fighter bays (1).svg rename to static/ssd-icons/fighter bays (1).svg diff --git a/public/ssd-icons/fighter bays (10).svg b/static/ssd-icons/fighter bays (10).svg similarity index 100% rename from public/ssd-icons/fighter bays (10).svg rename to static/ssd-icons/fighter bays (10).svg diff --git a/public/ssd-icons/fighter bays (11).svg b/static/ssd-icons/fighter bays (11).svg similarity index 100% rename from public/ssd-icons/fighter bays (11).svg rename to static/ssd-icons/fighter bays (11).svg diff --git a/public/ssd-icons/fighter bays (12).svg b/static/ssd-icons/fighter bays (12).svg similarity index 100% rename from public/ssd-icons/fighter bays (12).svg rename to static/ssd-icons/fighter bays (12).svg diff --git a/public/ssd-icons/fighter bays (13).svg b/static/ssd-icons/fighter bays (13).svg similarity index 100% rename from public/ssd-icons/fighter bays (13).svg rename to static/ssd-icons/fighter bays (13).svg diff --git a/public/ssd-icons/fighter bays (14).svg b/static/ssd-icons/fighter bays (14).svg similarity index 100% rename from public/ssd-icons/fighter bays (14).svg rename to static/ssd-icons/fighter bays (14).svg diff --git a/public/ssd-icons/fighter bays (15).svg b/static/ssd-icons/fighter bays (15).svg similarity index 100% rename from public/ssd-icons/fighter bays (15).svg rename to static/ssd-icons/fighter bays (15).svg diff --git a/public/ssd-icons/fighter bays (16).svg b/static/ssd-icons/fighter bays (16).svg similarity index 100% rename from public/ssd-icons/fighter bays (16).svg rename to static/ssd-icons/fighter bays (16).svg diff --git a/public/ssd-icons/fighter bays (2).svg b/static/ssd-icons/fighter bays (2).svg similarity index 100% rename from public/ssd-icons/fighter bays (2).svg rename to static/ssd-icons/fighter bays (2).svg diff --git a/public/ssd-icons/fighter bays (3).svg b/static/ssd-icons/fighter bays (3).svg similarity index 100% rename from public/ssd-icons/fighter bays (3).svg rename to static/ssd-icons/fighter bays (3).svg diff --git a/public/ssd-icons/fighter bays (4).svg b/static/ssd-icons/fighter bays (4).svg similarity index 100% rename from public/ssd-icons/fighter bays (4).svg rename to static/ssd-icons/fighter bays (4).svg diff --git a/public/ssd-icons/fighter bays (5).svg b/static/ssd-icons/fighter bays (5).svg similarity index 100% rename from public/ssd-icons/fighter bays (5).svg rename to static/ssd-icons/fighter bays (5).svg diff --git a/public/ssd-icons/fighter bays (6).svg b/static/ssd-icons/fighter bays (6).svg similarity index 100% rename from public/ssd-icons/fighter bays (6).svg rename to static/ssd-icons/fighter bays (6).svg diff --git a/public/ssd-icons/fighter bays (7).svg b/static/ssd-icons/fighter bays (7).svg similarity index 100% rename from public/ssd-icons/fighter bays (7).svg rename to static/ssd-icons/fighter bays (7).svg diff --git a/public/ssd-icons/fighter bays (8).svg b/static/ssd-icons/fighter bays (8).svg similarity index 100% rename from public/ssd-icons/fighter bays (8).svg rename to static/ssd-icons/fighter bays (8).svg diff --git a/public/ssd-icons/fighter bays (9).svg b/static/ssd-icons/fighter bays (9).svg similarity index 100% rename from public/ssd-icons/fighter bays (9).svg rename to static/ssd-icons/fighter bays (9).svg diff --git a/public/ssd-icons/new1.svg b/static/ssd-icons/new1.svg similarity index 100% rename from public/ssd-icons/new1.svg rename to static/ssd-icons/new1.svg diff --git a/public/ssd-icons/new2.svg b/static/ssd-icons/new2.svg similarity index 100% rename from public/ssd-icons/new2.svg rename to static/ssd-icons/new2.svg diff --git a/public/ssd-icons/new3.svg b/static/ssd-icons/new3.svg similarity index 100% rename from public/ssd-icons/new3.svg rename to static/ssd-icons/new3.svg diff --git a/public/ssd-icons/new4.svg b/static/ssd-icons/new4.svg similarity index 100% rename from public/ssd-icons/new4.svg rename to static/ssd-icons/new4.svg diff --git a/public/ssd-icons/new5.svg b/static/ssd-icons/new5.svg similarity index 100% rename from public/ssd-icons/new5.svg rename to static/ssd-icons/new5.svg diff --git a/public/ssd-icons/new6.svg b/static/ssd-icons/new6.svg similarity index 100% rename from public/ssd-icons/new6.svg rename to static/ssd-icons/new6.svg diff --git a/public/ssd-icons/notes b/static/ssd-icons/notes similarity index 100% rename from public/ssd-icons/notes rename to static/ssd-icons/notes diff --git a/public/ssd-icons/numbers/0.svg b/static/ssd-icons/numbers/0.svg similarity index 100% rename from public/ssd-icons/numbers/0.svg rename to static/ssd-icons/numbers/0.svg diff --git a/public/ssd-icons/numbers/1.svg b/static/ssd-icons/numbers/1.svg similarity index 100% rename from public/ssd-icons/numbers/1.svg rename to static/ssd-icons/numbers/1.svg diff --git a/public/ssd-icons/numbers/2.svg b/static/ssd-icons/numbers/2.svg similarity index 100% rename from public/ssd-icons/numbers/2.svg rename to static/ssd-icons/numbers/2.svg diff --git a/public/ssd-icons/numbers/3.svg b/static/ssd-icons/numbers/3.svg similarity index 100% rename from public/ssd-icons/numbers/3.svg rename to static/ssd-icons/numbers/3.svg diff --git a/public/ssd-icons/numbers/4.svg b/static/ssd-icons/numbers/4.svg similarity index 100% rename from public/ssd-icons/numbers/4.svg rename to static/ssd-icons/numbers/4.svg diff --git a/public/ssd-icons/numbers/5.svg b/static/ssd-icons/numbers/5.svg similarity index 100% rename from public/ssd-icons/numbers/5.svg rename to static/ssd-icons/numbers/5.svg diff --git a/public/ssd-icons/numbers/6.svg b/static/ssd-icons/numbers/6.svg similarity index 100% rename from public/ssd-icons/numbers/6.svg rename to static/ssd-icons/numbers/6.svg diff --git a/public/ssd-icons/numbers/7.svg b/static/ssd-icons/numbers/7.svg similarity index 100% rename from public/ssd-icons/numbers/7.svg rename to static/ssd-icons/numbers/7.svg diff --git a/public/ssd-icons/numbers/8.svg b/static/ssd-icons/numbers/8.svg similarity index 100% rename from public/ssd-icons/numbers/8.svg rename to static/ssd-icons/numbers/8.svg diff --git a/public/ssd-icons/numbers/9.svg b/static/ssd-icons/numbers/9.svg similarity index 100% rename from public/ssd-icons/numbers/9.svg rename to static/ssd-icons/numbers/9.svg diff --git a/public/ssd-icons/old1.svg b/static/ssd-icons/old1.svg similarity index 100% rename from public/ssd-icons/old1.svg rename to static/ssd-icons/old1.svg diff --git a/public/ssd-icons/old2.svg b/static/ssd-icons/old2.svg similarity index 100% rename from public/ssd-icons/old2.svg rename to static/ssd-icons/old2.svg diff --git a/public/ssd-icons/old3.svg b/static/ssd-icons/old3.svg similarity index 100% rename from public/ssd-icons/old3.svg rename to static/ssd-icons/old3.svg diff --git a/public/ssd-icons/old4.svg b/static/ssd-icons/old4.svg similarity index 100% rename from public/ssd-icons/old4.svg rename to static/ssd-icons/old4.svg diff --git a/public/ssd-icons/old5.svg b/static/ssd-icons/old5.svg similarity index 100% rename from public/ssd-icons/old5.svg rename to static/ssd-icons/old5.svg diff --git a/public/ssd-icons/old6.svg b/static/ssd-icons/old6.svg similarity index 100% rename from public/ssd-icons/old6.svg rename to static/ssd-icons/old6.svg diff --git a/public/ssd-icons/unlabeled (1).svg b/static/ssd-icons/unlabeled (1).svg similarity index 100% rename from public/ssd-icons/unlabeled (1).svg rename to static/ssd-icons/unlabeled (1).svg diff --git a/public/ssd-icons/unlabeled (3).svg b/static/ssd-icons/unlabeled (3).svg similarity index 100% rename from public/ssd-icons/unlabeled (3).svg rename to static/ssd-icons/unlabeled (3).svg diff --git a/public/ssd-icons/unlabeled (4).svg b/static/ssd-icons/unlabeled (4).svg similarity index 100% rename from public/ssd-icons/unlabeled (4).svg rename to static/ssd-icons/unlabeled (4).svg diff --git a/public/standard-drive.svg b/static/standard-drive.svg similarity index 100% rename from public/standard-drive.svg rename to static/standard-drive.svg diff --git a/svelte.config.js b/svelte.config.js index bc88df1..c3bd805 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,22 +1,18 @@ -import adapter from '@sveltejs/adapter-static'; -import analyze from 'rollup-plugin-analyzer'; +import adapter from "@sveltejs/adapter-static"; +import analyze from "rollup-plugin-analyzer"; /** @type {import('@sveltejs/kit').Config} */ export default { - kit: { - // hydrate the
element in src/app.html - target: '#svelte', - adapter: adapter(), - files: { - lib: './src', - assets: './public', - }, - vite: { - build: { + kit: { + // hydrate the
element in src/app.html + adapter: adapter(), + vite: { + build: { rollupOptions: { - plugins: [ analyze() ], -// external: ['updux','@yanick/updeep'] - } - } - }}, + plugins: [analyze()], + // external: ['updux','@yanick/updeep'] + }, + }, + }, + }, };