我修改了一些我的 role.builders.js 文件,让我的小兵首先检查产卵是否有能量,如果它没有收集能量来建造,否则从产卵中获取。这是我所拥有的:
var roleBuilder = {
/** @param {Creep} creep **/
run: function(creep) {
if(creep.memory.building && creep.carry.energy == 0) {
creep.memory.building = false;
creep.say('harvesting');
}
if(!creep.memory.building && creep.carry.energy == creep.carryCapacity) {
creep.memory.building = true;
creep.say('building');
}
if(creep.memory.building) {
var targets = creep.room.find(FIND_CONSTRUCTION_SITES);
if(targets.length) {
if(creep.build(targets[0]) == ERR_NOT_IN_RANGE) {
creep.moveTo(targets[0]);
}
}
}
else
{
if(!Game.spawns['MySpawn'].energy)
{
var sources = creep.room.find(FIND_SOURCES);
if(creep.harvest(sources[0]) == ERR_NOT_IN_RANGE)
{
creep.moveTo(sources[0]);
}
}
else
{
if(creep.withdraw(Game.spawns['MySpawn'],RESOURCE_ENERGY) == ERR_NOT_IN_RANGE)
{
creep.moveTo(Game.spawns['MySpawn']);
}
}
}
}
};
module.exports = roleBuilder;
关于我所缺少的任何建议?建造者被冻结在原地,即使它说他们正在移动到产卵区。