UNPKG

@screeps/engine

Version:

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

48 lines (41 loc) 1.54 kB
var _ = require('lodash'), utils = require('../../../utils'), driver = utils.getDriver(), C = driver.constants; module.exports = function(object, scope) { if(!object || object.type != 'invaderCore') return; const {roomObjects, roomController, bulk, roomInfo, gameTime} = scope; const collapseEffect = _.find(object.effects, {effect: C.EFFECT_COLLAPSE_TIMER}); if(collapseEffect && collapseEffect.endTime <= gameTime) { if(roomController) { bulk.update(roomController, { user: null, level: 0, progress: 0, downgradeTime: null, safeMode: null, safeModeAvailable: 0, safeModeCooldown: null, isPowerEnabled: false, effects: null }); } return; } if(object.spawning) { if(gameTime >= object.spawning.spawnTime-1) { const spawningCreep = _.find(roomObjects, {type: 'creep', name: object.spawning.name, x: object.x, y: object.y}); const bornOk = require('../spawns/_born-creep')(object, spawningCreep, scope); if(bornOk) { bulk.update(object, {spawning: null}); } else { bulk.update(object, {spawning: {spawnTime: 1+gameTime}}); } } } if(!_.isEqual(object.actionLog, object._actionLog)) { roomInfo.active = true; bulk.update(object, {actionLog: object.actionLog}); } };