New version

This commit is contained in:
sguenter
2024-07-05 19:41:54 +02:00
parent 9704cf012e
commit b3792c1189
15 changed files with 98 additions and 62 deletions

View File

@@ -1,8 +1,8 @@
<div>
<h2>Impressum</h2>
<p>Silas Günther<br />
Mariabrunnstraße 48<br />
52064 Aachen<br/>
Peterstraße 10<br />
52062 Aachen<br/>
Deutschland
</p>
<p>E-Mail: <a href="mailto:wordRotator@silas.link">wordRotator@silas.link</a><br/>

View File

@@ -21,14 +21,15 @@
</span>
</div>
<div class='height-30 flex-center fill-me'>
<button class='button grow text-center' id='play-button'><span class="translation" data-translation="play"></span></button>
<button class='button grow text-center' id='play-button'><span class="translation"
data-translation="play"></span></button>
<div class='max-width line-height-1 fill-me vertical'>
<label class="switch">
<div data-view="../../img/speaker.svg"></div>
<input type="checkbox" class="setting" id="play-sound">
<span class="slider"></span>
</label>
<div class="grow center" id = "share-button"><span data-view="../../img/share.svg"></span></div>
<div class="grow center" id="share-button"><span data-view="../../img/share.svg"></span></div>
<label class="switch right">
<div data-view="../../img/music.svg"></div>
<input type="checkbox" class="setting" id="play-music">
@@ -36,4 +37,4 @@
</label>
</div>
</div>
</div>
</div>

View File

