diff --git a/src/role/base/harvester.ts b/src/role/base/harvester.ts index ebb8fc2f..51bd6726 100644 --- a/src/role/base/harvester.ts +++ b/src/role/base/harvester.ts @@ -226,7 +226,7 @@ const actionStrategy: ActionStrategy = { return creep.pos.isEqualTo(targetPos); }, source: (creep, source) => { - if (creep.store.getFreeCapacity(RESOURCE_ENERGY) === 0) return true; + if (creep.store.getFreeCapacity(RESOURCE_ENERGY) < creep.getActiveBodyparts(WORK) * 2) return true; creep.getEnergyFrom(source); diff --git a/src/role/remote/depositHarvester.ts b/src/role/remote/depositHarvester.ts index 740b6c91..c192660d 100644 --- a/src/role/remote/depositHarvester.ts +++ b/src/role/remote/depositHarvester.ts @@ -34,7 +34,7 @@ export const depositHarvester: CreepConfig<"depositHarvester"> = { // 如果采集满了 / 冷却时间太长 / 自己快死了,就往家跑 if ( - creep.store.getFreeCapacity(creep.memory.depositType) <= 0 || + creep.store.getFreeCapacity(RESOURCE_ENERGY) < creep.getActiveBodyparts(WORK) * 2 || (targetFlag.memory.depositCooldown >= 100 && !creep.memory.working) || creep.ticksToLive <= targetFlag.memory.travelTime * 2 + 20 )