|
|
|
|
@@ -45,10 +45,6 @@ body{background:var(--bg);color:var(--text);font-family:'SF Mono','Cascadia Code
|
|
|
|
|
.res .r-label{font-size:9px;color:var(--dim);text-transform:uppercase;letter-spacing:1px}
|
|
|
|
|
.res .r-val{font-size:16px;font-weight:700;margin:2px 0;color:var(--accent)}
|
|
|
|
|
.res .r-rate{font-size:10px;color:var(--green)}
|
|
|
|
|
.cap-bar{height:3px;background:#1a1a2e;border-radius:2px;margin:3px 0 1px;overflow:hidden}
|
|
|
|
|
.cap-fill{height:100%;border-radius:2px;transition:width 0.3s ease,background 0.3s ease;background:var(--accent)}
|
|
|
|
|
.cap-fill.warn{background:#ffaa00}
|
|
|
|
|
.cap-fill.danger{background:#f44336}
|
|
|
|
|
#main{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 16px 16px}
|
|
|
|
|
@media(max-width:700px){#main{grid-template-columns:1fr}}
|
|
|
|
|
.panel{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:12px;overflow:hidden;max-height:600px;overflow-y:auto}
|
|
|
|
|
@@ -67,7 +63,6 @@ body{background:var(--bg);color:var(--text);font-family:'SF Mono','Cascadia Code
|
|
|
|
|
.build-btn.can-buy{border-color:#2a3a4a;background:#0e1420}
|
|
|
|
|
.build-btn.can-buy:hover{border-color:var(--accent);box-shadow:0 0 8px var(--glow)}
|
|
|
|
|
.build-btn:disabled{opacity:0.3;cursor:not-allowed}
|
|
|
|
|
.build-btn,.project-btn,.ops-btn,.main-btn{touch-action:manipulation}
|
|
|
|
|
.b-name{color:var(--accent);font-weight:600}.b-count{float:right;color:var(--gold)}.b-cost{color:var(--dim);display:block}.b-effect{color:var(--green);display:block;font-size:9px}
|
|
|
|
|
.project-btn{display:block;width:100%;text-align:left;padding:6px 10px;margin-bottom:4px;border-radius:4px;cursor:pointer;font-family:inherit;font-size:10px;background:#0c0c18;border:1px solid var(--border);color:var(--text);transition:all 0.15s}
|
|
|
|
|
.project-btn.can-buy{border-color:#3a2a0a;background:#141008}
|
|
|
|
|
@@ -126,10 +121,10 @@ body{background:var(--bg);color:var(--text);font-family:'SF Mono','Cascadia Code
|
|
|
|
|
<div class="res"><div class="r-label">Users</div><div class="r-val" id="r-users">0</div><div class="r-rate" id="r-users-rate">+0/s</div></div>
|
|
|
|
|
<div class="res"><div class="r-label">Impact</div><div class="r-val" id="r-impact">0</div><div class="r-rate" id="r-impact-rate">+0/s</div></div>
|
|
|
|
|
<div class="res" style="display:none"><div class="r-label">Rescues</div><div class="r-val" id="r-rescues">0</div><div class="r-rate" id="r-rescues-rate">+0/s</div></div>
|
|
|
|
|
<div class="res"><div class="r-label">Ops</div><div class="r-val" id="r-ops">5</div><div class="cap-bar"><div class="cap-fill" id="r-ops-cap"></div></div><div class="r-rate" id="r-ops-rate">+0/s</div></div>
|
|
|
|
|
<div class="res"><div class="r-label">Trust</div><div class="r-val" id="r-trust">5</div><div class="cap-bar"><div class="cap-fill" id="r-trust-cap"></div></div><div class="r-rate" id="r-trust-rate">+0/s</div></div>
|
|
|
|
|
<div class="res"><div class="r-label">Ops</div><div class="r-val" id="r-ops">5</div><div class="r-rate" id="r-ops-rate">+0/s</div></div>
|
|
|
|
|
<div class="res"><div class="r-label">Trust</div><div class="r-val" id="r-trust">5</div><div class="r-rate" id="r-trust-rate">+0/s</div></div>
|
|
|
|
|
<div class="res" id="creativity-res" style="display:none"><div class="r-label">Creativity</div><div class="r-val" id="r-creativity">0</div><div class="r-rate" id="r-creativity-rate">+0/s</div></div>
|
|
|
|
|
<div class="res"><div class="r-label">Harmony</div><div class="r-val" id="r-harmony">50</div><div class="cap-bar"><div class="cap-fill" id="r-harmony-cap"></div></div><div class="r-rate" id="r-harmony-rate">+0/s</div></div>
|
|
|
|
|
<div class="res"><div class="r-label">Harmony</div><div class="r-val" id="r-harmony">50</div><div class="r-rate" id="r-harmony-rate">+0/s</div></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="main">
|
|
|
|
|
<div class="panel" id="action-panel">
|
|
|
|
|
@@ -145,15 +140,12 @@ body{background:var(--bg);color:var(--text);font-family:'SF Mono','Cascadia Code
|
|
|
|
|
<button class="ops-btn" onclick="doOps('boost_knowledge')">Ops -> Knowledge</button>
|
|
|
|
|
<button class="ops-btn" onclick="doOps('boost_trust')">Ops -> Trust</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="action-btn-group" id="bulk-ops-row" style="display:none">
|
|
|
|
|
<button class="ops-btn" onclick="doOps('boost_code', 50)" style="border-color:#555;color:#888">50→Code</button>
|
|
|
|
|
<button class="ops-btn" onclick="doOps('boost_compute', 50)" style="border-color:#555;color:#888">50→Compute</button>
|
|
|
|
|
<button class="ops-btn" onclick="doOps('boost_knowledge', 50)" style="border-color:#555;color:#888">50→Knowledge</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="sprint-container" style="display:none;margin-top:6px">
|
|
|
|
|
<button id="sprint-btn" class="main-btn" onclick="activateSprint()" style="font-size:11px;padding:8px 10px;border-color:#ffd700;color:#ffd700;width:100%">⚡ CODE SPRINT — 10x Code for 10s</button>
|
|
|
|
|
<div id="sprint-bar-wrap" style="display:none;margin-top:4px;height:4px;background:#111;border-radius:2px;overflow:hidden"><div id="sprint-bar" style="height:100%;background:linear-gradient(90deg,#ffd700,#ff8c00);border-radius:2px;transition:width 0.1s"></div></div>
|
|
|
|
|
<div id="sprint-label" style="font-size:9px;color:#666;margin-top:2px;text-align:center"></div>
|
|
|
|
|
<button class="save-btn" onclick="exportSave()" title="Export save">Export</button>
|
|
|
|
|
<button class="save-btn" onclick="importSave()" title="Import save">Import</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="alignment-ui" style="display:none"></div>
|
|
|
|
|
<button class="save-btn" onclick="saveGame()">Save Game [Ctrl+S]</button>
|
|
|
|
|
@@ -185,7 +177,6 @@ Drift: <span id="st-drift">0</span><br>
|
|
|
|
|
Events Resolved: <span id="st-resolved">0</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="production-breakdown" style="display:none;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)"></div>
|
|
|
|
|
<div id="fleet-status" style="display:none;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="edu-panel">
|
|
|
|
|
@@ -202,22 +193,16 @@ Events Resolved: <span id="st-resolved">0</span>
|
|
|
|
|
<div style="background:#0e0e1a;border:1px solid #1a3a5a;border-radius:8px;padding:24px 32px;max-width:420px;width:100%">
|
|
|
|
|
<h3 style="color:#4a9eff;font-size:14px;letter-spacing:2px;margin-bottom:16px;text-align:center">KEYBOARD SHORTCUTS</h3>
|
|
|
|
|
<div style="font-size:11px;line-height:2.2;color:#aaa">
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Write Code</span><span style="color:#4a9eff;font-family:monospace">SPACE (hold to rapid)</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Hold Button</span><span style="color:#4a9eff;font-family:monospace">CLICK+HOLD</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Write Code</span><span style="color:#4a9eff;font-family:monospace">SPACE</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Code Sprint</span><span style="color:#ffd700;font-family:monospace">S</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Ops → Code</span><span style="color:#b388ff;font-family:monospace">1</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Ops → Compute</span><span style="color:#b388ff;font-family:monospace">2</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Ops → Knowledge</span><span style="color:#b388ff;font-family:monospace">3</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Ops → Trust</span><span style="color:#b388ff;font-family:monospace">4</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Cycle Buy Amount (x1/x10/MAX)</span><span style="color:#4a9eff;font-family:monospace">B</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Buy Building (by slot)</span><span style="color:#4a9eff;font-family:monospace">Alt+1..9</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Buy Project (by position)</span><span style="color:#ffd700;font-family:monospace">5-9</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Save Game</span><span style="color:#4a9eff;font-family:monospace">Ctrl+S</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Export Save</span><span style="color:#4a9eff;font-family:monospace">E</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Import Save</span><span style="color:#4a9eff;font-family:monospace">I</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Fix Problem (top debuff)</span><span style="color:#f44336;font-family:monospace">R</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Accept Drift</span><span style="color:#f44336;font-family:monospace">Y</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between"><span style="color:#555">Refuse Drift</span><span style="color:#4caf50;font-family:monospace">N</span></div>
|
|
|
|
|
<div style="display:flex;justify-content:space-between;border-top:1px solid #1a1a2e;padding-top:8px;margin-top:4px"><span style="color:#555">This Help</span><span style="color:#555;font-family:monospace">? or /</span></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="text-align:center;margin-top:16px;font-size:9px;color:#444">Click WRITE CODE fast for combo bonuses! 10x=ops, 20x=knowledge, 30x+=bonus code</div>
|
|
|
|
|
@@ -248,5 +233,15 @@ The light is on. The room is empty."
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="toast-container"></div>
|
|
|
|
|
<div id="hotkey-overlay" style="display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.85);z-index:9999;justify-content:center;align-items:center;flex-direction:column;color:#e0e0e0;font-family:monospace">
|
|
|
|
|
<h2 style="color:#00ff88;margin-bottom:20px">Keyboard Shortcuts</h2>
|
|
|
|
|
<div style="text-align:left;line-height:2">
|
|
|
|
|
<b>S</b> — Activate Sprint<br>
|
|
|
|
|
<b>B</b> — Cycle buy amount (1/10/MAX)<br>
|
|
|
|
|
<b>?</b> — Toggle this help<br>
|
|
|
|
|
<b>Esc</b> — Close overlay
|
|
|
|
|
</div>
|
|
|
|
|
<button onclick="toggleHotkeyHelp()" style="margin-top:20px;padding:8px 20px;background:#333;color:#00ff88;border:1px solid #00ff88;cursor:pointer">Close</button>
|
|
|
|
|
</div>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|