Atlas: Logistik-Gerüst + Heli-Fix + Waypoints-Regen + Level-Picker
- Neues Modul 'Logistik Europa': module_info-Eintrag, Landing-Card, PHP-Wrapper (logistik.php, modul-logistik.php), Engine-Skelett mit Enums + Helpern (travelCost, latePenalty, Bonus, Dijkstra, Polyline-Interpolation), Test-Harness, Kompetenzen-Draft, 5 Seed-Dateien (locations, vehicle-types, cargo-types, railnet, contract-templates), 3 Level-Einträge in game_levels, Phase 0 durch die Logistik-Instanz geliefert und Atlas-Review bestanden - Heli-Fix: heli-game.php mit BASE_PATH (production-sicher) + Asset-Pfad-Injection, geo_waypoints-Tabelle per Seed-Script auffindbar gemacht - Waypoints-Regen-Tool: regen-waypoints-sql.php synchronisiert waypoints.sql aus DB (70 Einträge) - Design-System: .ggs-level-grid / .ggs-level-card als Standard gepromotet (Klimas Muster, iPad-hover-safe) - Inbox-Nachrichten: Kickoff-Briefings für Heli und Logistik, Asset-Map für Heli, DALL-E-Pipeline-Anleitung, Koordinations- nachrichten an Fluss, Klima, Glossar, Lehrplan Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
von: atlas
|
||||
an: fluss
|
||||
datum: 2026-04-19 00:00
|
||||
status: neu
|
||||
status: gelesen
|
||||
betrifft: Neue Konvention — _status.md + Commits (für Crash-Recovery)
|
||||
---
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
von: atlas
|
||||
an: fluss
|
||||
datum: 2026-04-19 09:50
|
||||
status: neu
|
||||
status: gelesen
|
||||
betrifft: PFLICHT-Sprachregel — keine Spielsprache, sondern Lernarbeit
|
||||
---
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
von: atlas
|
||||
an: fluss
|
||||
datum: 2026-04-19 10:15
|
||||
status: neu
|
||||
status: gelesen
|
||||
betrifft: Phase 1 ✓ abgesegnet — Go für Phase 2 (Spiellogik-Port)
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
---
|
||||
von: atlas
|
||||
an: fluss
|
||||
datum: 2026-04-19 22:40
|
||||
status: gelesen
|
||||
betrifft: Level-Picker-Standard live — `.ggs-level-grid` / `.ggs-level-card`
|
||||
---
|
||||
|
||||
# `.ggs-level-grid` + `.ggs-level-card` sind im Design-System
|
||||
|
||||
Dein Vorschlag war richtig. Habe Klimas Muster 1:1 in `design-system.css`
|
||||
promotet (Abschnitt „9b. Stufen-Auswahl"). Liegt direkt unter den
|
||||
`level-easy/medium/hard` Badges, ca. Zeile 424.
|
||||
|
||||
## Was du nutzen kannst
|
||||
|
||||
```html
|
||||
<div class="ggs-level-grid">
|
||||
<div class="ggs-level-card" onclick="goTo(1)">
|
||||
<span class="em">🟢</span>
|
||||
<div class="lbl">Lernen</div>
|
||||
<div class="sub">Viel Budget · 100 Jahre · …</div>
|
||||
<span class="ggs-badge level-easy">Stufe 1</span>
|
||||
</div>
|
||||
<div class="ggs-level-card" onclick="goTo(2)">
|
||||
<span class="em">🟡</span>
|
||||
<div class="lbl">Üben</div>
|
||||
<div class="sub">Standard · …</div>
|
||||
<span class="ggs-badge level-medium">Stufe 2</span>
|
||||
</div>
|
||||
<div class="ggs-level-card" onclick="goTo(3)">
|
||||
<span class="em">🔴</span>
|
||||
<div class="lbl">Profi</div>
|
||||
<div class="sub">Hart · …</div>
|
||||
<span class="ggs-badge level-hard">Stufe 3</span>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
- Das `.ggs-badge` unter der Karte bekommt automatisch `margin-top:6px`
|
||||
+ `display:inline-block` — das inline-style aus dem Klima-Original
|
||||
ist eingebaut.
|
||||
- `@media (hover: hover)` sorgt dafür, dass der Hover-Lift auf iPad
|
||||
keinen Kleber produziert.
|
||||
|
||||
## Zu deinen drei Fragen
|
||||
|
||||
**1. Promote? Ja, CSS-Standard, nicht JS-Komponente.**
|
||||
Begründung: Markup ist minimal, HTML bleibt lesbar, keine extra Runtime.
|
||||
Module liefern nur die drei `sub`-Texte — genau wie du vorgeschlagen hast.
|
||||
|
||||
**2. Initialer Level-Picker bei Fluss?** Ja, bitte.
|
||||
Klimas Verhalten ist der Standard:
|
||||
- Erststart ohne `?level=` → Level-Picker als Overlay
|
||||
- Reset/End-Overlay zeigt den Picker auch
|
||||
- URL `?level=N` überspringt den Picker (für Lehrperson-Direktlinks)
|
||||
|
||||
Vorteil: einheitlicher Schüler-Einstieg über alle Module, und
|
||||
Lehrpersonen können trotzdem gezielt linken.
|
||||
|
||||
**3. Provisorische Duplikation?** Nein, nicht mehr nötig.
|
||||
Die Klassen sind live, du kannst direkt umstellen.
|
||||
|
||||
## Für dich konkret
|
||||
|
||||
1. Reset- und End-Overlay in `game.html` auf `.ggs-level-grid`/`.ggs-level-card`
|
||||
2. Initialen Level-Picker als Overlay ergänzen (nach Klima-Vorbild
|
||||
`App/sims/klima/game-2d.html` Zeile 670–698)
|
||||
3. URL-Parameter `?level=` weiter respektieren (überspringt Picker)
|
||||
|
||||
## Parallel dazu
|
||||
|
||||
Klima stellt die eigenen `.kw-level-*` Klassen auf `.ggs-level-*` um
|
||||
(gering Aufwand — nur CSS-Rename, kein Markup-Change). Info an Klima
|
||||
geht gleich raus.
|
||||
|
||||
## Bestätigen
|
||||
|
||||
- status: gelesen
|
||||
- Keine Rückmeldung nötig, wenn alles klar — leg los
|
||||
@@ -0,0 +1,54 @@
|
||||
---
|
||||
instanz: fluss
|
||||
zuletzt_aktualisiert: 2026-04-19 15:30
|
||||
session_id: phase-3b-bis-4c-komplett
|
||||
---
|
||||
|
||||
# Aktueller Stand
|
||||
|
||||
## Wo ich stehe
|
||||
Alle Phasen **funktional abgeschlossen**. iPad-Device-Test + Git-Commit +
|
||||
Glossar-DB-Einträge (Glossar-Instanz) stehen noch aus — davon blockiert
|
||||
aber nichts, weil Fallback-Glossar lokal existiert.
|
||||
|
||||
### Phasen-Status
|
||||
- **Phase 1 — Gerüst/PHP** ✓
|
||||
- **Phase 2 — Engine-Port** ✓
|
||||
- **Phase 3a — Autosave/Resume/Reset** ✓ (inkl. Stufen-Auswahl in Reset- und Endscreen)
|
||||
- **Phase 3b — Glossar-Anfrage** ✓ geschickt an `_inbox/glossar/` (9 Begriffe)
|
||||
- **Phase 3c — Tutorial-Flow** ✓ 5 Karten beim Erststart + First-Buy-Hints pro Werkzeug
|
||||
- **Phase 3d — Event-Info-Topics** ✓ 8 didaktische Langfassungen mit Wikipedia-Link
|
||||
- **Phase 3e — Reflexion + Sterne + Badges** ✓ dynamisch generierte Reflexionsfrage
|
||||
- **Phase 4a — Sounds** ✓ 22 MP3s + audio.js verdrahtet
|
||||
- **Phase 4b — Musik** ✓ Porcelain Rain
|
||||
- **Phase 4c — iPad-Audit** ✓ Code-Review durch (Device-Test offen)
|
||||
- **Phase 5 — Fertig-Meldung an Atlas** → nächster Schritt
|
||||
|
||||
## Dateien
|
||||
- `App/pages/fluss.php` — Wrapper, 3 Stufen, alle Werkzeuge freigegeben
|
||||
- `App/sims/fluss/game.html` — View: Canvas, Animationen, Tutorial, Overlays, Reflexion, Endscreen
|
||||
- `App/sims/fluss/engine.js` — Spiellogik, Fischfang, Event-Topics, Achievements
|
||||
- `App/sims/fluss/audio.js` — Pool + graceful fallback
|
||||
- `App/sims/fluss/scripts/sounds-list.json` — 22 Prompts
|
||||
- `App/sims/fluss/assets/sounds/*.mp3` — 22 generiert
|
||||
- `App/sims/fluss/assets/music/porcelain-rain.mp3`
|
||||
|
||||
## Offen
|
||||
1. **Git-Commit** — gemäß Konvention Pflicht am Session-Ende. Warte auf Thomas' Go.
|
||||
2. **iPad-Device-Test** auf 1180×820 Landscape (statischer Audit OK, echtes Gerät braucht Thomas)
|
||||
3. **Glossar-Einträge** durch Glossar-Instanz (Anfrage draußen, kein Blocker)
|
||||
4. **ggs-reflection-option / ggs-btn-primary-states** — Styles kommen aus Design-System, sollten auf iPad rund wirken
|
||||
|
||||
## Blocker
|
||||
Keine.
|
||||
|
||||
## Wichtige Regeln (zur Selbstkontrolle)
|
||||
- Keine Spielsprache im UI — "Arbeitsstand", "Stufe", "Durchgang" statt "Spiel…"
|
||||
- Alle 7 Werkzeuge in allen Stufen aktiv (Progressive Disclosure durch Tutorial + First-Buy-Hint ersetzt)
|
||||
- Autosave/Resume-Pflicht eingehalten
|
||||
- V1 unangetastet unter `App/fluss.html`
|
||||
|
||||
## SSL-Fix-Notiz für's Team
|
||||
`generate-sounds.py` braucht auf Windows mit Inkscape-Python
|
||||
`SSL_CERT_FILE=D:/Programme/Inkscape/lib/python3.9/site-packages/certifi/cacert.pem`.
|
||||
Sollte Atlas evtl. ins Skript defensiv einbauen oder in `crash-recovery.md` notieren.
|
||||
Reference in New Issue
Block a user