-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathGiveUp.js
More file actions
133 lines (108 loc) · 20.9 KB
/
GiveUp.js
File metadata and controls
133 lines (108 loc) · 20.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
var Map1 = `{"name":"MRS","width":900,"height":440,"spawnDistance":350,"bg":{"type":"hockey","width":700,"height":320,"kickOffRadius":180,"cornerRadius":0},"vertexes":[{"x":0,"y":560,"trait":"kickOffBarrier","color":"FFCCFF"},{"x":-1,"y":181,"trait":"kickOffBarrier","color":"FFCCFF"},{"x":-2,"y":-177,"trait":"kickOffBarrier","color":"FFCCFF"},{"x":0,"y":-660,"trait":"kickOffBarrier","color":"FFCCFF"},{"x":540,"y":9,"trait":"line"},{"x":539,"y":-1,"trait":"line"},{"x":-534,"y":11,"trait":"line"},{"x":-532,"y":0,"trait":"line"},{"x":-707,"y":98,"trait":"line","color":"00DBDB"},{"x":-767,"y":96,"trait":"line","color":"00DBDB"},{"x":-705,"y":-99,"trait":"line","color":"FFF62F","curve":0,"bCoef":1.5},{"x":-765,"y":-97,"trait":"line","color":"00DBDB","curve":0,"bCoef":1.5},{"x":702,"y":100,"trait":"line","color":"00DBDB"},{"x":762,"y":98,"trait":"line","color":"00DBDB"},{"x":698,"y":-99,"trait":"line","color":"00DBDB"},{"x":758,"y":-97,"trait":"line","color":"00DBDB"},{"x":0,"y":-4,"trait":"line"},{"x":0,"y":4,"trait":"line"},{"x":0,"y":-4,"trait":"line"},{"x":0,"y":4,"trait":"line"},{"x":-769,"y":98,"trait":"line","color":"FF3300"},{"x":-768,"y":-97,"trait":"line","color":"FF3300"},{"x":759,"y":95,"trait":"line","color":"003399"},{"x":760,"y":-98,"trait":"line","color":"003399"},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":-7,"y":-436,"curve":0,"cGroup":["blueKO"]},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":-6,"y":316,"curve":0,"cGroup":["blueKO"]},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":6,"y":-436,"curve":0,"cGroup":["redKO"]},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":6,"y":316,"curve":0,"cGroup":["redKO"]},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":2,"y":-180,"curve":0,"cGroup":["redKO"],"vis":true,"color":"FFCCFF"},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":0,"y":180,"curve":0,"cGroup":["redKO"],"vis":true,"color":"FFCCFF"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":-700.5,"y":281,"color":"FFFFFF"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":-653.5,"y":318,"color":"FFFFFF"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":700.5,"y":281,"color":"FFFFFF"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":653.5,"y":318,"color":"FFFFFF"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":-700.5,"y":-281,"curve":100,"color":"FFFFFF"},{"bCoef":0,"cMask":["wall"],"trait":"line","x":-653.5,"y":-318,"color":"FFFFFF"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":700.5,"y":-281,"curve":-100,"color":"FFFFFF"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":653.5,"y":-318,"curve":-100,"color":"FFFFFF"},{"trait":"line","x":-701,"y":248},{"trait":"line","x":703,"y":252},{"trait":"line","x":-700,"y":-249},{"trait":"line","x":-699,"y":-107},{"trait":"line","x":701,"y":-104},{"trait":"line","x":-701,"y":106},{"cMask":["ball"],"trait":"line","x":-707,"y":-102,"curve":30},{"cMask":["ball"],"trait":"line","x":-707,"y":102,"curve":-30},{"bCoef":2.5,"trait":"goalPost","x":-699,"y":-100},{"bCoef":2.5,"trait":"goalPost","x":699,"y":-100},{"bCoef":2.5,"trait":"goalPost","x":-699,"y":100},{"bCoef":2.5,"trait":"goalPost","x":699,"y":100},{"bCoef":2.5,"trait":"goalPost","x":-699,"y":-100,"curve":-60,"color":"003399"},{"bCoef":2.5,"trait":"goalPost","x":699,"y":-100,"curve":60,"color":"cc3300"},{"bCoef":2.5,"trait":"goalPost","x":-699,"y":100,"curve":60,"color":"003399"},{"bCoef":2.5,"trait":"goalPost","x":699,"y":100,"curve":-60,"color":"cc3300"},{"bCoef":2.5,"trait":"goalPost","x":-697,"y":-100},{"bCoef":2.5,"trait":"goalPost","x":697,"y":-100},{"bCoef":2.5,"trait":"goalPost","x":-697,"y":100},{"bCoef":2.5,"trait":"goalPost","x":697,"y":100},{"trait":"line","x":700,"y":112.75,"color":"00DBDB"},{"trait":"line","x":-701,"y":173.75,"color":"00DBDB"},{"trait":"line","x":-518,"y":173.75,"color":"00DBDB"},{"trait":"line","x":700,"y":174.75,"color":"00DBDB"},{"trait":"line","x":518,"y":173.75,"color":"00DBDB"},{"trait":"line","x":-701,"y":-173.75,"color":"00DBDB"},{"trait":"line","x":-518,"y":-173.75,"color":"00DBDB"},{"trait":"line","x":701,"y":-173.75,"color":"00DBDB"},{"trait":"line","x":518,"y":-173.75,"color":"00DBDB"},{"trait":"line","x":-701,"y":112.75,"color":"00DBDB"},{"trait":"line","x":-623,"y":112.75,"color":"00DBDB"},{"trait":"line","x":624,"y":112.75,"color":"00DBDB"},{"trait":"line","x":-701,"y":-112.75,"color":"00DBDB"},{"trait":"line","x":-623,"y":-112.75,"color":"00DBDB"},{"trait":"line","x":701,"y":-112.75,"color":"00DBDB"},{"trait":"line","x":623,"y":-112.75,"color":"00DBDB"},{"trait":"line","x":-700.25,"y":166.75,"color":"101010"},{"trait":"line","x":-700.25,"y":-166.75},{"trait":"line","x":-702.25,"y":-151.75},{"trait":"line","x":-697.25,"y":-161.75},{"trait":"line","x":-507.25,"y":191.75,"color":"C38173"},{"trait":"line","x":-507.25,"y":97.75,"color":"C38173"},{"trait":"line","x":507.25,"y":191.75,"color":"C38173"},{"trait":"line","x":507.25,"y":92.75,"color":"C38173"},{"trait":"line","x":-507.25,"y":-191.75,"color":"C38173"},{"trait":"line","x":-508.25,"y":-94.75,"color":"C38173"},{"trait":"line","x":518.25,"y":-93.75,"color":"C38173"},{"bCoef":-3,"trait":"line","x":-717,"y":111,"cMask":["ball"],"curve":40,"color":"ffffff"},{"bCoef":-3,"trait":"line","x":-718,"y":187,"cMask":["ball"],"curve":40,"color":"ffffff"},{"bCoef":-3,"trait":"line","x":-721,"y":-191,"cMask":["ball"],"curve":40,"color":"ffffff"},{"bCoef":-3,"trait":"line","x":-720,"y":-116,"cMask":["ball"],"curve":40,"color":"ffffff"},{"bCoef":-3,"trait":"line","x":716,"y":-193,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-3,"trait":"line","x":713,"y":-113,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-3,"trait":"line","x":716,"y":109,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-3,"trait":"line","x":715,"y":187,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":-1,"y":-180,"curve":0,"cGroup":["blueKO"],"vis":true,"color":"FFCCFF"},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":0,"y":180,"curve":0,"cGroup":["blueKO"],"vis":true,"color":"FFCCFF"},{"trait":"line","x":-515.5,"y":-91.25,"curve":180,"color":"00DBDB"},{"trait":"line","x":-515.5,"y":95.75,"curve":180,"color":"00DBDB"},{"trait":"line","x":519.5,"y":-93.25,"color":"00DBDB"},{"trait":"line","x":519.5,"y":93.75,"color":"00DBDB"},{"trait":"line","x":518.5,"y":-93.25,"curve":-180.808346662,"color":"00DBDB"},{"trait":"line","x":517.5,"y":90.75,"curve":-180.808346662,"color":"00DBDB"},{"trait":"line","x":-700.25,"y":202.75,"color":"C38150"},{"trait":"line","x":-546.25,"y":320.75,"color":"C38150"},{"trait":"line","x":-699.347495384,"y":-203.75700879,"curve":-75,"color":"C38150"},{"trait":"line","x":-541.517823356,"y":-316.583400329,"curve":-75,"color":"C38150"},{"trait":"line","x":544.652504616,"y":317.24299121,"curve":75,"color":"C38150"},{"trait":"line","x":702.482176644,"y":204.416599671,"curve":75,"color":"C38150"},{"trait":"line","x":1.75,"y":428,"color":"000000"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":-653,"y":-323,"curve":100},{"bCoef":-2.85,"trait":"line","x":702,"y":281,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-2.85,"trait":"line","x":652,"y":323,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-2.85,"trait":"line","x":-653,"y":321,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-2.85,"trait":"line","x":-701,"y":281,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-2.85,"trait":"line","x":-652,"y":-323,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-2.85,"trait":"line","x":-700,"y":-282,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-2.85,"trait":"line","x":700,"y":-282,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-2.85,"trait":"line","x":654,"y":-319,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"x":-651,"y":-321,"curve":0,"color":"ffffff","bCoef":1.5,"trait":"ballArea"},{"x":651,"y":-320,"curve":0,"color":"00DBDB","bCoef":1.5,"trait":"ballArea"},{"x":-705,"y":-99,"trait":"line","color":"00DBDB","curve":0,"bCoef":1.5},{"x":-765,"y":-97,"trait":"line","color":"00DBDB","curve":0,"bCoef":1.5},{"x":-650,"y":320,"curve":0,"color":"ffffff","bCoef":1.5,"trait":"ballArea"},{"x":652,"y":321,"curve":0,"color":"ffffff","bCoef":1.5,"trait":"ballArea"},{"bCoef":1.5,"x":-651,"y":319},{"cMask":["ball"],"x":-644,"y":-441},{"cMask":["ball"],"x":-638,"y":-405},{"cMask":["ball"],"x":644,"y":441},{"cMask":["ball"],"x":638,"y":405},{"cMask":["ball"],"x":-644,"y":441},{"cMask":["ball"],"x":-638,"y":405},{"cMask":["ball"],"x":651,"y":-440},{"cMask":["ball"],"x":-651,"y":-440},{"cMask":["ball"],"x":651,"y":440},{"cMask":["ball"],"x":-651,"y":440},{"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier","x":-1,"y":-320,"vis":true},{"bCoef":0.1,"cMask":["red","blue"],"cGroup":["blueKO"],"trait":"kickOffBarrier","x":0,"y":318,"vis":true}],"segments":[{"v0":9,"v1":11,"trait":"reargoalNetleft","color":"00DBDB","x":-1210},{"v0":13,"v1":15,"trait":"reargoalNetright","color":"00DBDB"},{"v0":0,"v1":1,"trait":"kickOffBarrier","color":"FFCCFF"},{"v0":2,"v1":3,"trait":"kickOffBarrier","color":"FFCCFF"},{"v0":4,"v1":5,"trait":"line","curve":-143.792473931,"x":935},{"v0":6,"v1":7,"trait":"line","curve":-180,"x":-935},{"v0":4,"v1":5,"trait":"line","curve":11.6209776323,"x":935},{"v0":6,"v1":7,"trait":"line","curve":180,"x":-935},{"v0":4,"v1":5,"trait":"line","curve":90,"x":935},{"v0":6,"v1":7,"trait":"line","curve":90,"x":-935},{"v0":4,"v1":5,"trait":"line","curve":-32.7887893488,"x":935},{"v0":6,"v1":7,"trait":"line","curve":-90,"x":-935},{"v0":4,"v1":5,"trait":"line","x":935,"curve":157.380135052},{"v0":6,"v1":7,"trait":"line","x":-935},{"v0":8,"v1":9,"trait":"sidegoalNet","curve":5,"color":"00DBDB"},{"v0":10,"v1":11,"trait":"sidegoalNet","curve":0,"color":"FFF62F","bCoef":1.5},{"v0":12,"v1":13,"trait":"sidegoalNet","curve":-5,"color":"00DBDB"},{"v0":14,"v1":15,"trait":"sidegoalNet","curve":5,"color":"00DBDB"},{"v0":16,"v1":17,"trait":"line","curve":-180},{"v0":18,"v1":19,"trait":"line","curve":180},{"v0":16,"v1":17,"trait":"line","curve":-90},{"v0":18,"v1":19,"trait":"line","curve":90},{"curve":0,"vis":false,"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","v0":24,"v1":25,"x":-10,"cGroup":["blueKO"]},{"curve":0,"vis":false,"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","v0":26,"v1":27,"x":10,"cGroup":["redKO"]},{"curve":179.406646427,"vis":true,"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","v0":28,"v1":29,"x":200,"cGroup":["redKO"],"color":"FFCCFF"},{"curve":90,"vis":true,"color":"FFFFFF","bCoef":0,"cMask":["wall"],"trait":"line","v0":30,"v1":31},{"curve":-90,"vis":true,"color":"FFFFFF","bCoef":0,"cMask":["wall"],"trait":"line","v0":32,"v1":33},{"curve":-90,"vis":true,"color":"FFFFFF","bCoef":0,"cMask":["wall"],"trait":"line","v0":34,"v1":35},{"curve":90,"vis":true,"color":"FFFFFF","bCoef":0,"cMask":["wall"],"trait":"line","v0":36,"v1":37},{"vis":true,"color":"00DBDB","trait":"line","v0":59,"v1":60},{"vis":true,"color":"00DBDB","trait":"line","v0":61,"v1":62},{"vis":true,"color":"00DBDB","trait":"line","v0":63,"v1":64},{"vis":true,"color":"00DBDB","trait":"line","v0":65,"v1":66},{"vis":true,"color":"00DBDB","trait":"line","v0":60,"v1":64},{"vis":true,"color":"00DBDB","trait":"line","v0":62,"v1":66},{"vis":true,"color":"00DBDB","trait":"line","v0":67,"v1":68},{"vis":true,"color":"00DBDB","trait":"line","v0":58,"v1":69},{"vis":true,"color":"00DBDB","trait":"line","v0":70,"v1":71},{"vis":true,"color":"00DBDB","trait":"line","v0":72,"v1":73},{"vis":true,"color":"00DBDB","trait":"line","v0":68,"v1":71},{"vis":true,"color":"00DBDB","trait":"line","v0":69,"v1":73},{"curve":40,"vis":true,"bCoef":-3,"trait":"line","v0":85,"v1":86,"cMask":["ball"],"color":"ffffff"},{"curve":40,"vis":true,"bCoef":-3,"trait":"line","v0":87,"v1":88,"cMask":["ball"],"color":"ffffff"},{"curve":-30,"vis":true,"bCoef":-3,"trait":"line","v0":89,"v1":90,"cMask":["ball"],"color":"ffffff"},{"curve":-30,"vis":true,"bCoef":-3,"trait":"line","v0":91,"v1":92,"cMask":["ball"],"color":"ffffff"},{"curve":-179.191823306,"vis":true,"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","v0":93,"v1":94,"x":200,"cGroup":["blueKO"],"color":"FFCCFF"},{"vis":true,"color":"00DBDB","trait":"line","v0":95,"v1":96,"curve":180},{"vis":true,"color":"00DBDB","trait":"line","v0":97,"v1":98},{"vis":true,"color":"00DBDB","trait":"line","v0":99,"v1":100,"curve":-180.808346662},{"curve":-95.7468769952,"vis":true,"bCoef":-2.85,"trait":"line","v0":109,"v1":110,"cMask":["ball"],"color":"ffffff"},{"curve":-86.181695134,"vis":true,"bCoef":-2.85,"trait":"line","v0":111,"v1":112,"cMask":["ball"],"color":"ffffff"},{"curve":102.517211156,"vis":true,"bCoef":-2.85,"trait":"line","v0":113,"v1":114,"cMask":["ball"],"color":"ffffff"},{"curve":102.517211156,"vis":true,"bCoef":-2.85,"trait":"line","v0":115,"v1":116,"cMask":["ball"],"color":"ffffff"},{"curve":0,"vis":true,"color":"00DBDB","v0":117,"v1":118,"bCoef":1.5,"trait":"ballArea"},{"v0":119,"v1":120,"trait":"sidegoalNet","curve":0,"color":"00DBDB","bCoef":1.5},{"curve":0,"vis":true,"color":"00DBDB","v0":121,"v1":122,"bCoef":1.5,"trait":"ballArea"},{"curve":0,"vis":true,"color":"FFF62F","bCoef":1.5,"v0":123,"v1":121},{"vis":false,"color":"ffffff","cMask":["ball"],"v0":118,"v1":130},{"vis":false,"color":"ffffff","cMask":["ball"],"v0":117,"v1":131},{"vis":false,"color":"ffffff","cMask":["ball"],"v0":122,"v1":132},{"vis":false,"color":"ffffff","cMask":["ball"],"v0":123,"v1":133},{"vis":true,"color":"FFCCFF","bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier","v0":134,"v1":93},{"vis":true,"color":"FFCCFF","bCoef":0.1,"cMask":["red","blue"],"cGroup":["blueKO"],"trait":"kickOffBarrier","v0":94,"v1":135}],"goals":[{"team":"red","p0":[-700,-97],"p1":[-700,101]},{"team":"blue","p0":[700,-97],"p1":[700,101]}],"discs":[{"pos":[-701,99],"trait":"goalPost","bCoef":2,"radius":5,"color":"000000"},{"pos":[-700.062380731,-100.449671008],"trait":"goalPost","bCoef":2,"radius":5,"color":"000000"},{"pos":[699,102],"trait":"goalPost","bCoef":2,"radius":5,"color":"000000"},{"pos":[700,-98],"trait":"goalPost","bCoef":2,"radius":5,"color":"000000"}],"planes":[{"normal":[0,1],"dist":-350,"trait":"ballArea","bCoef":0},{"normal":[0,-1],"dist":-347,"trait":"ballArea","bCoef":0},{"normal":[0,1],"dist":-399,"bCoef":0},{"normal":[0,-1],"dist":-393,"bCoef":0},{"normal":[1,0],"dist":-1300,"bCoef":0},{"normal":[-1,0],"dist":-1300,"bCoef":0.1},{"normal":[-1,0],"dist":-763,"bCoef":0,"cMask":["ball"]},{"normal":[1,0],"dist":-770,"trait":"ballArea","bCoef":0},{"normal":[0,-1],"dist":-392,"bCoef":0},{"normal":[1,0],"dist":-828,"bCoef":0}],"traits":{"ballArea":{"vis":false,"bCoef":0,"cMask":["ball"]},"goalPost":{"radius":5,"invMass":0,"bCoef":2},"stanchion":{"radius":3,"invMass":0,"bCoef":3,"cMask":["none"]},"cornerflag":{"radius":3,"invMass":0,"bCoef":0.5,"color":"FFFF00","cGroup":[]},"reargoalNetleft":{"vis":true,"bCoef":0.1,"cMask":["ball","red","blue"],"curve":10,"color":"C7E6BD"},"reargoalNetright":{"vis":true,"bCoef":0.1,"cMask":["ball","red","blue"],"curve":-10,"color":"C7E6BD"},"sidegoalNet":{"vis":true,"bCoef":1,"cMask":["ball","red","blue"],"color":"C7E6BD"},"kickOffBarrier":{"vis":false,"bCoef":0.1,"cGroup":["redKO","blueKO"],"cMask":["red","blue"]},"line":{"vis":true,"cMask":[],"color":"C7E6BD"},"tunnel":{"vis":true,"cMask":["red","blue"],"color":"000000"},"advertising":{"vis":true,"cMask":["red","blue"],"color":"333333"},"teambench":{"vis":true,"cMask":[],"color":"000000"},"manager":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"333333"},"physio":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"666666"},"redsubs":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"E56E56"},"bluesubs":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"5689E5"}},"ballPhysics":{"radius":10,"bCoef":0.5,"invMass":1,"damping":0.99,"color":"BBFF00","cMask":["all"],"cGroup":["ball"]},"playerPhysics":{"bCoef":0.5,"invMass":0.5,"damping":0.96,"acceleration":0.12,"kickingAcceleration":0.07,"kickingDamping":0.96,"kickStrength":5.65}}`
var _Map1 = {ID:1,Name:JSON.parse(Map1).name,Timer:0}; //The same structure goes...
var Maps = [Map1];
var _Map = {ID:0,Name:undefined,Timer:0};
var _Maps = [_Map1];
var playerList = {};
var teamGiveUpLimit = 5;
var _teamGaveUp = 0;
var playerLeft = false;
var giveUpCommand = "!giveup";
var giveUpTimeLimit = 120;
var room = HBInit({roomName:"Re-Construct Teams After Give Up",noPlayer:true,public:true,maxPlayers:16});
var redGaveUp = [];
var blueGaveUp = [];
var teamGaveUp = [redGaveUp, blueGaveUp];
var teams = ["Red","Blue"];
var teamGiveUpState = false;
function increaseTimer(){
if(_Map.ID != 0 && room.getScores() != null) _Map.Timer += 1/60;
}
function movePlayersToTeam(oldTeam,newTeam){
var team = room.getPlayerList().filter(p => p.team == oldTeam);
team.forEach(t => room.setPlayerTeam(t.id,newTeam));
}
room.onGameStart = function (byPlayer){
redGaveUp = [];
blueGaveUp = [];
if(teamGiveUpState == true) teamGiveUpState = false;
}
room.onGameStop = function (byPlayer){
if(_Map.ID != 0 && room.getScores() == null && _Map.Timer != 0) _Map.Timer = 0;
var players = room.getPlayerList().filter(p => playerList[p.name].gaveUp == true && teamGaveUp[p.team - 1].includes(p.name) == true);
var spectators = room.getPlayerList().filter(p => p.team == 0);
players.forEach(p => {
if(playerList[p.name].gaveUp == true && teamGaveUp[p.team - 1].includes(p.name) == true){
var team = p.team;
movePlayersToTeam(team,0);
room.setPlayerTeam(spectators[0].id,team);
var index = teamGaveUp[p.team - 1].indexOf(p.name);
if(index !== -1) teamGaveUp[p.team - 1].splice(index, 1);
playerList[p.name].gaveUp = false;
}
});
}
room.onGameTick = function(){
increaseTimer();
}
room.onPlayerChat = function (player, message){
if(message.toLowerCase() == giveUpCommand){
if(player.team != 0){
if(_Map.Timer >= giveUpTimeLimit){
if(playerList[player.name].gaveUp == false && teamGaveUp[player.team - 1].includes(player.name) == false){
room.sendAnnouncement(`${player.name} has given up!`, null, 0xFFFF00, "bold", 2);
playerList[player.name].gaveUp = true;
teamGaveUp[player.team - 1].push(player.name);
for (var t in teamGaveUp){
if(teamGaveUp[t].length == teamGiveUpLimit && teamGiveUpState == false){
_teamGaveUp = player.team;
room.stopGame();
room.sendAnnouncement(`${teams[t]} has give up and game ended!`, null, 0xFF0000, "bold", 2);
var team = teams[t];
setTimeout(function (){
room.sendAnnouncement(`A new game is being started after ${team} team gave up!`, null, 0xFFFF00, "bold", 2);
//room.startGame(); //Let players to choose others from spectators, here's your homework.
},5000);
}
}
return false;
}
else{
room.sendAnnouncement("Your right for using this command has expired!", player.id, 0xFF0000, "bold", 2);
return false;
}
}
else{
room.sendAnnouncement(`You cannot use this command yet! Please wait for ${giveUpTimeLimit/60} minutes to end.`, player.id, 0xFFFF00, "bold", 2);
return false;
}
}
else{
room.sendAnnouncement("Spectators cannot use this command!", player.id, 0xFF0000, "bold", 2);
return false;
}
}
}
room.onPlayerJoin = function (player){
if(playerList[player.name] == undefined){
playerList[player.name] = {name: player.name, auth: player.auth, conn: player.conn, gaveUp: false};
}
}
room.onStadiumChange = function (newStadiumName, byPlayer){
byPlayer == null ? console.log(`${newStadiumName} was loaded`) : console.log(`${newStadiumName} was loaded by ${byPlayer.name}`);
var m = _Maps.find(x => x.Name == newStadiumName);
var players = room.getPlayerList();
var admins = players.filter(p => p.admin == true);
if(byPlayer == null){
if(m){
_Map = {ID:m.ID,Name:m.Name,Timer:m.Timer};
}
else{
admins.length > 0 ? admins.forEach(p => room.sendAnnouncement(`Something went wrong with map ${newStadiumName}. Please try again!`, p.id, colors.mapChangeWrongName, fonts.mapChangeWrongName, sounds.mapChangeWrongName)) : room.sendAnnouncement(`Something went wrong with map ${newStadiumName}. Please call an admin to try again!`, null, colors.mapChangeWrongName, fonts.mapChangeWrongName, sounds.mapChangeWrongName);
}
}
else{
room.sendAnnouncement("You don't have authorization to change maps in this room!", byPlayer.id, 0xFF0000, "bold", 2);
room.setCustomStadium(Maps[0]);
}
}