feat: PipBoy rename, /lore tab fix, run.py status check loop, crash test script

This commit is contained in:
Corback
2026-06-16 08:53:02 +00:00
parent a16d671db4
commit bbfd2dc45f
2 changed files with 344 additions and 1 deletions
+18 -1
View File
@@ -67,7 +67,10 @@ def run(config_path: str | None = None):
# Initialiser le world_state si vide
_init_world_state(SESSION_ID, day)
STATUS_CHECK_INTERVAL = 5 # vérifier le statut DB toutes les N ticks
try:
tick_count = 0
while True:
tick_engine.process_tick(SESSION_ID, day, current_tick, effective_mode)
db.update_session_tick(SESSION_ID, day, current_tick)
@@ -75,9 +78,23 @@ def run(config_path: str | None = None):
if tick_sleep > 0:
time.sleep(tick_sleep)
# Vérification statut + reset DB (permet stop/pause/reset depuis le dashboard)
tick_count += 1
if tick_count % STATUS_CHECK_INTERVAL == 0:
live = db.get_session(SESSION_ID)
if live and live["status"] != "active":
print(f"\n[DASH] Statut changé → '{live['status']}' — arrêt propre.")
print(f" Dernier état : Jour {day}, Tick {current_tick}h")
return
# Détecter reset jour/tick : si la DB est en arrière de >1 jour, c'est un reset intentionnel
if live and live["current_day"] < day - 1:
print(f"\n[DASH] Reset détecté (DB: J{live['current_day']} vs sim: J{day}) — relecture position.")
day = live["current_day"]
current_tick = live["current_tick"]
day, current_tick = tick_engine.next_tick(day, current_tick)
# Début d'un nouveau jour : hot-reload config depuis le JSON (permet les changements dashboard)
# Début d'un nouveau jour : hot-reload config depuis le JSON
if current_tick == 0:
cfg.load(config_path, session_id=SESSION_ID)
effective_mode = cfg.mode() or db_mode