improved mulligans

This commit is contained in:
Max-Wilhelm Bruker 2009-10-20 01:33:44 +02:00
parent 43d516672a
commit ae39dc7fa1
2 changed files with 23 additions and 42 deletions

View file

@ -193,8 +193,6 @@ Player::Player(const QString &_name, int _id, bool _local, CardDatabase *_db, Cl
sbMenu = 0; sbMenu = 0;
} }
cardsInHand = 0;
retranslateUi(); retranslateUi();
} }
@ -246,7 +244,7 @@ void Player::retranslateUi()
aDrawCard->setShortcut(tr("Ctrl+D")); aDrawCard->setShortcut(tr("Ctrl+D"));
aDrawCards->setText(tr("D&raw cards...")); aDrawCards->setText(tr("D&raw cards..."));
aDrawCards->setShortcut(tr("Ctrl+E")); aDrawCards->setShortcut(tr("Ctrl+E"));
aMulligan->setText(tr("Take &mulligan...")); aMulligan->setText(tr("Take &mulligan"));
aMulligan->setShortcut(tr("Ctrl+M")); aMulligan->setShortcut(tr("Ctrl+M"));
aShuffle->setText(tr("&Shuffle")); aShuffle->setText(tr("&Shuffle"));
aShuffle->setShortcut(tr("Ctrl+S")); aShuffle->setShortcut(tr("Ctrl+S"));
@ -332,30 +330,25 @@ void Player::actShuffle()
void Player::actDrawCard() void Player::actDrawCard()
{ {
client->drawCards(1); client->drawCards(1);
cardsInHand++;
} }
void Player::actMulligan() void Player::actMulligan()
{ {
if(cardsInHand <= 0 || cardsInHand > 7) return; if (mulliganCards <= 0)
return;
CardList handCards = hand->getCards(); const 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);
} client->shuffle();
client->shuffle(); client->drawCards(mulliganCards--);
client->drawCards(--cardsInHand);
} }
void Player::actDrawCards() 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;
qDebug() << "ANZAHL DER GEZOGENEN KARTEN: <<<<<<<<<<<<<<<<<<<<<<<<< " << cardsInHand;
}
} }
void Player::actUntapAll() void Player::actUntapAll()
@ -457,6 +450,8 @@ void Player::gameEvent(const ServerEventData &event)
client->addCounter("g", QColor(150, 255, 150), 20, 0); client->addCounter("g", QColor(150, 255, 150), 20, 0);
client->addCounter("x", QColor(255, 255, 255), 20, 0); client->addCounter("x", QColor(255, 255, 255), 20, 0);
client->addCounter("storm", QColor(255, 255, 255), 20, 0); client->addCounter("storm", QColor(255, 255, 255), 20, 0);
mulliganCards = 7;
} }
break; break;
@ -475,10 +470,8 @@ void Player::gameEvent(const ServerEventData &event)
break; break;
} }
case eventMoveCard: { case eventMoveCard: {
if (data.size() != 8) { if (data.size() != 8)
qDebug("error"); break;
// XXX
}
int cardId = data[0].toInt(); int cardId = data[0].toInt();
QString cardName = data[1]; QString cardName = data[1];
CardZone *startZone = zones.value(data[2], 0); CardZone *startZone = zones.value(data[2], 0);
@ -517,22 +510,14 @@ 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;
} }
case eventCreateToken: { case eventCreateToken: {
// zone, cardid, cardname, powtough, x, y // zone, cardid, cardname, powtough, x, y
if (data.size() != 6) { if (data.size() != 6)
qDebug("error"); break;
}
CardZone *zone = zones.value(data[0], 0); CardZone *zone = zones.value(data[0], 0);
if (!zone) if (!zone)
break; break;
@ -550,9 +535,8 @@ void Player::gameEvent(const ServerEventData &event)
break; break;
} }
case eventSetCardAttr: { case eventSetCardAttr: {
if (data.size() != 4) { if (data.size() != 4)
// XXX break;
}
CardZone *zone = zones.value(data[0], 0); CardZone *zone = zones.value(data[0], 0);
if (!zone) if (!zone)
break; break;
@ -574,9 +558,8 @@ void Player::gameEvent(const ServerEventData &event)
break; break;
} }
case eventAddCounter: { case eventAddCounter: {
if (data.size() != 4) { if (data.size() != 4)
// XXX break;
}
int counterId = data[0].toInt(); int counterId = data[0].toInt();
QString counterName = data[1]; QString counterName = data[1];
int colorValue = data[2].toInt(); int colorValue = data[2].toInt();
@ -587,9 +570,8 @@ void Player::gameEvent(const ServerEventData &event)
break; break;
} }
case eventSetCounter: { case eventSetCounter: {
if (data.size() != 2) { if (data.size() != 2)
// XXX break;
}
int counterId = data[0].toInt(); int counterId = data[0].toInt();
int value = data[1].toInt(); int value = data[1].toInt();
Counter *c = counters.value(counterId, 0); Counter *c = counters.value(counterId, 0);

View file

@ -63,12 +63,11 @@ private:
*aUntapAll, *aRollDie, *aCreateToken; *aUntapAll, *aRollDie, *aCreateToken;
int defaultNumberTopCards; int defaultNumberTopCards;
int mulliganCards;
QString name; QString name;
int id; int id;
bool active; bool active;
bool local; bool local;
int cardsInHand;
QMap<QString, CardZone *> zones; QMap<QString, CardZone *> zones;
TableZone *table; TableZone *table;