{% extends 'base.html.twig' %} {% block title %}CSI World — {{ entityName ?? 'Détail' }}{% endblock %} {% block stylesheets %} {% endblock %} {# ── Shared macros ─────────────────────────────────────────────────────── #} {% macro stats(s) %}
PV {{ s.pvMax != 0 ? (s.pvMax > 0 ? '+' : '') ~ s.pvMax : '—' }}
EG {{ s.egMax != 0 ? (s.egMax > 0 ? '+' : '') ~ s.egMax : '—' }}
ATQ{{ s.attaque != 0 ? (s.attaque > 0 ? '+' : '') ~ s.attaque : '—' }}
DEF{{ s.defense != 0 ? (s.defense > 0 ? '+' : '') ~ s.defense : '—' }}
ARC{{ s.arcane != 0 ? (s.arcane > 0 ? '+' : '') ~ s.arcane : '—' }}
SAG{{ s.sagesse != 0 ? (s.sagesse > 0 ? '+' : '') ~ s.sagesse : '—' }}
VIT{{ s.vitesse != 0 ? (s.vitesse > 0 ? '+' : '') ~ s.vitesse : '—' }}
FIN{{ s.finesse != 0 ? (s.finesse > 0 ? '+' : '') ~ s.finesse : '—' }}
{% endmacro %} {% macro stat_changes(entries, kind) %} {% if entries %} {% set lbl = {pvMax: 'PV Max', egMax: 'EG Max', attaque: 'Attaque', defense: 'Défense', arcane: 'Arcane', sagesse: 'Sagesse', vitesse: 'Vitesse', finesse: 'Finesse'} %} {% set isBuff = kind == 'buff' %} {% set verb = isBuff ? 'Augmente' : 'Diminue' %} {% set cls = isBuff ? 'heal' : 'dmg' %} {% for entry in entries %}
{{ verb }} {{ lbl[entry['stat']] ?? entry['stat'] }} : {{ entry['turns']|default(0) }} tour{{ entry['turns']|default(0) != 1 ? 's' }}{% if entry['level'] is defined and entry['level'] > 1 %} ({{ entry['level'] }} niveaux){% endif %}
{% endfor %} {% endif %} {% endmacro %} {% macro rarity_stars(n, gameId) %} {% if n > 0 %}{% set m = {1:{r:255,g:255,b:255,l:'Commun'},2:{r:12,g:201,b:12,l:'Peu commun'},3:{r:81,g:168,b:245,l:'Rare'},4:{r:197,g:84,b:235,l:'Remarquable'},5:{r:255,g:150,b:0,l:'Légendaire'},6:{r:255,g:0,b:102,l:'Unique'},7:{r:255,g:255,b:128,l:'Héroïque'},8:{r:255,g:105,b:180,l:'Séraphin'},9:{r:0,g:255,b:255,l:'Nacré'},10:{r:189,g:135,b:255,l:'Surnaturel'},11:{r:18,g:255,b:148,l:'Fabuleux'},12:{r:235,g:52,b:128,l:'Immaculé'}} %}{% if m[n] is defined %}{% set r = m[n] %}{# Override couleur NS : Hérétique (rareté 7) en rouge #}{% if gameId == 3 and n == 7 %}{% set r = r|merge({r:220, g:40, b:50}) %}{% endif %}{% set overrideKey = 'rarity.label.' ~ (gameId ?? '_') ~ '.' ~ n %}{% set overrideLabel = overrideKey|trans({}, 'game') %}{% set label = overrideLabel != overrideKey ? overrideLabel : r.l %}{{label}}{% endif %}{% endif %} {% endmacro %} {# Affiche un montant + le nom et l'icône de la monnaie principale du jeu. - gameId 3 (Narval Souls) → "Orbes" + /images/money_narval_souls.png (asset statique) - autres jeux → "Dollawrs" + icône CSI Forever id 1246 (icône in-game) #} {% macro currency_pill(amount, gameId) %} {% set name = ('currency.name.' ~ gameId)|trans({}, 'game') %} {{ amount }} {{ name }} {% if gameId == 3 %} {% else %} {% endif %} {% endmacro %} {% macro icon_img(entity, size) %} {% set sz = size ?? 64 %} {% if entity.icon is defined and entity.icon %} {% set route = {0: 'icon_csi_forever', 3: 'icon_narval_souls'}[entity.gameId] ?? null %} {% if route %} {% else %}
?
{% endif %} {% else %}
✦
{% endif %} {% endmacro %} {% block body %}
{% if backRoute is defined %} {{ backLabel ?? 'Encyclopédie' }} {% else %} {{ backLabel ?? 'Encyclopédie' }} {% endif %} / {{ entityName ?? 'Détail' }}
{% block detail %}{% endblock %}
{% if app.user %} {% endif %} {% endblock %}