From 1b993cef8dc83e253e6ae81ce0605310bd5fbf3f Mon Sep 17 00:00:00 2001 From: Stephane Bouvard Date: Sat, 4 Oct 2025 15:19:34 +0200 Subject: [PATCH] Add killfeed module --- modules/killfeed/assets/genjikill.png | Bin 0 -> 15034 bytes modules/killfeed/css/killfeed.css | 138 ++++++++++++++++ modules/killfeed/css/killfeed.less | 216 ++++++++++++++++++++++++++ modules/killfeed/killfeed.js | 138 ++++++++++++++++ overlay.html | 1 + 5 files changed, 493 insertions(+) create mode 100644 modules/killfeed/assets/genjikill.png create mode 100644 modules/killfeed/css/killfeed.css create mode 100644 modules/killfeed/css/killfeed.less create mode 100644 modules/killfeed/killfeed.js diff --git a/modules/killfeed/assets/genjikill.png b/modules/killfeed/assets/genjikill.png new file mode 100644 index 0000000000000000000000000000000000000000..a7bffb6169860523681a36e1313c34d0f5a32c24 GIT binary patch literal 15034 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 0) + ? delaySeconds * 1000 + : DEFAULT_DELAY_SECONDS * 1000; + + const fadeRemove = () => { + li.style.opacity = '0'; + setTimeout(() => { + if (li.parentElement === list) list.removeChild(li); + }, 500); + }; + setTimeout(fadeRemove, ms); + + // Limite par nombre (supprime en haut) + while (list.children.length > MAX_ITEMS) { + list.removeChild(list.firstElementChild); + } + + // Limite par hauteur (supprime en haut tant que ça dépasse) + const container = document.getElementById('killfeed-container'); + if (container) { + while (list.scrollHeight > container.clientHeight && list.firstElementChild) { + list.removeChild(list.firstElementChild); + } + } + + setTimeout(() => li.classList.remove('appearing'), 400); +} + + + + // Expose globalement + window.Killfeed = { addKill }; + + // === SBdispatcher Listener === + // wsParam1 = pseudo joueur 1 + // wsParam2 = image joueur 1 + // wsParam3 = pseudo joueur 2 + // wsParam4 = image joueur 2 + // wsParam5 = eventName + // wsParam6 = délai (secondes) + if (window.SBdispatcher) { + SBdispatcher.on('killfeed-add', data => { + addKill( + data.param1, // Joueur 1 + data.param2, // Avatar joueur 1 + data.param3, // Joueur 2 + data.param4, // Avatar joueur 2 + data.param5, // Nom de l'event (image) + parseFloat(data.param6) // Délai (optionnel) + ); + }); + } + + initModule(); +})(); diff --git a/overlay.html b/overlay.html index 5330b5f..3271ba3 100644 --- a/overlay.html +++ b/overlay.html @@ -15,6 +15,7 @@ +