UNPKG

@screeps/engine

Version:

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

30 lines (25 loc) 1.51 kB
var _ = require('lodash'); var priorities = { rangedHeal: ['heal'], dismantle: ['attackController','rangedHeal','heal'], repair: ['dismantle','attackController','rangedHeal','heal'], build: ['repair','dismantle','attackController','rangedHeal','heal'], attack: ['build','repair','dismantle','attackController','rangedHeal','heal'], harvest: ['attack','build','repair','dismantle','attackController','rangedHeal','heal'], rangedMassAttack: ['build','repair','rangedHeal'], rangedAttack: ['rangedMassAttack','build','repair','rangedHeal'] }; var creepActions = ['drop','transfer','withdraw','pickup','heal','rangedHeal','dismantle','attack','harvest','move','repair', 'build','rangedMassAttack','rangedAttack','suicide','say','claimController','upgradeController','reserveController', 'attackController','generateSafeMode','signController']; var modules = require('bulk-require')(__dirname, ['*.js']); function checkPriorities(intents, name) { return intents[name] && (!priorities[name] || !_.any(priorities[name], i => !!intents[i])); } module.exports = function(object, objectIntents, roomObjects, roomTerrain, bulk, bulkUsers, roomController, stats, gameTime, roomInfo, users) { creepActions.forEach(name => { if(checkPriorities(objectIntents, name)) { modules[name](object, objectIntents[name], roomObjects, roomTerrain, bulk, bulkUsers, roomController, stats, gameTime, roomInfo, users); } }); };