improved mulligans
This commit is contained in:
parent
43d516672a
commit
ae39dc7fa1
2 changed files with 23 additions and 42 deletions
|
@ -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;
|
||||||
|
|
||||||
|
const 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);
|
|
||||||
}
|
|
||||||
client->shuffle();
|
client->shuffle();
|
||||||
client->drawCards(--cardsInHand);
|
client->drawCards(mulliganCards--);
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
||||||
|
|
|
@ -63,13 +63,12 @@ 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;
|
||||||
HandZone *hand;
|
HandZone *hand;
|
||||||
|
|
Loading…
Reference in a new issue