diff --git a/src/App.vue b/src/App.vue index 9f59197..a0e2e5c 100644 --- a/src/App.vue +++ b/src/App.vue @@ -39,6 +39,7 @@ import type {GuildUpgrade} from "@/classes/GuildUpgrade"; import AdventurerCapacityUpgrade from "@/classes/guildUpgrades/AdventurerCapacityUpgrade"; import {getNewAdventurerForHire} from "@/classes/Recruitment"; import QuestExpUpgrade from "@/classes/guildUpgrades/QuestExpUpgrade"; +import QuestGoldUpgrade from "@/classes/guildUpgrades/QuestGoldUpgrade"; export default defineComponent({ name: "GuildView", @@ -154,6 +155,9 @@ export default defineComponent({ if (saveData.guild.expModifier) { guildUpgrades.expModifier = new QuestExpUpgrade(saveData.guild.expModifier.level); } + if (saveData.guild.goldModifier) { + guildUpgrades.goldModifier = new QuestGoldUpgrade(saveData.guild.goldModifier.level); + } this.guild = new Guild(saveData.guild.level, saveData.guild.gold, guildUpgrades); diff --git a/src/classes/Guild.ts b/src/classes/Guild.ts index 0649ab3..f4024db 100644 --- a/src/classes/Guild.ts +++ b/src/classes/Guild.ts @@ -2,6 +2,7 @@ import type {GuildUpgrade} from "@/classes/GuildUpgrade"; import AdventurerCapacityUpgrade from "@/classes/guildUpgrades/AdventurerCapacityUpgrade"; import {formatGold} from "@/classes/NumberMagic"; import QuestExpUpgrade from "@/classes/guildUpgrades/QuestExpUpgrade"; +import QuestGoldUpgrade from "@/classes/guildUpgrades/QuestGoldUpgrade"; const MAX_LEVEL: number = 8; @@ -12,6 +13,7 @@ export class Guild { upgradeCost: number|null = null; adventurerCapacity: AdventurerCapacityUpgrade; expModifier: QuestExpUpgrade; + goldModifier: QuestGoldUpgrade; constructor(level: number, gold: number, upgrades: {[index:string]: GuildUpgrade} = {}) { this.gold = gold; @@ -22,6 +24,7 @@ export class Guild { this.adventurerCapacity = upgrades.adventurerCapacity as AdventurerCapacityUpgrade ?? new AdventurerCapacityUpgrade(); this.expModifier = upgrades.expModifier as QuestExpUpgrade ?? new QuestExpUpgrade(); + this.goldModifier = upgrades.goldModifier as QuestGoldUpgrade ?? new QuestGoldUpgrade(); } diff --git a/src/classes/guildUpgrades/QuestGoldUpgrade.ts b/src/classes/guildUpgrades/QuestGoldUpgrade.ts new file mode 100644 index 0000000..c069150 --- /dev/null +++ b/src/classes/guildUpgrades/QuestGoldUpgrade.ts @@ -0,0 +1,24 @@ +import {GuildUpgrade} from "@/classes/GuildUpgrade"; + +export default class QuestGoldUpgrade extends GuildUpgrade { + constructor(level: number = 1) { + super(); + this.level = level; + this.nextLevelCost = this.getCostForLevel(this.level); + this.guildLevelRequirement = 8; + } + + upgrade(): void { + this.level += 1; + this.nextLevelCost = this.getCostForLevel(this.level); + } + + getCostForLevel(level: number): number { + const scalingFactor = Math.pow(1.05, level - 1); + return Math.floor(2500000 * scalingFactor * Math.pow(level, 1.01)); + } + + getModifier(): number { + return 1 + (this.level * 0.1); + } +} \ No newline at end of file diff --git a/src/components/UpgradesList.vue b/src/components/UpgradesList.vue index 3ec5f01..dc98706 100644 --- a/src/components/UpgradesList.vue +++ b/src/components/UpgradesList.vue @@ -25,6 +25,18 @@ Upgrade ({{ formatGold(guild.expModifier.nextLevelCost) }} gold) +
+ Quest gold modifier (level {{ guild.goldModifier.level }}) + Increases gold from newly offered quests by 10% per level + +
@@ -60,6 +72,13 @@ export default defineComponent({ this.guild.gold -= this.guild.expModifier.nextLevelCost; this.guild.expModifier.upgrade(); }, + upgradeQuestGoldModifier(): void { + if (!this.guild.goldModifier) return; + if (!this.guild.goldModifier.nextLevelCost) return; + if (this.guild.gold < this.guild.goldModifier.nextLevelCost) return; + this.guild.gold -= this.guild.goldModifier.nextLevelCost; + this.guild.goldModifier.upgrade(); + }, } });