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

29 lines
576 B
JavaScript
Raw Normal View History

2022-03-02 00:14:01 +00:00
import { Updux } from "updux";
import u from "updeep";
2022-03-01 22:13:05 +00:00
2022-03-02 00:14:01 +00:00
import reqs from "./reqs.js";
2022-03-01 22:13:05 +00:00
const dux = new Updux({
2022-03-02 00:14:01 +00:00
subduxes: { reqs },
initial: {
rating: 1,
advanced: false,
},
actions: {
2022-03-02 18:42:42 +00:00
setDrive: null,
setDriveReqs: null,
2022-03-02 00:14:01 +00:00
},
2022-03-01 22:13:05 +00:00
});
2022-03-02 18:42:42 +00:00
dux.setMutation("setDrive", (changes) => u(changes));
dux.setMutation("setDriveReqs", (reqs) => u({ reqs }));
2022-03-01 22:13:05 +00:00
2022-03-02 00:14:01 +00:00
export function calcDriveReqs(shipMass, rating, advanced = false) {
const mass = Math.ceil(rating * 0.05 * shipMass);
const cost = mass * (advanced ? 3 : 2);
2022-03-01 22:13:05 +00:00
2022-03-02 00:14:01 +00:00
return { mass, cost };
2022-03-01 22:13:05 +00:00
}
export default dux;