From 7af9769b48321376153b5ceee5c17050eb7d211e Mon Sep 17 00:00:00 2001
From: Marvin Borner
Date: Thu, 23 Apr 2020 22:13:45 +0200
Subject: Added new help modes and fixed timing issues
---
qml/Bit.qml | 2 +-
qml/pages/Game.qml | 15 ++++++----
qml/pages/LeaderBoard.qml | 11 +++++---
qml/pages/Menu.qml | 24 ++++++++--------
translations/harbour-binaryfun-de.ts | 54 +++++++++++++++++++++++-------------
translations/harbour-binaryfun.ts | 44 +++++++++++++++++++----------
6 files changed, 94 insertions(+), 56 deletions(-)
diff --git a/qml/Bit.qml b/qml/Bit.qml
index 1b1e4b1..8332747 100644
--- a/qml/Bit.qml
+++ b/qml/Bit.qml
@@ -49,7 +49,7 @@ Loader {
}
} else if (index !== bits){
var num = Math.floor(Math.random() * (Math.pow(2, bits) - 1)) + 1;
- this.text = root.help ? (Math.pow(2, bits - index - 1)) : num;
+ this.text = root.help > 1 ? (Math.pow(2, bits - index - 1)) : num;
root.matrix[index] = num;
} else {
this.text = "0/1";
diff --git a/qml/pages/Game.qml b/qml/pages/Game.qml
index 702c4a7..9e89765 100644
--- a/qml/pages/Game.qml
+++ b/qml/pages/Game.qml
@@ -6,7 +6,8 @@ import ".."
Page {
// Get passed by previous page
property int bits: 0
- property bool help: false
+ property var help: 0
+ property var modes: []
id: page
allowedOrientations: Orientation.Portrait
@@ -18,13 +19,14 @@ Page {
PullDownMenu {
MenuItem {
text: qsTr("Leaderboard")
- onClicked: pageStack.push(Qt.resolvedUrl("LeaderBoard.qml"))
+ onClicked: pageStack.push(Qt.resolvedUrl("LeaderBoard.qml"), {modes: root.help_modes})
}
}
Column {
property int bits: page.bits
- property bool help: page.help
+ property var help: page.help
+ property var help_modes: page.modes
property var correct: new Array(bits)
property var matrix: new Array(Math.pow(bits + 1, 2))
property var start_time: 0
@@ -45,7 +47,7 @@ Page {
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
var query = "writeKey=" + Qt.atob(key) + "&win=true&board=default&start_time=" + start_time
+ "&end_time=" + end_time + "&difficulty=" + difficulty
- + "&level=" + level + "&cheats=" + (root.help ? "true" : "false")
+ + "&level=" + level + "&cheats=" + root.help
+ "&name="+ username.value + "&mods=1" + "&time=" + (end_time - start_time);
xhr.send(query);
}
@@ -107,13 +109,14 @@ Page {
Label {
id: info_label
text: "0 / " + root.bits
+ visible: root.help === 1 || root.help === 3
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: page.bottom
}
Label {
id: timer_label
- text: "0s"
+ text: "-1s"
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: page.bottom
}
@@ -127,7 +130,7 @@ Page {
onTriggered: {
if (root.start_time === 0)
root.start_time = (new Date()).getTime();
- timer_label.text = parseInt(timer_label.text.substr(0, timer_label.text.indexOf('s'))) + "s";
+ timer_label.text = parseInt(timer_label.text.substr(0, timer_label.text.indexOf('s'))) + 1 + "s";
}
}
diff --git a/qml/pages/LeaderBoard.qml b/qml/pages/LeaderBoard.qml
index bb45e07..cd76c5d 100644
--- a/qml/pages/LeaderBoard.qml
+++ b/qml/pages/LeaderBoard.qml
@@ -3,6 +3,8 @@ import Sailfish.Silica 1.0
import Nemo.Configuration 1.0
Page {
+ property var modes: []
+
id: page
allowedOrientations: Orientation.Portrait
@@ -137,11 +139,12 @@ Page {
Label {
anchors.top: level.bottom
- text: (((modelData.end_time[1] - modelData.start_time[1]) / 1000) + (modelData.mods === "0" ? 1.0 : 0)).toFixed(3) + qsTr("s - Help: ") + modelData.cheats
- font.pixelSize: Theme.fontSizeExtraSmall
- Component.onCompleted: {
- console.log(modelData.mods);
+ text: {
+ const time = (((modelData.end_time[1] - modelData.start_time[1]) / 1000) + (modelData.mods === "0" ? 1.0 : 0)).toFixed(3);
+ const help = modelData.cheats === "true" ? 3 : (modelData.cheats === "false" ? 1 : parseInt(modelData.cheats));
+ return time + qsTr("s - Help: ") + page.modes[help];
}
+ font.pixelSize: Theme.fontSizeExtraSmall
}
}
}
diff --git a/qml/pages/Menu.qml b/qml/pages/Menu.qml
index 6c1dd08..938d95c 100644
--- a/qml/pages/Menu.qml
+++ b/qml/pages/Menu.qml
@@ -7,19 +7,20 @@ Page {
SilicaFlickable {
anchors.fill: parent
- contentHeight: column.height
+ contentHeight: menu.height
PullDownMenu {
MenuItem {
text: qsTr("Leaderboard")
- onClicked: pageStack.push(Qt.resolvedUrl("LeaderBoard.qml"))
+ onClicked: pageStack.push(Qt.resolvedUrl("LeaderBoard.qml"), {modes: menu.help_modes})
}
}
Column {
- property bool bar: false
+ property var help: 0
+ property var help_modes: [qsTr("None"), qsTr("Counter"), qsTr("Bar"), qsTr("Both")]
- id: column
+ id: menu
width: page.width
height: page.height
spacing: Theme.paddingLarge
@@ -34,10 +35,9 @@ Page {
rowSpacing: Theme.paddingLarge * 2
Button {
- text: qsTr("Help bar") + ": 0"
+ text: qsTr("Help") + ": " + menu.help_modes[menu.help]
onClicked: {
- column.bar = this.text.slice(-1) === "0";
- this.text = column.bar ? qsTr("Help bar") + ": 1" : qsTr("Help bar") + ": 0"
+ menu.help = menu.help !== 3 ? ++menu.help : 0;
}
}
@@ -45,35 +45,35 @@ Page {
text: qsTr("Very easy (2 Bit)")
ButtonLayout.newLine: true
onClicked: {
- pageStack.push(Qt.resolvedUrl("Game.qml"), {bits: 2, help: column.bar});
+ pageStack.push(Qt.resolvedUrl("Game.qml"), {bits: 2, help: menu.help, modes: menu.help_modes});
}
}
Button {
text: qsTr("Easy (4 Bit)")
onClicked: {
- pageStack.push(Qt.resolvedUrl("Game.qml"), {bits: 4, help: column.bar});
+ pageStack.push(Qt.resolvedUrl("Game.qml"), {bits: 4, help: menu.help, modes: menu.help_modes});
}
}
Button {
text: qsTr("Medium (6 Bit)")
onClicked: {
- pageStack.push(Qt.resolvedUrl("Game.qml"), {bits: 6, help: column.bar});
+ pageStack.push(Qt.resolvedUrl("Game.qml"), {bits: 6, help: menu.help, modes: menu.help_modes});
}
}
Button {
text: qsTr("Hard (8 Bit)")
onClicked: {
- pageStack.push(Qt.resolvedUrl("Game.qml"), {bits: 8, help: column.bar});
+ pageStack.push(Qt.resolvedUrl("Game.qml"), {bits: 8, help: menu.help, modes: menu.help_modes});
}
}
Button {
text: qsTr("God-like (10 Bit)")
onClicked: {
- pageStack.push(Qt.resolvedUrl("Game.qml"), {bits: 10, help: column.bar});
+ pageStack.push(Qt.resolvedUrl("Game.qml"), {bits: 10, help: menu.help, modes: menu.help_modes});
}
}
}
diff --git a/translations/harbour-binaryfun-de.ts b/translations/harbour-binaryfun-de.ts
index 8c0aa0d..df80fc5 100644
--- a/translations/harbour-binaryfun-de.ts
+++ b/translations/harbour-binaryfun-de.ts
@@ -33,6 +33,18 @@
Leaderboard
Bestenliste
+
+ Enter username (default: anon)
+ Nutzername eingeben (standard: anon)
+
+
+ Username
+ Nutzername
+
+
+ Difficulty
+ Schwierigkeit
+
Please select
Bitte auswählen
@@ -58,16 +70,8 @@
Krass (10 Bit)
- Enter username (default: anon)
- Nutzername eingeben (Standard: anon)
-
-
- Username
- Nutzername
-
-
- Difficulty
- Schwierigkeit
+ Please try again later.
+ Bitte probiere es später erneut.
Numbers:
@@ -75,11 +79,7 @@
s - Help:
- s - Hilfe:
-
-
- Please try again later.
- Bitte probiere es später nochmal.
+ s- Hilfe:
@@ -108,13 +108,29 @@
God-like (10 Bit)
Krass (10 Bit)
-
- Help bar
- Hilfs-Legende
-
Leaderboard
Bestenliste
+
+ Help
+ Hilfe
+
+
+ None
+ Keine
+
+
+ Counter
+ Zähler
+
+
+ Bar
+ Leiste
+
+
+ Both
+ Beides
+
diff --git a/translations/harbour-binaryfun.ts b/translations/harbour-binaryfun.ts
index 2d4e464..f70be9e 100644
--- a/translations/harbour-binaryfun.ts
+++ b/translations/harbour-binaryfun.ts
@@ -34,51 +34,51 @@
- Please select
+ Enter username (default: anon)
- Very easy (2 Bit)
+ Username
- Easy (4 Bit)
+ Difficulty
- Medium (6 Bit)
+ Please select
- Hard (8 Bit)
+ Very easy (2 Bit)
- God-like (10 Bit)
+ Easy (4 Bit)
- Enter username (default: anon)
+ Medium (6 Bit)
- Username
+ Hard (8 Bit)
- Difficulty
+ God-like (10 Bit)
- Numbers:
+ Please try again later.
- s - Help:
+ Numbers:
- Please try again later.
+ s - Help:
@@ -109,11 +109,27 @@
- Help bar
+ Leaderboard
- Leaderboard
+ Help
+
+
+
+ None
+
+
+
+ Counter
+
+
+
+ Bar
+
+
+
+ Both
--
cgit v1.2.3