-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmatchMaking.js
57 lines (44 loc) · 1.52 KB
/
matchMaking.js
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
mongo = require("mongodb");
Cursor = mongo.Cursor;
exports.MatchMaking = function() {
"use strict";
let test = '';
this.findWar = ( ) => {
console.log('[MATCHMAKING] -- On commence à chercher des joueurs dans la file d\'attente');
var MatchMaker = this;
mongo.MongoClient.connect(mongoURL, function (err, db) {
var users = db.collection ("users");
users.find({
'battle.ready': true
},
{
sort: {_id:1},
limit:2
}).toArray(function(err, user) {
MatchMaker.makeGame(user, db);
db.close();
});
});
};
this.makeGame = ( tabUserDispo, db ) => {
if (tabUserDispo.length == 2) {
console.log('[MATCHMAKING] -- On a trouvé deux joueurs, lancement d\'une partie !');
// Si on a deux joueurs dispo, on crée une partie
var player1 = tabUserDispo[0];
var player2 = tabUserDispo[1];
// Les deux joueurs sélectionnés sont retirés du match making
var users = db.collection('users');
users.update({
_id: { $in: [player1._id, player2._id] }
}, {
$set: {'battle.ready': false}
}, {
multi: true
});
GameList.startNewGame(player1._id, player2._id);
} else {
console.log('[MATCHMAKING] -- Aucune partie possible pour le moment ('+tabUserDispo.length + '/2)');
console.log('[MATCHMAKING] -- Abandon de la recherche. En attente d\'un nouveau joueur dans la file');
}
};
}