diff --git a/src/creep/builder.ts b/src/creep/builder.ts index 9316423..2579bd2 100644 --- a/src/creep/builder.ts +++ b/src/creep/builder.ts @@ -1,4 +1,4 @@ -import { selectSource } from './common'; +import { harvestEnergyFromTombstone, selectSource } from './common'; interface BuilderMemory extends CreepMemory { building: boolean | undefined; @@ -20,6 +20,8 @@ export function runAsBuilder(creep: Creep) { memory.sourceId = selectSource(creep.room); } + harvestEnergyFromTombstone(creep); + if (memory.building) { if (build(creep)) { return; diff --git a/src/creep/common.ts b/src/creep/common.ts index d691b92..8071f03 100644 --- a/src/creep/common.ts +++ b/src/creep/common.ts @@ -27,3 +27,13 @@ function getKeyWithMinWeight(weights: Weights): string { let keys = Object.keys(weights); return keys.reduce((key, v) => (weights[v] < weights[key] ? v : key)); } + +export function harvestEnergyFromTombstone(creep: Creep) { + const tombstones = creep.pos.findInRange(FIND_TOMBSTONES, 1, { + filter: (t) => t.store[RESOURCE_ENERGY] > 0 + }); + for (let tomb of tombstones) { + const res = creep.withdraw(tomb, RESOURCE_ENERGY); + console.log('Withdraw', res); + } +} diff --git a/src/creep/harvester.ts b/src/creep/harvester.ts index c7aa4f1..7a22bb6 100644 --- a/src/creep/harvester.ts +++ b/src/creep/harvester.ts @@ -1,4 +1,4 @@ -import { selectSource } from './common'; +import { harvestEnergyFromTombstone, selectSource } from './common'; const TARGET_TYPES = [STRUCTURE_EXTENSION, STRUCTURE_SPAWN, STRUCTURE_TOWER]; @@ -31,6 +31,8 @@ export function runAsHarvester(creep: Creep) { break; } + harvestEnergyFromTombstone(creep); + switch (memory.action) { case Action.Harvest: const source = Game.getObjectById(memory.sourceId); diff --git a/src/creep/upgrader.ts b/src/creep/upgrader.ts index 176f7e0..5a94621 100644 --- a/src/creep/upgrader.ts +++ b/src/creep/upgrader.ts @@ -1,4 +1,4 @@ -import { selectSource } from './common'; +import { harvestEnergyFromTombstone, selectSource } from './common'; interface UpgraderMemory extends CreepMemory { upgrading: boolean | undefined; @@ -19,6 +19,8 @@ export function runAsUpgrader(creep: Creep) { memory.sourceId = selectSource(creep.room); } + harvestEnergyFromTombstone(creep); + if (memory.upgrading) { if (creep.room.controller && creep.upgradeController(creep.room.controller) == ERR_NOT_IN_RANGE) { creep.say('⚡ upgrade');