-
Notifications
You must be signed in to change notification settings - Fork 0
/
controller.roles.js
57 lines (50 loc) · 1 KB
/
controller.roles.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
var roles = [
'harvester',
'containerHarvester',
'sherpa',
'upgrader',
'containerUpgrader',
'builder',
'defender',
'scout',
'miner',
'defective',
'attacker',
'pilgrim',
'claim'
];
var roleModules = {};
roles.forEach(function(e, i, a) {
roleModules[e] = require('role.' + e);
//console.log('loaded ' + e + ' role.');
});
function _countRole(role) {
let creeps = _.filter(Game.creeps, (creep) => creep.memory.role == role);
return creeps;
}
function countRole(role, room) {
let creeps = _.filter(Game.creeps, (creep) => creep.memory.role == role && creep.room == room);
return creeps;
}
function countRoles(room) {
let creeps = {};
roles.forEach((e, i, a) => {
creeps[e] = countRole(e, room);
});
return creeps;
}
var run = function (creep) {
let roleC = roleModules[creep.memory.role];
if (roleC) {
return roleC.run(creep);
} else {
return;
}
};
module.exports = {
roles: roles,
// role: roleModules,
run: run,
countRoles: countRoles,
// countRole: countRole
};