生成单位可以通过Game.spawns[‘基地名称’].spawnCreep([属性1,属性2,……],‘单位名称’)来实现。
具体的属性有:

  • WORK 能够收集能量,建造和修复结构,升级控制器
  • MOVE 移动能力
  • CARRY 传递能量的能力
  • ATTACK 近战攻击力
  • RANGED_ATTACK 远程攻击力
  • HEAL 治疗能力
  • CLAIM 占领领土控制权的能力
  • TOUGH “空”,可以用来防御

可以建立新文件来存储单位行为,代码如下:

1
2
3
4
5
6
7
var role = {
run: function(creep){

}
};

module.exports = role;
1
2
3
4
5
var role = require('role')
module.exports.loop = function () {
var creep = ...;
role.run(creep);
}

角色分类可以通过Game.creeps[‘单位名称’].memory.role = '类别’来实现。也可以在创建时声明Game.spawns[‘Spawn1’].spawnCreep( [WORK,WORK,WORK,WORK,CARRY,MOVE,MOVE], ‘HarvesterBig’, { memory: { role: ‘harvester’ } } )
以下代码可以检测角色数量:

1
2
var harvesters = _.filter(Game.creeps, (creep) => creep.memory.role == 'harvester');
console.log('Harvesters: ' + harvesters.length);

suicide可以让单位自杀,自杀后需要清楚内存

1
2
3
4
5
6
for(var name in Memory.creeps) {
if(!Game.creeps[name]) {
delete Memory.creeps[name];
console.log('Clearing non-existing creep memory:', name);
}
}