diff options
-rw-r--r-- | changelog | 30 | ||||
-rw-r--r-- | qml/pages/Game.qml | 8 | ||||
-rw-r--r-- | qml/pages/LeaderBoard.qml | 11 |
3 files changed, 43 insertions, 6 deletions
diff --git a/changelog b/changelog new file mode 100644 index 0000000..27a2100 --- /dev/null +++ b/changelog @@ -0,0 +1,30 @@ +<p>v0.1</p> +<p>- Initial release</p> +<br> +<p>v0.1.1</p> +<p>- Fixed bug with random zeros</p> +<br> +<p>v0.2</p> +<p>- Multiple modes and difficulties (bit-size based)</p> +<p>- Way better interface and compatibility for large grids</p> +<p>- Renamed package to harbour-compatible name (sorry for not doing that the first time!)</p> +<p>- Help bar/legend showing the powers of two</p> +<br> +<p>v1.0</p> +<p>- Added online leaderboard!</p> +<p>- Main feature development will stop here</p> +<br> +<p>v1.1</p> +<p>- Improved xhr speed (async)</p> +<p>- Added more information to the leaderboard</p> +<p>- Added basic cheat detection (I hope you're loyal though)</p> +<br> +<p>v1.1.1</p> +<p>- Fixed bug causing all scores to be 1 second off</p> +<p>- Fixed floating errors</p> +<p>- Enabled quickscroll</p> +<br> +<p>v1.2.0</p> +<p>- Fixed floating errors</p> +<p>- Added loading animation</p> +<p>- Fixed readystate confusion</p> diff --git a/qml/pages/Game.qml b/qml/pages/Game.qml index a45798e..702c4a7 100644 --- a/qml/pages/Game.qml +++ b/qml/pages/Game.qml @@ -46,7 +46,7 @@ Page { 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") - + "&name="+ username.value + "&mods=0" + "&time=" + (end_time - start_time); + + "&name="+ username.value + "&mods=1" + "&time=" + (end_time - start_time); xhr.send(query); } @@ -78,7 +78,7 @@ Page { if (timer.running) { // aka still playing var end_time = (new Date()).getTime(); info_label.text = "Yeeehaaw!"; - timer_label.text = (((end_time - start_time) / 1000) + 1.0).toFixed(3) + "s - " + qsTr("Not bad!"); + timer_label.text = (((end_time - start_time) / 1000)).toFixed(3) + "s - " + qsTr("Not bad!"); timer.running = false; new_game.visible = true; submit(start_time, end_time, bits, root.matrix.join(",")) @@ -123,11 +123,11 @@ Page { interval: 1000 running: true repeat: true - // triggeredOnStart: true // This WOULD fix the timing bug BUT other versions are already used which would cause wrong scores... + triggeredOnStart: true 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'))) + 1 + "s"; + timer_label.text = parseInt(timer_label.text.substr(0, timer_label.text.indexOf('s'))) + "s"; } } diff --git a/qml/pages/LeaderBoard.qml b/qml/pages/LeaderBoard.qml index 80b2943..bb45e07 100644 --- a/qml/pages/LeaderBoard.qml +++ b/qml/pages/LeaderBoard.qml @@ -38,7 +38,11 @@ Page { true) xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { - list.model = JSON.parse(xhr.responseText); + list.model = JSON.parse(xhr.responseText).sort(function(a, b){ + const time_a = ((a.end_time[1] - a.start_time[1]) / 1000) + (a.mods === "0" ? 1.0 : 0) + const time_b = ((b.end_time[1] - b.start_time[1]) / 1000) + (b.mods === "0" ? 1.0 : 0) + return time_a - time_b; + });; internet.visible = false; loading.running = false; } else if (xhr.readyState === 4) { @@ -133,8 +137,11 @@ Page { Label { anchors.top: level.bottom - text: (((modelData.end_time[1] - modelData.start_time[1]) / 1000) + 1.0).toFixed(3) + qsTr("s - Help: ") + modelData.cheats + 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); + } } } } |