adventurer limit, base classes for guild upgrades

This commit is contained in:
2023-03-26 14:20:00 +02:00
parent b6e2a7e813
commit e6654858a1
7 changed files with 71 additions and 51 deletions
+11 -3
View File
@@ -1,15 +1,23 @@
import type {GuildUpgrade} from "@/classes/GuildUpgrade";
import {AdventurerCapacityUpgrade} from "@/classes/guildUpgrades/AdventurerCapacityUpgrade";
export class Guild {
gold: number;
level: number;
displayUpgradeCost: number|string;
upgradeCost: number|null = null;
adventurerCapacity: AdventurerCapacityUpgrade;
constructor(level: number, gold: number) {
constructor(level: number, gold: number, upgrades: {[index:string]: GuildUpgrade} = {}) {
this.gold = gold;
this.level = level;
this.displayUpgradeCost = this.getUpgradeCost() ?? "Max level";
this.upgradeCost = this.getUpgradeCost();
console.log(upgrades)
this.adventurerCapacity = upgrades.adventurerCapacity as AdventurerCapacityUpgrade ?? new AdventurerCapacityUpgrade();
}
upgrade(): void {
@@ -43,4 +51,4 @@ const upgradeCosts = {
"4": 10000,
"5": 25000,
"6": 50000,
} as {[index:string]: number}
} as {[index:string]: number}
+7
View File
@@ -0,0 +1,7 @@
export class GuildUpgrade {
level: number = 1;
nextLevelCost: number | null = null;
guildLevelRequirement: number = 1;
}
@@ -0,0 +1,26 @@
import {GuildUpgrade} from "@/classes/GuildUpgrade";
export class AdventurerCapacityUpgrade extends GuildUpgrade {
constructor(level: number = 1) {
super();
this.level = level;
this.nextLevelCost = this.getCostForLevel(this.level);
this.guildLevelRequirement = 1;
}
upgrade(): void {
this.level += 1;
this.nextLevelCost = this.getCostForLevel(this.level);
}
getCostForLevel(level: number): number {
return 1500 + ((level - 1) * 1.15 * 1500);
}
/**
* Returns the number of adventurers the guild can have
*/
getAdventurerCapacity(): number {
return 2 + this.level ;
}
}