-
Notifications
You must be signed in to change notification settings - Fork 69
Expand file tree
/
Copy path_calc_spawns.js
More file actions
41 lines (34 loc) · 1.28 KB
/
_calc_spawns.js
File metadata and controls
41 lines (34 loc) · 1.28 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
var _ = require('lodash'),
utils = require('../../utils'),
driver = utils.getDriver(),
C = driver.constants;
module.exports = function(roomSpawns, roomExtensions, {roomController, bulk}) {
var spawns = roomSpawns;
if(spawns.length > C.CONTROLLER_STRUCTURES.spawn[roomController.level|0]) {
spawns.sort(utils.comparatorDistance(roomController));
spawns = _.take(spawns, C.CONTROLLER_STRUCTURES.spawn[roomController.level|0]);
roomSpawns.forEach(i => i._off = !_.contains(spawns, i));
}
else {
roomSpawns.forEach(i => i._off = false);
}
roomSpawns.forEach(i => {
if(i._off !== i.off) {
bulk.update(i._id, {off: i._off});
}
});
var extensions = roomExtensions;
if(extensions.length > C.CONTROLLER_STRUCTURES.extension[roomController.level|0]) {
extensions.sort(utils.comparatorDistance(roomController));
extensions = _.take(extensions, C.CONTROLLER_STRUCTURES.extension[roomController.level|0]);
roomExtensions.forEach(i => i._off = !_.contains(extensions, i));
}
else {
roomExtensions.forEach(i => i._off = false);
}
roomExtensions.forEach(i => {
if(i._off !== i.off) {
bulk.update(i._id, {off: i._off});
}
});
};