你如何用转移能量(蠕变)来瞄准房间控制器
How do you target the room controller with transferEnergy(creep)
就像标题所说的那样。我已经尝试了很多不同的方式,但"爬行。transferenergy (Game.controller);"是唯一一个没有返回错误。
我很确定transferEnergy()不适合控制器,这里是我发现的代码,用于升级过程的简单自动化。
if(creep.carry.energy < creep.carryCapacity) {
var sources = creep.room.find(FIND_SOURCES);
creep.moveTo(sources[0]);
creep.harvest(sources[0]);
}
else {
creep.moveTo(creep.room.controller);
creep.upgradeController(creep.room.controller)
}
我遇到了真正的麻烦。所提供的答案确实是你想要的,但是……每个游戏标记检查当前蠕变所携带的能量水平是否低于当前蠕变所能承受的能力。
所以,升级一次后,第一次检查,使蠕变寻求能量。你的线人可能在很远的地方。我们要做的是耗尽当前存储的能量,然后在空的时候寻找能量。
if(creep.memory.upgrader && creep.carry.energy == 0) {
creep.memory.upgrader = false;
}
if(!creep.memory.upgrader && creep.carry.energy == creep.carryCapacity) {
creep.memory.upgrader = true;
}
if(creep.memory.upgrader) {
if(creep.upgradeController(creep.room.controller) == ERR_NOT_IN_RANGE) {
creep.moveTo(creep.room.controller);
}
} else {
var source = creep.pos.findClosestByRange(FIND_SOURCES);
if(creep.harvest(source) == ERR_NOT_IN_RANGE) {
creep.moveTo(source);
}
}
}
};
也增加了一个检查最近的来源范围。这将返回最接近爬虫当前位置的源。
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 从控制器返回后Ajax启动事件激发
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何在单击复选框后调用控制器方法
- 在控制器和数据对象之间同步数据
- 将Javascript数组发送到控制器ASP.NET MVC
- 角度控制器结构
- 如何在Jquery中发布后将值从视图返回到控制器
- 将值从html传递到AngularJS控制器
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 从控制器继承了隔离的作用域以生成可重用的指令
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- Nodejs API控制器,用于在API之间切换
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 将不在模型中的数据返回到mvc控制器
- 未激发路由的控制器属性上的观察者
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- 你如何用转移能量(蠕变)来瞄准房间控制器