aotds-docks/src/dux/utils.js

34 lines
752 B
JavaScript
Raw Normal View History

2020-07-19 20:21:28 +00:00
import fp from 'lodash/fp';
const expand_cost_mass = (obj={}) => ([
fp.pick(['cost','mass'],obj),
...Object.values(obj || {}).filter( val => typeof val === 'object' ).map(
val => expand_cost_mass(val)
)
]);
export function calc_ship_req(ship) {
console.log(ship);
let { general, ...rest } = ship;
//if(!general) general = {};
const items = fp.flow(
expand_cost_mass,
fp.flattenDeep,
fp.filter(fp.has('cost'))
)({
...rest,
cost: general.mass, mass: 0
})
return {
mass: fp.sumBy('mass',items),
cost: fp.sumBy('cost',items),
}
}
2020-07-26 22:22:05 +00:00
// to get around 3.00001 ceiling up to 4
export const ceil = number => Math.ceil( Math.round(10*number)/10 );