Je viens de réussir en une journée à coder la barre des buffs/débuffs. Je savais que c’était un de ces trucs techniques un peu lourds qu’il me restait à résoudre, je n’ai pas pu repousser le travail davantage car je viens d’implémenter un sort de bouclier pour lequel je dois bien afficher la durée et la puissance restante au fil du combat.
Ca m’aura pris une grosse dizaine d’heures pour programmer une nouvelle classe C++ qui est le conteneur des buffs et gère l’ajout et le retrait des buffs en plus de suivre leur évolution. Ensuite j’ai créé le widget qui écoute ce que le GAS lui dit concernant chacun de ces buffs et met l’affichage à jour. J’ai commencé en blueprint sur le mode “boah, ça ne prendra que quelques noeuds, autant ne pas s’emmerder avec le C++ pour ça” pour terminer sur la variation bien connue du “bordel ! pourquoi je me suis encore emmerdé avec les spaghettis, ça m’aurait pris dix lignes de code !”. Been there, done that. Enfin, ça fait de jolis blueprints, avec plein de lignes de couleur et j’ai bien fait attention de ne pas croiser les effluves !
A ma grande surprise, ça a marché du premier coup, à peine quelques petites corrections et mon premier buff, le fameux bouclier de foi, affiche gentiment la durée et les points de vie restants et s’efface quand le timer est expiré ou que le bouclier est vide.
J’ai ensuite essayé de débugger le cooldown du sort de bouclier, qui s’enclenchait bien mais ne s’affichait pas : une heure pour trouver que je l’avais parenté à la classe de base du GAS et pas à la classe spécifique d’Althea.
Bref, je suis bien rincé, mais c’est un énorme travail accompli, me restera demain à remplacer toutes les valeurs en dur des blueprints GAS par une fonction qui lit une et une seule table où sont regroupés par tags tous les sorts avec leur coût, leur puissance et leur durée, ce qui me permettra pendant les phases d’équilibrage de n’ouvrir aucun blueprint ni aucun code et de modifier des chiffres dans une seule table !