# Billeterie – flux complet **Objectif :** Flux d’entrée/sortie conforme aux specs : heures d’ouverture 08h–20h, entrée limitée à 1 visiteur/s, départs après durée de séjour, affluence selon l’heure. **Référence :** docs/specs/billeterie.md, visiteur.md, inventaire_heures.md ; plan docs/plan-implementation-specs-animaux-billeterie.md. ## Impacts - **Entrée :** uniquement quand `timeOfDay` dans [OpenHour, CloseHour). Nombre de nouveaux visiteurs par tick plafonné par `MaxEntryPerSecond * secondsPerTick`. - **Départs :** déjà en place (`getStayDurationSeconds`, filtre `arrivedAt + stayDuration`). - **Demande :** `getVisitorDemand` multiplié par un coefficient selon l’heure (08h–10h faible, 10h–16h fort, 16h–18h décroissant, 18h–20h faible, nuit nul). ## Modifications - **web/js/config.js** : `Billeterie.OpenHour`, `Billeterie.CloseHour`, `Billeterie.MaxEntryPerSecond`. - **web/js/income.js** : dans `tickVisitorArrivals`, ne pas ajouter de visiteurs si hors créneau ; plafonner les ajouts par tick avec `MaxEntryPerSecond` et `IncomeTickMs` ; `getVisitorDemandHourMultiplier(timeOfDay)` appliqué dans `getVisitorDemand`. ## Modalités de déploiement Client uniquement. Rechargement suffit. ## Modalités d'analyse - Nuit (timeOfDay < 8 ou >= 20) : aucun nouveau visiteur n’entre. - Jour : nouveaux visiteurs jusqu’à cap et demande, avec au plus 1/s réels (selon tick interval).