28 lines
727 B
JavaScript
28 lines
727 B
JavaScript
import Updux from 'updux';
|
|
import { action, payload } from 'ts-action';
|
|
import u from "@yanick/updeep";
|
|
import { createSelector } from 'reselect';
|
|
|
|
const set_engine = action('set_engine',payload());
|
|
const set_drive_reqs = action('set_drive_reqs',payload());
|
|
|
|
const dux = new Updux({
|
|
initial: {
|
|
mass: 1,
|
|
cost: 2,
|
|
rating: 1,
|
|
}
|
|
});
|
|
|
|
dux.addMutation(set_engine, engine => u.update(engine));
|
|
dux.addMutation(set_drive_reqs, rate => u.update(rate));
|
|
|
|
export function calc_drive_reqs(ship_mass,rating,advanced=false) {
|
|
const mass = Math.ceil(rating * 0.05 * ship_mass);
|
|
const cost = mass * ( advanced ? 3 : 2 );
|
|
|
|
return { mass, cost };
|
|
}
|
|
|
|
export default dux.asDux;
|