You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
screeps/default/globals.js

60 lines
1.7 KiB

const roleHarvester = require('./role.harvester')
const roleRemoteHarvester = require('./role.remoteHarvester')
const roleTransporter = require('./role.transporter')
const roleBuilder = require('./role.builder')
const roleUpgrader = require('./role.upgrader')
const roleScout = require('./role.scout')
const roleAttacker = require('./role.attacker')
const roleRangedAttacker = require('./role.rangedAttacker')
const roleHauler = require('./role.hauler')
const roleHealer = require('./role.healer')
const roleFiller = require('./role.filler')
const roleReserver = require('./role.reserver')
const {findWalkablePath} = require('./common')
global.roleModules = [
roleHarvester,
roleRemoteHarvester,
roleBuilder,
roleTransporter,
roleUpgrader,
roleScout,
roleRangedAttacker,
roleHauler,
roleAttacker,
roleHealer,
roleFiller,
roleReserver,
]
global.ROLES = {}
for (let mod of roleModules) {
ROLES[mod.name] = mod
}
global.creepIsAttacker = creep => creep.getActiveBodyparts(ATTACK) + creep.getActiveBodyparts(RANGED_ATTACK) > 0
global.activeRemotes = ['E8S4', 'E8S5', 'E9S5', 'E8S3']
global.ALREADY_IN_ROOM = 'alreadyInRoom'
global.MOVING = 'moving'
global.moveToRoom = function (creep, targetRoom) {
if (creep.pos.roomName === targetRoom) {
return ALREADY_IN_ROOM
}
let target
if (Game.rooms[targetRoom]) {
target = Game.rooms[targetRoom].find(FIND_SOURCES)
if (target.length > 0) {
target = target[0]
}
}
if (!target) {
const exitDir = Game.map.findExit(creep.room, targetRoom);
target = creep.pos.findClosestByRange(exitDir);
}
creep.moveByPath(findWalkablePath(creep.pos, target, {}).path);
creep.say(targetRoom)
return MOVING
}