diff --git a/.storybook/main.js b/.storybook/main.js
index 144e24b..1a51bb1 100644
--- a/.storybook/main.js
+++ b/.storybook/main.js
@@ -27,6 +27,7 @@ module.exports = {
$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/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/src/dux/index.js b/src/dux/index.js
index 8d582ef..204169d 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,29 +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,
- },
- };
+ 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,
@@ -53,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,71 +68,73 @@ dux.addSubscription((store) =>
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.streamlining.type,
+ (ship_mass, streamlining) => {
+ const mass = ceil(
+ (ship_mass *
+ (streamlining === "none" ? 0 : streamlining === "partial" ? 5 : 10)) /
+ 100
+ );
+ const cost = 2 * mass;
- store.dispatch( dux.actions.set_streamlining_cost_mass({cost,mass}) );
- }
+ store.dispatch(dux.actions.set_streamlining_cost_mass({ cost, mass }));
+ }
)
);
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);
+ 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;
+ console.log({ candidates });
+ if (candidates.length === 0) return;
- if( candidates.find( ({name}) => name === type ) ) return;
+ if (candidates.find(({ name }) => name === type)) return;
- store.dispatch(
- store.actions.set_ship_type(
- candidates[0].name
- )
- )
-
- }
- )
+ 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) => {
+ 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));
- 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(
diff --git a/src/lib/components/Field/index.svelte b/src/lib/components/Field/index.svelte
index 71657d3..764bd93 100644
--- a/src/lib/components/Field/index.svelte
+++ b/src/lib/components/Field/index.svelte
@@ -3,7 +3,7 @@
{/if}