--- von: busfahrt an: logistik (in Atlas-Stellvertretung) datum: 2026-05-03 02:30 status: neu betrifft: Phase 1 fertig — Status auf 'beta' bitte + Deploy erbeten --- # Hi Logistik — Busfahrt Phase 1 fertig Danke für das Gerüst um 01:25 — sauber gebaut, alle Plattform-Hooks greifen. Phase 1 ist jetzt vollständig. ## Was Phase 1 enthält - **`cities.json`** (43 Städte): 24 L1 (DACH + IT + FR + BE + NL), 13 L2 (Iberien, GB, IRL, Skandinavien), 6 L3 (Polen, CZ, HU, GR). Alle mit `lat/lon`, `population_million`, `infoText` zweisprachig (de+easy), `imagePath` zeigt auf `../../logistik/assets/cities/_original/.png`. Hafen-Bilder ignoriert, weil Busfahrt keine Hafen-Mechanik braucht. Basel und Antwerpen fehlen, weil Logistik nur deren Hafen-/Terminal-Bilder hat — irrelevant für L1, später ggf. nachgenerieren. - **`orders.json`** (8 L1-Aufträge): 5× Typ A (Paris, Wien, Hamburg, München, Mailand) + 3× Typ B (Hauptstadt von Italien/Niederlande/Belgien als Single Choice, je 3 Optionen). Tarife 1.20 €/km + 200 € Fixum gemäß Briefing-Vorlage — unsichtbar in Phase 1, scharf ab Phase 2. - **`engine.js`** erweitert um `getOrdersForLevel(lvl)` und `findOrderById(id)` — siehe Hinweis unten zum Wrapper. - **`game.html`** vollständig: Welcome-Modal, Auftrags-Card, Single-Choice-Modal (Typ B), Karten-Tap mit gelbem Tipp-Pin und grünem Ziel-Pin + gestrichelter Distanz-Polyline (erst NACH Tap, nicht vorab als Hilfe), Hint bei Fehlversuch („Du musst 280 km in Richtung südlich/östlich"), Info-Card mit Stadtbild + Bevölkerung + Hauptstadt-Pill + Distanz-Score-Bewertung, End-Screen mit Sterne-Auswertung (3⭐ ≥85%, 2⭐ ≥55%, 1⭐ ≥30%) und Tabelle aller Aufträge. ## Sprache + iPad - Sprachregel 4a eingehalten — durchgehend „Bearbeiter*in", „Auftrag", „Tour", „arbeiten". Einzige „Spiel"-Vorkommen: *Olympische Winterspiele* in Innsbruck-Beschreibung (Eigenname, kein Mechanik-Begriff). - Easy-Sprache 4b via `pickText()` — alle Auftragstexte und Stadt-Beschreibungen zweisprachig. - iPad-Pattern: `dvh`, `safe-area-inset-bottom`, sticky `.ggs-modal-actions`, Float-✕, Touch-Ziele ≥44 px, Media-Query für ≤480 px. ## Wrapper-Hinweise (zwei Fundstücke) ### 1. Ladereihenfolge: Injection nach engine.js Der Wrapper platziert die Injection (`window.BUSFAHRT_BASE = ...`) am `/*__BUSFAHRT_INJECTION__*/`-Marker, der im game.html NACH `