Les boutons bonus sont ancrés à la glissière, ce qui la rend protégée :
en combat, ses SetPoint étaient bloqués (action bloquée par image). Après
un retrait hors combat elle reposait 45 px plus bas, et un druide prenant
une forme en combat gardait sa barre à moitié sous l'écran tout le combat.
Elle ne bouge plus en combat, attend au repos, y revient avant le
verrouillage, et suit une barre réaffichée pendant son propre retrait.
Durée : BONUSACTIONBAR_SLIDETIME du client (0,15 s).
Familier et postures : le porteur, protégé par les boutons qu'on y ancre,
était masqué avant le test de combat (familier mort ou expiré en combat :
action bloquée). Le test passe d'abord ; la sortie de combat le replace.
Choix d'icône d'un ensemble : une icône portée deux fois (deux anneaux,
bijoux ou armes identiques) ne compte qu'une fois, comme
RefreshEquipmentSetIconInfo, sinon la grille gagnait des cases vides au
delà de la liste du client.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxRZNHkq453dyUMcWsyUf1
Traduction
- Identifiants en anglais dans tout le module : addon, ecrans d'accueil,
outils Python, banc d'essai et patcheur C#.
- Fichiers au nom francais renommes (Gabarits.lua -> Templates.lua,
Textes_*.lua -> Texts_*.lua, deployer.py -> deploy.py,
tools/patcheur -> tools/patcher, etc.).
- Commandes /fui et options de deploy.py en anglais (--check, --server,
--remove-dbc).
- Cles des variables sauvegardees et de data/dbc/statistics.json
traduites, sans reprise des anciennes cles.
- API de la micro-barre : ForeverUI.AddMicroButton(def) avec les champs
name, atlasSet, after, tooltip, onClick, ready, et
ForeverUI.UpdateMicro(name, isOpen).
- Commentaires reecrits en anglais, courts, sans dates ni historique ;
les fonctions au nom peu parlant et leurs parametres sont expliques.
Code mort
- Exports, fonctions et variables jamais lus retires.
- Retires a la demande des modules : ForeverUI.PvPJauge, les exports
FondEntete / TuilerEntete / Polices de TradeSkill, l'art legacy-up-c60,
honorfill(half)blue et inv_misc_book_09, leurs entrees d'atlas et les
parties d'outils correspondantes.
Verifications : liaisons des noms comparees avant et apres, banc vert,
chemins de textures inchanges, generateurs reproduisant les fichiers,
patcheur identique octet pour octet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- socle : Textes.lua (ForeverUI.L) et ForeverUIGlueTextes.lua (G.L) ; les
textes dans Textes_enUS / Textes_frFR (325 cles en jeu) et
ForeverUIGlueTextes_enUS / _frFR (41 cles aux ecrans d'accueil) ; une cle
absente prend l'anglais, une langue sans fichier lit l'anglais ; ajouter
une langue = un fichier de plus
- les textes que le client 3.3.5 connait se lisent dans ses globales
(GlobalStrings, GlueStrings en glue) ; les textes de secours sont retires
- tous les fichiers repris : libelles, infobulles, mode edition, messages et
aide de /fui, erreurs internes ; .toc : Notes + Notes-frFR
- selection des personnages : race et classe traduites ramenees a leur jeton
par les tables de langue (GetAvailableRaces / GetAvailableClasses font
planter le client hors de la creation)
- tools/cartes_instances.py : noms des instances dans toutes les langues de
la LibBabble-Zone de WDM (portails de la carte sur tout client)
- banc : toute cle employee existe en anglais et en francais, memes cles dans
les deux, bascule frFR / deDE essayee ; chaines 3.3.5 ajoutees au faux client
- README : etat des sections mis a jour, langues, glue, deploiement --glue
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Chat : cadre, barre et bouton de retour, colonne, bouton d'amis de camelot ;
au repos fond, onglets, colonne et saisie s'effacent, allumage au survol
- Barres d'ameliorations et d'affaiblissements (Buffs.lua) : grille, bordures
par type, clignotement, repli, regroupement, enchantements d'arme
- Souillure : StaticPopupDialogs n'est plus reaffectee (BindEnchant bloque) ;
menus deroulants, suivi des objectifs, choix d'icone, ajout de canal et
carte du monde n'ecrivent plus les globales du client ; menus d'unite :
lignes protegees servies par des boutons securises hors combat, grisees en
combat ; seule MAP_QUEST_DIFFICULTY reste, par decision
- Gestionnaire d'ensembles : plus d'appel GetEquipmentSetIconInfo(nil)
- Banc : garde des globales ecrites (bytecode Lua 5.1), faux client durci
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Je les placais a l'oeil. SelectionFrameTemplate -- le gabarit qui porte
justement cet encadrement -- donne leur place : CancelButton 78 x 22 a
BOTTOMRIGHT (-11, 13), OkayButton a RIGHT sur son LEFT avec x = -2. Ce
sont les deux creux du coin bas droit de l'image.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
La fenetre prend la hauteur de la feuille de personnage au lieu des 495
de camelot ; sept rangees s'y posent au lieu de huit.
L'ecart de la barre se calcule au lieu d'etre ecrit : le meme entre la
derniere colonne d'icones et la barre qu'entre la barre et le bord de la
fenetre, soit 12 de chaque cote aujourd'hui.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
La bande droite etait ancree sur le BOTTOMLEFT du coin bas droit, qui
fait 174 de large puisqu'il porte le socle des boutons : elle s'etalait
donc sur 174 au lieu de 17. Deux points du meme cote suffisent, la
largeur vient de l'image.
Le contour d'epoque de la glissiere n'est pas porte par la barre mais par
le cadre de defilement : effacer les regions de la seule barre le
laissait en place.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Il est une region de la barre : la boucle qui efface les textures
d'epoque l'emportait, et lui rendre sa texture sans lui rendre son alpha
le laissait invisible. Il est exclu de l'effacement, et pose a 8 x 36 --
la taille du curseur le plus court de la source.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
La fenetre s'ancre en TOPLEFT sur le TOPRIGHT de la feuille de
personnage, comme camelot ancre la sienne sur ce qu'elle accompagne.
Fond noir a 80 % de (7, -7) a (-7, 7), et SelectionFrameTemplate en neuf
pieces : les atlas macropopup-*, dont le coin bas droit de 174 x 39 qui
porte le socle des boutons.
MinimalScrollBar portee : 8 de large, glissiere et curseur en trois
morceaux, fleches de 17 x 11. Seules les textures changent, le
FauxScrollFrame du client garde son comportement.
Quatre feuilles versees.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Fenetre de 525 x 495 sur IconSelectorPopupFrameTemplate : champ de nom
en haut, zone du choix courant a droite, grille en dessous. La grille
prend les valeurs de ScrollBoxSelectorMixin -- dix par rangee, boutons
de 36, ecarts de 10, marges de 5.
Tout le remplissage du client passe par quatre globales
(NUM_GEARSET_ICONS_PER_ROW, NUM_GEARSET_ICON_ROWS,
NUM_GEARSET_ICONS_SHOWN, GEARSET_ICON_ROW_HEIGHT) : les porter suffit,
rien du parcours des icones ni du defilement n'est reecrit. Le client ne
creant que quinze boutons, les soixante-cinq manquants sont crees sur son
propre gabarit.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>