This commit is contained in:
gpatruno
2026-07-18 17:25:56 +02:00
parent 2614d679c8
commit 2168998679
26 changed files with 2760 additions and 894 deletions
+5 -4
View File
@@ -7,9 +7,10 @@ export const OPENS_PER_KEY_EARLY = 100;
/** From key 11 onward: cost = OPENS_PER_KEY_EARLY × (keys - 9). */
export const ESCALATION_KEY_THRESHOLD = 11;
export function maxOpensForKeys(keys) {
export function maxOpensForKeys(keys, openBonus = 0) {
const k = Math.max(1, keys);
return k + (BASE_MAX_OPENS - 1);
const bonus = Math.max(0, Math.floor(Number(openBonus) || 0));
return k + (BASE_MAX_OPENS - 1) + bonus;
}
export function opensRequiredForNextKey(keys, keyOpenReduction = 0) {
@@ -22,14 +23,14 @@ export function opensRequiredForNextKey(keys, keyOpenReduction = 0) {
return Math.max(1, base - reduction);
}
export function serializeKeyProgress(progress, keyOpenReduction = 0) {
export function serializeKeyProgress(progress, keyOpenReduction = 0, openBonus = 0) {
const keys = progress?.keys ?? 1;
const opensSinceLastKey = progress?.opensSinceLastKey ?? 0;
const totalOpens = progress?.totalOpens ?? 0;
const opensRequired = opensRequiredForNextKey(keys, keyOpenReduction);
return {
keys,
maxOpens: maxOpensForKeys(keys),
maxOpens: maxOpensForKeys(keys, openBonus),
opensSinceLastKey,
opensRequired,
totalOpens,