slumber-quest/controllers/itemcontroller.cpp

34 lines
714 B
C++

#include "itemcontroller.h"
#include "item.h"
#include "actor.h"
#include "policy.h"
ItemController::ItemController(Initializer &&initializer) :
Controller(std::move(initializer))
{}
ItemController::~ItemController()
{}
std::string ItemController::interact(std::shared_ptr<Actor> actor)
{
std::string interaction_output;
const auto validation_result = validatePolicies();
interaction_output += validation_result.validation_output;
if (validation_result.success)
{
actor->giveItem(_item);
interaction_output += _interaction_message;
}
return interaction_output;
}
void ItemController::setDependentItem(const std::shared_ptr<Item> &item)
{
_item = item;
}