mirror of
https://github.com/YouHaveTrouble/GuildMaster.git
synced 2026-05-12 14:36:58 +00:00
make sure adventurers for hire don't duplicate on arrival
This commit is contained in:
@@ -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