finish up base recruitment system

This commit is contained in:
2025-05-31 19:53:31 +02:00
parent 2cb9221da1
commit a821094513
9 changed files with 148 additions and 39 deletions
+3 -1
View File
@@ -4,6 +4,7 @@ import {formatGold} from "@/classes/NumberMagic";
import QuestExpUpgrade from "@/classes/guildUpgrades/QuestExpUpgrade";
import QuestGoldUpgrade from "@/classes/guildUpgrades/QuestGoldUpgrade";
import AutoFinishQuestsUpgrade from "@/classes/guildUpgrades/AutoFinishQuestsUpgrade";
import RecruitmentCapacityUpgrade from "@/classes/guildUpgrades/RecruitmentCapacityUpgrade";
const MAX_LEVEL: number = 8;
@@ -16,6 +17,7 @@ export class Guild {
expModifier: QuestExpUpgrade;
goldModifier: QuestGoldUpgrade;
autoFinishQuestsUpgrade: AutoFinishQuestsUpgrade;
recruitmentCapacity: RecruitmentCapacityUpgrade;
constructor(level: number, gold: number, upgrades: {[index:string]: GuildUpgrade} = {}) {
this.gold = gold;
@@ -28,7 +30,7 @@ export class Guild {
this.expModifier = upgrades.expModifier as QuestExpUpgrade ?? new QuestExpUpgrade();
this.goldModifier = upgrades.goldModifier as QuestGoldUpgrade ?? new QuestGoldUpgrade();
this.autoFinishQuestsUpgrade = upgrades.autoFinishQuestsUpgrade as AutoFinishQuestsUpgrade ?? new AutoFinishQuestsUpgrade();
this.recruitmentCapacity = upgrades.recruitmentCapacityUpgrade as RecruitmentCapacityUpgrade ?? new RecruitmentCapacityUpgrade();
}
upgrade(): void {
@@ -0,0 +1,36 @@
import {GuildUpgrade} from "@/classes/GuildUpgrade";
import type MaxLevellable from "@/classes/MaxLevellable";
export default class AdventurerCapacityUpgrade extends GuildUpgrade implements MaxLevellable {
maxLevel: number;
constructor(level: number = 1) {
super();
this.level = level;
this.nextLevelCost = this.getCostForLevel(this.level);
this.guildLevelRequirement = 3;
this.maxLevel = 3;
}
upgrade(): void {
this.level += 1;
this.nextLevelCost = this.getCostForLevel(this.level);
}
getCostForLevel(level: number): number {
if (level === 1) return 1500;
return Math.floor(1500 * (level * 4));
}
/**
* Returns the number of adventurers the guild can have
*/
getRecruitmentCapacity(): number {
return this.level ;
}
isMaxLevel(): boolean {
return this.level >= this.maxLevel;
}
}