Converted server to Typescript
This commit is contained in:
15
server/dist/models/GameSettings.js
vendored
Normal file
15
server/dist/models/GameSettings.js
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.GameSettings = void 0;
|
||||
class GameSettings {
|
||||
constructor() {
|
||||
this.playerSize = 10;
|
||||
this.playerSpeed = 5;
|
||||
this.playerTurnSpeed = 10;
|
||||
this.wallSize = 8;
|
||||
this.wallUpdate = 3;
|
||||
this.arenaSize = 1000;
|
||||
}
|
||||
}
|
||||
exports.GameSettings = GameSettings;
|
||||
//# sourceMappingURL=GameSettings.js.map
|
||||
1
server/dist/models/GameSettings.js.map
vendored
Normal file
1
server/dist/models/GameSettings.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"GameSettings.js","sourceRoot":"","sources":["../../src/models/GameSettings.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAY;IAQvB;QAPA,eAAU,GAAG,EAAE,CAAC;QAChB,gBAAW,GAAG,CAAC,CAAC;QAChB,oBAAe,GAAG,EAAE,CAAC;QACrB,aAAQ,GAAG,CAAC,CAAC;QACb,eAAU,GAAG,CAAC,CAAC;QACf,cAAS,GAAG,IAAI,CAAC;IAED,CAAC;CAClB;AATD,oCASC"}
|
||||
3
server/dist/models/GameWebSocket.js
vendored
Normal file
3
server/dist/models/GameWebSocket.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=GameWebSocket.js.map
|
||||
1
server/dist/models/GameWebSocket.js.map
vendored
Normal file
1
server/dist/models/GameWebSocket.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"GameWebSocket.js","sourceRoot":"","sources":["../../src/models/GameWebSocket.ts"],"names":[],"mappings":""}
|
||||
75
server/dist/models/Player.js
vendored
Normal file
75
server/dist/models/Player.js
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Player = void 0;
|
||||
const Wall_1 = require("./Wall");
|
||||
const GameSettings_1 = require("./GameSettings");
|
||||
class Player {
|
||||
constructor(id, name) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.gameSettings = new GameSettings_1.GameSettings();
|
||||
this.bestScore = 0;
|
||||
this.angle = 0;
|
||||
this.score = 0;
|
||||
this.color = '#' + (0x1000000 + (Math.random()) * 0xffffff).toString(16).substr(1, 6);
|
||||
this.x = this.gameSettings.arenaSize * (0.25 + Math.random() * 0.5);
|
||||
this.y = this.gameSettings.arenaSize * (0.25 + Math.random() * 0.5);
|
||||
this.walls = [];
|
||||
this.lastWall = 0;
|
||||
this.state = 'ALIVE';
|
||||
this.reset();
|
||||
}
|
||||
reset() {
|
||||
this.score = 0;
|
||||
this.color = '#' + (0x1000000 + (Math.random()) * 0xffffff).toString(16).substr(1, 6);
|
||||
this.x = this.gameSettings.arenaSize * (0.25 + Math.random() * 0.5);
|
||||
this.y = this.gameSettings.arenaSize * (0.25 + Math.random() * 0.5);
|
||||
this.walls = [];
|
||||
this.lastWall = 0;
|
||||
this.state = 'ALIVE';
|
||||
}
|
||||
kill() {
|
||||
this.state = 'DEAD';
|
||||
if (this.bestScore < this.score)
|
||||
this.bestScore = this.score;
|
||||
}
|
||||
isOutOfBorders() {
|
||||
return this.x - this.gameSettings.playerSize < 0 ||
|
||||
this.x + this.gameSettings.playerSize > this.gameSettings.arenaSize ||
|
||||
this.y - this.gameSettings.playerSize < 0 ||
|
||||
this.y + this.gameSettings.playerSize > this.gameSettings.arenaSize;
|
||||
}
|
||||
isCloseToWall(wallA, wallB) {
|
||||
const xar = Math.min(wallA.x, wallB.x) - this.gameSettings.playerSize;
|
||||
const yar = Math.min(wallA.y, wallB.y) - this.gameSettings.playerSize;
|
||||
const xbr = Math.min(wallA.x, wallB.x) + this.gameSettings.playerSize;
|
||||
const ybr = Math.min(wallA.y, wallB.y) + this.gameSettings.playerSize;
|
||||
return ((this.x >= xar && this.x <= xbr) && (this.y >= yar && this.y <= ybr));
|
||||
}
|
||||
isCrossingLine(wallA, wallB) {
|
||||
const xa = wallA.x;
|
||||
const ya = wallA.y;
|
||||
const xb = wallB.x;
|
||||
const yb = wallB.y;
|
||||
const xc = this.x;
|
||||
const yc = this.y;
|
||||
const radius = this.gameSettings.playerSize;
|
||||
return Math.abs((yb - ya) * xc - (xb - xa) * yc + xb * ya - yb * xa) / Math.sqrt(Math.pow(xb - xa, 2) + Math.pow(yb - ya, 2)) < radius;
|
||||
}
|
||||
step(tickToSimulate) {
|
||||
if (this.state === 'DEAD')
|
||||
return;
|
||||
for (let i = 0; i < tickToSimulate; i++) {
|
||||
this.lastWall++;
|
||||
if (this.lastWall > this.gameSettings.wallUpdate) {
|
||||
this.walls.push(new Wall_1.Wall(this.x, this.y));
|
||||
this.score++;
|
||||
this.lastWall = 0;
|
||||
}
|
||||
this.x = this.x + this.gameSettings.playerSpeed * Math.cos(this.angle);
|
||||
this.y = this.y + this.gameSettings.playerSpeed * Math.sin(this.angle);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.Player = Player;
|
||||
//# sourceMappingURL=Player.js.map
|
||||
1
server/dist/models/Player.js.map
vendored
Normal file
1
server/dist/models/Player.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/models/Player.ts"],"names":[],"mappings":"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"}
|
||||
11
server/dist/models/Wall.js
vendored
Normal file
11
server/dist/models/Wall.js
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Wall = void 0;
|
||||
class Wall {
|
||||
constructor(x, y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
}
|
||||
exports.Wall = Wall;
|
||||
//# sourceMappingURL=Wall.js.map
|
||||
1
server/dist/models/Wall.js.map
vendored
Normal file
1
server/dist/models/Wall.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"Wall.js","sourceRoot":"","sources":["../../src/models/Wall.ts"],"names":[],"mappings":";;;AAAA,MAAa,IAAI;IACf,YAAoB,CAAS,EAAS,CAAS;QAA3B,MAAC,GAAD,CAAC,CAAQ;QAAS,MAAC,GAAD,CAAC,CAAQ;IAAI,CAAC;CACrD;AAFD,oBAEC"}
|
||||
Reference in New Issue
Block a user