Added small movments when waiting on new target preventing blocking a source.

This commit is contained in:
2026-06-17 01:04:10 +02:00
parent af440fd296
commit 2332978ab7
5 changed files with 17 additions and 13 deletions

View File

@@ -3,6 +3,7 @@
#include <Screeps/Game.hpp>
#include <Screeps/Room.hpp>
#include <Screeps/RoomPosition.hpp>
#include <cstddef>
#include "Creeps/CreepBase.hpp"
@@ -19,6 +20,7 @@ DouwcoHivemind::CreepBase::CreepBase(Screeps::Creep crp) : creep(crp),
DouwcoHivemind::CreepBase::~CreepBase()
{
memory["role"] = role;
memory["target_id"] = target_id;
creep.setMemory(memory);
}
@@ -26,7 +28,7 @@ DouwcoHivemind::CreepBase::~CreepBase()
void DouwcoHivemind::CreepBase::moveToTarget(int dist)
{
// Is move required?
auto target = getRoomObjectTarget();
auto target = getRoomObjectTarget();
if (isNearTo(target->pos(), dist))
{
memory.erase("path");
@@ -127,11 +129,13 @@ void DouwcoHivemind::CreepBase::moveToTarget(int dist)
std::unique_ptr<Screeps::RoomObject> DouwcoHivemind::CreepBase::getRoomObjectTarget()
{
// Check if any target is present
if(target_id.empty()) return nullptr;
// Check if game can find target
auto roomObj = Screeps::Game.getObjectById(target_id);
if (!roomObj)
{
JS::console.log(creep.name() + ": Game can\'t find target id");
JS::console.log(creep.name() + ": Game can\'t find target id: " + target_id);
return nullptr;
}
return std::move(roomObj);