diff --git a/src/ui.ts b/src/ui.ts index e06f3d5..b7c7efb 100644 --- a/src/ui.ts +++ b/src/ui.ts @@ -168,11 +168,17 @@ function renderUpgrades(state: State): void { }).join(''); } +let lastLogLength = 0; + function renderLog(state: State): void { const log = document.getElementById('log')!; + if (state.log.length === lastLogLength) return; + lastLogLength = state.log.length; + // state.log is newest-first (unshift); render as-is, scroll to top log.innerHTML = state.log.map(e => `
${e.text}
` ).join(''); + log.scrollTop = 0; } function showOverlay(state: State): void { diff --git a/src/upgrades.ts b/src/upgrades.ts index 301d966..b180beb 100644 --- a/src/upgrades.ts +++ b/src/upgrades.ts @@ -13,11 +13,11 @@ export interface Upgrade { export const UPGRADES: Upgrade[] = [ { id: 'recruit_neighbor', - name: 'Rekrytera en granne', + name: 'Rekrytera en troende', desc: '+1 Troende. De undrade varför källarlamporna flimrade. Nu vet de.', cost: { andakt: 20 }, - effect: s => { s.troende += 1; }, - available: s => !s.upgrades.has('first_meeting'), + effect: s => { s.troende += 1; s.andakt = Math.max(0, s.andakt - 20 * Math.max(1, s.troende - 2)); }, + available: s => s.troende < 12, once: false, }, { @@ -56,15 +56,6 @@ export const UPGRADES: Upgrade[] = [ available: s => s.upgrades.has('idol_under_bridge') && s.dread >= 50 && !s.upgrades.has('varnhem_circle'), once: true, }, - { - id: 'recruit_2', - name: 'Rekrytera ytterligare troende', - desc: '+2 Troende. Ryktet sprids längs de rätta kanalerna.', - cost: { andakt: 150 }, - effect: s => { s.troende += 2; s.andaktRate += 0.5; }, - available: s => s.upgrades.has('first_meeting') && s.troende < 8, - once: false, - }, { id: 'torso_beacon', name: 'Altaret vid Turning Torso',