File ControlledAgent.hpp
File List > client > ControlledAgent.hpp
Go to the documentation of this file
#pragma once
#include <cassert>
#include "../../../core/AgentBase.hpp"
#include "ClientManager.hpp"
namespace netWorth
{
class ControlledAgent : public cse491::AgentBase
{
private:
ClientManager* m_manager = nullptr;
protected:
public:
ControlledAgent(size_t id, const std::string& name) : AgentBase(id, name)
{
}
bool Initialize() override
{
m_manager = GetProperty<ClientManager*>("manager");
return HasAction("up") && HasAction("down") && HasAction("left") && HasAction("right");
}
size_t SelectAction(const cse491::WorldGrid& /* grid*/,
const cse491::type_options_t& /* type_options*/,
const cse491::item_map_t& /* item_map*/,
const cse491::agent_map_t& /* agent_map*/) override
{
if (!m_manager->iDPresent(id))
{
return 0;
}
return m_manager->getActionID(id);
}
};
} // End of namespace cse491