start working on recruitment feature

This commit is contained in:
2023-03-20 00:21:48 +01:00
parent e85b28866a
commit 6533dff020
4 changed files with 38 additions and 10 deletions
-6
View File
@@ -53,12 +53,6 @@ export default defineComponent({
F: null as null|number, F: null as null|number,
}, },
adventurers: { adventurers: {
"rincewind-diskworld": new Adventurer("rincewind-diskworld", "Rincewind", "/img/adventurers/rincewind.png", 2, 2),
"fran-sword-isekai": new Adventurer("fran-sword-isekai", "Fran", "/img/adventurers/fran.png", 3, 1.5),
"kazuma-konosuba": new Adventurer("kazuma-konosuba", "Kazuma", "/img/adventurers/kazuma.png", 2, 2),
"rein-beast-tamer": new Adventurer("rein-beast-tamer", "Rein", "/img/adventurers/rein.png", 2, 2),
"momon-overlord": new Adventurer("momon-overlord", "Momon", "/img/adventurers/momon.png", 2, 2),
} as { [key: string]: Adventurer }, } as { [key: string]: Adventurer },
quests: { quests: {
F: { F: {
+4 -1
View File
@@ -9,7 +9,10 @@
<article <article
class="select" class="select"
v-else v-else
@click="selection = !selection" @click="() => {
if (Object.keys(allAdventurers).length <= 0) return;
selection = !selection;
}"
> >
<span>+</span> <span>+</span>
</article> </article>
+33 -2
View File
@@ -3,7 +3,9 @@
<section class="recruit"> <section class="recruit">
<h1>Applying to recruit</h1> <h1>Applying to recruit</h1>
<div class="adventurers"> <div class="adventurers">
<div v-if="currentlyForHire">
<adventurer-tile :adventurer="currentlyForHire"/>
</div>
</div> </div>
</section> </section>
<section class="collection"> <section class="collection">
@@ -29,10 +31,13 @@ export default defineComponent({
components: {AdventurerTile}, components: {AdventurerTile},
data() { data() {
return { return {
currentlyForHire: null as Adventurer|null,
adventurersForHire: [ adventurersForHire: [
new Adventurer("rincewind-diskworld", "Rincewind", "/img/adventurers/rincewind.png", 2, 2), new Adventurer("rincewind-diskworld", "Rincewind", "/img/adventurers/rincewind.png", 2, 2),
new Adventurer("fran-sword-isekai", "Fran", "/img/adventurers/fran.png", 3, 1.5), new Adventurer("fran-sword-isekai", "Fran", "/img/adventurers/fran.png", 3, 1.5),
new Adventurer("kazuma-konosuba", "Kazuma", "/img/adventurers/kazuma.png", 2, 2), new Adventurer("kazuma-konosuba", "Kazuma", "/img/adventurers/kazuma.png", 2, 2),
new Adventurer("rein-beast-tamer", "Rein", "/img/adventurers/rein.png", 2, 2),
new Adventurer("momon-overlord", "Momon", "/img/adventurers/momon.png", 2, 2),
] as Array<Adventurer>, ] as Array<Adventurer>,
} }
}, },
@@ -43,8 +48,34 @@ export default defineComponent({
return {}; return {};
}, },
}, },
},
methods: {
getRandomAdventurer(): Adventurer|null {
if (this.adventurersForHire.length <= 0) return null;
const randomId = this.adventurersForHire.length * Math.random() << 0;
return this.adventurersForHire[randomId];
},
getNewAdventurerForHire(): void {
const adventurer = this.getRandomAdventurer();
if (adventurer === null) {
this.currentlyForHire = null;
return;
}
if (this.adventurers[adventurer.id] != null) {
this.currentlyForHire = null;
return;
}
this.currentlyForHire = adventurer;
}
},
mounted() {
this.currentlyForHire = this.adventurersForHire[0]
} }
})
});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
+1 -1
View File
@@ -283,7 +283,7 @@ import type {Quest} from "@/classes/Quest";
import type {Guild} from "@/classes/Guild"; import type {Guild} from "@/classes/Guild";
export default defineComponent({ export default defineComponent({
name: "GuildView", name: "QuestView",
components: {AdventurerComponent}, components: {AdventurerComponent},
props: { props: {
guild: { guild: {