Merge branch 'hull-integrity' into version-2

main
Yanick Champoux 2022-03-03 19:46:00 -05:00
commit 7c17b90d70
13 changed files with 88 additions and 2 deletions

View File

@ -0,0 +1,27 @@
<ShipItem {...reqs}>
<Field label="hull">
<input bind:value={rating} type="number" {min} {max} />
</Field>
</ShipItem>
<script>
import { getContext } from "svelte";
import ShipItem from '$lib/components/ShipItem/index.svelte';
import Field from '$lib/components/Field/index.svelte';
export let rating = 0;
export let reqs = {};
export let min = 0;
export let max = 1;
const ship = getContext('ship');
$: ship.dispatch.setHull(rating);
</script>
<style>
input {
width: 5em;
}
</style>

View File

@ -0,0 +1,16 @@
<Section label="structure">
<Hull {...hull}/>
</Section>
<script>
import Section from "$lib/components/Section/index.svelte";
import Hull from './Hull.svelte';
export let hull = {};
$: console.log(hull);
</script>
<style>
</style>

View File

@ -6,12 +6,15 @@
<Propulsion propulsion={$shipState.propulsion}/>
<Structure {...$shipState.structure} />
<script>
import { getContext } from "svelte";
import Identification from "./Identification/index.svelte";
import ShipCost from "./ShipCost.svelte";
import Propulsion from "./Propulsion/index.svelte";
import Structure from "./Structure/index.svelte";
const { state: shipState } = getContext("ship");
</script>

View File

@ -5,17 +5,18 @@ import propulsion from "./propulsion/index.js";
import identification from "./identification.js";
import { calculateDriveReqs } from './propulsion/drive.js';
import { ftlReqsReaction } from './propulsion/ftl.js';
import structure from './structure/index.js';
const dux = new Updux({
subduxes: {
identification,
propulsion
propulsion,
structure
},
initial: {
reqs: { cost: 0, mass: 10, usedMass: 0 },
},
actions: {
setShipMass: null,
}
});

View File

@ -0,0 +1,31 @@
import { Updux } from "updux";
import u from 'updeep';
import reqs from '../reqs.js';
const dux = new Updux({
subduxes: {
reqs
},
initial: {
rating: 0, min: 0, max: 0,
},
actions: {
setShipMass: null,
setHull: null,
}
});
export default dux;
dux.setMutation( 'setHull', rating => u({rating,
reqs: {
mass: rating, cost: 2 * rating
}}) );
dux.setMutation( 'setShipMass', mass => state => {
let {rating} = state;
if(rating > mass) rating = mass;
const min = Math.ceil(mass/10);
if(rating < min) rating = min;
return u({max: mass, min, rating}, state);
})

View File

@ -0,0 +1,8 @@
import { Updux } from 'updux';
import hull from './hull.js';
const dux = new Updux({
subduxes: { hull }
});
export default dux;