UNPKG

@screeps/engine

Version:

This is a module for Screeps standalone server. See [main repository](https://github.com/screeps/screeps) for more info.

50 lines (42 loc) 1.58 kB
'use strict'; var _ = require('lodash'), utils = require('../../utils'), driver = utils.getDriver(), C = driver.constants; module.exports = function (roomSpawns, roomExtensions, roomController, bulk) { var spawns = roomSpawns; if (spawns.length > C.CONTROLLER_STRUCTURES.spawn[roomController.level | 0]) { spawns.sort(utils.comparatorDistance(roomController)); spawns = _.take(spawns, C.CONTROLLER_STRUCTURES.spawn[roomController.level | 0]); roomSpawns.forEach(function (i) { return i._off = !_.contains(spawns, i); }); } else { roomSpawns.forEach(function (i) { return i._off = false; }); } roomSpawns.forEach(function (i) { if (i._off !== i.off) { bulk.update(i._id, { off: i._off }); } }); var extensions = roomExtensions; if (extensions.length > C.CONTROLLER_STRUCTURES.extension[roomController.level | 0]) { extensions.sort(utils.comparatorDistance(roomController)); extensions = _.take(extensions, C.CONTROLLER_STRUCTURES.extension[roomController.level | 0]); roomExtensions.forEach(function (i) { return i._off = !_.contains(extensions, i); }); } else { roomExtensions.forEach(function (i) { return i._off = false; }); } roomExtensions.forEach(function (i) { if (i._off !== i.off) { bulk.update(i._id, { off: i._off }); } }); }; //# sourceMappingURL=../../sourcemaps/processor/intents/_calc_spawns.js.map