Added streltsy
This commit is contained in:
parent
1130525e0a
commit
bb03c6d884
13
main.js
13
main.js
|
@ -1,6 +1,5 @@
|
|||
var roleDispatcher = require('role.dispatcher');
|
||||
|
||||
var creepCounts = {"harvester" : 3, "builder" : 1, "upgrader" : 2, "repairer" : 1};
|
||||
|
||||
module.exports.loop = function () {
|
||||
|
||||
|
@ -9,17 +8,9 @@ module.exports.loop = function () {
|
|||
delete Memory.creeps[name];
|
||||
}
|
||||
}
|
||||
|
||||
roleDispatcher.spawnCreeps(Game.spawns['Moscow']);
|
||||
|
||||
for(const [role, count] of Object.entries(creepCounts)){
|
||||
var roleCreeps = _.filter(Game.creeps, (creep) => creep.memory.role == role);
|
||||
|
||||
if(roleCreeps.length < count && !Game.spawns['Moscow'].spawning) {
|
||||
var newName = role + Game.time;
|
||||
Game.spawns['Moscow'].spawnCreep([WORK,CARRY,MOVE], newName,
|
||||
{memory: {role: role}});
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(Game.spawns['Moscow'].spawning) {
|
||||
var spawningCreep = Game.creeps[Game.spawns['Moscow'].spawning.name];
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
var energyUtils = require('utils.energy');
|
||||
|
||||
const body = [
|
||||
WORK, CARRY, MOVE
|
||||
];
|
||||
|
||||
var roleBuilder = {
|
||||
body,
|
||||
|
||||
/** @param {Creep} creep **/
|
||||
run: function(creep) {
|
||||
|
@ -26,4 +31,4 @@ var roleBuilder = {
|
|||
}
|
||||
};
|
||||
|
||||
module.exports = roleBuilder;
|
||||
module.exports = roleBuilder;
|
||||
|
|
|
@ -2,12 +2,22 @@ var roleHarvester = require('role.harvester');
|
|||
var roleUpgrader = require('role.upgrader');
|
||||
var roleBuilder = require('role.builder');
|
||||
var roleRepairer = require('role.repairer');
|
||||
var roleGuard = require('role.guard');
|
||||
|
||||
const roleMap = {
|
||||
harvester: roleHarvester,
|
||||
upgrader: roleUpgrader,
|
||||
builder: roleBuilder,
|
||||
repairer: roleRepairer
|
||||
repairer: roleRepairer,
|
||||
streltsy: roleGuard
|
||||
};
|
||||
|
||||
var creepCounts = {
|
||||
"harvester" : 3,
|
||||
"builder" : 1,
|
||||
"upgrader" : 2,
|
||||
"repairer" : 1,
|
||||
"streltsy" : 2
|
||||
};
|
||||
|
||||
function runRole(creep){
|
||||
|
@ -16,8 +26,22 @@ function runRole(creep){
|
|||
if(role && typeof role.run === 'function'){
|
||||
role.run(creep);
|
||||
} else {
|
||||
console.log('Unknown or underfied role: ' + creep.memory.role);
|
||||
console.log('Unknown or undefined role: ' + creep.memory.role);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { runRole };
|
||||
function spawnCreeps(spawn){
|
||||
for(const [role, count] of Object.entries(creepCounts)){
|
||||
var roleCreeps = _.filter(Game.creeps, (creep) => creep.memory.role == role);
|
||||
|
||||
|
||||
if(roleCreeps.length < count && !spawn.spawning) {
|
||||
var newName = role + Game.time;
|
||||
console.log(spawn.spawnCreep(roleMap[role].body, newName,
|
||||
{memory: {role: role}}));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { runRole, spawnCreeps, creepCounts};
|
||||
|
|
|
@ -1,21 +1,24 @@
|
|||
var energyUtils = require('utils.energy');
|
||||
|
||||
var roleHarvester = {
|
||||
const body = [
|
||||
MOVE, RANGED_ATTACK
|
||||
];
|
||||
|
||||
var roleGuard = {
|
||||
body,
|
||||
|
||||
/** @param {Creep} creep **/
|
||||
run: function(creep) {
|
||||
if(creep.store.getFreeCapacity() > 0) {
|
||||
var sources = creep.room.find(FIND_SOURCES);
|
||||
if(creep.harvest(sources[0]) == ERR_NOT_IN_RANGE) {
|
||||
creep.moveTo(sources[0], {visualizePathStyle: {stroke: '#ffaa00'}});
|
||||
}
|
||||
}
|
||||
const target = creep.pos.findClosestByRange(FIND_HOSTILE_CREEPS);
|
||||
if(target) {
|
||||
if(creep.rangedAttack(target) == ERR_NOT_IN_RANGE) {
|
||||
creep.moveTo(target);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(!energyUtils.depositEnergy(creep)){
|
||||
creep.moveTo(Game.flags.IdleArea);
|
||||
}
|
||||
creep.moveTo(Game.flags.IdleArea);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = roleHarvester;
|
||||
module.exports = roleGuard;
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
var energyUtils = require('utils.energy');
|
||||
|
||||
const body = [
|
||||
WORK, CARRY, MOVE
|
||||
];
|
||||
|
||||
var roleHarvester = {
|
||||
body,
|
||||
|
||||
/** @param {Creep} creep **/
|
||||
run: function(creep) {
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
var energyUtils = require('utils.energy');
|
||||
|
||||
const body = [
|
||||
WORK, CARRY, MOVE
|
||||
];
|
||||
|
||||
var roleRepairer = {
|
||||
body,
|
||||
|
||||
/** @param {Creep} creep **/
|
||||
run: function(creep) {
|
||||
|
@ -33,4 +38,4 @@ var roleRepairer = {
|
|||
}
|
||||
};
|
||||
|
||||
module.exports = roleRepairer;
|
||||
module.exports = roleRepairer;
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
const body = [
|
||||
WORK, CARRY, MOVE
|
||||
];
|
||||
|
||||
var roleUpgrader = {
|
||||
body,
|
||||
|
||||
/** @param {Creep} creep **/
|
||||
run: function(creep) {
|
||||
|
@ -24,4 +29,4 @@ var roleUpgrader = {
|
|||
}
|
||||
};
|
||||
|
||||
module.exports = roleUpgrader;
|
||||
module.exports = roleUpgrader;
|
||||
|
|
Loading…
Reference in a new issue