Files
tpw-roller/src/components/SteadingCard.svelte
T

91 lines
2.5 KiB
Svelte
Raw Normal View History

2021-08-17 22:03:17 -04:00
<script lang="ts">
2021-08-23 14:26:25 -04:00
import { createEventDispatcher } from "svelte";
import { Card, CardHeader, CardTitle, CardBody, CardSubtitle, CardText, CardFooter, Container, Row } from "sveltestrap";
2021-08-17 22:03:17 -04:00
import { capitalize } from "lodash";
import DieIcon from "./DieIcon.svelte";
import CreatureCard from "./CreatureCard.svelte";
2021-08-23 14:26:25 -04:00
import { rollSteading, Steading } from "../rollers/steadings";
import CardButtons from "./CardTitleButtons.svelte";
import { RerolledEvent } from "../types/RerolledEvent";
2021-08-17 22:03:17 -04:00
2021-08-23 14:26:25 -04:00
const dispatch = createEventDispatcher();
2021-08-17 22:03:17 -04:00
export let steading: Steading;
2021-08-23 14:26:25 -04:00
export let timestamp: string = "";
export let showRemove: boolean = true;
function reroll() {
steading = rollSteading();
dispatch("rerolled", new RerolledEvent("steading", steading));
}
function remove() {
dispatch("remove");
}
2021-08-17 22:03:17 -04:00
</script>
<main>
<Card class="mb-3">
<CardHeader>
<CardTitle>
2021-08-23 14:26:25 -04:00
<div class="title">
<div class="description">Steading: {capitalize(steading.category)}<DieIcon value={steading.roll} /></div>
<CardButtons data={steading} dataType="steading" on:reroll={reroll} {showRemove} on:remove={remove} />
</div>
2021-08-17 22:03:17 -04:00
</CardTitle>
</CardHeader>
<CardBody>
<CardText>
<Container>
<Row>
2021-08-23 14:26:25 -04:00
<h4>Built by:</h4>
<CreatureCard creature={steading.builtBy} showRemove={false} />
2021-08-17 22:03:17 -04:00
</Row>
<Row>
2021-08-23 14:26:25 -04:00
<h4>Tags</h4>
2021-08-17 22:03:17 -04:00
<ul>
{#each steading.tags as tag}
<li>{tag}</li>
{/each}
</ul>
</Row>
<Row>
2021-08-23 14:26:25 -04:00
<h4>{capitalize(steading.condition)}:</h4>
2021-08-17 22:03:17 -04:00
</Row>
<Row>
<h4>{capitalize(steading.benefit.description)} <DieIcon value={steading.benefitRoll} />:</h4>
<ul>
{#each steading.benefit.tags as btag}
<li>{btag}</li>
{/each}
</ul>
</Row>
<Row>
<h4>{capitalize(steading.problem.description)} <DieIcon value={steading.problemRoll} />:</h4>
<ul>
{#each steading.problem.tags as ptag}
<li>{ptag}</li>
{/each}
</ul>
</Row>
</Container>
</CardText>
</CardBody>
2021-08-23 14:26:25 -04:00
{#if timestamp}
<CardFooter>{timestamp}</CardFooter>
{/if}
2021-08-17 22:03:17 -04:00
</Card>
</main>
<style>
main {
text-align: left;
}
2021-08-23 14:26:25 -04:00
.title {
display: flex;
justify-content: space-between;
}
2021-08-17 22:03:17 -04:00
ul {
margin-left: 2em;
}
</style>