aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinteck <nekostarfan@gmail.com>2021-06-05 21:03:47 +0200
committerMinteck <nekostarfan@gmail.com>2021-06-05 21:03:47 +0200
commit4ec6f33be6130705b81f19fdc9e2fe01b4a3e7e2 (patch)
tree5b302015939c129ea7fdffc9560fdd89e2547039
parent97ebd65491420363f74ae9e5e6bf77495a37172f (diff)
downloadkartik-client-4ec6f33be6130705b81f19fdc9e2fe01b4a3e7e2.tar.gz
kartik-client-4ec6f33be6130705b81f19fdc9e2fe01b4a3e7e2.tar.bz2
kartik-client-4ec6f33be6130705b81f19fdc9e2fe01b4a3e7e2.zip
Stats presque fini
-rw-r--r--app.js15
-rw-r--r--crash/client.js2
-rw-r--r--crash/crash.html2
-rw-r--r--cursors/click.pngbin350 -> 0 bytes
-rw-r--r--cursors/main.pngbin336 -> 0 bytes
-rw-r--r--cursors/text.pngbin230 -> 0 bytes
-rw-r--r--index.html2
-rw-r--r--package.json2
-rw-r--r--race/cars/car0.js4
-rw-r--r--race/cars/car1.js1
-rw-r--r--race/cars/keymap.js4
-rw-r--r--views/common/fonts.css6
-rw-r--r--views/script/core_stats.js56
13 files changed, 68 insertions, 26 deletions
diff --git a/app.js b/app.js
index 1c02825..da35e78 100644
--- a/app.js
+++ b/app.js
@@ -51,9 +51,9 @@ const { app, BrowserWindow } = require('electron');
process.on('uncaughtException', (error) => {
console.log(" * Starting recovery procedure: E_ERROR");
- id = new Date().toISOString();
+ id = new Date().toISOString().replaceAll(":", "-");
- require('fs').writeFileSync(homedir + "/.kartik/crashes/" + id + ".txt", "Kartik Bootstraper Crash\n\n" + error.stack);
+ require('fs').writeFileSync(require('os').userInfo().homedir + "/.kartik/crashes/" + id + ".txt", "Kartik Bootstraper Crash\n\n" + error.stack);
if (require('os').platform() === "win32") {
require('child_process').exec("runtime\\kartik-crash.bat " + id);
} else if (require('os').platform() === "darwin") {
@@ -278,6 +278,17 @@ const { app, BrowserWindow } = require('electron');
musicIpc.on('preunfademusic', (event, value) => {
win.webContents.send('unfademusic', value);
})
+
+ stats = require(homedir + "/.kartik/stats.json");
+ musicIpc.on('addstats', (event, value) => {
+ stats[value.catalog][value.key] = stats[value.catalog][value.key] + value.add;
+ fs.writeFile(homedir + "/.kartik/stats.json", JSON.stringify(stats), () => {});
+ })
+ musicIpc.on('addstatsandclose', (event, value) => {
+ stats[value.catalog][value.key] = stats[value.catalog][value.key] + value.add;
+ fs.writeFile(homedir + "/.kartik/stats.json", JSON.stringify(stats), () => {});
+ win.destroy();
+ })
})
}
diff --git a/crash/client.js b/crash/client.js
index d5ea355..e70467f 100644
--- a/crash/client.js
+++ b/crash/client.js
@@ -3,7 +3,7 @@ if (native) {
try {
require('@electron/remote').getCurrentWindow().hide();
} catch (e) {}
- id = new Date().toISOString();
+ id = new Date().toISOString().replaceAll(":", "-");
try {
global.pkg = require('./package.json');
diff --git a/crash/crash.html b/crash/crash.html
index 5b922aa..ec4e5ca 100644
--- a/crash/crash.html
+++ b/crash/crash.html
@@ -46,7 +46,7 @@
<p><script>
document.write(lang.crash.report[0]);
if (require('os').platform() === "win32") {
- document.write(require('os').userInfo().homedir + "\\.kartik\\pilot\\crashes");
+ document.write(require('os').userInfo().homedir + "\\.kartik\\crashes");
} else {
document.write(require('os').userInfo().homedir + "/.kartik/crashes");
}
diff --git a/cursors/click.png b/cursors/click.png
deleted file mode 100644
index 606629a..0000000
--- a/cursors/click.png
+++ /dev/null
Binary files differ
diff --git a/cursors/main.png b/cursors/main.png
deleted file mode 100644
index b7a6a83..0000000
--- a/cursors/main.png
+++ /dev/null
Binary files differ
diff --git a/cursors/text.png b/cursors/text.png
deleted file mode 100644
index ca51275..0000000
--- a/cursors/text.png
+++ /dev/null
Binary files differ
diff --git a/index.html b/index.html
index a484514..737ddf3 100644
--- a/index.html
+++ b/index.html
@@ -9,7 +9,6 @@
<link rel="stylesheet" href="./views/common/fonts.css">
<link rel="stylesheet" href="./views/common/index.css">
<script src="./views/script/core_head.js"></script>
- <script src="./views/script/core_stats.js"></script>
<script src="./views/script/core_fullscreen.js"></script>
<script>
if (native) {
@@ -92,6 +91,7 @@
<script src="./views/script/core_chart.js"></script>
<script src="./views/script/core_music.js"></script>
<script src="./views/script/core_viewer.js"></script>
+ <script src="./views/script/core_stats.js"></script>
<script>info("MainWindow", "Main container up!");if (native){require('@electron/remote').getCurrentWindow().log(" * View loaded, Kartik is now up and running!");}</script>
</body>
</html>
diff --git a/package.json b/package.json
index 9467cd8..69a8864 100644
--- a/package.json
+++ b/package.json
@@ -1 +1 @@
-{"name":"kartik","version":"5f37145","channel":"git","description":"A multiplatform 2D karting game","main":"app.js","dependencies":{"@electron/remote":"^1.0.4","discord-rpc":"^3.2.0","electron":"^12.0.1","ini":"^1.3.8","jquery":"^3.6.0","os-locale":"^5.0.0","uuid":"^8.3.2","yaml":"^1.10.2"},"scripts":{"test":"node_modules\\electron\\dist\\electron.exe app.js"},"author":"Minteck Projects","license":"UNLICENSED","serial":"XXX99999999999"} \ No newline at end of file
+{"name":"kartik","version":"97ebd65","channel":"git","description":"A multiplatform 2D karting game","main":"app.js","dependencies":{"@electron/remote":"^1.0.4","discord-rpc":"^3.2.0","electron":"^12.0.1","ini":"^1.3.8","jquery":"^3.6.0","os-locale":"^5.0.0","uuid":"^8.3.2","yaml":"^1.10.2"},"scripts":{"test":"node_modules\\electron\\dist\\electron.exe app.js"},"author":"Minteck Projects","license":"UNLICENSED","serial":"XXX99999999999"} \ No newline at end of file
diff --git a/race/cars/car0.js b/race/cars/car0.js
index ddfe8c5..ad1c227 100644
--- a/race/cars/car0.js
+++ b/race/cars/car0.js
@@ -54,6 +54,7 @@ startHooks.push(() => {
Sound.crash()
document.getElementById("car0").style.left = car0startx + "px";
document.getElementById("car0").style.top = car0starty + "px";
+ require('electron').ipcRenderer.send('addstats', { catalog: "ingame", key: "walls", add: 1 });
Array.from(document.getElementById('oil').children).forEach((item) => {
spreadOil(item);
})
@@ -96,6 +97,7 @@ startHooks.push(() => {
} else {
Sound.last()
}
+ require('electron').ipcRenderer.send('addstats', { catalog: "ingame", key: "laps", add: 1 });
document.getElementById('laps-car0').innerText = (document.getElementById('laps-car0').innerText.split("/")[0] - 1 + 2).toString();
if (location.search === "?sp") {
if ((document.getElementById('laps-car0').innerText.split("/")[0] - 1 + 1) > (document.getElementById('laps-car1').innerText.split("/")[0] - 1 + 1)) {
@@ -106,6 +108,7 @@ startHooks.push(() => {
}
} else {
info("CarManager:car0", "Car won the game");
+ require('electron').ipcRenderer.send('addstats', { catalog: "results", key: "wins", add: 1 });
if (location.search === "?sp") {
scenar("won1", "sad");
}
@@ -156,6 +159,7 @@ startHooks.push(() => {
scenar("wall1", "happy");
}
Sound.crash();
+ require('electron').ipcRenderer.send('addstats', { catalog: "ingame", key: "walls", add: 1 });
document.getElementById("car0").style.left = car0startx + "px";
document.getElementById("car0").style.top = car0starty + "px";
Array.from(document.getElementById('oil').children).forEach((item) => {
diff --git a/race/cars/car1.js b/race/cars/car1.js
index 750cbb3..0c4c9f0 100644
--- a/race/cars/car1.js
+++ b/race/cars/car1.js
@@ -113,6 +113,7 @@ startHooks.push(() => {
if (location.search === "?sp") {
scenar("won2", "happy");
}
+ require('electron').ipcRenderer.send('addstats', { catalog: "results", key: "loses", add: 1 });
try { document.getElementById('music').src = "about:blank"; } catch (e) { console.error(e); }
Sound.win();
keysEnabled = false;
diff --git a/race/cars/keymap.js b/race/cars/keymap.js
index 74cce0a..221a7ec 100644
--- a/race/cars/keymap.js
+++ b/race/cars/keymap.js
@@ -29,6 +29,7 @@ startHooks.push(() => {
car0cspeed = car0cspeed + 0.2;
}
if (document.getElementById("car0").style.transform !== "rotate(-90deg)") {
+ require('electron').ipcRenderer.send('addstats', { catalog: "ingame", key: "turns", add: 1 });
document.getElementById("car0").style.transform = "rotate(-90deg)";
car0collisionon = false;
setTimeout(() => {
@@ -41,6 +42,7 @@ startHooks.push(() => {
car0cspeed = car0cspeed + 0.2;
}
if (document.getElementById("car0").style.transform !== "rotate(90deg)") {
+ require('electron').ipcRenderer.send('addstats', { catalog: "ingame", key: "turns", add: 1 });
document.getElementById("car0").style.transform = "rotate(90deg)";
car0collisionon = false;
setTimeout(() => {
@@ -53,6 +55,7 @@ startHooks.push(() => {
car0cspeed = car0cspeed + 0.2;
}
if (document.getElementById("car0").style.transform !== "rotate(180deg)") {
+ require('electron').ipcRenderer.send('addstats', { catalog: "ingame", key: "turns", add: 1 });
document.getElementById("car0").style.transform = "rotate(180deg)";
car0collisionon = false;
setTimeout(() => {
@@ -65,6 +68,7 @@ startHooks.push(() => {
car0cspeed = car0cspeed + 0.2;
}
if (document.getElementById("car0").style.transform !== "rotate(0deg)") {
+ require('electron').ipcRenderer.send('addstats', { catalog: "ingame", key: "turns", add: 1 });
document.getElementById("car0").style.transform = "rotate(0deg)";
car0collisionon = false;
setTimeout(() => {
diff --git a/views/common/fonts.css b/views/common/fonts.css
index ac8f9f0..190dd75 100644
--- a/views/common/fonts.css
+++ b/views/common/fonts.css
@@ -19,9 +19,5 @@
}
body, * {
- cursor: url("../../cursors/main.png"), default !important;
-}
-
-input {
- cursor: url("../../cursors/text.png"), default !important;
+ cursor: default !important;
} \ No newline at end of file
diff --git a/views/script/core_stats.js b/views/script/core_stats.js
index 5c7314f..a49851d 100644
--- a/views/script/core_stats.js
+++ b/views/script/core_stats.js
@@ -2,7 +2,6 @@ const fs = require('fs');
const homedir = require('@electron/remote').getCurrentWindow().homedir;
const defaultStats = {
times: {
- game: 0,
single: 0,
local: 0,
online: 0
@@ -28,20 +27,47 @@ if (!fs.existsSync(homedir + "/.kartik/stats.json")) {
}
}
-class Stats {
- static add(category, counter, quantity) {
- try {
- let current = JSON.parse(fs.readFileSync(homedir + "/.kartik/stats.json").toString());
- current[category][counter] = current[category][counter] + quantity;
- fs.writeFileSync(homedir + "/.kartik/stats.json", JSON.stringify(current));
- } catch (e) {}
+session = null;
+timer = null;
+current = null;
+
+webview.addEventListener('dom-ready', () => {
+ if (webview.getURL() !== current) {
+ if (session !== null) {
+ require('electron').ipcRenderer.send('addstats', { catalog: "times", key: session, add: Math.floor((new Date() - timer)/1000) });
+
+ session = null;
+ timer = null;
+ current = null;
+ }
+ }
+
+ if (webview.getURL().endsWith("game.html")) { // Local
+ session = "local";
+ timer = new Date();
+ current = webview.getURL();
}
+ if (webview.getURL().endsWith("game.html?sp")) { // Singleplayer
+ session = "single";
+ timer = new Date();
+ current = webview.getURL();
+ }
+ if (webview.getURL().endsWith("game.html?online")) { // Online
+ session = "online";
+ timer = new Date();
+ current = webview.getURL();
+ }
+})
+
+window.addEventListener("beforeunload", function(e){
+ if (session !== null) {
+ require('electron').ipcRenderer.send('addstatsandclose', { catalog: "times", key: session, add: Math.floor((new Date() - timer)/1000) });
+
+ session = null;
+ timer = null;
+ current = null;
- static set(category, counter, value) {
- try {
- let current = JSON.parse(fs.readFileSync(homedir + "/.kartik/stats.json").toString());
- current[category][counter] = value;
- fs.writeFileSync(homedir + "/.kartik/stats.json", JSON.stringify(current));
- } catch (e) {}
+ e.preventDefault();
+ return false;
}
-} \ No newline at end of file
+}, false); \ No newline at end of file