diff --git a/package.json b/package.json index 2a98b5d..e40e34c 100644 --- a/package.json +++ b/package.json @@ -35,14 +35,13 @@ "@storybook/addon-svelte-csf": "^1.1.0", "@storybook/svelte": "^6.4.19", "@sveltejs/adapter-node": "^1.0.0-next.0", - "@yanick/updeep": "link:/home/yanick/work/javascript/updeep", "lodash": "^4.17.21", "redux": "^4.1.2", "reselect": "^4.1.5", "rollup-plugin-analyzer": "^4.0.0", "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": { diff --git a/src/dux/index.js b/src/dux/index.js index 3565298..8d582ef 100644 --- a/src/dux/index.js +++ b/src/dux/index.js @@ -36,8 +36,6 @@ const initial = { }, }; -console.log(Updux); - const dux = new Updux({ subduxes: { ftl, engine, weaponry, structure, cargo, streamlining, carrier }, initial 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..49bf570 --- /dev/null +++ b/src/lib/components/ShipEdit/Identification/Identification.stories.svelte @@ -0,0 +1,28 @@ + + + + + + + diff --git a/src/lib/components/ShipEdit/Identification/index.svelte b/src/lib/components/ShipEdit/Identification/index.svelte new file mode 100644 index 0000000..0c57162 --- /dev/null +++ b/src/lib/components/ShipEdit/Identification/index.svelte @@ -0,0 +1,39 @@ +
+ + + + + +
+ + + + diff --git a/src/dux/ship_types.js b/src/lib/components/ShipEdit/Identification/shipTypes.js similarity index 93% rename from src/dux/ship_types.js rename to src/lib/components/ShipEdit/Identification/shipTypes.js index f37b43b..038da4f 100644 --- a/src/dux/ship_types.js +++ b/src/lib/components/ShipEdit/Identification/shipTypes.js @@ -20,7 +20,6 @@ const ship_types = [ { name: "Attack Carrier", mass: [150, 300], abbrev: "CVA", carrier: true }, ]; -export function candidate_ship_types(mass = 0, carrier = false) { - console.log({carrier}); +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/ShipSpecs/index.svelte b/src/lib/components/ShipSpecs/index.svelte index a564076..af4d310 100644 --- a/src/lib/components/ShipSpecs/index.svelte +++ b/src/lib/components/ShipSpecs/index.svelte @@ -6,9 +6,3 @@ import Identification from "./Identification.svelte"; import ShipCost from "./ShipCost.svelte"; - - diff --git a/src/lib/shipDux/engine.js b/src/lib/shipDux/engine.js new file mode 100644 index 0000000..ed14366 --- /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: { + setEngine: null, + setEngineReqs: null, + } +}); + +dux.addMutation('setEngine', changes => u(changes) ); +dux.addMutation('setEngineReqs', 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/index.js b/src/lib/shipDux/index.js new file mode 100644 index 0000000..1b63cb1 --- /dev/null +++ b/src/lib/shipDux/index.js @@ -0,0 +1,12 @@ +import Updux from "updux"; + +import engine from './engine.js'; + +const dux = new Updux({ + subduxes: { + engine, + }, + +}); + +export default dux;