-
Notifications
You must be signed in to change notification settings - Fork 0
/
role.scavenger.js
91 lines (85 loc) · 3.78 KB
/
role.scavenger.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
var roleScavenger = {
/** @param {Creep} creep **/
run: function (creep) {
//console.log(creep.store.getFreeCapacity);
var room = creep.room;
var roomName = room.name;
if (creep.memory.storing && creep.store.getFreeCapacity() == creep.store.getCapacity()) {
creep.memory.storing = false;
creep.say('🔄 harvest');
}
if (!creep.memory.storing && creep.store.getFreeCapacity() == 0) {
creep.memory.storing = true;
creep.say('⚡ storing');
}
if (!creep.memory.storing) {
var ruins = creep.room.find(FIND_RUINS);
//sconsole.log(ruins);
//ruins = creep.room.getObjectById("5f29b8885eb8e32fb300fa06");
//console.log(creep.withdraw(ruins[0],RESOURCE_ENERGY));
var elements = ["GO"];
for (i = 0; i < elements.length; i++) {
if (creep.withdraw(ruins[0], elements[i]) == -7) {
//console.log("help");
} else {
// console.log(creep.withdraw(ruins[0], elements[i]))
if (creep.withdraw(ruins[0], elements[i]) == ERR_NOT_IN_RANGE) {
creep.moveTo(ruins[0], { visualizePathStyle: { stroke: '#ffffff' } });
}
}
}
} else {
var storage = creep.room.find(FIND_STRUCTURES)
.filter(structure => [STRUCTURE_CONTAINER].indexOf(structure.structureType) !== -1).filter(structure => structure.store.energy < structure.store.getCapacity());
// if(storage[1].store.)
var elements = ["GO"];
//console.log(elements[i]);
for (i = 0; i < elements.length; i++) {
// console.log("element: " + elements[i]);
if (creep.transfer(storage[2], elements[i]) == -7) {
} else {
if (creep.transfer(storage[1], elements[i]) == ERR_NOT_IN_RANGE) {
creep.moveTo(storage[1], { visualizePathStyle: { stroke: '#ffffff' } });
}
}
}
}
/* if(creep.memory.storing) {
if(creep.room.energyAvailable == creep.room.energyCapacityAvailable){
var targets = creep.room.find(FIND_STRUCTURES,{filter: (structure) => {return (structure.structureType == STRUCTURE_STORAGE) && structure.store.energy < structure.storeCapacity;}});
if(targets.length < 1){
var targets = creep.room.find(FIND_STRUCTURES,
{filter: (structure) => {return (structure.structureType == STRUCTURE_TOWER) && structure.energy < structure.energyCapacity;}});
}
if(targets.length > 0) {
if(creep.transfer(targets[0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
creep.moveTo(targets[0], {visualizePathStyle: {stroke: '#ffffff'}});
}
}
}else{
var targets = creep.room.find(FIND_STRUCTURES,
{filter: (structure) => {return (structure.structureType == STRUCTURE_EXTENSION || structure.structureType == STRUCTURE_SPAWN) && structure.energy < structure.energyCapacity;}});
if(targets.length > 0) {
if(targets.length > 1){
if(creep.transfer(targets[1], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
creep.moveTo(targets[1], {visualizePathStyle: {stroke: '#ffffff'}});
}
}else{
if(creep.transfer(targets[0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
creep.moveTo(targets[0], {visualizePathStyle: {stroke: '#ffffff'}});
}
}
}
}
}
else
{
var sources = creep.room.find(FIND_SOURCES);
if(creep.harvest(sources[1]) == ERR_NOT_IN_RANGE) {
creep.moveTo(sources[1], {visualizePathStyle: {stroke: '#ffaa00'}});
}
}*/
//creep.moveTo(Game.flags["home"],{visualizePathStyle: {stroke: '#ffaa00'}});
}
};
module.exports = roleScavenger;