game over detection system

This commit is contained in:
2024-04-20 11:22:58 +00:00
parent 27b7f6fc62
commit 6393ee12dc
3 changed files with 24 additions and 5 deletions

View File

@@ -1,5 +1,6 @@
import { penaltyController } from "./index.js";
import { isInCircle } from "./map_utils.js";
import { sendUpdatedTeamInformations } from "./team_socket.js";
import { playersBroadcast, sendUpdatedTeamInformations } from "./team_socket.js";
import { ZoneManager } from "./zone_manager.js";
export const GameState = {
@@ -35,6 +36,7 @@ export default class Game {
}
if (newState != GameState.PLAYING) {
this.zone.reset();
penaltyController.stop();
}
this.state = newState;
return true;
@@ -86,7 +88,10 @@ export default class Game {
}
updateTeamChasing() {
if (this.playingTeamCount() <= 1) {
if (this.playingTeamCount() <= 2) {
if(this.state == GameState.PLAYING) {
this.finishGame()
}
return false;
}
let firstTeam = null;
@@ -187,7 +192,7 @@ export default class Game {
requestCapture(teamId, captureCode) {
let enemyTeam = this.getTeam(this.getTeam(teamId).chasing)
if (enemyTeam && enemyTeam.captureCode == captureCode) {
this.capture(enemyTeam);
this.capture(enemyTeam.id);
this.updateTeamChasing();
return true;
}
@@ -216,4 +221,10 @@ export default class Game {
}
return this.zone.udpateSettings(newSettings)
}
finishGame() {
this.setState(GameState.FINISHED);
this.zone.reset();
playersBroadcast("game_state", this.state);
}
}