-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
90 lines (79 loc) · 3.11 KB
/
main.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
require("prototype.spawn")();
require("prototype.tower")();
require("prototype.creep");
module.exports.loop = function () {
//Clear up deceased creeps' memory
for (let name in Memory.creeps) {
if (Game.creeps[name] == undefined) {
delete Memory.creeps[name];
}
}
//Iterate through each creep in the game
for (let name in Game.creeps) {
Game.creeps[name].doRole();
}
var towers = _.filter(Game.structures, s => s.structureType == STRUCTURE_TOWER);
for (let tower of towers) {
tower.defend();
}
var spawns = _.filter(Game.structures, s => s.structureType == STRUCTURE_SPAWN);
var minHarvesters = 2;
var minBuilders = 3;
var minUpgraders = 2;
var minWallUpgraders = 2;
var minRepairers = 2;
var minMiners = 2;
var W18S21_harvester = 3;
let minClaimer = 0;
let totalClaimer = _.sum(Game.creeps, (c) => c.memory.role == 'claimer');
var totalHarvesters = _.sum(Game.creeps, (c) => c.memory.role == 'harvester');
var totalBuilders = _.sum(Game.creeps, (c) => c.memory.role == 'builder');
var totalUpgraders = _.sum(Game.creeps, (c) => c.memory.role == 'upgrader');
var totalWallUpgraders = _.sum(Game.creeps, (c) => c.memory.role == 'wallUpgrader');
var totalRepairers = _.sum(Game.creeps, (c) => c.memory.role == 'repairer');
var totalMiners = _.sum(Game.creeps, (c) => c.memory.role == 'miner');
var W18S21_harvester_total = _.sum(Game.creeps, (c) => c.memory.role == 'longDistanceHarvester' && c.memory.target == "W18S21");
var northMiners = _.sum(Game.creeps, (c) => c.memory.role == 'miner' && c.memory.coordinates[0] == 44);
var southMiners = _.sum(Game.creeps, (c) => c.memory.role == 'miner' && c.memory.coordinates[0] == 38);
var energy = Game.spawns.Spawn1.room.energyCapacityAvailable;
var name = undefined;
if (totalHarvesters < minHarvesters) {
/*name = Game.spawns.Spawn1.createCreep([WORK,WORK,CARRY,MOVE], undefined,
{ role: 'harvester', isWorking: false});*/
name = Game.spawns.Spawn1.createCustomCreep(energy, 'harvester');
if(name == ERR_NOT_ENOUGH_ENERGY && totalHarvesters == 0){
name = Game.spawns.Spawn1.createCustomCreep(Game.spawns.Spawn1.room.energyAvailable, "harvester");
}
}
else if(totalMiners < minMiners){
if(northMiners != 1){
name = Game.spawns.Spawn1.createMiner(44,37);
}
else if(southMiners != 1){
name = Game.spawns.Spawn1.createMiner(38,3);
}
else{
console.log("NM:"+northMiners+"/SM:"+southMiners);
}
name = Game.spawns.Spawn1.createMiner(44,37);
}
else if(W18S21_harvester_total < W18S21_harvester){
name = Game.spawns.Spawn1.createLongDistanceHarvester(energy,3,"W17S21","W18S21",0);
}
else if(totalRepairers < minRepairers){
name = Game.spawns.Spawn1.createCustomCreep(energy, "repairer");
}
else if(totalBuilders < minBuilders){
name = Game.spawns.Spawn1.createCustomCreep(energy, "builder");
}
else if(totalUpgraders < minUpgraders){
name = Game.spawns.Spawn1.createCustomCreep(energy, "upgrader");
}
else if(totalWallUpgraders < minWallUpgraders){
name = Game.spawns.Spawn1.createCustomCreep(energy, "wallUpgrader");
}
if (!(name < 0 || name == undefined)) {
console.log("Spawned new creep: " + name);
}
else{}
};