openthebox/proposals_3.md
Samuel Bouchet 6e5bc6e35e Implement proposals_3.md: box rarity fix, ASCII categories, separators, crafting hints
- Fix box rarity display to use box definition rarity in detail panel
- Replace emoji category icons with ASCII abbreviations (BOX, CSM, MAT, etc.)
- Add category separator rows between groups in non-compact inventory
- Show equipped/not equipped status for cosmetic items
- Show crafting recipe hints for materials when workstations are unlocked
- Add rarity stars (★) in loot reveal table for Rare+ items
2026-03-14 09:40:49 +01:00

4.5 KiB

Propositions d'améliorations du rendu (Round 3)

Basé sur l'analyse des captures PlaythroughCapture et InventoryRenderCapture après implémentation de proposals_2.md.

1. Rareté des boîtes mal présentée dans le détail

Constat : Le panneau de détail des boîtes affiche la rareté comme texte brut ("Légendaire", "Rare") sur une ligne isolée sans label. De plus, la rareté affichée provient de la définition de box (Rare, Legendary) tandis que la première ligne montre "(Commun)" — qui est la rareté item. C'est confus.

Solution : Afficher la rareté de la boîte avec un label clair, par exemple "Rarity: Legendary" avec la couleur appropriée, et supprimer la rareté item "(Commun)" de la première ligne pour les boîtes, ou la remplacer par la rareté box.

2. Catégorie emoji illisible en plain text ("??")

Constat : Les icônes emoji de catégorie (📦, 🧪, etc.) se rendent en "??" dans les captures plain text et dans certains terminaux non-Unicode. Cela rend la colonne catégorie inutile.

Solution : Utiliser des abréviations ASCII comme fallback quand le rendu est en mode NoColors/plain : BOX, CSM, LOR, ADV, KEY, COS, MAT, CRF, MET, COK, MUS. Garder les emojis pour le mode couleur.

3. Séparateur visuel entre catégories d'inventaire

Constat : L'inventaire affiche tous les objets dans une liste plate. Quand le joueur a 80+ types d'objets, il est difficile de distinguer visuellement les boîtes des consommables des matériaux.

Solution : Ajouter une ligne séparatrice légère ou un en-tête de groupe quand la catégorie change dans le tableau d'inventaire (ex: une ligne vide ou un séparateur "---" entre les groupes).

4. Détail cosmétique sans statut d'équipement

Constat : Le panneau de détail des cosmétiques affiche seulement "Emplacement: Yeux" sans indiquer si l'objet est actuellement équipé ou non.

Solution : Ajouter un indicateur "[Equipped]" / "[Équipé]" quand le cosmétique correspond à l'apparence actuelle du joueur. Clés : "inventory.equipped": "Equipped", "inventory.not_equipped": "Not equipped".

5. Détail matériau avec recettes de crafting

Constat : Le détail des matériaux affiche uniquement "Bronze (Lingot)" sans contexte. Le joueur ne sait pas si ce matériau sera utile.

Solution : Si des workstations sont débloquées, afficher les recettes connues qui utilisent ce matériau. Sinon, afficher "Used in crafting" / "Utilisé en artisanat" comme hint.

6. Résumé compact des ressources dans le loot reveal

Constat : L'inline resource summary (Proposal 4 original) fonctionne mais n'est pas localisé proprement. Le format [Health 5/10 | Gold 3/5] utilise les noms en anglais plutôt que les noms localisés.

Solution : S'assurer que le résumé inline des ressources utilise _loc.Get() pour les noms de ressources (déjà fait dans le code, vérifier que les noms sont bien localisés dans toutes les situations).

7. Icône de rareté dans le loot reveal

Constat : Le loot reveal en mode tableau affiche le nom et la rareté mais sans indicateur visuel distinctif pour les drops rares/épiques/légendaires. Tout se ressemble.

Solution : Ajouter un symbole devant les items de rareté élevée dans le loot reveal : ★ pour Rare, ★★ pour Epic, ★★★ pour Legendary, ★★★★ pour Mythic.

8. Nombre total de boîtes ouvertes dans le header de l'inventaire

Constat : L'en-tête de l'inventaire montre "Inventaire (1-15/83)" avec le nombre de types d'objets mais pas le nombre total de boîtes ouvertes, ce qui est une métrique de progression clé.

Solution : Ajouter le compteur de boîtes dans le sous-titre de l'inventaire quand il est en mode compact (dans le full layout) : "Inventaire (15 types) | 200 boxes".

9. Temps de jeu formaté de manière plus lisible

Constat : Le temps de jeu dans le StatsPanel affiche "0m 00s" en test, mais en jeu réel il affichera "45m 23s" ou "2h 15m". Le format pourrait être plus lisible.

Solution : Utiliser un format adaptatif : "23s" pour < 1min, "5m 23s" pour < 1h, "2h 15m" pour < 24h, "1d 2h" pour >= 24h. Supprimer les zéros non significatifs.

10. Indication du nombre de recettes disponibles pour un matériau

Constat : Avec la proposition 5 ci-dessus, on peut afficher les recettes, mais le joueur devrait aussi savoir combien d'ingrédients il a vs. combien sont nécessaires.

Solution : Dans le détail matériau, afficher pour chaque recette connue si le joueur a suffisamment d'ingrédients ou combien il lui manque : "Bronze Ingot (2/3 needed)".