Added streltsy

This commit is contained in:
ObeseTermite 2025-06-03 21:10:14 -07:00
parent 1130525e0a
commit bb03c6d884
7 changed files with 66 additions and 28 deletions

13
main.js
View file

@ -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];

View file

@ -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;

View file

@ -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};

View file

@ -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;

View file

@ -1,6 +1,11 @@
var energyUtils = require('utils.energy');
const body = [
WORK, CARRY, MOVE
];
var roleHarvester = {
body,
/** @param {Creep} creep **/
run: function(creep) {

View file

@ -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;

View file

@ -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;