fixed bug with mulligan and restart of game

This commit is contained in:
marcus 2009-10-19 18:52:53 +02:00
parent 6049a601fb
commit c86a1ed4f6

View file

@ -115,7 +115,7 @@ Player::Player(const QString &_name, int _id, bool _local, CardDatabase *_db, Cl
aShuffle = new QAction(this); aShuffle = new QAction(this);
connect(aShuffle, SIGNAL(triggered()), this, SLOT(actShuffle())); connect(aShuffle, SIGNAL(triggered()), this, SLOT(actShuffle()));
aMulligan = new QAction(this); aMulligan = new QAction(this);
connect(aMulligan, SIGNAL(triggered()), this, SLOT(actMuligan())); connect(aMulligan, SIGNAL(triggered()), this, SLOT(actMulligan()));
} }
playerMenu = new QMenu(QString()); playerMenu = new QMenu(QString());
@ -335,9 +335,11 @@ void Player::actDrawCard()
cardsInHand++; cardsInHand++;
} }
void Player::actMuligan() void Player::actMulligan()
{ {
if(cardsInHand <= 0) return; if(cardsInHand <= 0 || cardsInHand > 7) return;
CardList handCards = hand->getCards(); CardList handCards = hand->getCards();
for(int i = 0; i < handCards.size(); i++){ for(int i = 0; i < handCards.size(); i++){
client->moveCard(handCards.at(i)->getId(),"hand","deck",0); client->moveCard(handCards.at(i)->getId(),"hand","deck",0);
@ -351,7 +353,8 @@ void Player::actDrawCards()
int number = QInputDialog::getInteger(0, tr("Draw cards"), tr("Number:")); int number = QInputDialog::getInteger(0, tr("Draw cards"), tr("Number:"));
if (number){ if (number){
client->drawCards(number); client->drawCards(number);
cardsInHand += number; cardsInHand = number;
qDebug() << "ANZAHL DER GEZOGENEN KARTEN: <<<<<<<<<<<<<<<<<<<<<<<<< " << cardsInHand;
} }
} }
@ -490,11 +493,7 @@ void Player::gameEvent(const ServerEventData &event)
break; break;
} }
/* if(startZone == zones.value("hand")){
cardsInHand--;
qDebug() << "<<<<<<<<<<<<<<<<<<<< Karte aus hand entfernt";
qDebug() << "<<<<<<<<<<<<<<<<<<<<< Handkartenanzahl: " << cardsInHand;
}*/
int x = data[5].toInt(); int x = data[5].toInt();
int y = data[6].toInt(); int y = data[6].toInt();
bool facedown = data[7].toInt(); bool facedown = data[7].toInt();
@ -518,6 +517,13 @@ void Player::gameEvent(const ServerEventData &event)
// because the addCard function can modify the card object. // because the addCard function can modify the card object.
emit logMoveCard(this, card->getName(), startZone, logPosition, targetZone, logX); emit logMoveCard(this, card->getName(), startZone, logPosition, targetZone, logX);
/*if(startZone == zones.value("hand")){
qDebug() << "<<<<<<<<<<<<<<<<<<<<< Handkartenanzahl: " << cardsInHand;
cardsInHand--;
qDebug() << "<<<<<<<<<<<<<<<<<<<< Karte aus hand entfernt";
qDebug() << "<<<<<<<<<<<<<<<<<<<<< Handkartenanzahl: " << cardsInHand;
}*/
targetZone->addCard(card, true, x, y); targetZone->addCard(card, true, x, y);
break; break;