aboutsummaryrefslogtreecommitdiffstats
path: root/backend/ts/startGame.ts
diff options
context:
space:
mode:
Diffstat (limited to 'backend/ts/startGame.ts')
-rw-r--r--backend/ts/startGame.ts41
1 files changed, 41 insertions, 0 deletions
diff --git a/backend/ts/startGame.ts b/backend/ts/startGame.ts
new file mode 100644
index 0000000..4188d29
--- /dev/null
+++ b/backend/ts/startGame.ts
@@ -0,0 +1,41 @@
+import { } from "../../helpers/helpers";
+import { makeQuery, Color, GameBoard, Chequer, Coordinates, Data } from "../../helpers/helpersBack";
+import { Request, Response } from "express";
+
+export default async function startGame(req: Request, res: Response) {
+ if (req.session === undefined) {
+ res.status(500);
+ res.send("");
+ return;
+ }
+
+ makeQuery("UPDATE `fia` SET `started` = 1 WHERE `id`= ?", [req.session.gid]);
+ let dbRes: {gameBoard: GameBoard, data: Data}
+ = (await makeQuery("SELECT `gameBoard`, `playersCount` FROM `fia` WHERE `id` = ?", [req.session.gid]))[0];
+
+ for (let player of dbRes.data) {
+ let chequer: Chequer = { color: player.color, x: 1, y: 1 },
+ start: Coordinates;
+
+ switch (player.color) {
+ case Color.red: start = { x: 1, y: 1 }; break;
+ case Color.blue: start = { x: 8, y: 1 }; break;
+ case Color.yellow: start = { x: 1, y: 8 }; break;
+ default /* Color.green */: start = { x: 8, y: 8 }; break;
+ // case Color.green: start = { x: 8, y: 8 }; break;
+ }
+
+ for (let i = 0; i < 2; i++) {
+ for (let j = 0; j < 2; j++) {
+ //@ts-ignore - 8 + 1 <= 11 which is max of Coordinates
+ [chequer.x, chequer.y] = [start.x + i, start.y + j];
+ }
+ }
+
+ dbRes.gameBoard.push(chequer);
+ }
+
+ await makeQuery("UPDATE `fia` SET `gameBoard` = ? WHERE `id`= ?", [dbRes.gameBoard, req.session.gid]);
+
+ res.send("");
+} \ No newline at end of file