From 57904f80e2271f556fb3beba1cd204867197446a Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Sun, 23 Aug 2026 09:01:17 +0000 Subject: [PATCH] Session 12: Save Slot System (3 slots, autosave toggle, cross-slot import/export) + fix goldenBlooms field missing from reset()/switchSlot empty-state --- css/game.css | 92 +++++++++++++++++++++++ index.html | 29 ++++++-- js/game.js | 205 +++++++++++++++++++++++++++++++++++++++++++++++++-- js/stats.js | 24 ++++++ js/ui.js | 28 +++++++ 5 files changed, 367 insertions(+), 11 deletions(-) diff --git a/css/game.css b/css/game.css index 051f835..58d2566 100644 --- a/css/game.css +++ b/css/game.css @@ -515,6 +515,98 @@ h2, h3 { border-color: var(--danger); } +/* Save Slot System */ +.footer-section { + display: flex; + align-items: center; + gap: 6px; + padding-right: 10px; + border-right: 1px solid var(--border-color); +} + +.footer-section:last-of-type { + border-right: none; + margin-left: auto; +} + +.footer-label { + color: var(--text-secondary); + font-size: 0.8rem; + font-weight: bold; +} + +.slot-btn { + background: var(--bg-card); + color: var(--text-secondary); + border: 1px solid var(--border-color); + border-radius: 6px; + padding: 6px 12px; + cursor: pointer; + font-weight: bold; + transition: all 0.2s ease; + min-width: 34px; +} + +.slot-btn:hover:not(:disabled) { + background: var(--bg-hover); + border-color: var(--accent-purple); + color: var(--text-primary); +} + +.slot-btn.active { + background: var(--accent-purple); + color: var(--text-primary); + border-color: var(--accent-gold); + box-shadow: 0 0 12px rgba(155, 89, 182, 0.6); +} + +.slot-btn:disabled { + cursor: default; + opacity: 0.5; +} + +/* Autosave toggle button */ +.toggle-btn { + background: var(--bg-card); + color: var(--text-secondary); + border: 1px solid var(--border-color); + border-radius: 6px; + padding: 8px 14px; + cursor: pointer; + font-weight: bold; + transition: all 0.2s ease; +} + +.toggle-btn.on { + background: var(--accent-green); + color: #0a0a1a; + border-color: var(--accent-green); +} + +.toggle-btn:not(.on) { + background: var(--bg-card); + color: var(--text-muted); +} + +/* Import modal slot selector */ +.import-slot-selector { + display: flex; + align-items: center; + gap: 6px; + margin: 12px 0; +} + +.import-slot-label { + color: var(--text-secondary); + font-size: 0.85rem; +} + +.modal-hint { + color: var(--text-muted); + font-size: 0.8rem; + margin-bottom: 10px; +} + #last-saved { margin-left: auto; color: var(--text-muted); diff --git a/index.html b/index.html index 1f99667..4355eba 100644 --- a/index.html +++ b/index.html @@ -63,7 +63,7 @@
-

Achievements (0/33)

+

Achievements (0/31)

@@ -103,10 +103,22 @@ @@ -118,7 +130,14 @@