mirror of
https://git.rezel.net/LudoTech/traque.git
synced 2026-02-09 02:10:18 +01:00
Cleaning
This commit is contained in:
@@ -55,9 +55,9 @@ export function initAdminSocketHandler() {
|
||||
socket.emit("current_zone", {
|
||||
begin: zoneManager.getCurrentZone(),
|
||||
end: zoneManager.getNextZone(),
|
||||
endDate: zoneManager.currentZoneEndDate,
|
||||
endDate: zoneManager.currentZone.endDate,
|
||||
});
|
||||
socket.emit("settings", game.getSettings());
|
||||
socket.emit("settings", game.getAdminSettings());
|
||||
});
|
||||
|
||||
socket.on("add_team", (teamName) => {
|
||||
|
||||
@@ -60,7 +60,7 @@ export default {
|
||||
},
|
||||
|
||||
checkEndGame() {
|
||||
if (this.teams.filter(team => !team.captured) <= 2) this.setState(GameState.FINISHED);
|
||||
if (this.teams.filter(team => !team.captured).length <= 2) this.setState(GameState.FINISHED);
|
||||
},
|
||||
|
||||
updateChasingChain() {
|
||||
@@ -78,7 +78,7 @@ export default {
|
||||
// Update of lastSentLocation
|
||||
for (const team of this.teams) {
|
||||
team.lastSentLocation = team.currentLocation;
|
||||
team.locationSendDeadline = dateNow + sendPositionTimeouts.duration * 60 * 1000;
|
||||
team.locationSendDeadline = dateNow + sendPositionTimeouts.delay * 60 * 1000;
|
||||
sendPositionTimeouts.set(team.id);
|
||||
sendUpdatedTeamInformations(team.id);
|
||||
}
|
||||
@@ -122,7 +122,7 @@ export default {
|
||||
|
||||
/* ------------------------------- STATE AND SETTINGS FUNCTIONS ------------------------------- */
|
||||
|
||||
getSettings() {
|
||||
getAdminSettings() {
|
||||
return {
|
||||
messages: this.messages,
|
||||
zone: zoneManager.settings,
|
||||
@@ -131,14 +131,23 @@ export default {
|
||||
};
|
||||
},
|
||||
|
||||
getPlayerSettings() {
|
||||
return {
|
||||
messages: this.messages,
|
||||
zone: {type: zoneManager.settings.type},
|
||||
sendPositionDelay: sendPositionTimeouts.delay,
|
||||
outOfZoneDelay: outOfZoneTimeouts.delay
|
||||
};
|
||||
},
|
||||
|
||||
changeSettings(newSettings) {
|
||||
if ("messages" in newSettings) this.messages = {...this.messages, ...newSettings.messages};
|
||||
if ("zone" in newSettings) zoneManager.changeSettings(newSettings.zone);
|
||||
if ("sendPositionDelay" in newSettings) sendPositionTimeouts.setDelay(newSettings.sendPositionDelay);
|
||||
if ("outOfZoneDelay" in newSettings) outOfZoneTimeouts.setDelay(newSettings.outOfZoneDelay);
|
||||
// Broadcast new infos
|
||||
secureAdminBroadcast("settings", this.getSettings());
|
||||
playersBroadcast("game_settings", this.messages);
|
||||
secureAdminBroadcast("settings", this.getAdminSettings());
|
||||
playersBroadcast("settings", this.getPlayerSettings());
|
||||
},
|
||||
|
||||
setState(newState) {
|
||||
@@ -153,7 +162,7 @@ export default {
|
||||
break;
|
||||
case GameState.PLACEMENT:
|
||||
if (this.teams.length < 3) {
|
||||
secureAdminBroadcast("game_state", {state: this.state, stateDate: this.stateDate});
|
||||
secureAdminBroadcast("game_state", {state: this.state, date: this.stateDate});
|
||||
return false;
|
||||
}
|
||||
trajectory.stop();
|
||||
@@ -163,7 +172,7 @@ export default {
|
||||
break;
|
||||
case GameState.PLAYING:
|
||||
if (this.teams.length < 3) {
|
||||
secureAdminBroadcast("game_state", {state: this.state, stateDate: this.stateDate});
|
||||
secureAdminBroadcast("game_state", {state: this.state, date: this.stateDate});
|
||||
return false;
|
||||
}
|
||||
trajectory.start();
|
||||
@@ -172,7 +181,7 @@ export default {
|
||||
break;
|
||||
case GameState.FINISHED:
|
||||
if (this.state != GameState.PLAYING) {
|
||||
secureAdminBroadcast("game_state", {state: this.state, stateDate: this.stateDate});
|
||||
secureAdminBroadcast("game_state", {state: this.state, date: this.stateDate});
|
||||
return false;
|
||||
}
|
||||
trajectory.stop();
|
||||
@@ -187,8 +196,8 @@ export default {
|
||||
this.state = newState;
|
||||
this.stateDate = dateNow;
|
||||
// Broadcast new infos
|
||||
secureAdminBroadcast("game_state", {state: newState, stateDate: this.stateDate});
|
||||
playersBroadcast("game_state", newState);
|
||||
secureAdminBroadcast("game_state", {state: newState, date: this.stateDate});
|
||||
playersBroadcast("game_state", {state: newState, date: this.stateDate});
|
||||
return true;
|
||||
},
|
||||
|
||||
@@ -214,7 +223,7 @@ export default {
|
||||
// Variables
|
||||
const team = this.getTeam(teamId);
|
||||
// Remove the player and its data
|
||||
if (this.isCapitain(teamId, socketId)) {
|
||||
if (this.isPlayerCapitain(teamId, socketId)) {
|
||||
team.battery = null;
|
||||
team.phoneModel = null;
|
||||
team.phoneName = null;
|
||||
@@ -297,6 +306,17 @@ export default {
|
||||
return true;
|
||||
},
|
||||
|
||||
updateTeam(teamId, newInfos) {
|
||||
// Test of parameters
|
||||
if (!this.hasTeam(teamId)) return false;
|
||||
// Update
|
||||
this.teams = this.teams.map(team => team.id == teamId ? {...team, ...newInfos} : team);
|
||||
// Broadcast new infos
|
||||
secureAdminBroadcast("teams", this.teams);
|
||||
sendUpdatedTeamInformations(teamId);
|
||||
return true;
|
||||
},
|
||||
|
||||
captureTeam(teamId) {
|
||||
// Test of parameters
|
||||
if (!this.hasTeam(teamId)) return false;
|
||||
@@ -369,7 +389,7 @@ export default {
|
||||
const teamCurrentlyOutOfZone = !zoneManager.isInZone({ lat: location[0], lng: location[1] })
|
||||
if (teamCurrentlyOutOfZone && !team.outOfZone) {
|
||||
team.outOfZone = true;
|
||||
team.outOfZoneDeadline = dateNow + outOfZoneTimeouts.duration * 60 * 1000;
|
||||
team.outOfZoneDeadline = dateNow + outOfZoneTimeouts.delay * 60 * 1000;
|
||||
outOfZoneTimeouts.set(teamId);
|
||||
} else if (!teamCurrentlyOutOfZone && team.outOfZone) {
|
||||
team.outOfZone = false;
|
||||
@@ -395,7 +415,7 @@ export default {
|
||||
team.nSentLocation++;
|
||||
team.lastSentLocation = team.currentLocation;
|
||||
team.enemyLocation = enemyTeam.lastSentLocation;
|
||||
team.locationSendDeadline = dateNow + sendPositionTimeouts.duration * 60 * 1000;
|
||||
team.locationSendDeadline = dateNow + sendPositionTimeouts.delay * 60 * 1000;
|
||||
sendPositionTimeouts.set(team.id);
|
||||
// Update enemy
|
||||
enemyTeam.nObserved++;
|
||||
|
||||
@@ -92,14 +92,16 @@ export function initTeamSocket() {
|
||||
return;
|
||||
}
|
||||
sendUpdatedTeamInformations(loginTeamId);
|
||||
socket.emit("game_state", game.state);
|
||||
socket.emit("game_settings", game.messages);
|
||||
socket.emit("zone", {
|
||||
type: zoneManager.settings.type,
|
||||
socket.emit("game_state", {
|
||||
state: game.state,
|
||||
date: game.stateDate
|
||||
});
|
||||
socket.emit("current_zone", {
|
||||
begin: zoneManager.getCurrentZone(),
|
||||
end: zoneManager.getNextZone(),
|
||||
endDate: zoneManager.currentZoneEndDate,
|
||||
endDate: zoneManager.currentZone.endDate,
|
||||
});
|
||||
socket.emit("settings", game.getPlayerSettings());
|
||||
callback({ isLoggedIn : true, message: "Logged in"});
|
||||
});
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ const defaultCircleSettings = {type: zoneTypes.circle, min: null, max: null, red
|
||||
|
||||
function circleZone(center, radius, duration) {
|
||||
return {
|
||||
type: zoneTypes.circle,
|
||||
center: center,
|
||||
radius: radius,
|
||||
duration: duration,
|
||||
@@ -84,18 +85,19 @@ function circleSettingsToZones(settings) {
|
||||
|
||||
const defaultPolygonSettings = {type: zoneTypes.polygon, polygons: []}
|
||||
|
||||
function polygonZone(points, duration) {
|
||||
function polygonZone(polygon, duration) {
|
||||
return {
|
||||
points: points,
|
||||
type: zoneTypes.polygon,
|
||||
polygon: polygon,
|
||||
duration: duration,
|
||||
|
||||
isInZone(location) {
|
||||
const {lat: x, lng: y} = location;
|
||||
let inside = false;
|
||||
|
||||
for (let i = 0, j = this.points.length - 1; i < this.points.length; j = i++) {
|
||||
const {lat: xi, lng: yi} = this.points[i];
|
||||
const {lat: xj, lng: yj} = this.points[j];
|
||||
for (let i = 0, j = this.polygon.length - 1; i < this.polygon.length; j = i++) {
|
||||
const {lat: xi, lng: yi} = this.polygon[i];
|
||||
const {lat: xj, lng: yj} = this.polygon[j];
|
||||
|
||||
const intersects = ((yi > y) !== (yj > y)) && (x < ((xj - xi) * (y - yi)) / (yj - yi) + xi);
|
||||
|
||||
@@ -156,7 +158,7 @@ function polygonSettingsToZones(settings) {
|
||||
));
|
||||
} else {
|
||||
zones.push(polygonZone(
|
||||
mergePolygons(zones[length-1].points, polygon),
|
||||
mergePolygons(zones[length-1].polygon, polygon),
|
||||
duration
|
||||
));
|
||||
}
|
||||
@@ -233,12 +235,11 @@ export default {
|
||||
|
||||
zoneBroadcast() {
|
||||
const zone = {
|
||||
type: this.settings.type,
|
||||
begin: this.getCurrentZone(),
|
||||
end: this.getNextZone(),
|
||||
endDate:this.currentZone.endDate,
|
||||
};
|
||||
playersBroadcast("zone", zone);
|
||||
playersBroadcast("current_zone", zone);
|
||||
secureAdminBroadcast("current_zone", zone);
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user