{% extends "base.html" %} {% block content %} {% if session %}
Session #{{ session.id }} — {{ session.name }} Jour {{ session.current_day }} / Tick {{ session.current_tick }}h {{ session.mode | upper }} {% set st = session.status %} {{ st | upper }} Seed: {{ session.seed_global }} ↻ Actualiser
{% endif %}
PNJ Vivants
{{ alive_count }}
PNJ Morts
{{ stats.get('PNJ morts', 0) }}
Total PNJ
{{ total_count }}
Combats
{{ stats.get('Combats', 0) }}
Rencontres
{{ stats.get('Rencontres', 0) }}
Événements
{{ stats.get('Événements total', 0) }}

👥 PNJ ({{ alive_count }}/{{ total_count }})

{% for c in characters %} {% set pct = (c.hp / c.max_hp * 100) | int if c.max_hp else 0 %} {% endfor %}
TierNomPVFactionZoneCaps
{% if c.tier == 0 %}★ BOSS {% elif c.tier == 2 %}T2 {% elif c.tier == 3 %}T3 {% else %}T1{% endif %} {{ c.name }} {% if c.is_alive %} {{ c.hp }}/{{ c.max_hp }} {% else %}{% endif %} {% set f = c.faction_slug or 'sans' %} {{ f[:14] }} {{ (c.location_slug or '—')[:16] }} {{ c.caps }}¢

📡 Événements récents

{% for ev in events %} {% endfor %} {% if not events %}{% endif %}
J/TTypeDescription
{{ ev.day }}/{{ ev.tick }} {{ ev.event_type }} {{ ev.description[:90] }}{% if ev.description|length > 90 %}…{% endif %}
Aucun événement

🗺 État du monde

{% for ws in world_state %}
{{ ws.location_slug }} 🍖 {{ ws.food_level or 0 }}% 💧 {{ ws.water_level or 0 }}% 🛡 {{ ws.security_level or 0 }}% 👤 {{ ws.pop_count or 0 }}
{% endfor %} {% if not world_state %}

Pas de données monde

{% endif %}

⚔ Relations factions

{% for r in faction_relations %} {% set cls = 'rel-hostile' if r.relation_score < -20 else 'rel-allie' if r.relation_score > 20 else 'rel-neutral' %} {% endfor %} {% if not faction_relations %}{% endif %}
Faction AFaction BScoreÉtat
{{ r.faction_a[:14] }} {{ r.faction_b[:14] }} {{ r.relation_score }} {{ r.relation_label or ('HOSTILE' if r.relation_score < -20 else 'ALLIÉ' if r.relation_score > 20 else 'NEUTRE') }}
Pas de données

🎭 PNJ par tier

{% for row in tier_stats %} {% endfor %}
TierLabelVivantsMorts
{{ row.tier }} {{ row.label }} {{ row.alive }} {{ row.dead }}

🏙 PNJ par zone (top 5)

{% for row in zone_stats %} {% endfor %}
ZonePNJ
{{ row.location_slug }} {{ row.cnt }}

⚡ Rencontres récentes

{% for ev in encounters %} {% endfor %} {% if not encounters %}{% endif %}
J/TTypeActeurZoneDescription
{{ ev.day }}/{{ ev.tick }} {{ ev.event_type }} {{ ev.actor_name or '—' }} {{ (ev.location_slug or '—')[:16] }} {{ ev.description[:90] }}{% if ev.description|length > 90 %}…{% endif %}
Aucune rencontre
{% if boss_inventory %}

★ Équipement chefs de faction

{% for row in boss_inventory %} {% endfor %}
BossItemTypeQtéÉquipé
{{ row.char_name }} {{ row.item_name }} {{ row.item_type }} {{ row.quantity }} {{ '✓' if row.is_equipped else '' }}
{% endif %}
Tick global :
📚 Sim Vérité sources : fallout_lore + fallout_sim_rules uniquement
Session : #{{ current_sid }}
Arrêtée
{% endblock %}