-
Notifications
You must be signed in to change notification settings - Fork 1
/
prototype_creep_move.js
82 lines (77 loc) · 2.09 KB
/
prototype_creep_move.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
'use strict';
Creep.prototype.moveRandom = function(onPath) {
let start = Math.ceil(Math.random() * 8);
let direction = 0;
for (let i = start; i < start + 8; i++) {
direction = ((i - 1) % 8) + 1;
let pos = this.pos.getAdjacentPosition(direction);
if (pos.isExit()) {
continue;
}
if (onPath && !pos.inPath()) {
continue;
}
break;
}
this.move(direction);
};
Creep.prototype.moveRandomWithin = function(goal, dist = 3) {
let start = Math.ceil(Math.random() * 8);
let direction = 0;
for (let i = start; i < start + 8; i++) {
direction = ((i - 1) % 8) + 1;
let pos = this.pos.getAdjacentPosition(direction);
if (pos.isExit()) {
continue;
}
if (pos.getRangeTo(goal) > dist) {
continue;
}
break;
}
this.move(direction);
};
Creep.prototype.moveCreep = function(position, direction) {
if (position.x <= 0 || position.x >= 49 || position.y <= 0 || position.y >= 49) {
return false;
}
var pos = new RoomPosition(position.x, position.y, this.room.name);
var creeps = pos.lookFor('creep');
if (creeps.length > 0 && creeps[0].memory) {
if (creeps[0].memory.role === 'carry') {
creeps[0].move(direction);
return;
}
if (this.memory.role === 'defendmelee') {
creeps[0].move(direction);
return;
}
if (creeps[0].memory.role === 'harvester') {
creeps[0].move(direction);
return;
}
if (this.memory.role === 'upgrader' &&
creeps[0].memory.role === 'storagefiller') {
creeps[0].move(direction);
return;
}
if (this.memory.role === 'upgrader' &&
creeps[0].memory.role === 'upgrader') {
creeps[0].suicide();
this.log('New killing');
return;
}
if (this.memory.role === 'upgrader' &&
creeps[0].memory.role === 'sourcer') {
this.log('config_creep_move suicide sourcer');
creeps[0].suicide();
return;
}
if (this.memory.role === 'upgrader' &&
creeps[0].memory.role === 'harvester') {
this.log('config_creep_move suicide harvester');
creeps[0].suicide();
return;
}
}
};