diff --git a/src/App.vue b/src/App.vue index 2b2e387..85aff15 100644 --- a/src/App.vue +++ b/src/App.vue @@ -54,6 +54,12 @@ import {version} from "@/../package.json"; @finalizeQuest="finalizeQuest($event)" @hireAdventurer="recruitAdventurer($event)" @dismissAdventurer="dismissRecruit($event)" + @findNewRecruit="() => { + const newAdventurerForHire = getNewAdventurerForHire(Object.values(adventurersDatabase), Object.values(adventurers)); + if (newAdventurerForHire === null) return; + adventurersForHire[newAdventurerForHire.id] = newAdventurerForHire; + setNextRecruitArrival(new Date().getTime()) + }" /> diff --git a/src/components/AdventurerRecruitment.vue b/src/components/AdventurerRecruitment.vue index 0ae416a..543a35b 100644 --- a/src/components/AdventurerRecruitment.vue +++ b/src/components/AdventurerRecruitment.vue @@ -30,6 +30,13 @@ No one applied as of now. Check back later! +
+ +
@@ -39,6 +46,7 @@ import {defineComponent, type PropType} from "vue"; import AdventurerTile from "@/components/AdventurerTile.vue"; import type {Guild} from "@/classes/Guild"; import type {Adventurer} from "@/classes/Adventurer"; +import {formatGold} from "@/classes/NumberMagic"; export default defineComponent({ name: "RecruitView", @@ -50,8 +58,16 @@ export default defineComponent({ canRecruitMore() { return Object.keys(this.adventurersForHire).length < this.guild.adventurerCapacity.getAdventurerCapacity(); }, + newRecruitCost(): number { + const guildLevel = this.guild.level; + return Math.max(500, 500 * Math.pow(2, guildLevel - 1)); + }, + recruitSlotsFilled(): boolean { + return Object.keys(this.adventurersForHire).length >= this.guild.recruitmentCapacity.getRecruitmentCapacity(); + } }, methods: { + formatGold, hireAdventurer(adventurer: Adventurer): void { if (!this.canRecruitMore) return; this.$emit("hireAdventurer", adventurer); @@ -63,6 +79,10 @@ export default defineComponent({ previewAdventurer(adventurer: Adventurer): void { this.$emit("previewAdventurer", adventurer); }, + findNewRecruit(): void { + if (!this.canRecruitMore) return; + this.$emit("findNewRecruit"); + }, }, props: { guild: { @@ -74,11 +94,16 @@ export default defineComponent({ required: true, }, }, - emits: ["dismissAdventurer", "hireAdventurer", "previewAdventurer"], + emits: ["dismissAdventurer", "hireAdventurer", "previewAdventurer", "findNewRecruit"], })