| """Day phase timing stats and open-shop duration helpers.""" | |
| from __future__ import annotations | |
| from game.sim.day_cycle import DayCycle, Pace, Phase, auto_phase_total | |
| def expected_open_seconds(pace: Pace = Pace.NORMAL) -> float: | |
| return float(auto_phase_total(pace)) | |
| def phase_limit(base: float, pace_multiplier: float) -> float: | |
| return float(base) * float(pace_multiplier) | |
| def phase_order() -> list: | |
| return [p.value for p in (Phase.PREP, Phase.MORNING, Phase.AFTERNOON, Phase.DUSK, Phase.CLOSING, Phase.NIGHT)] | |