Add logic to use factories for mineral storage. fix spawning extra miners.

This commit is contained in:
dan 2020-11-16 08:57:31 -06:00
parent f2ed90049b
commit 1ff4251f03
4 changed files with 5 additions and 3 deletions

View File

@ -25,7 +25,7 @@ let Phase1 = {
console.log(Game.rooms[room].energyAvailable + " of " + Game.rooms[room].energyCapacityAvailable) console.log(Game.rooms[room].energyAvailable + " of " + Game.rooms[room].energyCapacityAvailable)
} }
if(Game.rooms[room].memory.minablepositions >= 3 ||Game.rooms[room].memory.minablepositions==undefined ){ if(Game.rooms[room].memory.minablepositions >= 3 ||Game.rooms[room].memory.minablepositions==undefined ){
if((((creepcounts[workerrolename]< (Game.rooms[room].memory.minablepositions) || creepcounts[workerrolename]==undefined) && Game.rooms[room].energyAvailable >= Game.rooms[room].energyCapacityAvailable) ) || ((creepcounts[workerrolename]==0 || creepcounts[workerrolename]==undefined ) && Game.rooms[room].energyAvailable>100)) { if((((creepcounts[workerrolename]< (Game.rooms[room].memory.minablepositions + 1) || creepcounts[workerrolename]==undefined) && Game.rooms[room].energyAvailable >= Game.rooms[room].energyCapacityAvailable) ) || ((creepcounts[workerrolename]==0 || creepcounts[workerrolename]==undefined ) && Game.rooms[room].energyAvailable>100)) {
console.log('Spawning worker in ' + room) console.log('Spawning worker in ' + room)
require('proc.spawning').spawnworker(room) require('proc.spawning').spawnworker(room)
} }
@ -43,7 +43,7 @@ let Phase1 = {
console.log("Spawning Mover in " + room) console.log("Spawning Mover in " + room)
require('proc.spawning').spawnmover(room) require('proc.spawning').spawnmover(room)
} }
if((Game.rooms[room].find(FIND_MY_STRUCTURES, {filter: {structureType: STRUCTURE_EXTRACTOR}}))&&(creepcounts["miner"] < 1 || creepcounts["miner"]==undefined)&&(Game.rooms[room].energyAvailable >= Game.rooms[room].energyCapacityAvailable)){ if((Game.rooms[room].find(FIND_MY_STRUCTURES, {filter: {structureType: STRUCTURE_EXTRACTOR}}).length > 0)&&(creepcounts["miner"] < 1 || creepcounts["miner"]==undefined)&&(Game.rooms[room].energyAvailable >= Game.rooms[room].energyCapacityAvailable)){
console.log("Spawning Miner in " + room) console.log("Spawning Miner in " + room)
require('proc.spawning').spawnminer(room) require('proc.spawning').spawnminer(room)
} }

View File

@ -17,6 +17,7 @@ let initroom = {
minablepositions = minablepositions + this.computeSourceAccessPoints(Game.rooms[name],srcs[i]) minablepositions = minablepositions + this.computeSourceAccessPoints(Game.rooms[name],srcs[i])
//minablepositions = minablepositions + this.checkminablepositions(srcs[i]) //minablepositions = minablepositions + this.checkminablepositions(srcs[i])
} }
//todo - create array of minable positions in the room and assign a screep to them, rather than having them constantly try to find the nearest one.
Game.rooms[name].memory.minablepositions = minablepositions Game.rooms[name].memory.minablepositions = minablepositions
}, },
computeSourceAccessPoints: function(room, source){ computeSourceAccessPoints: function(room, source){

View File

@ -17,7 +17,7 @@ let roleMiner = {
creep.travelTo(mysource); creep.travelTo(mysource);
} }
} else { } else {
let storagetargets = creep.pos.findClosestByRange(FIND_STRUCTURES, {filter: (s) => {return ((s.structureType == STRUCTURE_STORAGE || s.structureType == STRUCTURE_CONTAINER || s.structureType == STRUCTURE_TERMINAL ) && _.sum(s.store) < s.storeCapacity) ;}}); let storagetargets = creep.pos.findClosestByRange(FIND_STRUCTURES, {filter: (s) => {return ((s.structureType == STRUCTURE_STORAGE || s.structureType == STRUCTURE_CONTAINER || s.structureType == STRUCTURE_TERMINAL || s.structureType == STRUCTURE_FACTORY ) && _.sum(s.store) < s.storeCapacity) ;}});
if(storagetargets){ if(storagetargets){
if(this.transferAll(creep,storagetargets) == ERR_NOT_IN_RANGE) { if(this.transferAll(creep,storagetargets) == ERR_NOT_IN_RANGE) {
creep.moveTo(storagetargets,{ignoreCreeps:ignorecreeps}) creep.moveTo(storagetargets,{ignoreCreeps:ignorecreeps})

1
todos.js Normal file
View File

@ -0,0 +1 @@
//todo - create array of minable positions in the room and assign a screep to them, rather than having them constantly try to find the nearest one.