-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathregistry.js
More file actions
78 lines (66 loc) · 1.96 KB
/
Copy pathregistry.js
File metadata and controls
78 lines (66 loc) · 1.96 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
if(typeof Memory.registry !== 'object') Memory.registry = {};
if(typeof Memory.registerOnDeath !== 'object') Memory.registerOnDeath = {};
function generateName(title) {
return title +'-'+ (~~(Math.random() * 0xFFFF)).toString(16);
}
function registerOnDeath(title, name) {
console.log('registerOnDeath title:', title, 'name:', name);
console.log(title, ':', name, 'will take over from', getCreepName(title), 'on death');
Memory.registerOnDeath[title] = name;
}
function register(title, name) {
console.log('register', title, name);
Memory.registry[title] = name;
}
function eject(title) {
console.log('Eject', title);
delete Memory.registry[title];
}
function getCreepName(title) {
return Memory.registry[title];
}
function getCreep(title) {
var name = getCreepName(title);
if(name) {
var creep = Game.creeps[name];
return creep;
}
return null;
}
Game.registry = {
generateName: generateName,
registerOnDeath: registerOnDeath,
register: register,
eject: eject,
getCreepName: getCreepName,
getCreep: getCreep,
killTrash: function(){
for(var name in Game.creeps) {
var creep = Game.creeps[name];
if(creep.memory.role === 'park'){
console.log('Found trash to kill', creep);
creep.suicide();
}
}
}
}
for(var title in Memory.registerOnDeath) {
//console.log('title=', title, 'getCreep(title)=', getCreep(title));
var creep = getCreep(title);
if(!creep) {
console.log('Creep '+title+' took over');
Memory.registry[title] = Memory.registerOnDeath[title];
delete Memory.registerOnDeath[title];
}
}
/*
if(Memory.stratergy.registryAutoEject > 0) {
for(var title in Memory.registry) {
var creep = getCreep(title);
//console.log(title, 'ticksToLive:', (creep&&creep.ticksToLive));
if(creep && creep.ticksToLive < 100) {
eject(title);
}
}
}
*/