Aka Altar — Ego !!top!!
EGOS.forEach(ego => if (!ego.unlocked) return; if (ego.baseBonus.clickGain) clickBase += ego.baseBonus.clickGain; if (ego.baseBonus.autoGen) autoPerSecond += ego.baseBonus.autoGen; if (ego.baseBonus.critChance) critPercent += ego.baseBonus.critChance; if (ego.baseBonus.discountPercent) discountPercent += ego.baseBonus.discountPercent; ); // cap crit at 60% for fun if (critPercent > 60) critPercent = 60; if (discountPercent > 50) discountPercent = 50; updateStatsUI();
/* Header */ .altar-header text-align: center; margin-bottom: 1.8rem; .altar-header h1 font-size: 2.6rem; letter-spacing: 3px; background: linear-gradient(135deg, #f5e7c8, #e0b07f, #c97e5a); background-clip: text; -webkit-background-clip: text; color: transparent; text-shadow: 0 0 5px rgba(0,0,0,0.3); .altar-header p color: #b9b3b0; font-style: italic; font-size: 0.9rem; aka altar ego
// Player state let essence = 0; let clickBase = 1; let autoPerSecond = 0; let critPercent = 0; let discountPercent = 0; // reduces cost of future ego unlocks if (!ego.unlocked) return
/* Ego Grid */ .ego-grid display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1rem; margin: 2rem 0; .ego-card background: rgba(10, 12, 20, 0.7); border-radius: 1.8rem; padding: 1rem 0.8rem; text-align: center; border: 1px solid rgba(220, 170, 90, 0.5); transition: 0.2s; cursor: pointer; position: relative; .ego-card.locked opacity: 0.65; filter: grayscale(0.3); .ego-card.unlocked border-color: #e0b050; box-shadow: 0 0 12px rgba(230, 160, 70, 0.6); background: rgba(30, 25, 45, 0.8); .ego-card:hover transform: translateY(-5px); background: rgba(25, 28, 45, 0.9); .ego-icon font-size: 2.5rem; display: block; .ego-name font-size: 1.4rem; font-weight: bold; margin: 8px 0 4px; background: linear-gradient(135deg, #e6c8a0, #cdaa77); background-clip: text; -webkit-background-clip: text; color: transparent; .ego-desc font-size: 0.7rem; color: #bcae8f; margin: 5px 0; .ego-bonus font-size: 0.75rem; background: #221c10aa; border-radius: 20px; display: inline-block; padding: 3px 10px; margin: 6px 0; color: #f5bc70; .ego-cost font-size: 0.75rem; color: #efb87e; margin-top: 6px; font-weight: bold; .lock-badge position: absolute; top: 8px; right: 12px; font-size: 1.2rem; opacity: 0.8; 60) critPercent = 60
let gameInterval = null;
// event binding function bindEvents() const flame = document.getElementById("clickFlame"); if (flame) flame.addEventListener("click", handleClick); const resetBtn = document.getElementById("resetBtn"); if (resetBtn) resetBtn.addEventListener("click", resetGame);
// Save & Load function saveGame() const saveData = essence: essence, egosUnlocked: EGOS.map(e => ( id: e.id, unlocked: e.unlocked )), version: 1 ; localStorage.setItem("akaAltarEgoSave", JSON.stringify(saveData));