aotds-docks/src/lib/components/ShipEdit/Weaponry.svelte

52 lines
1.3 KiB
Svelte
Raw Normal View History

2023-03-27 17:19:46 +00:00
<Section label="weaponry">
<Firecons {...firecons} />
<ADFC {...adfc} />
2023-05-14 21:51:26 +00:00
<MissileMagazines magazines={missileMagazines} />
2023-04-08 17:47:00 +00:00
<AddWeapon />
2023-03-27 17:19:46 +00:00
2023-04-08 17:47:00 +00:00
{#each weapons as weapon (weapon.id)}
2023-05-14 21:51:26 +00:00
<Weapon {...weapon} nbrMissileMagazines={missileMagazines.length} />
2023-04-08 17:47:00 +00:00
{/each}
2023-03-27 17:19:46 +00:00
</Section>
<script>
import { getContext } from "svelte";
2023-05-14 21:51:26 +00:00
import u from "@yanick/updeep-remeda";
2023-03-27 17:19:46 +00:00
import Section from "$lib/components/Section.svelte";
import ShipItem from "$lib/components/ShipItem.svelte";
import Field from "$lib/components/Field.svelte";
import Firecons from "./Weaponry/Firecons.svelte";
import ADFC from "./Weaponry/ADFC.svelte";
2023-04-08 17:47:00 +00:00
import AddWeapon from "./Weaponry/AddWeapon.svelte";
2023-05-14 21:51:26 +00:00
import MissileMagazines from "./MissileMagazines.svelte";
import Weapon from "./Weaponry/Weapon/index.svelte";
2023-03-27 17:19:46 +00:00
export let firecons = {};
export let adfc = {};
2023-05-14 21:51:26 +00:00
export let missileMagazines = [];
2023-04-08 17:47:00 +00:00
export let weapons = [];
2023-05-14 21:51:26 +00:00
$: missileMagazines = addLaunchersToMagazines(missileMagazines, weapons);
function addLaunchersToMagazines(magazines, weapons) {
return u.map(magazines, (mag) =>
u(mag, {
launchers: weapons.filter(
u.matches({
specs: {
type: "sml",
missileMagazineId: mag.id,
},
})
),
})
);
}
2023-03-27 17:19:46 +00:00
</script>