openthebox/suggestions_4.md

79 lines
4.3 KiB
Markdown
Raw Normal View History

# Suggestions d'amélioration #4
Basées sur l'analyse des rendus après suggestions_2 et suggestions_3.
| # | Suggestion | Priorité | Statut |
|---|-----------|----------|--------|
| 1 | Localiser les noms de boîtes dans les événements du PlaythroughCapture | ★★★★★ | ✅ DONE |
| 2 | Tronquer les noms trop longs incluant le préfixe "► " (26 chars réels) | ★★★★★ | ✅ DONE |
| 3 | Panneau détails : ajouter un cas AdventureToken avec le nom d'aventure | ★★★★☆ | ✅ DONE |
| 4 | Afficher la quantité restante dans le message de consommation | ★★★★☆ | ✅ DONE |
| 5 | Localize the "Name" and "Qty" column headers in the inventory table | ★★★★☆ | ✅ DONE |
| 6 | Panneau "???" avec headers localisés dans FullLayout | ★★★☆☆ | |
| 7 | Afficher la progression globale dans le header de l'inventaire interactif | ★★★☆☆ | |
| 8 | Grouper les boîtes identiques dans le loot reveal (× N) | ★★☆☆☆ | |
| 9 | Ajouter un son de notification pour les lore fragments | ★★☆☆☆ | |
| 10 | Indicateur d'items actionnables dans la liste (★ à côté des consommables/lore) | ★★☆☆☆ | |
---
## 1. Localiser les noms de boîtes dans les événements du PlaythroughCapture — ★★★★★
**Constat** : Le test PlaythroughCapture affiche `Received [Common] "box_of_boxes"` au lieu du nom localisé. Le code de test utilise `ire.Item.DefinitionId` directement pour les boîtes au lieu de résoudre via le registre.
**Solution** : Utiliser le même pattern que `GetLocalizedName()` dans le test PlaythroughCapture.
## 2. Tronquer les noms incluant le préfixe "► " — ★★★★★
**Constat** : Le nom sélectionné a un préfixe "► " (2 chars de plus), mais la troncature se fait à MaxNameWidth (24) sur le nom seul. Avec le préfixe, le nom effectif est 26 chars, ce qui peut déborder de la colonne.
**Solution** : Ajuster la troncature pour tenir compte du préfixe dans la colonne, ou augmenter la largeur de la colonne Name.
## 3. Panneau détails AdventureToken — ★★★★☆
**Constat** : Les items AdventureToken (badge spatial, boussole pirate, etc.) n'ont pas d'information contextuelle dans le panneau de détails. L'aventure associée n'est pas mentionnée.
**Solution** : Ajouter un cas `AdventureToken` dans `RenderDetailPanel()` qui affiche le nom de l'aventure liée.
## 4. Afficher la quantité restante après consommation — ★★★★☆
**Constat** : Quand on consomme un item, le message dit juste "Ration alimentaire utilisé !". On ne sait pas combien il en reste.
**Solution** : Ajouter "× N restant(s)" au message de consommation dans HandleInventoryAction.
## 5. Localiser les en-têtes de colonnes de l'inventaire — ★★★★☆
**Constat** : Les colonnes "Name", "Rarity" et "Qty" sont en anglais dans la table d'inventaire.
**Solution** : Utiliser des clés de localisation `inventory.col.name`, `inventory.col.rarity`, `inventory.col.qty`.
## 6. Panneau "???" localisé dans FullLayout — ★★★☆☆
**Constat** : Les panneaux pas encore débloqués dans le FullLayout affichent un header anglais.
**Solution** : Localiser les headers "Stats", "Resources", "Inventory" dans les panels placeholder.
## 7. Progression globale dans l'inventaire interactif — ★★★☆☆
**Constat** : L'inventaire interactif ne montre pas de contexte sur la progression globale du joueur.
**Solution** : Optionnel — afficher le nombre de boîtes ouvertes ou le % de complétion dans le header.
## 8. Grouper les boîtes dans le loot reveal — ★★☆☆☆
**Constat** : Quand plusieurs boîtes identiques sont obtenues, elles apparaissent chacune sur une ligne séparée.
**Solution** : Grouper par nom et ajouter un "× N" pour les doublons.
## 9. Son pour les lore fragments — ★★☆☆☆
**Constat** : Recevoir un fragment de lore est un moment clé de l'expérience narrative mais il passe inaperçu.
**Solution** : Console.Beep sur Windows comme pour les Music items.
## 10. Indicateur d'items actionnables — ★★☆☆☆
**Constat** : Dans l'inventaire, rien ne distingue visuellement les items sur lesquels on peut agir (consommables, lore) des items passifs.
**Solution** : Ajouter un petit marqueur (★ ou ►) à côté des items actionnables.