feat: Add Mana Circulation discipline with regen multiplier and meditation cap perks
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m23s

This commit is contained in:
2026-05-26 20:58:55 +02:00
parent 46013a15c8
commit 02600754e7
11 changed files with 88 additions and 17 deletions
+17 -6
View File
@@ -124,29 +124,40 @@ export function computeClickMana(
// ─── Meditation Bonus ─────────────────────────────────────────────────────────
export function getMeditationBonus(meditateTicks: number, skills: Record<string, number>, meditationEfficiency: number = 1): number {
export function getMeditationBonus(
meditateTicks: number,
skills: Record<string, number>,
meditationEfficiency: number = 1,
disciplineMeditationCap: number = 0,
): number {
const hasMeditation = skills.meditation === 1;
const hasDeepTrance = skills.deepTrance === 1;
const hasVoidMeditation = skills.voidMeditation === 1;
const hours = meditateTicks * HOURS_PER_TICK;
// Base meditation: ramps up over 4 hours to 1.5x
// Determine the hard cap for this meditation session.
// disciplineMeditationCap adds +0.5 per point (e.g. from Mana Circulation discipline).
// Base max is 5.0 (Void Meditation), each discipline bonus adds +0.5.
const maxMultiplier = 5.0 + disciplineMeditationCap;
// Base meditation: ramps up over 4 hours, capped at 1.5x or discipline cap
let bonus = 1 + Math.min(hours / 4, 0.5);
bonus = Math.min(bonus, maxMultiplier);
// With Meditation Focus: up to 2.5x after 4 hours
if (hasMeditation && hours >= 4) {
bonus = 2.5;
bonus = Math.min(2.5, maxMultiplier);
}
// With Deep Trance: up to 3.0x after 6 hours
if (hasDeepTrance && hours >= 6) {
bonus = 3.0;
bonus = Math.min(3.0, maxMultiplier);
}
// With Void Meditation: up to 5.0x after 8 hours
// With Void Meditation: up to maxMultiplier after 8 hours
if (hasVoidMeditation && hours >= 8) {
bonus = 5.0;
bonus = maxMultiplier;
}
// Apply meditation efficiency from upgrades