From 408e115134429fd9e0a480603dcb5b97b7c73c5d Mon Sep 17 00:00:00 2001 From: Turtle <104490184+CodingTurtle2@users.noreply.github.com> Date: Sun, 28 Dec 2025 18:46:33 +0100 Subject: [PATCH] g3.1 --- audio/levelup1.mp3 | Bin 0 -> 6496 bytes audio/levelup2.mp3 | Bin 0 -> 30529 bytes help/documentation.md | 11 ++++++++++- lib/basic.js | 12 ++++++++++++ prof/auswertung.html | 25 ++++++++++++++++++++----- prof/kursAnzeige.html | 24 +++++++++++++++--------- prof/uebersicht.html | 12 ++++-------- student/skilltree.js | 10 ++++++++++ 8 files changed, 71 insertions(+), 23 deletions(-) create mode 100644 audio/levelup1.mp3 create mode 100644 audio/levelup2.mp3 diff --git a/audio/levelup1.mp3 b/audio/levelup1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..1f456f7e5dd43abe47fc0a67aa6852c3f3de0861 GIT binary patch literal 6496 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 literal 0 HcmV?d00001 diff --git a/audio/levelup2.mp3 b/audio/levelup2.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..cf7f672fa6e00e6fbde841291c0b7422d41edd88 GIT binary patch literal 30529 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 bool; async function updateUserData(CouchDB couchDB, object userData) -> Map; ``` +##Other + +``` +//Spielt einen sound ab +//(Funktioniert nur, wenn vorher eine Nutzerinteraktion erfolgt ist (Button-Click etc.)) +async function playSound(string src) -> void; +``` + ##Nützliche CSS-Klassen - .profile = Runde Profilbox - overlay = Overlay - .header_bar_1 = Headerbar - .header_bar_1_placeholder = Platzhalter für Headerbar -- .add_button = Runder "Hinzufügen"-Knopf \ No newline at end of file +- .add_button = Runder "Hinzufügen"-Knopf + diff --git a/lib/basic.js b/lib/basic.js index 3b5b545..e74daef 100644 --- a/lib/basic.js +++ b/lib/basic.js @@ -468,4 +468,16 @@ async function _showProfileSave(elm) { updateAllProfiles(userData); hideOverlay("profile_overlay"); +} + +async function playSound(src) { + const elm = document.createElement("audio"); + elm.innerHTML = ` + + `; + try { + await elm.play(); + } catch(err) { + console.log("Error playing audio:", err); + } } \ No newline at end of file diff --git a/prof/auswertung.html b/prof/auswertung.html index 3a3508f..a8d0e27 100644 --- a/prof/auswertung.html +++ b/prof/auswertung.html @@ -9,7 +9,23 @@ - -

Beschreibung: diff --git a/student/skilltree.js b/student/skilltree.js index ff77311..292748d 100644 --- a/student/skilltree.js +++ b/student/skilltree.js @@ -1,4 +1,7 @@ //=> use showSkillTree() -> void; +//=> use playLevelSound() -> void; +//=> use playXPSound() -> void; + const getSkillTree = () => ({ id: "root", @@ -291,4 +294,11 @@ function generateSkillTree(skillTree, abilities) { drawNode(null, skillTree); return [svg, levelCount]; +} + +async function playLevelSound() { + await playSound("../audio/levelup2.mp3"); +} +async function playXPSound() { + await playSound("../audio/levelup1.mp3"); } \ No newline at end of file