From b3904c120989f668dc730146506009d5bd4f2475 Mon Sep 17 00:00:00 2001 From: Brulijam Date: Sun, 26 Nov 2023 18:52:13 +0100 Subject: [PATCH] Finished second tutorial --- screeps.com/tutorial-2/main.js | 15 +++++++++++++ screeps.com/tutorial-2/role.harvester.js | 19 ++++++++++++++++ screeps.com/tutorial-2/role.upgrader.js | 28 ++++++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 screeps.com/tutorial-2/main.js create mode 100644 screeps.com/tutorial-2/role.harvester.js create mode 100644 screeps.com/tutorial-2/role.upgrader.js diff --git a/screeps.com/tutorial-2/main.js b/screeps.com/tutorial-2/main.js new file mode 100644 index 0000000..2ae3572 --- /dev/null +++ b/screeps.com/tutorial-2/main.js @@ -0,0 +1,15 @@ +var roleHarvester = require('role.harvester'); +var roleUpgrader = require('role.upgrader'); + +module.exports.loop = function () { + + for(var name in Game.creeps) { + var creep = Game.creeps[name]; + if(creep.memory.role == 'harvester') { + roleHarvester.run(creep); + } + if(creep.memory.role == 'upgrader') { + roleUpgrader.run(creep); + } + } +} \ No newline at end of file diff --git a/screeps.com/tutorial-2/role.harvester.js b/screeps.com/tutorial-2/role.harvester.js new file mode 100644 index 0000000..271f913 --- /dev/null +++ b/screeps.com/tutorial-2/role.harvester.js @@ -0,0 +1,19 @@ +var roleHarvester = { + + /** @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]); + } + } + else if(Game.spawns['Spawn1'].energy < Game.spawns['Spawn1'].energyCapacity) { + if(creep.transfer(Game.spawns['Spawn1'], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) { + creep.moveTo(Game.spawns['Spawn1']); + } + } + } +}; + +module.exports = roleHarvester; \ No newline at end of file diff --git a/screeps.com/tutorial-2/role.upgrader.js b/screeps.com/tutorial-2/role.upgrader.js new file mode 100644 index 0000000..bb663b8 --- /dev/null +++ b/screeps.com/tutorial-2/role.upgrader.js @@ -0,0 +1,28 @@ +/* + * Module code goes here. Use 'module.exports' to export things: + * module.exports.thing = 'a thing'; + * + * You can import it from another modules like this: + * var mod = require('role.upgrader'); + * mod.thing == 'a thing'; // true + */ + +var roleUpgrader = { + + /** @param {Creep} creep **/ + run: function(creep) { + if(creep.store[RESOURCE_ENERGY] == 0) { + var sources = creep.room.find(FIND_SOURCES); + if(creep.harvest(sources[0]) == ERR_NOT_IN_RANGE) { + creep.moveTo(sources[0]); + } + } + else { + if(creep.upgradeController(creep.room.controller) == ERR_NOT_IN_RANGE) { + creep.moveTo(creep.room.controller); + } + } + } +}; + +module.exports = roleUpgrader; \ No newline at end of file