Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module.exports = {
- // multiple states
- run: function(creep,resources)
- {
- // delete creep.memory.source2
- var targetroom = Game.flags.Flag49
- //console.log("flag room "+targetroom.pos.roomName)
- if (targetroom.pos.roomName==creep.room.name)
- {
- //whats the state?
- if (creep.carry.energy == 0)
- {
- // lets go mining
- delete creep.memory.subtask
- sources = creep.room.find(FIND_SOURCES)
- for (var s in sources)
- {
- source = sources[s].id
- // console.log("worker "+source)
- var miners = _.filter(Game.creeps, (creep) => creep.memory.source2 == source);
- amount_miners = 3
- if (source == "57ef9d1486f108ae6e60d3ba") amount_miners = 1
- if (miners.length < amount_miners)
- {
- creep.memory.source2 = source
- creep.memory.state = "MINING"
- break
- }
- }
- if (!creep.memory.source2)
- {
- creep.moveTo(targetroom.pos)
- }
- // console.log("sources: "+sources.length)
- } else if (creep.carry.energy == creep.carryCapaity) {
- creep.memory.state = "WORK"
- delete creep.memory.source2
- }
- if (creep.memory.state == "MINING") {
- // console.log("mining")
- var source = Game.getObjectById(creep.memory.source2)
- if (source != undefined) {
- // console.log(source.id)
- console.log(creep.harvest(source))
- creep.moveTo(source)
- } else {
- delete creep.memory.source2
- }
- if (creep.carry.energy == creep.carryCapacity)
- {
- delete creep.memory.source2
- creep.memory.state = "WORK"
- }
- } else if ( creep.memory.state == "WORK" || creep.carry.energy != 0){
- var energy_max = Game.spawns.Spawn3.room.energyCapacityAvailable;
- var energy = Game.spawns.Spawn3.room.energyAvailable;
- var energy_max = 0
- var energy = 0
- var worker= _.filter(Game.creeps, (creep) => creep.memory.run =="worker");
- if (energy== energy_max ||creep.memory.subtask != undefined)
- {
- creep.say("task!")
- var repair = creep.room.find(FIND_STRUCTURES, {filter: (structure) => {return (structure.structureType == STRUCTURE_ROAD) && structure.hits < 1000}});
- //var repair = creep.room.find(FIND_MY_STRUCTURES, {filter: (object) => object.hits < 2000})
- //room.find(FIND_STRUCTURES, {filter: (structure) => {return (structure.structureType == STRUCTURE_ROAD) && structure.hits < 4000}});
- //repair = []
- // console.log ("repair"+repair.length+" "+repair[0].hits)
- if (repair.length > 0)
- {
- creep.say("task!")
- creep.memory.subtask = "repair"
- var site = creep.pos.findClosestByPath(repair)
- //console.log(repair[0].id+" "+site.id+" "+creep.room.controller.id)
- // creep.say("task!")
- if (site != undefined && site.id == creep.room.controller.id)
- {
- var rep= creep.upgradeController(site)
- } else {
- var rep = creep.repair(site)
- }
- if (rep == ERR_NOT_IN_RANGE) creep.moveTo(site)
- //var upgrade = creep.upgradeController(target)
- } else {
- creep.say("task!")
- //console.log("working")
- var sites = creep.room.find(FIND_CONSTRUCTION_SITES)
- if (sites.length>0)
- {
- creep.memory.subtask = "build"
- //
- // console.log("build")
- var site = creep.pos.findClosestByPath(sites)
- var build = creep.build(site)
- if (build == ERR_NOT_IN_RANGE) creep.moveTo(site)
- var build = creep.build(site)
- } else {
- creep.memory.subtask = "upgrade"
- // console.log("upgrade")
- // if theres a spawn keep it full.
- var target = creep.room.controller
- var upgrade = creep.upgradeController(target)
- if (upgrade == ERR_NOT_IN_RANGE)
- {
- creep.moveTo(target) // ARM ME!!
- }
- }
- }
- } else if (creep.memory.subtask == undefined || creep.memory.state !=undefined ){
- // console.log("unload")
- var sites = creep.room.find(FIND_STRUCTURES, {filter: (structure) => {return (structure.structureType == STRUCTURE_EXTENSION || structure.structureType == STRUCTURE_SPAWN || structure.structureType == STRUCTURE_TOWER) && structure.energy < structure.energyCapacity;}});
- var site = creep.pos.findClosestByPath(sites)
- creep.moveTo(site )
- var trans = creep.transfer( site ,RESOURCE_ENERGY)
- }
- // if ()
- } else {
- //console.log ("huh?")
- creep.memory.state = "WORK"
- }
- } else {
- delete creep.memory.source2
- creep.moveTo(targetroom.pos)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement