void BattleCharacterStatus::valueChanged(QString name) {
	BattleCharacterItem *character = 0;
	QGraphicsTextItem *infoItem = 0;
	for (int i = 0; i < _characters.size(); i++) {
		BattleCharacterItem *it = _characters.at(i);
		if (!!it && (it->getName() == name)) {
			character = it;
			infoItem = _info.at(i);
			break;
		}
	}

	if (!!character) {
		QString infoString;
		infoString += character->getCharacter()->getName() + QString(":\n");
		infoString += QString("Health: ") + QString::number(character->getHealth().second) + QString(" / ") + QString::number(character->getMaxHealth().second) + QString("\t");
		infoString += QString("Energy: ") + QString::number(character->getEnergy().second) + QString(" / ") + QString::number(character->getMaxEnergy().second);


		double percentage = (double)character->getHealth().second / (double)character->getMaxHealth().second * 100;

		if (percentage > 60)
			infoItem->setDefaultTextColor(Qt::green);
		else if ((percentage <= 60) && (percentage > 25))
			infoItem->setDefaultTextColor(Qt::yellow);
		else if ((percentage <= 25) && (percentage > 0))
			infoItem->setDefaultTextColor(Qt::red);
		else
			infoItem->setDefaultTextColor(Qt::gray);

		infoItem->setPlainText(infoString);
		QFont font("Times", 12, QFont::Bold);
		infoItem->setFont(font);

		QTextBlockFormat format;
		format.setAlignment(Qt::AlignLeft);
		QTextCursor cursor = infoItem->textCursor();
		cursor.select(QTextCursor::Document);
		cursor.mergeBlockFormat(format);
		cursor.clearSelection();
		infoItem->setTextCursor(cursor);
	}
}
void BattleCharacterStatus::setCharacters(const QVector<BattleCharacterItem*> &characters) {
	for (int i = 0; i < _info.size(); i++) {
		delete _info.at(i);
	}
	_info.clear();

	_characters = characters;
	int y = 10;
	for (int i = 0; i < _characters.size(); i++) {
		BattleCharacterItem *character = _characters.at(i);
		connect (character, SIGNAL(valueChanged(QString)), this, SLOT(valueChanged(QString)));

		QString infoString;
		infoString += character->getCharacter()->getName() + QString(":\n");
		infoString += QString("Health: ") + QString::number(character->getHealth().second) + QString(" / ") + QString::number(character->getMaxHealth().second) + QString("\t");
		infoString += QString("Energy: ") + QString::number(character->getEnergy().second) + QString(" / ") + QString::number(character->getMaxEnergy().second);

		QGraphicsTextItem *infoItem = new QGraphicsTextItem(this);
		_info.append(infoItem);
		infoItem->setTextWidth(boundingRect().width());
		infoItem->setDefaultTextColor(Qt::green);

		infoItem->setPlainText(infoString);
		QFont font("Times", 12, QFont::Bold);
		infoItem->setFont(font);

		QTextBlockFormat format;
		format.setAlignment(Qt::AlignLeft);
		QTextCursor cursor = infoItem->textCursor();
		cursor.select(QTextCursor::Document);
		cursor.mergeBlockFormat(format);
		cursor.clearSelection();
		infoItem->setTextCursor(cursor);

		infoItem->setPos(10, y);
		y += 50;
	}
}