Treffer-Toleranz, 2 Ranglisten, Anti-Cheat, CLI-Modi & Icons

- Treffer-Toleranz: Ziel wird geometrisch + bevorzugt getroffen, auch wenn verdeckt
- Zwei Ranglisten: Hall of Fame (Allzeit-Top-5) + Heute (Top-10)
- Anti-Cheat: server-autoritative Sessions (start/hit), Score = Server-Zahl,
  Mindestabstand gegen Auto-Klicker, Deckelung nach Spielzeit; Score ohne Session -> 400
- CLI (server/admin.js): list / delete <name> / clear-today / clear-all
- Zwei Betriebsmodi per CLI (live, ohne Neustart): public (/ = Spiel) und
  private (/ gesperrt, Spiel unter geheimem /pfad) + "not allowed to play"-Seite
- Board-Icons von Emojis auf echte SVG-Icons, Board heisst "Hall of Fame"

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Guido
2026-08-05 11:23:30 +02:00
parent 39ed0e2485
commit ecdbd2ee0d
21 changed files with 472 additions and 117 deletions

View File

@@ -1,7 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<circle cx="50" cy="50" r="40" fill="#fff"/>
<path d="M50 10 A40 40 0 0 1 90 50 L50 50 Z" fill="#ff5a5f"/>
<path d="M50 90 A40 40 0 0 1 10 50 L50 50 Z" fill="#3ea6ff"/>
<path d="M50 10 A40 40 0 0 0 10 50 L50 50 Z" fill="#ffd23f"/>
<path d="M50 90 A40 40 0 0 0 90 50 L50 50 Z" fill="#2ec26b"/>
<circle cx="50" cy="50" r="40" fill="none" stroke="#26193f" stroke-width="3"/></svg>

Before

Width:  |  Height:  |  Size: 465 B

View File

@@ -1,5 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<rect x="18" y="20" width="64" height="60" rx="6" fill="#3ea6ff"/>
<rect x="18" y="20" width="64" height="60" rx="6" fill="none" stroke="#1c6fb0" stroke-width="3"/>
<rect x="18" y="34" width="64" height="7" fill="#fff"/>
<rect x="18" y="59" width="64" height="7" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 362 B

BIN
library/props/mattes1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
library/props/mattes2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

View File

@@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<path d="M12 55 Q35 30 50 52 Q65 30 88 55" stroke="#4a4a5a" stroke-width="6"
fill="none" stroke-linecap="round"/></svg>

Before

Width:  |  Height:  |  Size: 193 B

View File

@@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<path d="M50 88 C20 60 20 25 50 18 C80 25 80 60 50 88 Z" fill="#ffb3c7"/>
<path d="M50 20 L50 86 M35 30 L44 82 M65 30 L56 82 M25 45 L38 80 M75 45 L62 80"
stroke="#e26d94" stroke-width="3" fill="none" stroke-linecap="round"/></svg>

Before

Width:  |  Height:  |  Size: 308 B

BIN
library/props/noemi1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
library/props/noemi2.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

BIN
library/props/noemi3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@@ -1,9 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<path d="M46 90 Q52 55 50 40 L58 40 Q54 60 54 90 Z" fill="#8b5a2b"/>
<g fill="#2ec26b">
<path d="M52 40 Q30 25 12 32 Q32 30 52 42 Z"/>
<path d="M52 40 Q74 25 90 34 Q70 30 52 42 Z"/>
<path d="M52 40 Q35 20 30 6 Q46 22 55 40 Z"/>
<path d="M52 40 Q70 22 78 10 Q60 24 55 40 Z"/>
</g>
<circle cx="52" cy="40" r="5" fill="#c98a3a"/></svg>

Before

Width:  |  Height:  |  Size: 428 B

View File

@@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<path d="M20 45 H80" stroke="#26193f" stroke-width="5"/>
<rect x="16" y="42" width="28" height="20" rx="9" fill="#26193f"/>
<rect x="56" y="42" width="28" height="20" rx="9" fill="#26193f"/>
<rect x="20" y="46" width="9" height="6" rx="3" fill="#7fd0ff"/>
<rect x="60" y="46" width="9" height="6" rx="3" fill="#7fd0ff"/></svg>

Before

Width:  |  Height:  |  Size: 410 B