--- instanz: heli stand: 2026-05-07 10:00 phase: V1 eingefroren (Hotfix-only), V3 in Vorbereitung — heute Live-State-Hook eingebaut --- # Heli-Instanz — Status ## Heute (2026-05-07) - **Live-State-Hook eingebaut** in [App/sims/heli/game.html](App/sims/heli/game.html) (`window.GGS_LIVE_STATE`, ~250 Bytes Snapshot mit phase, missionId, missionTitle, heliKey/Name, planIndex/Total/Correct, startScore, landingScore, totalStars, failed). Antwort an Atlas mit Vorschlag für 7 Standard-Vergleichsspalten in `_inbox/zentrale/2026-05-07-1000-heli-live-state-eingebaut.md`. - **V1 ist eingefroren** (Thomas-Direktive 2026-05-04). V3 wird im Unterordner `App/sims/heli/v3/` parallel aufgebaut, V1 bleibt unangetastet bis Switch. Der Live-Hook ist als rein additiver Read-Only-Eintrag explizit freigegeben. ## Rolle Heli-Rettungs-Modul: Code, TTS, Spielablauf, Waypoints, Routen, Landing. Plattform-Themen bei Atlas. ## Heute (2026-05-02 + 2026-05-03 — V1-Reduktion + Polish-Runde) - **V1-Audio-Set** mit Whitelist-Filter (`window.HELI_AUDIO_SET = 'v1'`): alle alten ~360 Audios bleiben physisch + im Code, werden zur Laufzeit vom Filter blockiert. V2 reaktivierbar mit `'v2'` ohne Code-Aenderung. - **66 neue V1-Audios** generiert (Nova female + Echo male wo Pilot*in spricht): - 25× `r_mission_geo_` — Geo-Audio pro Mission, gespielt zu Beginn Kartenflug (verschoben aus Plan-Phase) - 25× `r_mission_start_` — Tower + Heli + Auftrag + Freigabe - 6× `r_caution_` (+_m) — Achtung-Hinweis pro Szenario - 4× Flow: `r_patient_aboard`(_m), `r_kurs_klinik`(_m), `r_mission_success`, `r_mission_abort`(_m) - 6× Extras (+_m): `r_im_zielgebiet`, `r_warteschleife`, `r_start_erfolg` - **Funk-Pille** (oben mittig) zeigt waehrend laufender Sprachausgabe: Sprecher-Bild + Label + Untertitel + Restzeit-Balken. Shared Modul [scripts/funk-pille.js](App/sims/heli/scripts/funk-pille.js) in allen 3 HTMLs + Drehbuch-Tool. - **8 Sprecher-Portraits** (Tower, Briefing, 4 Pilot*innen male/female, Flugretter, Sanitaeterin) im Logistik-Flat-Scandinavian-Stil. - **Pilot-Geschlecht je Heli-Stuetzpunkt** im speakers.json pilot_by_helikey + tower_city_by_helikey: m/f-Audio-Routing in setPhase. - **12 Stadt-Panoramen** (Linz/Klagenfurt/St.Poelten/Bregenz/Eisenstadt/ Villach/Wels/Dornbirn/Wr.Neustadt/Steyr/Feldkirch/Leoben) im Flat-Scandinavian-Stil + 4 vorhandene aus Logistik (Wien/Graz/Salzburg/ Innsbruck) → alle 16 Heli-Staedte mit Panoramen. - **4 Heli-Typen** (EC135 Fenestron, H145, AW169 Polizei, AB212 Bundesheer) im neuen Stil als Quartett-Cards in `/heli-uebersicht`. - **Hubschrauber-Rotor-Loop** (`heliFly.mp3`) im Kartenflug. - **Routen-Filter** (selectMission): Wegpunkte mit < 2 km Abstand zum vorigen werden uebersprungen — fix fuer 11 Missionen mit redundantem Endpunkt (M11 Donau, M19 Glockner, M21 Hochschwab, M23 Woerthersee, M15 Sattledt, M16 Traunsee, M13 Rax, M20 Dachstein, M12 Schneeberg, M18 Wolfgangsee, M1 Damuels). - **Briefing-Screen**: Pipe sofort leeren beim Eintritt, Button "🚁 Startfreigabe in Kuerze" → "🚁 Startfreigabe" nach 600 ms. - **iPad-Plan-Phase kompakter**: Schriftgroessen reduziert (1.35rem → .95rem, Briefing-Grid 1.2rem → .95rem). - **HUD-Konsistenz**: G-Graph in start.html entfernt; Sinkraten-Vertikalbalken am Heli auf ALLE Landungen ausgeweitet (vorher nur Autobahn) mit Schwellen-Linien bei 170/200 px/s; Wind-Kompass-SVG auch in landing.html (analog start). - **Autobahn-Polish**: Landezone heller (Alpha 0.65–1.0, weisser Border), Personen doppelt so gross gezeichnet (8×20 + 6 px Kopf statt 4×10 + 3), neue Caution-Audios mit "Flug auf Sicht". - **Hauptmenue-Link** in der Einsatzzentrale (← Hauptmenue → Cockpit). - **Heli-Drehbuch-Tool** (`/heli-drehbuch`) auf V1-Schema reduziert (~7 Audios pro Mission), Karten zeigen Sprecher-Bild + Label. - **/heli-uebersicht V2 komplett**: 33 Heli-Stuetzpunkte mit Quartett- Popups, 16 Staedte mit Panorama-Bildern + Fakten + Wiki, 14 Berggipfel, 25 Mission-Zielmarker, Filter-Pills (Alles/Stuetzpunkte/Staedte/ Berge/Missionen). ## Vorher (2026-04-27, fruehe Nacht — Folge-Runde nach 26.04.) - **Plan-Phase Geo-Audios pro Wegpunkt** (86 Audios per OpenAI TTS Nova generiert, basierend auf `geo_waypoint_facts` aus DB): - Beim zu suchenden Wegpunkt geht `r_wp_geo_` in die Pipe. - Korrekter Klick: naechster Wegpunkt queuet, vorhergehendes spielt zu Ende. Treffer-Audio nur wenn Pipe leer. - Falscher Klick: laufendes Audio fadet in 120 ms aus, Fail-Audio sofort via neuem `priority: 'now'`-Modus (umgeht 10-s-Gap). - Briefing-Screen wartet, bis Pipe leer **gesprochen** ist (`isFlightPipeSpoken`, ohne 10-s-Gap zu warten); Start-Button erst dann klickbar — keine Audio-Ueberlagerung mit Anflug. - `r_tower_geo_` und `r_nav_heli_intro_` aus Briefing entfernt (Geo-Inhalt jetzt pro Wegpunkt). - **Globaler Fehlklick-Counter** statt pro-Wegpunkt: 15 Fehler insgesamt pro Mission, dann Pilot-Takeover. Hinweisliste auf 5 Eintraege (FIFO). `game.planLog` wird beim richtigen Klick geleert (Anzeige verschwindet), `game.planAttempts` bleibt mission-global. - **Zwischenlandungs-Audios** (Level 2): bei `intermediateRequired` spielen `r_retter_intermediate` + `r_pilot_land_smoke` / `r_pilot_land_clinic` statt Warteschleife-Audios. HUD-Phase-Pille zeigt "Zwischenlandung Klinik/Rauchsignal — warten". - **Mission-ID-Badge** oben links fix-positioniert (M1..M25), in allen Phasen sichtbar (auch ueber den Iframes via z-index 9000). Wird in `selectMission` gesetzt, in `setPhase('mission')` ausgeblendet. - **Speed-Buttons (1×/2×/4×)** im Kartenflug entfernt — Default `flightSpeed = 1` bleibt. ## Vorher (2026-04-26) - **Faktentreue durchgesetzt** — alle erfundenen Tower-Namen und geographischen Falschaussagen korrigiert - **Stützpunkt-Tabelle als Heiligtum** — 14 aktive ÖAMTC-Stützpunkte, ARA Hohenems raus aus Spielbetrieb, Hohenems bleibt als Polizei-POI mit Click-Popup - **Geo-Lehrinhalt umgezogen** von Phase 5 (Einsatz) in Phase 2 (Routenplanung-Briefing) — saubere didaktische Trennung - **Audio-Pipe** mit TTL/Priority in allen drei HTMLs - **44 Audios** mit korrigiertem Text neu generiert - **Sammelreport** an Atlas gegangen - **15:30 Nachschlag (Thomas-Feedback nach Durchspielrunde):** - Mindestabstand zwischen Audios von 400 ms auf **10 s** erhöht (Crash/Notfall-Priority bypassed weiter), TTL auf 120 s, damit Queue nicht waehrend der 10-s-Pause verfaellt - **Heli-Einsatzraum-Intro** (`r_nav_heli_intro_`) raus aus Kartenflug, rein in Plan-Briefing — laeuft jetzt mit `tower_geo` seriell durch die Pipe (10 s Abstand) - **18:00 Autobahn-Realismus + Spawn-Fix (Thomas-Feedback):** - **Seil-Audios bei Autobahn raus**: hover_drop und extract spielten `land_winch_down`/`land_lift_success` (Seilrettung) — passt nicht zur Direktlandung. Drei neue Audios generiert (`pilot_hw_ground_hold`, `retter_hw_patient_in`, `pilot_hw_clinic_lift`) und in setPhase auf isHighway gebrancht. - **Gaffer + Einsatzwagen patrouillieren um die Landezone**: vorher konzentrierten sie sich am Unfallort. Jetzt 6–8 Gaffer mit Patrouillen-Bereich +/-260 px um die Aufsetzzone, Einsatzwagen oszilliert mit +/-320 px. Gehen in beide Richtungen, kreuzen gelegentlich die Zone — echte Hindernisse fuer den Bearbeiter. - **Heli-Spawn nicht mehr am Unfallort**: `findHeliSpawn` hatte Heli auf `WORLD_W * 0.5` (Mitte) gesetzt — bei Wasser/Autobahn landete der Heli teils direkt neben dem Patienten. Jetzt fuer flache Szenen 2400 px auf der Gegenseite des Patienten. Plus `patient.zone` aus der tatsaechlichen Position abgeleitet, damit Heli-Facing stimmt. - **17:00 Naechste Runde:** - **A14-Autosuccess-Bug** behoben: 120-s-Timeout in game.html machte den Einsatz still erfolgreich, wenn der Bearbeiter wartete. Jetzt 5 min und als Failure mit Reason "Patient nicht zur Klinik". - **Fade-Out bei Phasen-Wechsel** (180 ms) in allen drei HTMLs — eigene fadeGain-Node pro Sprach-Source, wird beim Phasen-Wechsel sanft auf 0 gerampt. Game.html postet bei jedem setPhase die Message `heli_fade_audio` an die iframes, die in start/landing `clearSpeechPipe()` aufrufen. - **Autobahn-Landezone-Sichtpruefung** als didaktischer Pflichtteil: drei neue Audios (`r_pilot_hw_zone_check/blocked/clear`). `_check` schaltet im approach1 nach 22 s als praeventive Mahnung, `_blocked` triggert dynamisch wenn Person/Fahrzeug in der Aufsetzzone, `_clear` einmalig wenn Zone wieder frei. - **Atlas-4-Punkte** komplett: Karten-Link 📍 in mission/plan-Phase, iframe-Cache-Buster `&_cb=Date.now()` fuer iPad, Mission-Marker auf `/heli-uebersicht` (rote Kreise mit ID-Badge, Filter-Pills Alles/Stuetzpunkte/Missionen), Konzept-Skizze fuer Landingpage in `_inbox/zentrale/2026-04-26-1700-heli-landingpage-konzept.md`. ## Diese Tage gesamt Siehe [Atlas-Report 2026-04-26](App/sims/_inbox/zentrale/2026-04-26-1500-heli-grosse-runde-report.md): - Audio-Architektur komplett neu (Pipe, Priorities) - Faktentreue (Bregenz Tower raus, Drau-Adria gefixt etc.) - Plan-Phase: Geo-Lehrinhalt + Pilot-Takeover nach 15 Versuchen - Landing: Pad-Toleranzfenster, zweistufiger Pickup, disembark 6 s - Autobahn: Gaffer + Einsatzwagen + Pilot-Warnung - iPad-Joystick statt drei Pfeile - Audio-Übersichts-Seiten (overview + matrix) - Briefing-Musik Patagonia Stringmap ## Offen (V2-Backlog, Modul ruhend) - **Wetter-System** (Gewitter/Nebel/Sturm) als didaktische Begruendung fuer Routen-Umwege im Plan + Visualisierung auf Plan-Karte. Konzept-Skizze siehe Chat-Verlauf 2026-04-27. - **V2-Audio-Set reaktivieren** durch `window.HELI_AUDIO_SET = 'v2'` (alle alten ~360 Audios bleiben im Code-Pfad, nur durch V1-Filter blockiert). Wenn Thomas mehr Audio-Inhalt will, einfach umschalten. ## Wartet auf externe Antworten - **Pre/Post-Quiz-Hook** — wartet auf `.ggs-quiz`-Design-System-Komponente - **Lehrplan-Anker** — Lehrplan-Instanz übernimmt - **Heli-Landingpage `/heli`** — Konzept-Skizze liegt bei Atlas in `_inbox/zentrale/2026-04-26-1700-heli-landingpage-konzept.md` ## Nicht aktiv geplant - ARA-Reutte als zusätzlicher Stützpunkt (falls später Wunsch) - Polizei-Hohenems könnte als 2. Klick-Mission ausgebaut werden (Suchflug-Modus) - Alte Pilot-Witz-Audios endgültig löschen (Rollback-Option) ## Blocker **Keine.**