diff --git a/src/App.svelte b/src/App.svelte
index 33b9f26..587587e 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -17,17 +17,27 @@
let rollThemBones = new Audio("https://soundbible.com/mp3/Shake And Roll Dice-SoundBible.com-591494296.mp3");
let playSounds = true;
+ let timeout: NodeJS.Timeout;
function setSoundOptions(event: any) {
playSounds = event.detail.soundEnabled;
}
- function roll(event: any) {
- // console.log("called roll with", details);
+ function handleRoll(event: any) {
+ clearTimeout(timeout);
rollThemBones.pause();
rollThemBones.currentTime = 0;
+
if (playSounds) {
+ rollThemBones.volume = 0.6 + 0.4 * Math.random(); // vary the volume
+ rollThemBones.playbackRate = 0.6 + 0.8 * Math.random(); // vary the playback rate
rollThemBones.play();
+
+ let playTime = rollThemBones.duration * 1000 * (0.3 + 0.7 * Math.random()); // vary the playback duration
+ console.log(`rolling die at volume ${rollThemBones.volume}, playbackRate ${rollThemBones.playbackRate}, play duration ${playTime}`);
+ timeout = setTimeout(() => {
+ rollThemBones.pause();
+ }, playTime);
}
}
@@ -40,37 +50,37 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/src/components/CreatureRoller.svelte b/src/components/CreatureRoller.svelte
index b080966..d206224 100644
--- a/src/components/CreatureRoller.svelte
+++ b/src/components/CreatureRoller.svelte
@@ -11,7 +11,7 @@
function roll(event: Event) {
let creature = rollCreature();
rollResults = [{ creature, timestamp: formatDate(new Date(), "P kk:mm:ss") }, ...rollResults];
- dispatch("makeSomeNoise", { component: "CreatureRoller" });
+ dispatch("roll");
}
diff --git a/src/components/DangerRoller.svelte b/src/components/DangerRoller.svelte
index f4dba61..828dfb8 100644
--- a/src/components/DangerRoller.svelte
+++ b/src/components/DangerRoller.svelte
@@ -1,8 +1,11 @@
diff --git a/src/components/DetailsRoller.svelte b/src/components/DetailsRoller.svelte
index 4042606..7b5fa40 100644
--- a/src/components/DetailsRoller.svelte
+++ b/src/components/DetailsRoller.svelte
@@ -1,5 +1,6 @@
diff --git a/src/components/DiscoveryRoller.svelte b/src/components/DiscoveryRoller.svelte
index dcc105d..48171a1 100644
--- a/src/components/DiscoveryRoller.svelte
+++ b/src/components/DiscoveryRoller.svelte
@@ -1,17 +1,20 @@
diff --git a/src/components/FollowerRoller.svelte b/src/components/FollowerRoller.svelte
index e4aa182..088565c 100644
--- a/src/components/FollowerRoller.svelte
+++ b/src/components/FollowerRoller.svelte
@@ -1,16 +1,19 @@
diff --git a/src/components/KingdomRoller.svelte b/src/components/KingdomRoller.svelte
index f786daa..19fb9dc 100644
--- a/src/components/KingdomRoller.svelte
+++ b/src/components/KingdomRoller.svelte
@@ -1,19 +1,22 @@
diff --git a/src/components/PlaceRoller.svelte b/src/components/PlaceRoller.svelte
index 53988fc..cee8754 100644
--- a/src/components/PlaceRoller.svelte
+++ b/src/components/PlaceRoller.svelte
@@ -1,13 +1,17 @@
diff --git a/src/components/RegionRoller.svelte b/src/components/RegionRoller.svelte
index cc69737..7c8b2ba 100644
--- a/src/components/RegionRoller.svelte
+++ b/src/components/RegionRoller.svelte
@@ -1,13 +1,17 @@
diff --git a/src/components/SteadingRoller.svelte b/src/components/SteadingRoller.svelte
index 158aaa5..d6b3179 100644
--- a/src/components/SteadingRoller.svelte
+++ b/src/components/SteadingRoller.svelte
@@ -1,14 +1,18 @@