Added small movments when waiting on new target preventing blocking a source.
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user