Added streltsy
This commit is contained in:
parent
1130525e0a
commit
bb03c6d884
11
main.js
11
main.js
|
@ -1,6 +1,5 @@
|
||||||
var roleDispatcher = require('role.dispatcher');
|
var roleDispatcher = require('role.dispatcher');
|
||||||
|
|
||||||
var creepCounts = {"harvester" : 3, "builder" : 1, "upgrader" : 2, "repairer" : 1};
|
|
||||||
|
|
||||||
module.exports.loop = function () {
|
module.exports.loop = function () {
|
||||||
|
|
||||||
|
@ -10,16 +9,8 @@ module.exports.loop = function () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(const [role, count] of Object.entries(creepCounts)){
|
roleDispatcher.spawnCreeps(Game.spawns['Moscow']);
|
||||||
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) {
|
if(Game.spawns['Moscow'].spawning) {
|
||||||
var spawningCreep = Game.creeps[Game.spawns['Moscow'].spawning.name];
|
var spawningCreep = Game.creeps[Game.spawns['Moscow'].spawning.name];
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
var energyUtils = require('utils.energy');
|
var energyUtils = require('utils.energy');
|
||||||
|
|
||||||
|
const body = [
|
||||||
|
WORK, CARRY, MOVE
|
||||||
|
];
|
||||||
|
|
||||||
var roleBuilder = {
|
var roleBuilder = {
|
||||||
|
body,
|
||||||
|
|
||||||
/** @param {Creep} creep **/
|
/** @param {Creep} creep **/
|
||||||
run: function(creep) {
|
run: function(creep) {
|
||||||
|
|
|
@ -2,12 +2,22 @@ var roleHarvester = require('role.harvester');
|
||||||
var roleUpgrader = require('role.upgrader');
|
var roleUpgrader = require('role.upgrader');
|
||||||
var roleBuilder = require('role.builder');
|
var roleBuilder = require('role.builder');
|
||||||
var roleRepairer = require('role.repairer');
|
var roleRepairer = require('role.repairer');
|
||||||
|
var roleGuard = require('role.guard');
|
||||||
|
|
||||||
const roleMap = {
|
const roleMap = {
|
||||||
harvester: roleHarvester,
|
harvester: roleHarvester,
|
||||||
upgrader: roleUpgrader,
|
upgrader: roleUpgrader,
|
||||||
builder: roleBuilder,
|
builder: roleBuilder,
|
||||||
repairer: roleRepairer
|
repairer: roleRepairer,
|
||||||
|
streltsy: roleGuard
|
||||||
|
};
|
||||||
|
|
||||||
|
var creepCounts = {
|
||||||
|
"harvester" : 3,
|
||||||
|
"builder" : 1,
|
||||||
|
"upgrader" : 2,
|
||||||
|
"repairer" : 1,
|
||||||
|
"streltsy" : 2
|
||||||
};
|
};
|
||||||
|
|
||||||
function runRole(creep){
|
function runRole(creep){
|
||||||
|
@ -16,8 +26,22 @@ function runRole(creep){
|
||||||
if(role && typeof role.run === 'function'){
|
if(role && typeof role.run === 'function'){
|
||||||
role.run(creep);
|
role.run(creep);
|
||||||
} else {
|
} 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 energyUtils = require('utils.energy');
|
||||||
|
|
||||||
var roleHarvester = {
|
const body = [
|
||||||
|
MOVE, RANGED_ATTACK
|
||||||
|
];
|
||||||
|
|
||||||
|
var roleGuard = {
|
||||||
|
body,
|
||||||
|
|
||||||
/** @param {Creep} creep **/
|
/** @param {Creep} creep **/
|
||||||
run: function(creep) {
|
run: function(creep) {
|
||||||
if(creep.store.getFreeCapacity() > 0) {
|
const target = creep.pos.findClosestByRange(FIND_HOSTILE_CREEPS);
|
||||||
var sources = creep.room.find(FIND_SOURCES);
|
if(target) {
|
||||||
if(creep.harvest(sources[0]) == ERR_NOT_IN_RANGE) {
|
if(creep.rangedAttack(target) == ERR_NOT_IN_RANGE) {
|
||||||
creep.moveTo(sources[0], {visualizePathStyle: {stroke: '#ffaa00'}});
|
creep.moveTo(target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
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');
|
var energyUtils = require('utils.energy');
|
||||||
|
|
||||||
|
const body = [
|
||||||
|
WORK, CARRY, MOVE
|
||||||
|
];
|
||||||
|
|
||||||
var roleHarvester = {
|
var roleHarvester = {
|
||||||
|
body,
|
||||||
|
|
||||||
/** @param {Creep} creep **/
|
/** @param {Creep} creep **/
|
||||||
run: function(creep) {
|
run: function(creep) {
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
var energyUtils = require('utils.energy');
|
var energyUtils = require('utils.energy');
|
||||||
|
|
||||||
|
const body = [
|
||||||
|
WORK, CARRY, MOVE
|
||||||
|
];
|
||||||
|
|
||||||
var roleRepairer = {
|
var roleRepairer = {
|
||||||
|
body,
|
||||||
|
|
||||||
/** @param {Creep} creep **/
|
/** @param {Creep} creep **/
|
||||||
run: function(creep) {
|
run: function(creep) {
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
|
const body = [
|
||||||
|
WORK, CARRY, MOVE
|
||||||
|
];
|
||||||
|
|
||||||
var roleUpgrader = {
|
var roleUpgrader = {
|
||||||
|
body,
|
||||||
|
|
||||||
/** @param {Creep} creep **/
|
/** @param {Creep} creep **/
|
||||||
run: function(creep) {
|
run: function(creep) {
|
||||||
|
|
Loading…
Reference in a new issue