Added patrol logic to guards
This commit is contained in:
parent
02a08d2d8d
commit
560bec5fc8
4
main.js
4
main.js
|
@ -13,7 +13,7 @@ var creepsConfig = {
|
|||
},
|
||||
builder: {
|
||||
bodyParts: [WORK, CARRY, MOVE, MOVE],
|
||||
minimumCreeps: 0,
|
||||
minimumCreeps: 1,
|
||||
role: roleBuilder
|
||||
},
|
||||
upgrader: {
|
||||
|
@ -24,7 +24,7 @@ var creepsConfig = {
|
|||
guard: {
|
||||
bodyParts: [TOUGH, MOVE, ATTACK, MOVE, ATTACK],
|
||||
minimumCreeps: 3,
|
||||
role: roleGuard
|
||||
role: roleGuard,
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -1,15 +1,32 @@
|
|||
var battle = require("battle")
|
||||
|
||||
var roleGuard = {
|
||||
getLastFlag: function(){
|
||||
return 1; // TODO. calculate me.
|
||||
},
|
||||
run: function(creep){
|
||||
console.log(creep, "running Guard")
|
||||
if (creep.memory.patrolDestination == undefined){
|
||||
creep.memory.patrolDestination = 0
|
||||
}
|
||||
var target = battle.findEnemy(creep);
|
||||
console.log("\t", creep, "tageting:",target)
|
||||
if(target && creep.hits > creep.hitsMax - 500 /* no more attack */) {
|
||||
if(target != creep.room.controller && creep.hits > creep.hitsMax - 500 /* no more attack */) {
|
||||
console.log("\t", creep, "attacking:",target)
|
||||
creep.moveTo(target);
|
||||
creep.attack(target);
|
||||
} else {
|
||||
creep.moveTo(Game.spawns.Spawn1);
|
||||
var destinationFlag = Game.flags["patrol_" + creep.memory.patrolDestination];
|
||||
|
||||
if (creep.pos.isEqualTo(destinationFlag)){
|
||||
creep.memory.patrolDestination += 1;
|
||||
}
|
||||
|
||||
if (creep.memory.patrolDestination > this.getLastFlag()){
|
||||
creep.memory.patrolDestination = 0;
|
||||
}
|
||||
destinationFlag = Game.flags["patrol_" + creep.memory.patrolDestination];
|
||||
console.log("\tMoving to Patrol leg:", creep.memory.patrolDestination);
|
||||
creep.moveTo(destinationFlag);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user