/** * @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); }
/** * @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); }