diff --git a/src/App.vue b/src/App.vue index cdb6f21..2b2e387 100644 --- a/src/App.vue +++ b/src/App.vue @@ -77,6 +77,7 @@ import {getNewAdventurerForHire} from "@/classes/Recruitment"; import QuestExpUpgrade from "@/classes/guildUpgrades/QuestExpUpgrade"; import QuestGoldUpgrade from "@/classes/guildUpgrades/QuestGoldUpgrade"; import AutoFinishQuestsUpgrade from "@/classes/guildUpgrades/AutoFinishQuestsUpgrade"; +import RecruitmentCapacityUpgrade from "@/classes/guildUpgrades/RecruitmentCapacityUpgrade"; export default defineComponent({ name: "GuildView", @@ -145,7 +146,7 @@ export default defineComponent({ this.adventurersForHire[firstAdventurer.id] = firstAdventurer; } - const newAdventurerForHire = getNewAdventurerForHire(Object.values(this.adventurersDatabase)); + const newAdventurerForHire = getNewAdventurerForHire(Object.values(this.adventurersDatabase), Object.values(this.adventurers)); if (newAdventurerForHire === null) return; this.adventurersForHire[newAdventurerForHire.id] = newAdventurerForHire; @@ -205,6 +206,9 @@ export default defineComponent({ if (saveData.guild.adventurerCapacity) { guildUpgrades.adventurerCapacity = new AdventurerCapacityUpgrade(saveData.guild.adventurerCapacity.level); } + if (saveData.guild.recruitmentCapacity) { + guildUpgrades.recruitmentCapacity = new RecruitmentCapacityUpgrade(saveData.guild.recruitmentCapacity.level); + } if (saveData.guild.expModifier) { guildUpgrades.expModifier = new QuestExpUpgrade(saveData.guild.expModifier.level); } diff --git a/src/classes/Recruitment.ts b/src/classes/Recruitment.ts index dbe8363..9053c6e 100644 --- a/src/classes/Recruitment.ts +++ b/src/classes/Recruitment.ts @@ -4,10 +4,14 @@ import type {Adventurer} from "@/classes/Adventurer"; /** * Get a random adventurer from the pool * @param adventurerPool + * @param exceptions * @returns {Adventurer|null} null if the pool is empty */ -export function getNewAdventurerForHire(adventurerPool: Array): Adventurer|null { +export function getNewAdventurerForHire(adventurerPool: Array, exceptions: Array = []): Adventurer|null { if (adventurerPool.length <= 0) return null; + const pool = Array.from(adventurerPool); + const exceptionSet = new Set(exceptions); + pool.filter((adventurer) => !exceptionSet.has(adventurer)); const randomId = adventurerPool.length * Math.random() << 0; return adventurerPool[randomId]; -} \ No newline at end of file +}