49 lines
873 B
C++
49 lines
873 B
C++
#ifndef DOUWCO_HIVEMIND_CREEPBASE_HPP
|
|
#define DOUWCO_HIVEMIND_CREEPBASE_HPP
|
|
|
|
#include <Screeps/Creep.hpp>
|
|
|
|
namespace Screeps{
|
|
class RoomPosition;
|
|
class RoomObject;
|
|
class PathStep;
|
|
}
|
|
|
|
namespace DouwcoHivemind
|
|
{
|
|
enum CreepRole
|
|
{
|
|
UNEMPLOYED,
|
|
SUPPLIER,
|
|
UPGRADER,
|
|
BUILDER,
|
|
MAINTAINER
|
|
};
|
|
|
|
class CreepBase
|
|
{
|
|
public:
|
|
CreepRole role;
|
|
std::string target_id;
|
|
|
|
protected:
|
|
Screeps::Creep creep;
|
|
JSON memory;
|
|
|
|
public:
|
|
CreepBase(Screeps::Creep crp);
|
|
virtual ~CreepBase();
|
|
virtual void loop() {}
|
|
|
|
|
|
|
|
bool isNearTo(const Screeps::RoomPosition &pos, int dist);
|
|
|
|
|
|
protected:
|
|
void moveToTarget(int dist = 1);
|
|
std::unique_ptr<Screeps::RoomObject> getRoomObjectTarget();
|
|
};
|
|
}
|
|
|
|
#endif // DOUWCO_HIVEMIND_CREEPBASE_HPP
|