コード例 #1
0
/**
 * @brief zdejmijPrzedmiot	W miarę możliwości zdejmuje dany przedmiot z gracza.
 * @param rzecz		Przedmiot do zdjęcia
 * @param gracz		gracz, który zdjejmuje przedmiot
 */
void unequipItem(const Item *item, Player *player)
{
	if (!isEquipped(item, player) || item == nullptr)
		return;

	Equipment *equipment = player->equipment();

	switch (item->type()) {
	case bronDwureczna:
	case bronJednoreczna:
		equipment->setRightHand(nullptr);
		break;
	case tarcza:
		equipment->setLeftHand(nullptr);
		break;
	case pancerz:
		equipment->setTorso(nullptr);
		break;
	case helm:
		equipment->setHead(nullptr);
		break;
	case artefakt:
		equipment->removeArtifact(item);
		break;
	default:
		qDebug() << QString::fromUtf8("Próbowano założyć nierozpoznany rodzaj ekwipunku.");
	}

	deactivateBonus(item, player);
}
コード例 #2
0
/**
 * @brief zalozPrzedmiot	W miarę możliwości zakłada dany przedmiot na gracza
 * @param rzecz		przedmiot do założenia
 * @param gracz		gracz, który zakłada przedmiot
 */
void equipItem(const Item *item, Player *player)
{
	Equipment *equipment = player->equipment();

	if (item == nullptr || isEquipped(item, player) || (item->type() == artefakt && equipment->usedArtifacts().size() >= Item::ArtifactLimit))
		return;

	switch (item->type()) {
	case bronDwureczna:
		unequipItem(equipment->rightHand(), player);
		unequipItem(equipment->leftHand(), player);
		equipment->setRightHand(item);
		break;
	case bronJednoreczna:
		unequipItem(equipment->rightHand(), player);
		equipment->setRightHand(item);
		break;
	case tarcza:
		if (equipment->rightHand()->type() == bronDwureczna)
			unequipItem(equipment->rightHand(), player);
		unequipItem(equipment->leftHand(), player);
		equipment->setLeftHand(item);
		break;
	case pancerz:
		unequipItem(equipment->torso(), player);
		equipment->setTorso(item);
		break;
	case helm:
		unequipItem(equipment->head(), player);
		equipment->setHead(item);
		break;
	case artefakt:
		if (equipment->usedArtifacts().size() < Item::ArtifactLimit)
			equipment->addArtifact(item);
	case mikstura:
		qDebug() << "Proba zalozenia mikstury";
	}

	activateBonus(item, player);
}