reaper-arcade-hub 2.4.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/styles.css +262 -0
- package/index.html +89 -7
- package/js/app.js +286 -18
- package/js/visuals.js +7 -7
- package/main/css/styles.css +262 -0
- package/main/index.html +89 -7
- package/main/js/app.js +286 -18
- package/main/js/visuals.js +7 -7
- package/package.json +1 -1
- package/verify/css/styles.css +262 -0
- package/verify/index.html +16 -10
- package/verify/js/visuals.js +7 -7
package/css/styles.css
CHANGED
|
@@ -1359,3 +1359,265 @@ body.turbo-mode-active #bg-canvas {
|
|
|
1359
1359
|
transform: translateY(1px);
|
|
1360
1360
|
}
|
|
1361
1361
|
|
|
1362
|
+
/* ==========================================
|
|
1363
|
+
REAPER AI ASSISTANT SUITE (OPENCODE ZEN)
|
|
1364
|
+
========================================== */
|
|
1365
|
+
.ai-tab-container {
|
|
1366
|
+
max-width: 1040px;
|
|
1367
|
+
margin: 0 auto;
|
|
1368
|
+
padding: 0.5rem 0 2rem;
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
.ai-window {
|
|
1372
|
+
background: rgba(3, 10, 24, 0.88);
|
|
1373
|
+
border: 1.5px solid rgba(0, 210, 255, 0.35);
|
|
1374
|
+
border-radius: var(--radius-lg);
|
|
1375
|
+
box-shadow: 0 0 50px rgba(0, 136, 255, 0.2), inset 0 0 30px rgba(0, 210, 255, 0.05);
|
|
1376
|
+
backdrop-filter: blur(20px);
|
|
1377
|
+
-webkit-backdrop-filter: blur(20px);
|
|
1378
|
+
display: flex;
|
|
1379
|
+
flex-direction: column;
|
|
1380
|
+
overflow: hidden;
|
|
1381
|
+
height: 75vh;
|
|
1382
|
+
min-height: 540px;
|
|
1383
|
+
}
|
|
1384
|
+
|
|
1385
|
+
.ai-header {
|
|
1386
|
+
padding: 1rem 1.4rem;
|
|
1387
|
+
background: rgba(4, 14, 34, 0.95);
|
|
1388
|
+
border-bottom: 1.5px solid rgba(0, 210, 255, 0.25);
|
|
1389
|
+
display: flex;
|
|
1390
|
+
justify-content: space-between;
|
|
1391
|
+
align-items: center;
|
|
1392
|
+
flex-wrap: wrap;
|
|
1393
|
+
gap: 0.75rem;
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
.ai-avatar-core {
|
|
1397
|
+
width: 44px;
|
|
1398
|
+
height: 44px;
|
|
1399
|
+
border-radius: 50%;
|
|
1400
|
+
background: linear-gradient(135deg, #0088ff, #00ffaa);
|
|
1401
|
+
display: flex;
|
|
1402
|
+
align-items: center;
|
|
1403
|
+
justify-content: center;
|
|
1404
|
+
font-size: 1.4rem;
|
|
1405
|
+
box-shadow: 0 0 20px rgba(0, 210, 255, 0.6);
|
|
1406
|
+
animation: pulseCore 3s ease-in-out infinite alternate;
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1409
|
+
.ai-chips-bar {
|
|
1410
|
+
display: flex;
|
|
1411
|
+
gap: 0.5rem;
|
|
1412
|
+
overflow-x: auto;
|
|
1413
|
+
padding: 0.65rem 1.4rem;
|
|
1414
|
+
background: rgba(2, 6, 16, 0.9);
|
|
1415
|
+
border-bottom: 1px solid rgba(0, 136, 255, 0.15);
|
|
1416
|
+
scrollbar-width: thin;
|
|
1417
|
+
}
|
|
1418
|
+
|
|
1419
|
+
.ai-chip-btn {
|
|
1420
|
+
background: rgba(4, 16, 36, 0.8);
|
|
1421
|
+
border: 1px solid rgba(0, 210, 255, 0.3);
|
|
1422
|
+
color: #b3d7ff;
|
|
1423
|
+
border-radius: 20px;
|
|
1424
|
+
padding: 0.35rem 0.85rem;
|
|
1425
|
+
font-size: 0.75rem;
|
|
1426
|
+
font-family: var(--font-heading);
|
|
1427
|
+
font-weight: 700;
|
|
1428
|
+
cursor: pointer;
|
|
1429
|
+
white-space: nowrap;
|
|
1430
|
+
transition: all 0.2s ease;
|
|
1431
|
+
display: flex;
|
|
1432
|
+
align-items: center;
|
|
1433
|
+
gap: 0.35rem;
|
|
1434
|
+
}
|
|
1435
|
+
|
|
1436
|
+
.ai-chip-btn:hover {
|
|
1437
|
+
background: rgba(0, 210, 255, 0.2);
|
|
1438
|
+
color: #fff;
|
|
1439
|
+
border-color: #00ffaa;
|
|
1440
|
+
box-shadow: 0 0 12px rgba(0, 255, 170, 0.4);
|
|
1441
|
+
transform: translateY(-1px);
|
|
1442
|
+
}
|
|
1443
|
+
|
|
1444
|
+
.ai-messages-scroll {
|
|
1445
|
+
flex: 1;
|
|
1446
|
+
overflow-y: auto;
|
|
1447
|
+
padding: 1.4rem;
|
|
1448
|
+
display: flex;
|
|
1449
|
+
flex-direction: column;
|
|
1450
|
+
gap: 1.25rem;
|
|
1451
|
+
background: radial-gradient(circle at center, rgba(6, 20, 48, 0.3) 0%, rgba(2, 5, 12, 0.8) 100%);
|
|
1452
|
+
}
|
|
1453
|
+
|
|
1454
|
+
.ai-msg {
|
|
1455
|
+
display: flex;
|
|
1456
|
+
gap: 0.85rem;
|
|
1457
|
+
max-width: 85%;
|
|
1458
|
+
animation: msgSlideIn 0.25s ease-out;
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1461
|
+
@keyframes msgSlideIn {
|
|
1462
|
+
from { opacity: 0; transform: translateY(6px); }
|
|
1463
|
+
to { opacity: 1; transform: translateY(0); }
|
|
1464
|
+
}
|
|
1465
|
+
|
|
1466
|
+
.ai-msg-bot {
|
|
1467
|
+
align-self: flex-start;
|
|
1468
|
+
}
|
|
1469
|
+
|
|
1470
|
+
.ai-msg-user {
|
|
1471
|
+
align-self: flex-end;
|
|
1472
|
+
flex-direction: row-reverse;
|
|
1473
|
+
}
|
|
1474
|
+
|
|
1475
|
+
.ai-msg-avatar {
|
|
1476
|
+
width: 34px;
|
|
1477
|
+
height: 34px;
|
|
1478
|
+
border-radius: 50%;
|
|
1479
|
+
background: linear-gradient(135deg, #0088ff, #00d2ff);
|
|
1480
|
+
display: flex;
|
|
1481
|
+
align-items: center;
|
|
1482
|
+
justify-content: center;
|
|
1483
|
+
font-size: 1rem;
|
|
1484
|
+
box-shadow: 0 0 12px rgba(0, 210, 255, 0.5);
|
|
1485
|
+
flex-shrink: 0;
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1488
|
+
.ai-msg-user .ai-msg-avatar {
|
|
1489
|
+
background: linear-gradient(135deg, #7928ca, #ff0080);
|
|
1490
|
+
box-shadow: 0 0 12px rgba(255, 0, 128, 0.5);
|
|
1491
|
+
}
|
|
1492
|
+
|
|
1493
|
+
.ai-msg-bubble {
|
|
1494
|
+
background: rgba(4, 14, 32, 0.95);
|
|
1495
|
+
border: 1px solid rgba(0, 210, 255, 0.35);
|
|
1496
|
+
border-radius: 12px;
|
|
1497
|
+
padding: 0.85rem 1.15rem;
|
|
1498
|
+
color: #e2f1ff;
|
|
1499
|
+
font-size: 0.88rem;
|
|
1500
|
+
line-height: 1.6;
|
|
1501
|
+
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
|
|
1502
|
+
}
|
|
1503
|
+
|
|
1504
|
+
.ai-msg-user .ai-msg-bubble {
|
|
1505
|
+
background: linear-gradient(135deg, rgba(121, 40, 202, 0.35) 0%, rgba(0, 136, 255, 0.35) 100%);
|
|
1506
|
+
border-color: rgba(121, 40, 202, 0.6);
|
|
1507
|
+
color: #ffffff;
|
|
1508
|
+
}
|
|
1509
|
+
|
|
1510
|
+
.ai-msg-sender {
|
|
1511
|
+
font-family: var(--font-heading);
|
|
1512
|
+
font-size: 0.72rem;
|
|
1513
|
+
font-weight: 800;
|
|
1514
|
+
color: #00d2ff;
|
|
1515
|
+
letter-spacing: 0.08em;
|
|
1516
|
+
margin-bottom: 0.35rem;
|
|
1517
|
+
display: flex;
|
|
1518
|
+
align-items: center;
|
|
1519
|
+
gap: 0.5rem;
|
|
1520
|
+
}
|
|
1521
|
+
|
|
1522
|
+
.ai-msg-user .ai-msg-sender {
|
|
1523
|
+
color: #ff77cc;
|
|
1524
|
+
justify-content: flex-end;
|
|
1525
|
+
}
|
|
1526
|
+
|
|
1527
|
+
.ai-model-tag {
|
|
1528
|
+
font-size: 0.62rem;
|
|
1529
|
+
background: rgba(0, 255, 170, 0.15);
|
|
1530
|
+
color: #00ffaa;
|
|
1531
|
+
border: 1px solid #00ffaa;
|
|
1532
|
+
padding: 1px 5px;
|
|
1533
|
+
border-radius: 4px;
|
|
1534
|
+
}
|
|
1535
|
+
|
|
1536
|
+
.ai-msg-text pre {
|
|
1537
|
+
background: #020612;
|
|
1538
|
+
border: 1px solid rgba(0, 136, 255, 0.3);
|
|
1539
|
+
border-radius: 6px;
|
|
1540
|
+
padding: 0.75rem;
|
|
1541
|
+
overflow-x: auto;
|
|
1542
|
+
font-family: var(--font-mono);
|
|
1543
|
+
font-size: 0.8rem;
|
|
1544
|
+
margin: 0.5rem 0;
|
|
1545
|
+
color: #00ffaa;
|
|
1546
|
+
}
|
|
1547
|
+
|
|
1548
|
+
.ai-msg-text code {
|
|
1549
|
+
font-family: var(--font-mono);
|
|
1550
|
+
background: rgba(0, 210, 255, 0.15);
|
|
1551
|
+
padding: 2px 5px;
|
|
1552
|
+
border-radius: 4px;
|
|
1553
|
+
color: #00d2ff;
|
|
1554
|
+
font-size: 0.82rem;
|
|
1555
|
+
}
|
|
1556
|
+
|
|
1557
|
+
.ai-pulse-dot {
|
|
1558
|
+
display: inline-block;
|
|
1559
|
+
width: 8px;
|
|
1560
|
+
height: 8px;
|
|
1561
|
+
border-radius: 50%;
|
|
1562
|
+
background: #00ffaa;
|
|
1563
|
+
box-shadow: 0 0 10px #00ffaa;
|
|
1564
|
+
animation: pulseDot 1s infinite alternate;
|
|
1565
|
+
}
|
|
1566
|
+
|
|
1567
|
+
@keyframes pulseDot {
|
|
1568
|
+
from { transform: scale(0.8); opacity: 0.5; }
|
|
1569
|
+
to { transform: scale(1.3); opacity: 1; }
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
.ai-input-wrapper {
|
|
1573
|
+
padding: 0.85rem 1.4rem;
|
|
1574
|
+
background: rgba(4, 12, 28, 0.95);
|
|
1575
|
+
border-top: 1.5px solid rgba(0, 210, 255, 0.25);
|
|
1576
|
+
display: flex;
|
|
1577
|
+
gap: 0.75rem;
|
|
1578
|
+
align-items: center;
|
|
1579
|
+
}
|
|
1580
|
+
|
|
1581
|
+
.ai-input-box {
|
|
1582
|
+
flex: 1;
|
|
1583
|
+
background: #020714;
|
|
1584
|
+
border: 1.5px solid rgba(0, 210, 255, 0.35);
|
|
1585
|
+
border-radius: 10px;
|
|
1586
|
+
color: #fff;
|
|
1587
|
+
font-family: var(--font-body);
|
|
1588
|
+
font-size: 0.88rem;
|
|
1589
|
+
padding: 0.75rem 1rem;
|
|
1590
|
+
outline: none;
|
|
1591
|
+
resize: none;
|
|
1592
|
+
transition: all 0.2s ease;
|
|
1593
|
+
min-height: 44px;
|
|
1594
|
+
max-height: 120px;
|
|
1595
|
+
}
|
|
1596
|
+
|
|
1597
|
+
.ai-input-box:focus {
|
|
1598
|
+
border-color: #00ffaa;
|
|
1599
|
+
box-shadow: 0 0 16px rgba(0, 255, 170, 0.3);
|
|
1600
|
+
background: #030b1e;
|
|
1601
|
+
}
|
|
1602
|
+
|
|
1603
|
+
.ai-send-btn {
|
|
1604
|
+
padding: 0.75rem 1.4rem;
|
|
1605
|
+
font-size: 0.85rem;
|
|
1606
|
+
font-weight: 900;
|
|
1607
|
+
border-radius: 10px;
|
|
1608
|
+
display: flex;
|
|
1609
|
+
align-items: center;
|
|
1610
|
+
gap: 0.35rem;
|
|
1611
|
+
flex-shrink: 0;
|
|
1612
|
+
}
|
|
1613
|
+
|
|
1614
|
+
/* In-Game Speed / Graphics Toggle Button */
|
|
1615
|
+
.btn-game-speed-toggle {
|
|
1616
|
+
transition: all 0.2s ease;
|
|
1617
|
+
}
|
|
1618
|
+
.btn-game-speed-toggle:hover {
|
|
1619
|
+
background: rgba(0, 255, 170, 0.2);
|
|
1620
|
+
box-shadow: 0 0 10px rgba(0, 255, 170, 0.5);
|
|
1621
|
+
transform: scale(1.03);
|
|
1622
|
+
}
|
|
1623
|
+
|
package/index.html
CHANGED
|
@@ -62,12 +62,12 @@
|
|
|
62
62
|
<div style="color: #00ffaa; font-family: var(--font-heading); font-size: 0.78rem; font-weight: 900; letter-spacing: 0.16em; text-transform: uppercase; margin-bottom: 1.25rem;">ACCESS AUTHORIZATION REQUIRED</div>
|
|
63
63
|
|
|
64
64
|
<p style="color: #adc4e2; font-size: 0.86rem; margin-bottom: 1.5rem; line-height: 1.6;">
|
|
65
|
-
Enter your
|
|
65
|
+
Enter your active access key or session authorization token below to unlock the full 788-game core hub.
|
|
66
66
|
</p>
|
|
67
67
|
|
|
68
68
|
<!-- Key Input Box with Built-In Paste Button -->
|
|
69
69
|
<div class="key-input-wrapper">
|
|
70
|
-
<input type="text" id="gate-token-input" class="key-input-field" placeholder="
|
|
70
|
+
<input type="text" id="gate-token-input" class="key-input-field" placeholder="ENTER ACCESS KEY..." autocomplete="off" onkeydown="if(event.key==='Enter') app.submitGateToken()">
|
|
71
71
|
<button type="button" class="btn-paste-key" onclick="app.pasteKeyFromClipboard()">📋 PASTE</button>
|
|
72
72
|
</div>
|
|
73
73
|
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
<li><strong>⚡ Turbo Anti-Lag Engine:</strong> Instant memory pre-caching for 0.01s game launches, automated background canvas pausing while playing, and GPU containment for silky 60 FPS on school Chromebooks and laptops!</li>
|
|
106
106
|
<li><strong>👑 Expanded Admin Superpowers:</strong> Real-time Hub Analytics card (FPS, games, cache, keys), Enforce Global Turbo Mode broadcast, Remote Client Force-Reload, Message of the Day (MOTD), Spotlight Featured Game Pin, Clear Chat Only, and Custom Slow-Mode intervals!</li>
|
|
107
107
|
<li><strong>🎮 Direct 788-Game Streaming:</strong> Ultra-fast game delivery directly via official GitHub Pages CDN (<code>gn-math.github.io/html/</code>) with guaranteed click delegation.</li>
|
|
108
|
-
<li><strong>🔒 Hardened Key Gatekeeper:</strong> Complete protection for the hub with
|
|
108
|
+
<li><strong>🔒 Hardened Key Gatekeeper:</strong> Complete protection for the hub with encrypted session validation and anti-tamper security.</li>
|
|
109
109
|
</ul>
|
|
110
110
|
</div>
|
|
111
111
|
</div>
|
|
@@ -131,6 +131,9 @@
|
|
|
131
131
|
<button class="nav-tab-btn active" data-tab="home" onclick="app.switchTab('home')">Home</button>
|
|
132
132
|
<button class="nav-tab-btn" data-tab="games" onclick="app.switchTab('games')">Games (788)</button>
|
|
133
133
|
<button class="nav-tab-btn" data-tab="leaderboard" onclick="app.switchTab('leaderboard')">Leaderboard</button>
|
|
134
|
+
<button class="nav-tab-btn" data-tab="ai" onclick="app.switchTab('ai')" style="color: #00d2ff;">
|
|
135
|
+
⚡ AI Assistant <span style="font-size: 0.6rem; background: #00ffaa; color: #000; padding: 1px 4px; border-radius: 4px; font-weight: 900; margin-left: 2px;">NEW</span>
|
|
136
|
+
</button>
|
|
134
137
|
<button class="nav-tab-btn" id="nav-tab-mod" style="display: none; color: #00ffaa;" data-tab="mod" onclick="app.switchTab('mod')">Mod</button>
|
|
135
138
|
<button class="nav-tab-btn" id="nav-tab-admin" style="display: none; color: #ffd700;" data-tab="admin" onclick="app.switchTab('admin')">Admin</button>
|
|
136
139
|
</nav>
|
|
@@ -157,9 +160,9 @@
|
|
|
157
160
|
<span class="bind-rank rank-pill rank-member" id="header-rank-badge">MEMBER</span>
|
|
158
161
|
</div>
|
|
159
162
|
|
|
160
|
-
<!--
|
|
161
|
-
<button class="btn-turbo" id="header-turbo-btn" onclick="app.toggleTurboMode()" title="
|
|
162
|
-
<span id="turbo-btn-icon">⚡</span> <span id="turbo-btn-text">
|
|
163
|
+
<!-- Performance / Graphics Switcher (Fast vs Laggy/High FX) -->
|
|
164
|
+
<button class="btn-turbo" id="header-turbo-btn" onclick="app.toggleTurboMode()" title="Switch Game Mode: Fast 60 FPS Turbo vs Ultra FX (Laggy/High Graphics)">
|
|
165
|
+
<span id="turbo-btn-icon">⚡</span> <span id="turbo-btn-text">MODE: FAST (60 FPS)</span>
|
|
163
166
|
</button>
|
|
164
167
|
|
|
165
168
|
<button class="btn-stealth" id="btn-settings-toggle" onclick="app.openSettingsModal()" style="border-color: var(--blue-bright); color: #00d2ff; font-weight: 800;" title="Settings & Security Shield">
|
|
@@ -269,7 +272,85 @@
|
|
|
269
272
|
</section>
|
|
270
273
|
|
|
271
274
|
<!-- ========================================== -->
|
|
272
|
-
<!-- TAB 4:
|
|
275
|
+
<!-- TAB 4: REAPER AI ASSISTANT (OPENCODE ZEN) -->
|
|
276
|
+
<!-- ========================================== -->
|
|
277
|
+
<section id="section-ai" class="tab-section" style="display: none;">
|
|
278
|
+
<div class="ai-tab-container">
|
|
279
|
+
<div class="ai-window">
|
|
280
|
+
|
|
281
|
+
<!-- AI Header -->
|
|
282
|
+
<div class="ai-header">
|
|
283
|
+
<div style="display: flex; align-items: center; gap: 0.85rem;">
|
|
284
|
+
<div class="ai-avatar-core">⚡</div>
|
|
285
|
+
<div>
|
|
286
|
+
<h2 style="font-size: 1.35rem; color: #00d2ff; font-family: var(--font-heading); margin-bottom: 0.15rem; text-shadow: 0 0 15px rgba(0, 210, 255, 0.6);">REAPER AI ASSISTANT</h2>
|
|
287
|
+
<p style="color: #88aacc; font-size: 0.78rem;">Powered by OpenCode Zen Free Models • Gaming Intelligence, Homework Solver, Coding & Uncensored Knowledge</p>
|
|
288
|
+
</div>
|
|
289
|
+
</div>
|
|
290
|
+
|
|
291
|
+
<div style="display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap;">
|
|
292
|
+
<!-- Model Selector -->
|
|
293
|
+
<div style="display: flex; align-items: center; gap: 0.4rem; background: #040d1e; border: 1.5px solid var(--blue-border); padding: 0.35rem 0.65rem; border-radius: 8px;">
|
|
294
|
+
<span style="font-size: 0.72rem; color: #00ffaa; font-weight: 800; font-family: var(--font-heading);">MODEL:</span>
|
|
295
|
+
<select id="ai-model-select" onchange="app.changeAiModel(this.value)" style="background: transparent; color: #fff; border: none; font-size: 0.75rem; font-family: var(--font-heading); font-weight: 700; cursor: pointer; outline: none;">
|
|
296
|
+
<option value="mimo-v2.5-free" selected>MiMo 2.5 Free (Fast & Smart)</option>
|
|
297
|
+
<option value="big-pickle">Big-Pickle (Logic & Code)</option>
|
|
298
|
+
<option value="nemotron-3.5-lightning-free">Nemotron 3.5 Lightning</option>
|
|
299
|
+
<option value="deepseek-v4-flash-free">DeepSeek v4 Flash Free</option>
|
|
300
|
+
</select>
|
|
301
|
+
</div>
|
|
302
|
+
|
|
303
|
+
<button class="btn-stealth" style="font-size: 0.75rem; color: #ff6666; border-color: rgba(255, 102, 102, 0.3);" onclick="app.clearAiChat()" title="Wipe chat history">
|
|
304
|
+
🗑️ CLEAR
|
|
305
|
+
</button>
|
|
306
|
+
</div>
|
|
307
|
+
</div>
|
|
308
|
+
|
|
309
|
+
<!-- Quick Suggestion Prompt Chips -->
|
|
310
|
+
<div class="ai-chips-bar" id="ai-suggestion-chips">
|
|
311
|
+
<button class="ai-chip-btn" onclick="app.sendAiPresetPrompt('Give me the top 5 most addictive games on Reaper Hub and why.')">🎮 Top 5 Games</button>
|
|
312
|
+
<button class="ai-chip-btn" onclick="app.sendAiPresetPrompt('How can I optimize and get steady 60 FPS on school Chromebooks?')">⚡ 60 FPS Boost Guide</button>
|
|
313
|
+
<button class="ai-chip-btn" onclick="app.sendAiPresetPrompt('Give me winning quarterback tips and trick plays for Retro Bowl.')">🏈 Retro Bowl Guide</button>
|
|
314
|
+
<button class="ai-chip-btn" onclick="app.sendAiPresetPrompt('Help me understand calculus derivatives with simple real-world examples.')">📚 Math Homework Help</button>
|
|
315
|
+
<button class="ai-chip-btn" onclick="app.sendAiPresetPrompt('Write a fun short sci-fi cyber story set inside an unblocked arcade simulator.')">🌌 Write Cyber Story</button>
|
|
316
|
+
</div>
|
|
317
|
+
|
|
318
|
+
<!-- Chat Messages Container -->
|
|
319
|
+
<div class="ai-messages-scroll" id="ai-chat-messages">
|
|
320
|
+
<!-- Initial Welcome Message from Reaper AI -->
|
|
321
|
+
<div class="ai-msg ai-msg-bot">
|
|
322
|
+
<div class="ai-msg-avatar">⚡</div>
|
|
323
|
+
<div class="ai-msg-bubble">
|
|
324
|
+
<div class="ai-msg-sender">REAPER AI <span class="ai-model-tag">ONLINE</span></div>
|
|
325
|
+
<div class="ai-msg-text">
|
|
326
|
+
Greetings, Operator. I am <strong>Reaper AI</strong>, your integrated cyber intelligence engine powered by OpenCode Zen.
|
|
327
|
+
<br><br>
|
|
328
|
+
Need gaming strategies, secret high scores, math/history homework answers, or custom scripts? Type below or tap a prompt chip above to get started.
|
|
329
|
+
</div>
|
|
330
|
+
</div>
|
|
331
|
+
</div>
|
|
332
|
+
</div>
|
|
333
|
+
|
|
334
|
+
<!-- Typing Indicator (Hidden by default) -->
|
|
335
|
+
<div id="ai-typing-indicator" style="display: none; padding: 0.6rem 1.25rem; font-family: var(--font-mono); font-size: 0.78rem; color: #00ffaa; align-items: center; gap: 0.6rem;">
|
|
336
|
+
<span class="ai-pulse-dot"></span>
|
|
337
|
+
<span>Reaper AI is generating response...</span>
|
|
338
|
+
</div>
|
|
339
|
+
|
|
340
|
+
<!-- AI Input Box -->
|
|
341
|
+
<div class="ai-input-wrapper">
|
|
342
|
+
<textarea id="ai-chat-input" class="ai-input-box" placeholder="Ask Reaper AI anything (Enter to send, Shift+Enter for newline)..." rows="1" onkeydown="app.handleAiInputKey(event)"></textarea>
|
|
343
|
+
<button class="btn-primary ai-send-btn" id="ai-send-btn" onclick="app.sendAiMessage()">
|
|
344
|
+
<span>⚡ SEND</span>
|
|
345
|
+
</button>
|
|
346
|
+
</div>
|
|
347
|
+
|
|
348
|
+
</div>
|
|
349
|
+
</div>
|
|
350
|
+
</section>
|
|
351
|
+
|
|
352
|
+
<!-- ========================================== -->
|
|
353
|
+
<!-- TAB 5: CHAT MOD TAB (MOD ONLY) -->
|
|
273
354
|
<!-- ========================================== -->
|
|
274
355
|
<section id="section-mod" class="tab-section" style="display: none;">
|
|
275
356
|
<div class="mod-tab-container">
|
|
@@ -703,6 +784,7 @@
|
|
|
703
784
|
</div>
|
|
704
785
|
<div style="display: flex; align-items: center; gap: 0.5rem;">
|
|
705
786
|
<span id="player-fps-hud" style="font-family: var(--font-mono); font-size: 0.75rem; color: #00ffaa; background: #020712; padding: 0.25rem 0.55rem; border: 1px solid var(--blue-border); border-radius: 4px; font-weight: bold;">60 FPS • 12ms</span>
|
|
787
|
+
<button class="btn-stealth btn-game-speed-toggle" id="player-speed-toggle-btn" onclick="app.toggleTurboMode()" title="Toggle Game Performance Mode (Fast 60 FPS vs Ultra FX Visuals)" style="color: #00ffaa; border-color: rgba(0, 255, 170, 0.4); font-size: 0.72rem; font-weight: 800;">⚡ SPEED: FAST</button>
|
|
706
788
|
<button class="btn-stealth" style="border-color: var(--blue-border); color: #88ccff;" onclick="app.openGameAboutBlank()" title="Play in a disguised about:blank tab">
|
|
707
789
|
OPEN IN ABOUT:BLANK
|
|
708
790
|
</button>
|