-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreeps.Starter.js
61 lines (55 loc) · 1.92 KB
/
creeps.Starter.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
58
59
60
61
var utilsRooms = require('utils.Rooms');
var creepsUniversal = require('creeps.Universal');
var creepsStarter = {
run: function (creep) {
if (creep.memory.target == undefined) {
this.findTarget(creep);
return;
}
else {
this.doWork(creep);
}
},
findTarget: function (creep) {
creepsUniversal.decideGathering(creep);
if (creep.memory.isGathering) {
creepsUniversal.findSource(creep);
}
else {
var spawn = utilsRooms.getMySpawn(creep.room);
console.log('spawn free: ' + spawn.store.getFreeCapacity(RESOURCE_ENERGY));
if(spawn.store.getFreeCapacity(RESOURCE_ENERGY) > 0){
creep.memory.target = spawn;
}
else{
creep.memory.target = creep.room.controller;
}
}
},
doWork: function (creep) {
var ret = undefined;
ret = creep.harvest(Game.getObjectById(creep.memory.target.id));
if (ret == OK || ret == ERR_NOT_IN_RANGE) {
if (ret == OK && creep.store.getFreeCapacity() == 0) {
creep.memory.target = undefined;
}
if (ret == ERR_NOT_IN_RANGE) {
creepsUniversal.moveToTarget(creep);
}
return;
}
ret = creep.transfer(Game.getObjectById(creep.memory.target.id), RESOURCE_ENERGY, creep.store.getUsedCapacity(RESOURCE_ENERGY));
if (ret == OK || ret == ERR_NOT_IN_RANGE) {
if (ret == OK && creep.store.getUsedCapacity() == 0) {
creep.memory.target = undefined;
}
if (ret == ERR_NOT_IN_RANGE) {
creepsUniversal.moveToTarget(creep);
}
return;
}
console.log(creep.name + ': unexpect retuen: ' + ret);
creep.memory.target = undefined;
}
};
module.exports = creepsStarter;