Files
screeps/douwco_hivemind/include/Creeps/CreepBase.hpp

37 lines
767 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 Screeps
namespace DouwcoHivemind {
enum CreepRole { UNEMPLOYED, SUPPLIER, UPGRADER, BUILDER, MAINTAINER, MINER };
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();
};
} // namespace DouwcoHivemind
#endif // DOUWCO_HIVEMIND_CREEPBASE_HPP