From 7681a47568063ce19f0aef7239da2a131f37f2dd Mon Sep 17 00:00:00 2001 From: Brulijam Date: Mon, 27 Nov 2023 01:18:04 +0100 Subject: [PATCH] Implemented basic Creep spawning and display option for messages. --- screeps.com/testing-sim/creep_builds.js | 18 ++++++++++++------ screeps.com/testing-sim/main.js | 1 + screeps.com/testing-sim/manage_creeps.js | 22 ++++++++++------------ screeps.com/testing-sim/misc.js | 24 ++++++++++++++++++++++++ screeps.com/testing-sim/settings.js | 8 ++++---- 5 files changed, 51 insertions(+), 22 deletions(-) diff --git a/screeps.com/testing-sim/creep_builds.js b/screeps.com/testing-sim/creep_builds.js index f096bf8..f2ea408 100644 --- a/screeps.com/testing-sim/creep_builds.js +++ b/screeps.com/testing-sim/creep_builds.js @@ -1,12 +1,18 @@ var creepBuilds = { - getHarvesterSmall: function() { - return [WORK, WORK, CARRY, MOVE]; - }, + getBuildsDict: function() { + let harvester = [WORK, WORK, CARRY, MOVE] + let upgrader = [WORK, CARRY, MOVE]; + let builder = [WORK, CARRY, MOVE]; - getUpgraderSmall: function() { - return [WORK, CARRY, MOVE]; - } + let buildsDict = { + harvester: harvester, + upgrader: upgrader, + builder: builder, + } + + return buildsDict; + }, }; module.exports = creepBuilds; diff --git a/screeps.com/testing-sim/main.js b/screeps.com/testing-sim/main.js index 50df2f3..9e235cf 100644 --- a/screeps.com/testing-sim/main.js +++ b/screeps.com/testing-sim/main.js @@ -10,5 +10,6 @@ var creepManager = require("./manage_creeps"); module.exports.loop = function () { misc.clearMemory(); + misc.displayMessage(Game.spawns.Spawn1, "test") creepManager.run(); } diff --git a/screeps.com/testing-sim/manage_creeps.js b/screeps.com/testing-sim/manage_creeps.js index dceee7c..e8a1094 100644 --- a/screeps.com/testing-sim/manage_creeps.js +++ b/screeps.com/testing-sim/manage_creeps.js @@ -14,8 +14,8 @@ var creepManager = { run: function() { if (spawnCreeps) { - for (role in creepGoalAmount) { - roleCreepsAmount = _.filter(Game.creeps, (creep) => creep.memory.role == role); + for (let role in creepGoalAmount) { + let roleCreepsAmount = (_.filter(Game.creeps, (creep) => creep.memory.role == role)).length; if (roleCreepsAmount < creepGoalAmount[role]) { spawnCreep(role, roleCreepsAmount); } @@ -27,17 +27,15 @@ var creepManager = { module.exports = creepManager; - - function spawnCreep(role, existing) { - let name = role + "_Spheal_" + existing; + let newCreepName = role + "_Spheal_" + existing; + let newCreepBuild = creepBuilds.getBuildsDict()[role]; + + Game.spawns.Spawn1.spawnCreep(newCreepBuild, newCreepName, { memory: { role: role } }); if (!Game.spawns.Spawn1.spawning) { - misc.displayMessage("Spawn", Game.spawns.Spawn1, "Spawning next: " + name); - } - else { - misc.displayMessage("Spawn", Game.spawns.Spawn1, "Spawning Creep"); - } - - Game.spawns.Spawn1.spawnCreep(creepBuilds[buildType], newCreepName, { memory: { role: buildType } }); + misc.displayMessage(Game.spawns.Spawn1, "Spawning next: " + newCreepName); + } else { + misc.displayMessage(Game.spawns.Spawn1, "Spawning Creep"); + } } diff --git a/screeps.com/testing-sim/misc.js b/screeps.com/testing-sim/misc.js index b03f5a0..bfeacd8 100644 --- a/screeps.com/testing-sim/misc.js +++ b/screeps.com/testing-sim/misc.js @@ -9,6 +9,30 @@ var settings = { } } }, + + + displayMessage: function(object, msgString) { + if (object instanceof Spawn) { + object.room.visual.text( + msgString, + object.pos.x, + object.pos.y+1, + { + align: 'center', + opacity: 0.9, + backgroundPadding: 0.2, + backgroundColor: "#222222", + color: "#eeeeee" + } + ); + } + else if (object instanceof Creep) { + object.say(msgString); + } + else { + console.log("ERROR: displayMessage(" + object + ", " + msgString + ") failed."); + } + } }; module.exports = settings; diff --git a/screeps.com/testing-sim/settings.js b/screeps.com/testing-sim/settings.js index df97caa..591f986 100644 --- a/screeps.com/testing-sim/settings.js +++ b/screeps.com/testing-sim/settings.js @@ -1,12 +1,12 @@ var settings = { getCreepGoalAmount: function() { - var getCreepAmountGoalDict = { + var getCreepGoalAmountDict = { harvester: 1, - upgrader: 1, - builder: 1 + upgrader: 0, + builder: 0 } - return getCreepAmountGoalDict; + return getCreepGoalAmountDict; }, getSpawnCreeps: function() {