({
title: t("level_up.title", {
level: gameState.currentLevel,
max: max_levels(gameState),
}),
content: [
{
text: t("level_up.go", { name: gameState.level.name }),
icon: icons[gameState.level.name],
value: null,
},
gameState.extra_lives
? `${t("level_up.instructions", {
count: gameState.extra_lives,
gain: livesWon,
})}
`
: `${t("level_up.no_points")}
`,
...list.map((u) => {
const max = u.max + gameState.perks.limitless;
const lvl = gameState.perks[u.id];
const button =
!gameState.extra_lives || gameState.perks[u.id] >= max
? ""
: ` `;
const lvlInfo = lvl ? upgradeLevelAndMaxDisplay(u, gameState) : "";
return ``;
}),
...missedOpportunities.map(
(reason) =>
`
${icons["icon:locked"]}
${reason}
`,
),
levelsListHTMl(gameState, gameState.currentLevel),
getNearestUnlockHTML(gameState),
``,
],
});
if (upgradeId) {
gameState.perks[upgradeId]++;
gameState.runStatistics.upgrades_picked++;
gameState.extra_lives--;
} else {
return;
}
}
}
export function dontOfferTooSoon(gameState: GameState, id: PerkId) {
gameState.lastOffered[id] = Math.round(Date.now() / 1000);
}