From c0571c0fbd8a31726bc14dc0f4fc35a6ac060088 Mon Sep 17 00:00:00 2001
From: Esenjin <esenjin@sangigi-fuchsia.fr>
Date: Fri, 21 Feb 2025 15:53:32 +0100
Subject: [PATCH] =?UTF-8?q?am=C3=A9lioration=20de=20la=20formulation=20des?=
 =?UTF-8?q?=20phrases?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 assets/script.js |  21 +++++--
 data/bugs.json   | 154 +++++++++++++++++++++++------------------------
 data/hooks.json  |  31 ++++++++++
 3 files changed, 125 insertions(+), 81 deletions(-)
 create mode 100644 data/hooks.json

diff --git a/assets/script.js b/assets/script.js
index 884f1b9..c326c11 100644
--- a/assets/script.js
+++ b/assets/script.js
@@ -4,20 +4,33 @@ document.addEventListener("DOMContentLoaded", () => {
     
     button.addEventListener("click", async () => {
         try {
-            const bugsResponse = await fetch("data/bugs.json");
-            const featuresResponse = await fetch("data/features.json");
+            const [hooksResponse, bugsResponse, featuresResponse] = await Promise.all([
+                fetch("data/hooks.json"),
+                fetch("data/bugs.json"),
+                fetch("data/features.json")
+            ]);
             
-            if (!bugsResponse.ok || !featuresResponse.ok) {
+            if (!hooksResponse.ok || !bugsResponse.ok || !featuresResponse.ok) {
                 throw new Error("Erreur lors du chargement des fichiers JSON.");
             }
             
+            const hooks = await hooksResponse.json();
             const bugs = await bugsResponse.json();
             const features = await featuresResponse.json();
             
+            const hook = hooks.hooks[Math.floor(Math.random() * hooks.hooks.length)];
             const bug = bugs.bugs[Math.floor(Math.random() * bugs.bugs.length)];
             const feature = features.features[Math.floor(Math.random() * features.features.length)];
             
-            result.textContent = `${bug} ${feature}`;
+            // Construction de la phrase en fonction du type d'accroche
+            let phrase;
+            if (hook.includes("fait que")) {
+                phrase = `${hook} ${feature}`;
+            } else {
+                phrase = `${hook} ${bug}, ${feature}`;
+            }
+            
+            result.textContent = phrase;
         } catch (error) {
             result.textContent = "Une erreur s'est produite. Veuillez réessayer.";
             console.error(error);
diff --git a/data/bugs.json b/data/bugs.json
index 9fa4d2f..82c42c8 100644
--- a/data/bugs.json
+++ b/data/bugs.json
@@ -1,81 +1,81 @@
 {
     "bugs": [
-      "À cause d'un bug sur le sort Roublardise,",
-      "À cause d'un bug sur les renvois de dommages,",
-      "À cause d'un bug sur l'hôtel des ventes,",
-      "À cause d'un bug sur la gestion des résistances,",
-      "À cause d'un bug sur les caractéristiques des familiers,",
-      "À cause d'un bug sur le système de quêtes,",
-      "À cause d'un bug sur les métiers de récolte,",
-      "À cause d'un bug sur le système de guildes,",
-      "À cause d'un bug sur les montures,",
-      "À cause d'un bug sur les enclos de guilde,",
-      "À cause d'un bug sur les maisons de joueurs,",
-      "À cause d'un bug sur le système de chat,",
-      "À cause d'un bug sur les émoticônes,",
-      "À cause d'un bug sur les échanges entre joueurs,",
-      "À cause d'un bug sur le système de combat,",
-      "À cause d'un bug sur l'affichage des points de vie,",
-      "À cause d'un bug sur les points d'action,",
-      "À cause d'un bug sur les points de mouvement,",
-      "À cause d'un bug sur les sorts communs,",
-      "À cause d'un bug sur les armes,",
-      "À cause d'un bug sur les boucliers,",
-      "À cause d'un bug sur les familiers,",
-      "À cause d'un bug sur les potions de téléportation,",
-      "À cause d'un bug sur les potions de rappel,",
-      "À cause d'un bug sur les potions de cité,",
-      "À cause d'un bug sur les zaaps,",
-      "À cause d'un bug sur les prismes d'alliance,",
-      "À cause d'un bug sur les percepteurs,",
-      "À cause d'un bug sur les avis de recherche,",
-      "À cause d'un bug sur les succès,",
-      "À cause d'un bug sur les titres et ornements,",
-      "À cause d'un bug sur les challenges en combat,",
-      "À cause d'un bug sur les donjons modulaires,",
-      "À cause d'un bug sur les compagnons,",
-      "À cause d'un bug sur les invocations,",
-      "À cause d'un bug sur l'affichage des états,",
-      "À cause d'un bug sur les coups critiques,",
-      "À cause d'un bug sur les résistances élémentaires,",
-      "À cause d'un bug sur les maîtrises d'armes,",
-      "À cause d'un bug sur les animations de sorts,",
-      "À cause d'un bug sur les effets visuels,",
-      "À cause d'un bug sur les sons en combat,",
-      "À cause d'un bug sur les musiques d'ambiance,",
-      "À cause d'un bug sur les notifications,",
-      "À cause d'un bug sur les raccourcis clavier,",
-      "À cause d'un bug sur l'interface utilisateur,",
-      "À cause d'un bug sur le système de craft,",
-      "À cause d'un bug sur les documents de quête,",
-      "À cause d'un bug sur les collisions en combat,",
-      "À cause d'un bug sur l'almanax du 18 février,",
-      "À cause d'un bug sur les objets vivants,",
-      "À cause d'un bug sur les trousseaux de clés,",
-      "À cause d'un bug sur les portails dimensionnels,",
-      "À cause d'un bug sur le système de liste d'amis,",
-      "À cause d'un bug sur les succès monstres,",
-      "À cause d'un bug sur les emplacements de sorts,",
-      "À cause d'un bug sur les bonus de zone,",
-      "À cause d'un bug sur les dialogues de PNJ,",
-      "À cause d'un bug sur les drops de ressources,",
-      "À cause d'un bug sur les effets de poussée,",
-      "À cause d'un bug sur le système d'expérience,",
-      "À cause d'un bug sur les zones de téléportation,",
-      "À cause d'un bug sur le système de groupe,",
-      "À cause d'un bug sur les transformations,",
-      "À cause d'un bug sur le système de kolizeum,",
-      "À cause d'un bug sur les archimonstres,",
-      "À cause d'un bug sur les quêtes d'alignement,",
-      "À cause d'un bug sur le système de conquête,",
-      "À cause d'un bug sur les zones instanciées,",
-      "À cause d'un bug sur le système de placement,",
-      "À cause d'un bug sur les effets d'esquive et de tacle,",
-      "À cause d'un bug sur le système d'invocation,",
-      "À cause d'un bug sur les changements de map,",
-      "À cause d'un bug sur le système de connexion,",
-      "À cause d'un bug sur les sorts de zone,",
-      "À cause d'un bug sur le passif de la classe Sacrieur,",
-      "À cause d'un bug sur le système d'artisanat,"
+      "sur le sort Roublardise",
+      "sur les renvois de dommages",
+      "sur l'hôtel des ventes",
+      "sur la gestion des résistances",
+      "sur les caractéristiques des familiers",
+      "sur le système de quêtes",
+      "sur les métiers de récolte",
+      "sur le système de guildes",
+      "sur les montures",
+      "sur les enclos de guilde",
+      "sur les maisons de joueurs",
+      "sur le système de chat",
+      "sur les émoticônes",
+      "sur les échanges entre joueurs",
+      "sur le système de combat",
+      "sur l'affichage des points de vie",
+      "sur les points d'action",
+      "sur les points de mouvement",
+      "sur les sorts communs",
+      "sur les armes",
+      "sur les boucliers",
+      "sur les familiers",
+      "sur les potions de téléportation",
+      "sur les potions de rappel",
+      "sur les potions de cité",
+      "sur les zaaps",
+      "sur les prismes d'alliance",
+      "sur les percepteurs",
+      "sur les avis de recherche",
+      "sur les succès",
+      "sur les titres et ornements",
+      "sur les challenges en combat",
+      "sur les donjons modulaires",
+      "sur les compagnons",
+      "sur les invocations",
+      "sur l'affichage des états",
+      "sur les coups critiques",
+      "sur les résistances élémentaires",
+      "sur les maîtrises d'armes",
+      "sur les animations de sorts",
+      "sur les effets visuels",
+      "sur les sons en combat",
+      "sur les musiques d'ambiance",
+      "sur les notifications",
+      "sur les raccourcis clavier",
+      "sur l'interface utilisateur",
+      "sur le système de craft",
+      "sur les documents de quête",
+      "sur les collisions en combat",
+      "sur l'almanax du 18 février",
+      "sur les objets vivants",
+      "sur les trousseaux de clés",
+      "sur les portails dimensionnels",
+      "sur le système de liste d'amis",
+      "sur les succès monstres",
+      "sur les emplacements de sorts",
+      "sur les bonus de zone",
+      "sur les dialogues de PNJ",
+      "sur les drops de ressources",
+      "sur les effets de poussée",
+      "sur le système d'expérience",
+      "sur les zones de téléportation",
+      "sur le système de groupe",
+      "sur les transformations",
+      "sur le système de kolizeum",
+      "sur les archimonstres",
+      "sur les quêtes d'alignement",
+      "sur le système de conquête",
+      "sur les zones instanciées",
+      "sur le système de placement",
+      "sur les effets d'esquive et de tacle",
+      "sur le système d'invocation",
+      "sur les changements de map",
+      "sur le système de connexion",
+      "sur les sorts de zone",
+      "sur le passif de la classe Sacrieur",
+      "sur le système d'artisanat"
     ]
   }
diff --git a/data/hooks.json b/data/hooks.json
new file mode 100644
index 0000000..7241344
--- /dev/null
+++ b/data/hooks.json
@@ -0,0 +1,31 @@
+{
+    "hooks": [
+        "À cause d'un bug",
+        "Suite à un bug",
+        "En raison d'un bug",
+        "À la suite d'un bug",
+        "Du fait d'un bug",
+        "Par la faute d'un bug",
+        "Un bug a fait que",
+        "Un mystérieux bug fait que",
+        "Un bug inexplicable fait que",
+        "À cause d'un dysfonctionnement",
+        "Suite à un dysfonctionnement",
+        "En raison d'un problème technique",
+        "À cause d'un soucis",
+        "Suite à un soucis",
+        "En raison d'un bug",
+        "À la suite d'un bug",
+        "Du fait d'un bug",
+        "Par la faute d'un bug",
+        "Un bug a fait que",
+        "À cause d'un problème",
+        "Suite à un problème",
+        "En raison d'un problème",
+        "À la suite d'un problème",
+        "Du fait d'un problème",
+        "Par la faute d'un problème",
+        "Un problème a fait que",
+        "À cause d'une erreur"
+    ]
+}
\ No newline at end of file