From ec0763819eb457546702dcf1290442e9b8ec4507 Mon Sep 17 00:00:00 2001 From: Hikari Date: Tue, 31 Mar 2026 12:47:48 -0700 Subject: [PATCH] balance: increase runestone yield 50% per prestige (#166) Raise runestonesPerPrestigeLevel from 10 to 15. Early-game players were earning only 10-20 runestones per prestige, making the upgrade shop feel out of reach. This boost helps mid-game without affecting the cap behaviour (cbrt formula still prevents AFK windfalls). --- apps/api/src/services/prestige.ts | 2 +- apps/api/test/services/prestige.spec.ts | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/api/src/services/prestige.ts b/apps/api/src/services/prestige.ts index f20c8c1..4eb62ab 100644 --- a/apps/api/src/services/prestige.ts +++ b/apps/api/src/services/prestige.ts @@ -15,7 +15,7 @@ import type { } from "@elysium/types"; const basePrestigeGoldThreshold = 1_000_000; -const runestonesPerPrestigeLevel = 10; +const runestonesPerPrestigeLevel = 15; const milestoneInterval = 5; const milestoneRunestonesPerInterval = 25; diff --git a/apps/api/test/services/prestige.spec.ts b/apps/api/test/services/prestige.spec.ts index 1638781..977cc65 100644 --- a/apps/api/test/services/prestige.spec.ts +++ b/apps/api/test/services/prestige.spec.ts @@ -102,21 +102,21 @@ describe("isEligibleForPrestige", () => { describe("calculateRunestones", () => { it("calculates basic runestones formula", () => { - // floor(cbrt(4_000_000 / 1_000_000)) × 10 = floor(cbrt(4)) × 10 = 1 × 10 = 10 + // floor(cbrt(4_000_000 / 1_000_000)) × 15 = floor(cbrt(4)) × 15 = 1 × 15 = 15 const result = calculateRunestones({ totalGoldEarned: 4_000_000, prestigeCount: 0, purchasedUpgradeIds: [] }); - expect(result).toBe(10); + expect(result).toBe(15); }); it("applies echo runestone multiplier", () => { - // floor(cbrt(4)) × 10 = 10; × 2 = 20 + // floor(cbrt(4)) × 15 = 15; × 2 = 30 const result = calculateRunestones({ totalGoldEarned: 4_000_000, prestigeCount: 0, purchasedUpgradeIds: [], echoRunestoneMultiplier: 2 }); - expect(result).toBe(20); + expect(result).toBe(30); }); it("applies purchased runestone upgrade multiplier", () => { - // With "runestone_gain_1" purchased (multiplier 1.25): floor(10 × 1.25) = 12 + // With "runestone_gain_1" purchased (multiplier 1.25): floor(15 × 1.25) = 18 const result = calculateRunestones({ totalGoldEarned: 4_000_000, prestigeCount: 0, purchasedUpgradeIds: ["runestone_gain_1"] }); - expect(result).toBe(12); + expect(result).toBe(18); }); it("caps base runestones before multipliers", () => {