mirror of
https://github.com/YouHaveTrouble/GuildMaster.git
synced 2026-05-12 06:26:59 +00:00
make sure adventurers for hire don't duplicate on arrival
This commit is contained in:
+5
-1
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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>): Adventurer|null {
|
||||
export function getNewAdventurerForHire(adventurerPool: Array<Adventurer>, exceptions: Array<Adventurer> = []): 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];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user