- Fix compact tmux-like layout (120×30 ref) with side-by-side panels - Fix cosmetic portrait: PlayerAppearance now mutable with ApplyCosmetic() - Add per-style intrinsic colors for all cosmetic types on portrait - Add compact inventory mode (6 rows) for layout views - Add Terminal.Gui renderer (--tui flag) - Add save snapshot generation and --snapshot N CLI loading - Add PlaythroughCapture test for automated output analysis - Add destiny adventure French translation (intro.fr.lor) - Remove FontStyle enum (fonts are collectibles only) - Add proposals.md with 11 rendering improvement suggestions - Update bugs.md (3 FIXMEs resolved)
3.1 KiB
Bug tracker
Les sujets dans FIXME doivent être corrigé, puis déplacé dans "DONE", puis commit de ce fichier avec le fix.
FIXME
DONE
Terminal size 120×30 — DONE
SpectreRenderer cap désormais AnsiConsole.Profile.Width à 120 colonnes (RefWidth). Le layout est conçu pour tenir dans 30 lignes. Les constantes RefWidth=120 et RefHeight=30 servent de référence.
Layout compact tmux — DONE
RenderFullLayout utilise des Table.NoBorder() pour placer les panels côte à côte sans gaps. Row 1: Portrait(20) | Stats(30) | Resources(fill). Row 2: Inventory(60) | Crafting+Chat+Completion(fill). RenderSequentialPanels groupe aussi les panels top côte à côte quand plusieurs sont débloqués.
Couleurs sur le portrait — DONE
Chaque type de cosmétique a maintenant sa propre couleur intrinsèque (yeux bleus=dodgerblue, cheveux feu=red, cyberpunk=aqua, etc.). Les tints explicites (HairTint/BodyTint) restent prioritaires. Les yeux, jambes et bras ont aussi leurs propres couleurs au lieu d'être tous blancs.
panneau d'inventaire — DONE
Scroll interactif implémenté : ↑↓ ligne par ligne, PgUp/PgDn page par page, Esc/Q pour sortir. Panneau limité à 15 lignes avec indicateur de position (ex: 1-15/42). Noms traduits, catégories, raretés colorées, colonne Name fixée à 24 chars.
Polices de caractère — supprimées
Impossible de changer la police du terminal programmatiquement. Les items font ont été supprimés du jeu (items.json, boxes.json, enum, code).
Portrait représente une boîte — DONE
Le portrait ASCII art représente maintenant une boîte (+------+) avec des cosmétiques dessus : cheveux sur le dessus, yeux sur la face, corps comme décoration, jambes en dessous, bras sur les côtés.
Police de caractère — DONE
Les fonts sont des collectibles purs (comptent pour la complétion). Le terminal gère sa propre police. Un message explicite est maintenant affiché au loot : « Police 'X' collectionnée ! (Collectible — la police de votre terminal reste inchangée) ».
Double crochets aventures — DONE
Le préfixe [Terminée] utilisait ... (échappement Spectre) mais ShowSelection échappe déjà les options. Corrigé en utilisant des crochets simples.
Boîtes meta auto-upgrade — DONE
BoxEngine détecte automatiquement quand tous les items d'un tier meta sont obtenus et upgrade le box_meta vers le tier suivant : basics → interface → deep → resources → mastery. Revert de la fusion incorrecte.
Double boîte d'aventure pirate (interactions) — DONE
Le prompt ChoiceRequiredEvent utilisait un texte anglais hardcodé comme clé de localisation → [MISSING:...]. Corrigé : utilise la clé "prompt.choose_interaction" et affiche les DescriptionKey des règles (traduits) au lieu des IDs bruts.
Aventure destiny FR — DONE
Créé intro.fr.lor pour l'aventure destiny (68 tags traduits). Tests ajoutés (existence, parsing, couverture tags).
Fin de partie après destiny — DONE
Après l'aventure destiny, un choix épilogue est proposé : continuer en jeu libre ou refermer la boîte (quitter). Le ton reste poétique et cohérent avec le récit.