UNPKG

@screeps/engine

Version:

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

41 lines (34 loc) 1.6 kB
'use strict'; var _ = require('lodash'), utils = require('../../../utils'), driver = utils.getDriver(), C = driver.constants; module.exports = function (object, roomObjects, roomTerrain, bulk, bulkUsers, roomController, gameTime) { if (!object || object.type != 'source') return; if (object.energy < object.energyCapacity) { if (!object.nextRegenerationTime) { object.nextRegenerationTime = gameTime + C.ENERGY_REGEN_TIME; bulk.update(object, { nextRegenerationTime: object.nextRegenerationTime }); } if (gameTime >= object.nextRegenerationTime - 1) { bulk.update(object, { nextRegenerationTime: null, energy: object.energyCapacity }); } } if (roomController) { if (!roomController.user && !roomController.reservation && object.energyCapacity != C.SOURCE_ENERGY_NEUTRAL_CAPACITY) { bulk.update(object, { energyCapacity: C.SOURCE_ENERGY_NEUTRAL_CAPACITY, energy: Math.min(object.energy, C.SOURCE_ENERGY_NEUTRAL_CAPACITY) }); } if ((roomController.user || roomController.reservation) && object.energyCapacity != C.SOURCE_ENERGY_CAPACITY) { bulk.update(object, { energyCapacity: C.SOURCE_ENERGY_CAPACITY }); } } else if (object.energyCapacity != C.SOURCE_ENERGY_KEEPER_CAPACITY) { bulk.update(object, { energyCapacity: C.SOURCE_ENERGY_KEEPER_CAPACITY }); } }; //# sourceMappingURL=../../../sourcemaps/processor/intents/sources/tick.js.map