65 lines
3.4 KiB
JavaScript
65 lines
3.4 KiB
JavaScript
|
|
/* ###########################
|
|
# Cross room managment AI #
|
|
########################### */
|
|
|
|
var GLOBAL = require("GLOBAL_VARIABLES");
|
|
|
|
module.exports = {
|
|
run_front: function()
|
|
{
|
|
if(Memory.AImain == null) Memory.AImain = {};
|
|
if(Memory.AImain.MainHub == null) Memory.AImain.MainHub = "insert name"
|
|
for(var n_flag in Game.flags){
|
|
var flag = Game.flags[n_flag];
|
|
if(flag.color == COLOR_YELLOW){
|
|
if(flag.room != undefined && flag.room.find(FIND_MY_CREEPS).length != flag.room.find(FIND_CREEPS).length){
|
|
Game.spawns[Memory.AImain.MainHub].spawnCreep([TOUGH, TOUGH, TOUGH, TOUGH, TOUGH, TOUGH, TOUGH, ATTACK, ATTACK, ATTACK, MOVE],
|
|
"Defender", { memory: { role:GLOBAL.JOB_DEFENDER , flag: flag.name }});
|
|
break;
|
|
}
|
|
if(flag.room == undefined || flag.room.controller.reservation == undefined || (
|
|
flag.room.controller.reservation.username == "DouweRavers" && flag.room.controller.reservation.ticksToEnd < 3500))
|
|
{
|
|
if(Memory.AImain.MainHub != "insert name") Game.spawns[Memory.AImain.MainHub].spawnCreep([MOVE, CLAIM, CLAIM], "columbus", { memory: { role:GLOBAL.JOB_RESERVER, target: flag.name, home: Memory.AImain.MainHub}});
|
|
}
|
|
if(flag.room != undefined && flag.room.controller.reservation != undefined && flag.room.controller.reservation.username == "DouweRavers")
|
|
{
|
|
var containers = flag.room.find(FIND_STRUCTURES, { filter:(s) => ( s.structureType == STRUCTURE_CONTAINER )});
|
|
if(containers.length > 0){
|
|
var has_miner = false;
|
|
console.log("test");
|
|
var creeps = flag.room.find(FIND_CREEPS);
|
|
for(var cp in creeps){
|
|
console.log(creeps[cp]);
|
|
var creep = creeps[cp];
|
|
if(creep.memory.role == GLOBAL.JOB_MINER){
|
|
has_miner = true;
|
|
}
|
|
}
|
|
if(!has_miner) {
|
|
console.log("needs new miner")
|
|
Game.spawns[Memory.AImain.MainHub].spawnCreep([ WORK, WORK, WORK, WORK, WORK, MOVE ], "ForeignMiner", { memory: { role:GLOBAL.JOB_MINER, container_id: containers[0].id}});
|
|
}
|
|
}
|
|
var harvs = flag.room.find(FIND_MY_CREEPS).length;
|
|
var source_id = flag.room.find(FIND_SOURCES)[0].id;
|
|
if(harvs < 4){
|
|
var spawn = Game.spawns[Memory.AImain.MainHub];
|
|
var body = [];
|
|
for(let i=0;i<Math.floor(spawn.room.energyAvailable/200);i++){
|
|
body.push(WORK);
|
|
body.push(CARRY);
|
|
body.push(MOVE);
|
|
}
|
|
var name = "ForeignHarvy"+spawn.memory.creep_iterate;
|
|
spawn.spawnCreep( body, name, { memory:
|
|
{role: GLOBAL.JOB_RESERVED_HARVESTER, source_id: source_id}});
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
run_back: function(){}
|
|
}; |