34 lines
714 B
C++
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;
|
|
}
|
|
|