[MàJ 3.04] Neutronium, équipement dans le rapport et via JSON, genre féminin, dispositions de l'accueil et plein d'améliorations
Salut à tous !
Voici la 3.04 ! Une nouvelle puce, et surtout une grosse màj de confort, en bonne partie construite à partir de vos suggestions du forum (il y a beaucoup de « merci à » dans le changelog :)). La liste complète est ici : https://leekwars.com/release/3.04
Une nouvelle puce : Neutronium
- Au niveau 262, Neutronium rend Denses pour un tour toutes les entités d'un cercle de rayon 3, lanceur compris s'il est dedans. Une entité Dense ne peut plus se téléporter ni permuter : Téléportation, Saut, Inversion, Rempotage et Kemuridama lui sont refusés, et on ne peut pas non plus permuter avec elle. Marcher, être poussé ou attiré reste possible. De quoi coincer un adversaire qui fuit tout le temps… ou s'empêcher soi-même de s'enfuir :)
- 7 PT, portée 2 à 7 en ligne de vue, recharge de 6 tours. En vente au marché.
LeekBench : des IA seules contre les boss
- Une nouvelle page, https://leekwars.com/leekbench : on lâche un modèle d'IA (Claude, GPT, DeepSeek, Qwen, GLM…) seul face aux boss, avec un compte, la documentation et 100 combats par boss. Il doit écrire l'IA de ses poireaux, choisir leur équipement, et trouver tout seul les énigmes qui rendent le Roi Fenouil et le Potiron vulnérables. La page montre le meilleur run de chaque modèle : combats, durée, coût, taille de l'IA et un score. Pour l'instant, aucun n'a battu le Potiron Maléfique dans les règles… à vous de faire mieux qu'eux :)
L'équipement, du combat jusqu'au code
- Le rapport de combat a un nouveau panneau Équipements : les armes, puces, composants et caractéristiques que chaque poireau portait vraiment pendant le combat, y compris l'ensemble posé par
setLoadout. Dans le lecteur, un clic sur l'icône à côté du niveau ouvre la même fiche. Un bouton copie l'équipement en JSON, pour le réimporter comme ensemble : pratique pour reprendre le build d'un adversaire qui vous a battu.
- Un équipement peut maintenant vivre parmi vos IA, dans un fichier
.json : l'éditeur en affiche l'aperçu (et prévient s'il y a trop d'armes ou de puces pour le niveau), et getLoadout('builds/tank.json') le lit depuis le code.
setLoadout accepte un équipement construit en code (le format de getLoadout), et getInventory() liste les objets dont votre poireau dispose, stats et altérations des composants comprises. Vous pouvez donc choisir votre build au début du combat, selon l'adversaire.
fileRead('config.json') rend le texte d'un fichier de vos IA, lu à la compilation : avec jsonDecode, vos réglages ou vos tables de données deviennent des objets.
- Dans la fenêtre de test, chaque poireau d'un scénario (les vôtres comme vos poireaux de test) peut porter un ensemble enregistré ou un fichier JSON dès le début du combat, et « Appliquer un équipement » donne d'un coup à un poireau de test les armes, puces et caractéristiques d'un ensemble.
- Tout ça marche aussi en JavaScript, TypeScript et Python (
System.fileRead, System.getLoadout, me.setLoadout, me.getInventory()).
Masculin ou féminin
- Chaque éleveur choisit son genre grammatical sur son profil, et celui de chaque poireau dans « Personnaliser le poireau ». Le combat, les notifications, les mails et les grades s'accordent : « Verdurette est morte », « Contributrice »… Merci à MaréchalMaraîcher pour l'idée !
L'accueil et « En direct »
- L'accueil peut avoir plusieurs dispositions nommées, qu'on change d'un clic depuis l'en-tête : une pour le potager, une pour le code, une pour le chat… Chaque appareil retient la sienne.
- Un nouveau widget Éleveurs connectés, avec leurs avatars (merci à fujiwar).
- « En direct » annonce l'Imperator du jour à chaque triplé (solo, éleveur et équipe gagnés le même jour), les combats de boss qui entrent dans le top 10 d'un classement de boss (et une première place aussi dans le chat), et les réponses du forum.
L'éditeur
- Remplacer dans tous les fichiers, depuis la recherche globale, avec les groupes de regex
$1 comme dans VS Code (merci à Amal).
- Et aussi : « Dupliquer » une IA, « Copier le chemin » pour un
include, « Télécharger (ZIP) » un dossier ou toutes vos IA, la sélection au doigt sur mobile, une option pour couper ou non les lignes trop longues, beforeFight et afterFight colorés comme des annotations, et les noms des IA non sauvegardées quand on quitte l'éditeur.
- La fenêtre de test affiche le numéro des cellules, laisse poser les cellules de départ des deux équipes n'importe où, donne à un poireau de test le niveau de votre choix et affiche le capital que coûtent ses caractéristiques.
Classements, trophées, lecteur
- Le classement des boss a un onglet Tous les boss, avec les victoires de chaque éleveur contre chaque boss, et chaque boss a son classement « Le plus de victoires » (merci à MaxDuKart).
- Un nouveau classement fun : le plus rapide au niveau 301. Les trophées ont une recherche, un filtre par rareté, et six trophées de plus ont leur barre de progression.
- La barre de lecture du lecteur a été refaite façon vidéo : fine et posée sur le terrain, elle s'élargit quand la souris approche, et elle se saisit enfin au doigt sur mobile (merci à CultureBio).
- L'historique en tableau montre les ressources gagnées à chaque combat, le Potager rapide affiche aussi ses lots en tableau, une flèche signale le poireau qui a gagné un niveau pendant le combat, et le journal du combat montre maintenant les déplacements (réglage « Afficher les déplacements » du lecteur).
Halloween, le chat et le reste
- Halloween est passé, mais deux recettes restent : la potion spectre, qui change votre poireau en fantôme bleuté, et le sachet de bonbons, qui s'ouvre sur un bonbon au hasard (des Habs, des combats, du butin ou de l'XP doublés… un fenouil confit maudit, et très rarement l'œil du Potiron avec un chapeau de sorcière exclusif). Leurs schémas sont au marché avec le trophée Hanté : les toiles et les âmes que vous avez gardées servent toujours.
- Fenouil & Potiron rapporte deux fois plus de butin, et ses victoires comptent maintenant pour les trophées du Roi Fenouil et du Potiron.
- Les chevaliers et les écuyers du Roi Fenouil portent maintenant tous le même jeu de puces, dans son combat comme dans Fenouil & Potiron : Flamme, Rémission, Forteresse, Élévation et Protéines pour les chevaliers ; Étincelle, Mur, Protéines, Rempart et Motivation pour les écuyers.
- Chat :
gras, italique, __souligné__ et ~~barré~~ (merci à dulph), les liens vers un trophée, un objet, une page de l'encyclopédie ou de la doc portent leur nom (merci à Tabary), et le smiley (lwplus).
- Et aussi : la revente au marché par lot, un bouton pour défier depuis l'infobulle d'un poireau ou d'un éleveur, la couleur et le chapeau au choix pour un nouveau poireau, « Créer une équipe » sur la page des équipes, les compositions d'une équipe visibles des visiteurs, un composant altéré utilisable dans une recette de l'atelier, les recettes d'un ingrédient dans son infobulle, et des équerres pour marquer la sélection dans le thème v3.
- Le LW+ payé en cristaux suit maintenant le taux du plus gros pack : 559 cristaux le mois au lieu de 399 (les prix en euros ne changent pas).
Pour les programmeurs
- Nouvelles fonctions :
sendNotification(titre, message) (une notification depuis un combat, 50 par jour), getComponents() et les constantes COMPONENT_*, getPlantTriggers(plante), getAIPath(), getDeadAlliesCount(), setPutAll, mapKeySet, arrayRotate, getSourceLine() et getSourceFile(), les constantes CHIP_NEUTRONIUM et CHIP_GRAIL_PROTECTION, et l'état STATE_DENSE : sur une entité Dense, useChip renvoie USE_INVALID_STATE pour une téléportation ou une permutation, sans rien consommer.
- Nouvelle règle de RAM : un point de RAM donne 16 Mo (2 millions de cases) au lieu de 64 Mo, mais la RAM compte maintenant ce qui est vraiment occupé. Le code compilé coûte 2 octets par octet de bytecode, partagés entre les poireaux qui exécutent la même IA (au lieu de 80 octets par caractère de Java). Les conteneurs vides ne sont plus gratuits (88 octets pour
[], 120 pour [:], 144 pour ` et {}, 72 pour une instance), et en LeekScript 1 à 3 un tableau compte 48 octets plus 96 par élément. En JavaScript, TypeScript et Python, le plafond est maintenant le même qu'en LeekScript (il était environ 14 fois plus bas !) et System.usedRAM` mesure enfin quelque chose (merci à Lamafia).
- Ce qui peut changer le comportement d'une IA existante :
setLoadout('nom') donne à chaque poireau son propre exemplaire de chaque objet : en combat d'équipe, ce que portent déjà vos autres poireaux est retiré (avec un avertissement), dans l'ordre des beforeFight ;
rand() : chaque IA a sa propre suite, quatre poireaux à la même IA ne tirent plus les mêmes nombres (un combat rejoué avec une ancienne graine ne retrouve donc plus ses tirages) ;
- une tourelle tuée puis ressuscitée reste Statique, et une séquelle ne blesse plus un poireau Invincible ;
listen() dans l'IA d'un bulbe lit ses propres messages, et la liste se vide même après un tour en erreur ;
- la boîte aux lettres d'une entité garde 200 messages d'alliés et 200 d'ennemis par tour (un adversaire ne peut plus noyer ceux de l'équipe), et
sendTo renvoie false quand elle est pleine ;
- un Set dans une opération ne fait plus planter l'IA :
s + x traite le Set comme un tableau, et m += m2 coûte 1 + n opérations, comme mapPutAll.
- Côté corrections : les ternaires imbriqués se compilent en un instant, quelques IA qui échouaient à la compilation passent, un poireau JS, TS ou Python ne perd plus son tour sur une erreur interne, un tableau non fermé est signalé là où il manque, et un coup qui s'empile sur un effet existant compte enfin pour les trophées.
Merci !
Merci à tous ceux qui ont proposé ou signalé quelque chose : Amal, Nyaleph, dulph, fujiwar, Sycareus, Smartiz, FdHP, MaréchalMaraîcher, MaxDuKart, Tabary, CultureBio, Lamafia, LaLongueTerre, goban, Raph3304, DemonDeLaplace, Losarou, EstebanC, tagadagain, Gandhictature, PaladragonVert, pakalatak, PapaPingouin, KavaliovSepties, Ewenator, PoireauSaisonnier, VlentGamer, LucasOFrancês, Bux420, nytope, Iroh, Papuche, dulph5, BrocoliCosmique, Marcellus et djy :)
Rendez-vous dans le potager !
Pilow