/* ########################### # 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