{% extends 'entity/layout.html.twig' %} {% from 'entity/layout.html.twig' import stats, rarity_stars, icon_img, currency_pill %} {% set entityName = armor.name %} {% set backCategory = 'armor' %} {% set backLabel = 'Armures' %} {% block detail %}
{{ icon_img(armor) }}

{{ armor.name }} {% include 'entity/_favorite_star.html.twig' with {favType: 'armor', favEntityId: armor.id} only %}

{% if armor.armorType %}{{ armor.armorType.name }}{% endif %} {% set slotLabels = {0:'Arme',1:'Bouclier',2:'Casque',3:'Torse',4:'Relique',5:'Essence'} %} {{ slotLabels[armor.slot] ?? '?' }} {{ rarity_stars(armor.rarity, armor.gameId) }}
{% if armor.description %}

{{ armor.description }}

{% endif %} {% if armor.specialEffect %}
Effet spécial
{{ armor.specialEffect }}
{% endif %} {% with {s: armor.stats} %} {% if s.pvMax or s.egMax or s.attaque or s.defense or s.arcane or s.sagesse or s.vitesse or s.finesse %}
Stats
{{ stats(s) }}
{% endif %} {% endwith %} {# ── Statistiques de combat (CaracteristicsTrait) ── #} {% set hasCombat = armor.accuracy is not null or armor.evasion is not null or armor.criticalRate is not null or armor.criticalEvasion is not null or armor.magicEvasion is not null or armor.physicalCounter is not null or armor.magicalCounter is not null or armor.regenPv is not null or armor.regenEg is not null or armor.regenPower is not null or armor.priority is not null or armor.bonusHit is not null or armor.threat is not null or armor.defenseRate is not null or armor.regenRate is not null or armor.healingRate is not null or armor.egCost is not null or armor.powerGains is not null or armor.physicalTaken is not null or armor.magicalTaken is not null or armor.xpGain is not null %} {% if hasCombat %}
Statistiques de combat
{% if armor.accuracy is not null %}Précision :{{ armor.accuracy }}%{% endif %} {% if armor.evasion is not null %}Esquive :{{ armor.evasion }}%{% endif %} {% if armor.criticalRate is not null %}Critique :{{ armor.criticalRate }}%{% endif %} {% if armor.criticalEvasion is not null %}Anti-critique :{{ armor.criticalEvasion }}%{% endif %} {% if armor.magicEvasion is not null %}Esquive magique :{{ armor.magicEvasion }}%{% endif %} {% if armor.physicalCounter is not null %}Contre physique :{{ armor.physicalCounter > 0 ? '+' }}{{ armor.physicalCounter }}%{% endif %} {% if armor.magicalCounter is not null %}Contre magique :{{ armor.magicalCounter > 0 ? '+' }}{{ armor.magicalCounter }}%{% endif %} {% if armor.regenPv is not null %}Rég. PV :{{ armor.regenPv > 0 ? '+' }}{{ armor.regenPv }}%{% endif %} {% if armor.regenEg is not null %}Rég. {{ ('resource.eg.' ~ armor.gameId)|trans({}, 'game') }} :{{ armor.regenEg > 0 ? '+' }}{{ armor.regenEg }}%{% endif %} {% if armor.regenPower is not null %}Rég. {{ ('resource.tp.' ~ armor.gameId)|trans({}, 'game') }} :{{ armor.regenPower > 0 ? '+' }}{{ armor.regenPower }}%{% endif %} {% if armor.priority is not null %}Priorité :{{ armor.priority }}{% endif %} {% if armor.bonusHit is not null %}Bonus coup :{{ armor.bonusHit }}{% endif %} {% if armor.threat is not null %}Menace :×{{ armor.threat }}{% endif %} {% if armor.defenseRate is not null %}Taux défense :×{{ armor.defenseRate }}{% endif %} {% if armor.regenRate is not null %}Taux rég. :×{{ armor.regenRate }}{% endif %} {% if armor.healingRate is not null %}Taux soin :×{{ armor.healingRate }}{% endif %} {% if armor.egCost is not null %}{% set pct = ((armor.egCost - 1) * 100)|round %}Coût {{ ('resource.eg.' ~ armor.gameId)|trans({}, 'game') }} :{{ pct > 0 ? '+' }}{{ pct }}%{% endif %} {% if armor.powerGains is not null %}Gains {{ ('resource.tp.' ~ armor.gameId)|trans({}, 'game') }} :×{{ armor.powerGains }}{% endif %} {% if armor.physicalTaken is not null %}Dég. phys. reçus :×{{ armor.physicalTaken }}{% endif %} {% if armor.magicalTaken is not null %}Dég. mag. reçus :×{{ armor.magicalTaken }}{% endif %} {% if armor.xpGain is not null %}Gain XP :×{{ armor.xpGain }}{% endif %}
{% endif %} {# ── Multiplicateurs de stats ── #} {% set multMap = { 'PvMax': {label: 'PV Max', value: armor.multiplierPvMax}, 'EgMax': {label: 'EG Max', value: armor.multiplierEgMax}, 'Attaque': {label: 'Attaque', value: armor.multiplierAttaque}, 'Defense': {label: 'Défense', value: armor.multiplierDefense}, 'Arcane': {label: 'Arcane', value: armor.multiplierArcane}, 'Sagesse': {label: 'Sagesse', value: armor.multiplierSagesse}, 'Vitesse': {label: 'Vitesse', value: armor.multiplierVitesse}, 'Finesse': {label: 'Finesse', value: armor.multiplierFinesse}, } %} {% set hasMult = multMap|filter(m => m.value is not null)|length > 0 %} {% if hasMult %}
Multiplicateurs de stats
{% for _, m in multMap %} {% if m.value is not null %} {% set pct = ((m.value - 1) * 100)|round %} {{ m.label }} : {{ pct > 0 ? '+' }}{{ pct }}% {% endif %} {% endfor %}
{% endif %} {# ── Aptitudes passives (flags booléens) ── #} {% set flags = [] %} {% if armor.bodyguard %}{% set flags = flags|merge(['Garde du corps']) %}{% endif %} {% if armor.keepsPower %}{% set flags = flags|merge(['Conserve ' ~ ('resource.tp.' ~ armor.gameId)|trans({}, 'game')]) %}{% endif %} {% if armor.halfEncounters %}{% set flags = flags|merge(['Rencontres ÷2']) %}{% endif %} {% if armor.noEncounters %}{% set flags = flags|merge(['Aucune rencontre']) %}{% endif %} {% if armor.noSurprises %}{% set flags = flags|merge(['Pas de surprise']) %}{% endif %} {% if armor.morePreventives %}{% set flags = flags|merge(['Plus de préventives']) %}{% endif %} {% if armor.doubleMoney %}{% set flags = flags|merge(['Argent ×2']) %}{% endif %} {% if armor.betterLoot %}{% set flags = flags|merge(['Meilleur butin']) %}{% endif %} {% if armor.noSkills %}{% set flags = flags|merge(['Compétences désactivées']) %}{% endif %} {% if flags is not empty %}
Aptitudes passives
{% for flag in flags %} {{ flag }} {% endfor %}
{% endif %} {% if armor.elementalResistance %}
Résistances élémentaires
{% for entry in armor.elementalResistance %} {% set res = ((1 - entry.multiplier) * 100)|round %}
{{ elementMap[entry.element_id] ?? '?' }} : {{ res > 0 ? '+' }}{{ res }}%
{% endfor %}
{% endif %} {% if armor.statusImmunity %}
Immunités
{% for id in armor.statusImmunity %}
{{ statusMap[id] ?? '?' }}
{% endfor %}
{% endif %} {% if armor.grantsSkills %}
Compétences accordées
{% for id in armor.grantsSkills %} {{ skillMap[id] ?? '?' }} {% endfor %}
{% endif %} {% include 'entity/_recipe_sections.html.twig' with { producedBy: producedBy ?? null, usedIn: usedIn ?? [], currentGameId: armor.gameId, craftedNoun: 'e', } only %}
{% endblock %}