aotds-docks/src/lib/shipDux/index.js

32 lines
807 B
JavaScript
Raw Normal View History

2022-03-02 00:14:01 +00:00
import { Updux } from "updux";
2022-03-02 16:14:31 +00:00
import u from 'updeep';
2022-03-01 22:13:05 +00:00
2022-03-02 18:42:42 +00:00
import propulsion from "./propulsion/index.js";
2022-03-02 00:14:01 +00:00
import identification from "./identification.js";
2022-03-02 19:00:18 +00:00
import { calculateDriveReqs } from './propulsion/drive.js';
2022-03-03 16:06:51 +00:00
import { ftlReqsReaction } from './propulsion/ftl.js';
2022-03-04 00:45:47 +00:00
import structure from './structure/index.js';
2022-03-06 19:10:44 +00:00
import carrier from './carrier.js';
2022-03-06 22:09:01 +00:00
import { screensReqsReaction } from './structure/screens.js'
2022-03-01 22:13:05 +00:00
const dux = new Updux({
2022-03-02 00:14:01 +00:00
subduxes: {
identification,
2022-03-04 00:45:47 +00:00
propulsion,
2022-03-06 19:10:44 +00:00
structure, carrier
2022-03-02 00:14:01 +00:00
},
initial: {
2022-03-02 16:14:31 +00:00
reqs: { cost: 0, mass: 10, usedMass: 0 },
2022-03-02 00:14:01 +00:00
},
2022-03-02 16:14:31 +00:00
actions: {
}
2022-03-01 22:13:05 +00:00
});
2022-03-02 16:14:31 +00:00
dux.setMutation( 'setShipMass', mass => u({reqs: {mass}}) );
2022-03-02 19:00:18 +00:00
dux.addReaction( calculateDriveReqs );
2022-03-03 16:06:51 +00:00
dux.addReaction( ftlReqsReaction );
2022-03-06 22:09:01 +00:00
dux.addReaction( screensReqsReaction );
2022-03-02 19:00:18 +00:00
2022-03-01 22:13:05 +00:00
export default dux;