openthebox/suggestions_2.md
Samuel Bouchet 71a35cd19d Improve inventory UX: localized names, smart sorting, icons, box details, lore progress
- Resolve box names via BoxDefinition.NameKey instead of showing raw IDs
- Reorder inventory categories: Box → Consumable → Lore → Cosmetic → Material → Meta
- Replace English category/rarity text with emoji icons and localized rarity labels
- Show box description in detail panel when selecting a box item
- Add lore collection progress counter (N/10) in lore fragment detail panel
- Add FR rarity translations (Commun, Peu commun, Rare, Épique, Légendaire, Mythique)
2026-03-13 23:36:50 +01:00

4.7 KiB

Suggestions d'amélioration #2

Basées sur l'analyse des rendus InventoryRenderCapture et PlaythroughCapture.

# Suggestion Priorité Statut
1 Noms localisés pour les boîtes dans l'inventaire ★★★★★ DONE
2 Tri de l'inventaire : consommables et lore avant matériaux ★★★★★ DONE
3 Colonnes Category/Rarity localisées ★★★★☆ DONE
4 Panneau de détail pour les boîtes (contenu possible) ★★★★☆ DONE
5 Compteur de lore collectés (N/10) dans le panneau détails ★★★★☆ DONE
6 Icônes/emojis par catégorie dans l'inventaire ★★★☆☆
7 Résumé de l'inventaire dans le panneau compact (nombre par catégorie) ★★★☆☆
8 Panneau de détail pour les items Meta (explication du feature) ★★★☆☆
9 Message de bienvenue adaptatif au nombre de boîtes ouvertes ★★☆☆☆
10 Indicateur visuel de scroll restant (↑↓ en haut/bas du tableau) ★★☆☆☆

1. Noms localisés pour les boîtes dans l'inventaire — ★★★★★

Constat : Les boîtes apparaissent avec leur ID technique (box_not_great, box_legendhair, box_meta_basics) au lieu de leur nom localisé. C'est le défaut visuel le plus flagrant dans l'inventaire.

Solution : Dans InventoryPanel.GetGroupedItems() ou Render(), quand l'item n'a pas de ItemDefinition (c'est une boîte), résoudre le nom via le BoxDefinition.NameKey du registre.

2. Tri de l'inventaire : consommables et lore avant matériaux — ★★★★★

Constat : L'ordre actuel (Box, Cosmetic, Material, Consumable, Meta, LoreFragment…) met les items interactifs (consommables, lore) loin dans la liste, après des dizaines de cosmétiques et matériaux non-actionnables.

Solution : Modifier l'ordre de tri dans GetGroupedItems() pour prioriser : Box → Consumable → LoreFragment → Cosmetic → Material → Meta → reste.

3. Colonnes Category/Rarity localisées — ★★★★☆

Constat : Les colonnes "Cat." et "Rarity" affichent les valeurs enum en anglais (Consumable, Uncommon, Material) même en locale FR. Ça casse l'immersion.

Solution : Ajouter des clés de localisation category.box, category.consumable, rarity.common, rarity.uncommon, etc. et les utiliser dans Render().

4. Panneau de détail pour les boîtes (contenu possible) — ★★★★☆

Constat : Sélectionner une boîte dans l'inventaire ne montre aucun détail utile. Le joueur ne sait pas ce qu'elle peut contenir.

Solution : Ajouter un cas ItemCategory.Box dans RenderDetailPanel() qui affiche le nom localisé de la boîte et un indice sur son contenu (rareté, thème).

5. Compteur de lore collectés (N/10) dans le panneau détails — ★★★★☆

Constat : Quand on sélectionne un fragment de lore, on ne sait pas combien on en a collecté sur le total (10). C'est une mécanique de collection qui bénéficierait d'un indicateur de progression.

Solution : Compter les lore_* distincts dans l'inventaire et afficher "Fragments : 3/10" dans le panneau de détail des lore.

6. Icônes/emojis par catégorie dans l'inventaire — ★★★☆☆

Constat : La colonne catégorie est textuelle et prend de la place. Des icônes compactes seraient plus lisibles.

Solution : Remplacer le texte de catégorie par des emojis (📦 Box, 🧪 Consumable, 📜 Lore, 👗 Cosmetic, 🔩 Material, ⚙ Meta).

7. Résumé de l'inventaire dans le panneau compact — ★★★☆☆

Constat : En mode compact (FullLayout), seuls 6 items sont visibles, sans indication du nombre total par catégorie.

Solution : Ajouter une ligne de pied de tableau montrant un résumé : "📦3 🧪5 📜2 👗12 🔩8".

8. Panneau de détail pour les items Meta — ★★★☆☆

Constat : Les items Meta (ex: "Couleurs de texte") n'ont aucune description dans le panneau de détails.

Solution : Ajouter des descriptionKey pour les items meta dans items.json et les afficher dans le panneau détails.

9. Message de bienvenue adaptatif — ★★☆☆☆

Constat : Le message de bienvenue est identique que le joueur ait 0 ou 500 boîtes ouvertes. C'est une occasion manquée de donner du feedback.

Solution : Adapter le message d'accueil selon la progression.

10. Indicateur visuel de scroll dans l'inventaire — ★★☆☆☆

Constat : Quand l'inventaire est scrollable, le joueur ne voit que "(1-15/55)" dans le titre. Il n'y a pas d'indication visuelle dans le tableau lui-même.

Solution : Ajouter des symboles ▲/▼ en première/dernière ligne quand il y a du contenu au-dessus/en-dessous.