---
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_<id>` — Geo-Audio pro Mission, gespielt zu Beginn
    Kartenflug (verschoben aus Plan-Phase)
  - 25× `r_mission_start_<id>` — Tower + Heli + Auftrag + Freigabe
  - 6× `r_caution_<scen>` (+_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_<wp_key>` 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_<missionid>` und `r_nav_heli_intro_<heliKey>` 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_<key>`) 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.**
