#include <iostream>
#include <string>
#include <vector>
#include "Player.h"

using namespace std;

/**************************************************************************


PLAYER


***************************************************************************/

Player::Player() { pLoc = mStart; }

void Player::pPickup(string* item) {
	if (pLoc->pRoomPickup(&(*item))) {
		pInventory.push_back(*item);
	}
	else { std::cout << "\nItem is not found.\n\n"; }
}

void Player::pDrop(string* item) {
	auto it = find(pInventory.begin(), pInventory.end(), *item);
	if (it != pInventory.end()) {
		pInventory.erase(it);
		pLoc->pRoomDrop(&(*item));
	}
	else { std::cout << "\nThe item is not in your inventory.\n\n"; }
}

void Player::Consume(string* item) {
	if (pLoc->pRoomItemPresent(&(*item)) || pItemPresent(&(*item))) {
		if (pLoc->pRoomItemPresent(&(*item))) { pPickup(&(*item)); }
		auto it = find(pInventory.begin(), pInventory.end(), *item);
		if (it != pInventory.end()) { pInventory.erase(it); }
	}
	else { return; }
}

void Player::AddItem(string* item) { pInventory.push_back(*item); }

bool Player::pItemPresent(string* item) {
	auto it = find(pInventory.begin(), pInventory.end(), *item);
	if (it != pInventory.end()) { return true; }
	else { return false; }
}