@@ -41,9 +41,9 @@ export class WordRotatorSettingFragment extends AbstractFragment {
playMusicButton.addEventListener("change", async () => {
await NativeStoragePromise.setItem("play-music", (playMusicButton.checked) ? "1" : "0");
let soundManager = SoundManager.getInstance();
soundManager.set({muted: !playMusicButton.checked}, SoundManager.CHANNELS.MUSIC);
soundManager.set({muted: !playMusicButton.checked}, "music");
if (playMusicButton.checked) {
await soundManager.play(SoundManager.CHANNELS.MUSIC);
await soundManager.play("music", undefined);
}
//TODO [MIG] Matomo
@@ -55,7 +55,7 @@ export class WordRotatorSettingFragment extends AbstractFragment {
playSoundButton.addEventListener("change", async () => {
await NativeStoragePromise.setItem("play-sound", (playSoundButton.checked) ? "1" : "0");
let soundManager = SoundManager.getInstance();
soundManager.set({muted: !playSoundButton.checked}, SoundManager.CHANNELS.SOUND);
soundManager.set({muted: !playSoundButton.checked}, "sound");
//TODO [MIG] Matomo
Matomo.push(["trackEvent", "MainMenu", "PlaySound", "Play Sound", (playSoundButton.checked) ? 1 : 0]);

View File

@@ -96,9 +96,9 @@ export class LevelSite extends MenuSite {
audio: coinSound,
muted: ((await NativeStoragePromise.getItem("play-sound", "1")) !== "1"),
volume: 0.7
}, SoundManager.CHANNELS.SOUND);
}, "sound");
soundManager.resume(SoundManager.CHANNELS.MUSIC);
soundManager.resume("music");
return super.onConstruct(args);
}
@@ -132,8 +132,8 @@ export class LevelSite extends MenuSite {
let wonText = this.findBy("#won-text");
let scaleHelper = new ScaleHelper();
this.continueButtonScaler = await scaleHelper.scaleToFull(continueButton, continueButton.parentElement, false, true, 2);
this.wonTextScaler = await scaleHelper.scaleTo(0.9, wonText, wonText.parentElement, false, false, 2, null, 5);
this.continueButtonScaler = await scaleHelper.scaleToFull(continueButton, continueButton.parentElement, false, true, 2, undefined, undefined, undefined);
this.wonTextScaler = await scaleHelper.scaleTo(0.9, wonText, wonText.parentElement, false, false, 2, null, 5, undefined);
this.wonText = wonText;
this.wonText.style.fontSize = "0";
@@ -276,7 +276,7 @@ export class LevelSite extends MenuSite {
}
async onStart(args) {
this.setTitle("WR");
this.setTitle("WR", undefined);
Matomo.update("Level Sites");
let res = super.onStart(args);
@@ -292,7 +292,7 @@ export class LevelSite extends MenuSite {
audio: coinSound,
muted: (await NativeStoragePromise.getItem("play-sound", "1") !== "1"),
volume: 0.7
}, SoundManager.CHANNELS.SOUND);
}, "sound");
await this.tutorial();
@@ -321,7 +321,7 @@ export class LevelSite extends MenuSite {
let coinsBefore = 0;
let soundManager = SoundManager.getInstance();
let audioOptions = soundManager.get(SoundManager.CHANNELS.SOUND);
let audioOptions = soundManager.get("sound");
this.coinPromise = this.coinPromise.then(async () => {
coinsBefore = parseInt(Helper.nonNull(await NativeStoragePromise.getItem("coins"), "0"));
@@ -352,7 +352,7 @@ export class LevelSite extends MenuSite {
//TODO animationen einbauen
coinElem.style.opacity = "1";
soundManager.play(SoundManager.CHANNELS.SOUND);
soundManager.play("sound", undefined);
this.wonParams.coinCounterTimer = setTimeout(() => {
if (!this.wonParams.aborted) {

View File

@@ -83,9 +83,9 @@ export class MainMenuSite extends MenuSite {
playMusicButton.checked = (await NativeStoragePromise.getItem("play-music", "1") === "1");
playMusicButton.addEventListener("change", async () => {
await NativeStoragePromise.setItem("play-music", (playMusicButton.checked) ? "1" : "0");
soundManager.set({muted: !playMusicButton.checked}, SoundManager.CHANNELS.MUSIC);
soundManager.set({muted: !playMusicButton.checked}, "music");
if (playMusicButton.checked) {
await soundManager.play(SoundManager.CHANNELS.MUSIC);
await soundManager.play("music", undefined);
}
//TODO [MIG] Matomo
@@ -96,17 +96,13 @@ export class MainMenuSite extends MenuSite {
playSoundButton.checked = (await NativeStoragePromise.getItem("play-sound", "1") === "1");
playSoundButton.addEventListener("change", async () => {
await NativeStoragePromise.setItem("play-sound", (playSoundButton.checked) ? "1" : "0");
soundManager.set({muted: !playSoundButton.checked}, SoundManager.CHANNELS.SOUND);
//TODO [MIG] Matomo
Matomo.push(["trackEvent", "MainMenu", "PlaySound", "Play Sound", (playSoundButton.checked) ? 1 : 0]);
soundManager.set({muted: !playSoundButton.checked}, "sound");
});
this.findBy("#share-button").addEventListener("click", () => {
new ShareManager().share(Translator.getInstance().translate("share-text", [window.location]));
});
return res;
// this.findBy("#share-buttons").appendChild(ShareManager.generateDefaultShareElement("https://wordrotator.silas.link"));
}
async onStart(args) {

View File

@@ -76,7 +76,7 @@ export class TutorialSite extends MenuSite {
let pointerSegment = rotatableSegments[2];
pointerSegment.element.appendChild(pointer);
this.find(".help-action").addEventListener("click", () => {
this.findBy(".help-action").addEventListener("click", () => {
TutorialSite.help(level2);
})

View File

@@ -299,7 +299,6 @@ $coinTowerDimension: 28px;
}
.segment {
vertical-align: top;
white-space: initial;
cursor: pointer;
@@ -353,12 +352,13 @@ $coinTowerDimension: 28px;
}
&.segment-parent {
border: solid 1px #a9a9a9;
border: solid 2px #a9a9a9;
border-radius: 3px;
padding: 1px;
margin: 1px;
&.layer-2 {
border: solid 3px #000000;
border: solid 4px #000000;
}
}
@@ -372,6 +372,10 @@ $coinTowerDimension: 28px;
}
}
.help-action{
border-radius: 4px;
}
//Won-screen
#site > :not(.won) {
.show-when-won {
@@ -430,6 +434,7 @@ $coinTowerDimension: 28px;
}
#continue-button {
border-radius: 4px;
margin-bottom: 2px;
@include breakpoint(small down) {
margin-bottom: 0;
@@ -438,6 +443,7 @@ $coinTowerDimension: 28px;
}
#play-button {
border-radius: 4px;
@include breakpoint(small down) {
margin-bottom: 0.5rem;
}

View File

@@ -55,5 +55,7 @@
"tutorial-1": "Klicke auf ein Feld, um dieses rotieren zu lassen! Um zu gewinnen, drehe die Segmente so, dass du zwei Wörter lesen kannst.",
"tutorial-2": "Die Hilfe löst ein Segment, kostet aber 25 Münzen. Du erhältst 5 Münzen pro gewonnenes Level.",
"tutorial-3": "Große Segmente drehst du, indem du diese ziehst.",
"you solved the tutorial level!": "Du hast das Tutorial-Level gelöst!"
"you solved the tutorial level!": "Du hast das Tutorial-Level gelöst!",
"WR": "WR",
"Spielregeln": "Spielregeln"
}

View File

@@ -49,5 +49,14 @@
"privacy policy accepted": " akzeptiert",
"message": "Nachricht",
"send": "Senden",
"the message was sent": "Die Nachricht wurde gesendet."
}
"the message was sent": "Die Nachricht wurde gesendet.",
"tutorial": "Rules",
"tutorial-1": "Click on a field to rotate it! To win, rotate the segments so that you can read two words.",
"tutorial-2": "The help solves a segment, but costs 25 coins. You receive 5 coins per level won.",
"tutorial-3": "You rotate large segments by dragging them.",
"you solved the tutorial level!": "You have solved the tutorial level!",
"WR": "WR",
"Spielregeln": "Rules"
}