mirror of
https://github.com/YouHaveTrouble/GuildMaster.git
synced 2026-05-11 22:16: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 QuestExpUpgrade from "@/classes/guildUpgrades/QuestExpUpgrade";
|
||||||
import QuestGoldUpgrade from "@/classes/guildUpgrades/QuestGoldUpgrade";
|
import QuestGoldUpgrade from "@/classes/guildUpgrades/QuestGoldUpgrade";
|
||||||
import AutoFinishQuestsUpgrade from "@/classes/guildUpgrades/AutoFinishQuestsUpgrade";
|
import AutoFinishQuestsUpgrade from "@/classes/guildUpgrades/AutoFinishQuestsUpgrade";
|
||||||
|
import RecruitmentCapacityUpgrade from "@/classes/guildUpgrades/RecruitmentCapacityUpgrade";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: "GuildView",
|
name: "GuildView",
|
||||||
@@ -145,7 +146,7 @@ export default defineComponent({
|
|||||||
this.adventurersForHire[firstAdventurer.id] = firstAdventurer;
|
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;
|
if (newAdventurerForHire === null) return;
|
||||||
this.adventurersForHire[newAdventurerForHire.id] = newAdventurerForHire;
|
this.adventurersForHire[newAdventurerForHire.id] = newAdventurerForHire;
|
||||||
|
|
||||||
@@ -205,6 +206,9 @@ export default defineComponent({
|
|||||||
if (saveData.guild.adventurerCapacity) {
|
if (saveData.guild.adventurerCapacity) {
|
||||||
guildUpgrades.adventurerCapacity = new AdventurerCapacityUpgrade(saveData.guild.adventurerCapacity.level);
|
guildUpgrades.adventurerCapacity = new AdventurerCapacityUpgrade(saveData.guild.adventurerCapacity.level);
|
||||||
}
|
}
|
||||||
|
if (saveData.guild.recruitmentCapacity) {
|
||||||
|
guildUpgrades.recruitmentCapacity = new RecruitmentCapacityUpgrade(saveData.guild.recruitmentCapacity.level);
|
||||||
|
}
|
||||||
if (saveData.guild.expModifier) {
|
if (saveData.guild.expModifier) {
|
||||||
guildUpgrades.expModifier = new QuestExpUpgrade(saveData.guild.expModifier.level);
|
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
|
* Get a random adventurer from the pool
|
||||||
* @param adventurerPool
|
* @param adventurerPool
|
||||||
|
* @param exceptions
|
||||||
* @returns {Adventurer|null} null if the pool is empty
|
* @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;
|
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;
|
const randomId = adventurerPool.length * Math.random() << 0;
|
||||||
return adventurerPool[randomId];
|
return adventurerPool[randomId];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user