From 954961b26e732491c24a47d15914865bdeb4eea3 Mon Sep 17 00:00:00 2001 From: Christoph Pfoertner Date: Sat, 3 Oct 2026 22:45:07 +0200 Subject: [PATCH] feat(rpg): add day/night ambient lighting, multi-coder NPCs, thought bubbles, XP/level system, CI incident alarm, and interactive Kanban modal --- index.html | 899 ++++++++++++++++++++++++++++++++++++++++++++--------- server.py | 66 +++- 2 files changed, 821 insertions(+), 144 deletions(-) diff --git a/index.html b/index.html index f438230..35bb0f4 100644 --- a/index.html +++ b/index.html @@ -38,6 +38,28 @@ overflow-x: hidden; } + /* Red Alert Banner */ + #redAlertBanner { + display: none; + width: 100%; + max-width: 1180px; + background: #dc2626; + color: #fff; + font-family: 'Press Start 2P', monospace; + font-size: 11px; + padding: 8px 14px; + margin-bottom: 8px; + border-radius: 4px; + border: 2px solid #fecaca; + text-align: center; + animation: alertFlash 1s infinite alternate; + box-shadow: 0 0 20px rgba(220, 38, 38, 0.7); + } + @keyframes alertFlash { + 0% { opacity: 1; transform: scale(1); } + 100% { opacity: 0.85; transform: scale(1.005); } + } + header { width: 100%; max-width: 1180px; @@ -53,6 +75,7 @@ display: flex; align-items: center; gap: 12px; + flex-wrap: wrap; } h1 { @@ -83,10 +106,10 @@ .header-right { display: flex; align-items: center; - gap: 14px; + gap: 10px; } - .sound-btn { + .header-btn { background: #1e2438; border: 1px solid #3e4768; color: #facc15; @@ -95,8 +118,11 @@ font-size: 18px; cursor: pointer; border-radius: 4px; + display: flex; + align-items: center; + gap: 5px; } - .sound-btn:hover { + .header-btn:hover { background: #2b3350; border-color: #facc15; } @@ -105,10 +131,10 @@ .project-select-box { display: flex; align-items: center; - gap: 8px; + gap: 6px; background: #141724; border: 2px solid #38bdf8; - padding: 4px 10px; + padding: 3px 8px; border-radius: 4px; } .project-select-label { @@ -121,7 +147,7 @@ color: #f1f5f9; border: 1px solid #334155; font-family: 'VT323', monospace; - font-size: 19px; + font-size: 18px; padding: 2px 6px; cursor: pointer; border-radius: 3px; @@ -141,9 +167,11 @@ margin-bottom: 10px; max-width: 1180px; width: 100%; + flex-wrap: wrap; } .infra-card { flex: 1; + min-width: 240px; background: var(--card-bg); border: 2px solid var(--card-border); border-radius: 6px; @@ -154,7 +182,7 @@ } .infra-title { font-family: 'Press Start 2P', monospace; - font-size: 10px; + font-size: 9px; display: flex; align-items: center; gap: 6px; @@ -165,6 +193,7 @@ } .badge-ok { background: #064e3b; color: #6ee7b7; padding: 2px 6px; border-radius: 3px; font-size: 10px; font-family:'Press Start 2P'; } .badge-busy { background: #854d0e; color: #fef08a; padding: 2px 6px; border-radius: 3px; font-size: 10px; font-family:'Press Start 2P'; } + .badge-err { background: #7f1d1d; color: #fca5a5; padding: 2px 6px; border-radius: 3px; font-size: 10px; font-family:'Press Start 2P'; animation: pulse 1s infinite; } .main-container { display: flex; @@ -192,23 +221,23 @@ cursor: crosshair; background: #0e111a; width: 100%; - height: 520px; + height: 440px; } .status-bar { background: #090a10; border-top: 2px solid #1e2438; padding: 6px 12px; - font-size: 17px; + font-size: 16px; color: #94a3b8; display: flex; justify-content: space-between; align-items: center; } - /* Bottom RPG Dialogue / Terminal Box */ + /* Bottom RPG Dialogue & Task Dispatcher */ .rpg-terminal-box { - margin-top: 8px; + margin-top: 4px; background: #06070c; border: 2px solid #334155; border-radius: 4px; @@ -216,7 +245,7 @@ font-family: 'VT323', monospace; font-size: 18px; color: #a5f3fc; - max-height: 85px; + max-height: 80px; overflow-y: auto; display: flex; flex-direction: column; @@ -224,6 +253,37 @@ } .rpg-term-prefix { color: #f59e0b; margin-right: 6px; } + .dispatcher-bar { + display: flex; + gap: 6px; + background: #0a0e1a; + border-top: 1px solid #1f293d; + padding: 6px 10px; + } + .dispatcher-input { + flex: 1; + background: #06070c; + border: 1px solid #3b82f6; + color: #67e8f9; + font-family: 'VT323', monospace; + font-size: 19px; + padding: 4px 10px; + border-radius: 3px; + outline: none; + } + .dispatcher-input::placeholder { color: #475569; } + .dispatcher-btn { + background: #1e3a8a; + border: 1px solid #3b82f6; + color: #fff; + font-family: 'Press Start 2P', monospace; + font-size: 9px; + padding: 0 12px; + cursor: pointer; + border-radius: 3px; + } + .dispatcher-btn:hover { background: #2563eb; } + /* Sidebar / Inspector */ .sidebar { width: 350px; @@ -265,8 +325,8 @@ } .avatar-preview { - width: 42px; - height: 42px; + width: 44px; + height: 44px; border: 2px solid #fff; border-radius: 4px; background: #1f2438; @@ -277,11 +337,39 @@ image-rendering: pixelated; } + .rpg-rank-badge { + display: inline-block; + background: #312e81; + color: #c7d2fe; + border: 1px solid #6366f1; + border-radius: 3px; + font-family: 'Press Start 2P', monospace; + font-size: 8px; + padding: 2px 5px; + margin-top: 3px; + } + + .xp-bar-container { + background: #090a10; + border: 1px solid #334155; + border-radius: 3px; + height: 8px; + width: 100%; + margin-top: 4px; + overflow: hidden; + } + .xp-bar-fill { + background: linear-gradient(90deg, #3b82f6, #10b981); + height: 100%; + width: 45%; + transition: width 0.3s; + } + .status-pill { display: inline-block; padding: 2px 6px; border-radius: 3px; - font-size: 11px; + font-size: 10px; font-weight: bold; font-family: 'Press Start 2P', monospace; margin-top: 2px; @@ -328,7 +416,7 @@ border-radius: 4px; padding: 5px; font-family: 'VT323', monospace; - font-size: 18px; + font-size: 17px; cursor: pointer; transition: all 0.1s; } @@ -343,7 +431,7 @@ /* Mini Activity Log */ .log-box { - height: 95px; + height: 85px; overflow-y: auto; background: #090b12; padding: 6px; @@ -358,10 +446,97 @@ padding-bottom: 2px; } .log-time { color: #64748b; margin-right: 4px; } + + /* Interactive Retro Modal (Kanban / Server Rack / Coffee) */ + .modal-overlay { + display: none; + position: fixed; + top: 0; left: 0; width: 100vw; height: 100vh; + background: rgba(0, 0, 0, 0.75); + z-index: 999; + justify-content: center; + align-items: center; + } + .modal-card { + background: #0d111d; + border: 3px solid #38bdf8; + border-radius: 8px; + width: 90%; + max-width: 780px; + max-height: 85vh; + display: flex; + flex-direction: column; + box-shadow: 0 0 30px rgba(56, 189, 248, 0.4); + padding: 16px; + } + .modal-header { + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 2px solid #1e293b; + padding-bottom: 10px; + margin-bottom: 12px; + } + .modal-title { + font-family: 'Press Start 2P', monospace; + font-size: 12px; + color: #38bdf8; + } + .modal-close { + background: #dc2626; + color: #fff; + border: 1px solid #f87171; + font-family: 'Press Start 2P'; + font-size: 10px; + padding: 4px 8px; + cursor: pointer; + } + .modal-content { + overflow-y: auto; + flex: 1; + font-family: 'VT323', monospace; + font-size: 18px; + } + + /* Kanban Board Columns in Modal */ + .kanban-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); + gap: 10px; + } + .kanban-col { + background: #141927; + border: 1px solid #28314e; + border-radius: 4px; + padding: 8px; + min-height: 200px; + } + .kanban-col-title { + font-family: 'Press Start 2P', monospace; + font-size: 9px; + margin-bottom: 8px; + padding-bottom: 4px; + border-bottom: 1px solid #334155; + } + .kanban-card { + background: #1e2438; + border: 1px solid #3e486b; + border-radius: 3px; + padding: 6px; + margin-bottom: 6px; + font-size: 15px; + line-height: 1.2; + } + .kanban-card:hover { border-color: #38bdf8; } + +
+ 🚨 CI/CD INCIDENT DETECTED! Gitea Actions Build fehlgeschlagen. Coder untersucht Fehlerlogs! 🚨 +
+

🏢 OPENCLAW RETRO HQ LIVE

@@ -374,14 +549,24 @@
+ +
+ LICHT: + +
- +
00:00:00
- +
⚡ BULLMQ QUEUE
@@ -400,29 +585,41 @@
-
🐙 GITEA KANBAN & PRS
+
🐙 GITEA KANBAN & CI
0 PRs | - 0 rev | 0 wip | CONNECTED
+
+
🚀 SPEEDOMETER
+
+ 0 tok/s | + 100% OK +
+
- +
[QUEST-LOG] Initialisiere OpenClaw Live-HQ...
+ +
+ + +
+
- 🖱️ Klicke auf Agenten für Detailinspektion - Active: 0 | Idle: 4 + 🖱️ Klicke auf Agenten, Whiteboard, Kaffeemaschine oder Server-Racks! + Aktiv: 0 | Idle: 4
@@ -439,15 +636,15 @@
-
LIVE SYNC & STEUERUNG
+
LIVE SYNC & SIMULATION
- - - - + + + + - +
@@ -455,12 +652,23 @@
LIVE EVENT TICKER
-
[HQ] Pixel Agent Grid geladen.
+
[HQ] Pixel Agent RPG Engine v2.0 bereit.
+ + +