From 948100d44350cbcecf40b779269a22964c26201d Mon Sep 17 00:00:00 2001 From: LeRatierBretonnier Date: Sat, 11 Jul 2026 00:03:08 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20boutons=20Sous=20tension/Oppos=C3=A9=20a?= =?UTF-8?q?uto-initialisent=20le=20deck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ensureDeck() crée et reset le deck manager si nécessaire avant de tirer une carte pour les boutons du chat. --- fvtt-hamalron.mjs | 42 ++++++++++++-------- packs-system/hamalron-items/000054.log | 0 packs-system/hamalron-items/CURRENT | 2 +- packs-system/hamalron-items/MANIFEST-000052 | Bin 120 -> 0 bytes packs-system/hamalron-items/MANIFEST-000056 | Bin 0 -> 105 bytes 5 files changed, 27 insertions(+), 17 deletions(-) delete mode 100644 packs-system/hamalron-items/000054.log delete mode 100644 packs-system/hamalron-items/MANIFEST-000052 create mode 100644 packs-system/hamalron-items/MANIFEST-000056 diff --git a/fvtt-hamalron.mjs b/fvtt-hamalron.mjs index 2c0e7ba..c598de2 100644 --- a/fvtt-hamalron.mjs +++ b/fvtt-hamalron.mjs @@ -285,6 +285,24 @@ Hooks.on("createChatMessage", async (message, options, userId) => { }) +// Helper: ensure deck manager is initialized and has cards +async function ensureDeck() { + let dm = globalThis.HamalronTarotDeckManager?._instance + if (!dm) { + const DM = game.system.api.applications.HamalronTarotDeckManager + dm = new DM() + DM._instance = dm + } + if (dm.deck.length === 0) { + await dm.resetDeck() + } + if (dm.deck.length === 0) { + ui.notifications.warn(game.i18n.localize("HAMALRON.Notifications.deckEmpty")) + return null + } + return dm +} + // Chat action buttons (Sous tension / Opposé) $(document).on("click", "[data-action='sousTension']", async function () { const msgEl = $(this).closest(".chat-message") @@ -292,17 +310,13 @@ $(document).on("click", "[data-action='sousTension']", async function () { const msg = game.messages?.get(msgId) if (!msg) return - // Extract the player's total from the message content const totalText = msgEl.find(".calc-total")?.text()?.trim() const totalJoueur = Number(totalText) || 0 const actorName = msg.speaker?.alias || "Inconnu" - // Draw a card and apply tension modifier (default 0) - const deckManager = globalThis.HamalronTarotDeckManager?._instance - if (!deckManager || deckManager.deck.length === 0) { - ui.notifications.warn(game.i18n.localize("HAMALRON.Notifications.deckEmpty")) - return - } + const deckManager = await ensureDeck() + if (!deckManager) return + const drawn = deckManager.drawCards(1) if (!drawn.length) return const card = drawn[0] @@ -311,11 +325,10 @@ $(document).on("click", "[data-action='sousTension']", async function () { deckManager.addToDiscard(card) await deckManager.saveDeckState() - const totalMJ = valeurMJ - const success = totalJoueur >= totalMJ + const success = totalJoueur >= valeurMJ ChatMessage.create({ content: `

${game.i18n.localize("HAMALRON.Label.sousTension")}

-

${actorName}: ${totalJoueur} vs MJ: ${card.name} (${totalMJ})

+

${actorName}: ${totalJoueur} vs MJ: ${card.name} (${valeurMJ})

${success ? game.i18n.localize("HAMALRON.Label.success") : game.i18n.localize("HAMALRON.Label.failure")}

`, style: CONST.CHAT_MESSAGE_STYLES.OTHER, }) @@ -331,12 +344,9 @@ $(document).on("click", "[data-action='oppose']", async function () { const totalJoueur = Number(totalText) || 0 const actorName = msg.speaker?.alias || "Inconnu" - // Draw opposition card - const deckManager = globalThis.HamalronTarotDeckManager?._instance - if (!deckManager || deckManager.deck.length === 0) { - ui.notifications.warn(game.i18n.localize("HAMALRON.Notifications.deckEmpty")) - return - } + const deckManager = await ensureDeck() + if (!deckManager) return + const drawn = deckManager.drawCards(1) if (!drawn.length) return const card = drawn[0] diff --git a/packs-system/hamalron-items/000054.log b/packs-system/hamalron-items/000054.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs-system/hamalron-items/CURRENT b/packs-system/hamalron-items/CURRENT index f774e85..80d9de0 100644 --- a/packs-system/hamalron-items/CURRENT +++ b/packs-system/hamalron-items/CURRENT @@ -1 +1 @@ -MANIFEST-000052 +MANIFEST-000056 diff --git a/packs-system/hamalron-items/MANIFEST-000052 b/packs-system/hamalron-items/MANIFEST-000052 deleted file mode 100644 index cacd82e218c46a0b3fa236a6554b9f4f56a050d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$lIbStSkzMkZ5E24*uB zhBk&Z5AA_mGa%Q3#gCoIe2uz10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei1v9`5JWz#mth_++xL& o#G?F?cmo4NMn(oOK$9@HVDy7XWL%h~z`?-CWXZ|EY{lXS02lQgCIA2c literal 0 HcmV?d00001