Mulligan added to Client

This commit is contained in:
marcus 2009-10-19 17:52:42 +02:00
parent 30079a71ff
commit 5cf970f0f3
3 changed files with 96 additions and 55 deletions

View file

@ -8,6 +8,7 @@
#include "pilezone.h" #include "pilezone.h"
#include "tablezone.h" #include "tablezone.h"
#include "handzone.h" #include "handzone.h"
#include "cardlist.h"
#include <QSettings> #include <QSettings>
#include <QPainter> #include <QPainter>
#include <QMenu> #include <QMenu>
@ -113,12 +114,15 @@ Player::Player(const QString &_name, int _id, bool _local, CardDatabase *_db, Cl
connect(aDrawCards, SIGNAL(triggered()), this, SLOT(actDrawCards())); connect(aDrawCards, SIGNAL(triggered()), this, SLOT(actDrawCards()));
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);
connect(aMulligan, SIGNAL(triggered()), this, SLOT(actMuligan()));
} }
playerMenu = new QMenu(QString()); playerMenu = new QMenu(QString());
if (local) { if (local) {
handMenu = playerMenu->addMenu(QString()); handMenu = playerMenu->addMenu(QString());
handMenu->addAction(aMulligan);
handMenu->addAction(aMoveHandToTopLibrary); handMenu->addAction(aMoveHandToTopLibrary);
handMenu->addAction(aMoveHandToBottomLibrary); handMenu->addAction(aMoveHandToBottomLibrary);
handMenu->addAction(aMoveHandToGrave); handMenu->addAction(aMoveHandToGrave);
@ -189,6 +193,8 @@ Player::Player(const QString &_name, int _id, bool _local, CardDatabase *_db, Cl
sbMenu = 0; sbMenu = 0;
} }
cardsInHand = 0;
retranslateUi(); retranslateUi();
} }
@ -240,6 +246,8 @@ 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->setShortcut(tr("Ctrl+M"));
aShuffle->setText(tr("&Shuffle")); aShuffle->setText(tr("&Shuffle"));
aShuffle->setShortcut(tr("Ctrl+S")); aShuffle->setShortcut(tr("Ctrl+S"));
@ -324,13 +332,27 @@ void Player::actShuffle()
void Player::actDrawCard() void Player::actDrawCard()
{ {
client->drawCards(1); client->drawCards(1);
cardsInHand++;
}
void Player::actMuligan()
{
if(cardsInHand >= 0) return;
CardList handCards = hand->getCards();
for(int i = 0; i < handCards.size(); i++){
client->moveCard(handCards.at(i)->getId(),"hand","deck",0);
}
client->shuffle();
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;
}
} }
void Player::actUntapAll() void Player::actUntapAll()
@ -467,6 +489,12 @@ void Player::gameEvent(const ServerEventData &event)
qDebug(QString("target zone invalid: %1").arg(data[4]).toLatin1()); qDebug(QString("target zone invalid: %1").arg(data[4]).toLatin1());
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();

View file

@ -42,6 +42,7 @@ public slots:
void actShuffle(); void actShuffle();
void actDrawCard(); void actDrawCard();
void actDrawCards(); void actDrawCards();
void actMuligan();
void actViewLibrary(); void actViewLibrary();
void actViewTopCards(); void actViewTopCards();
@ -58,7 +59,7 @@ private:
*aMoveGraveToTopLibrary, *aMoveGraveToBottomLibrary, *aMoveGraveToHand, *aMoveGraveToRfg, *aMoveGraveToTopLibrary, *aMoveGraveToBottomLibrary, *aMoveGraveToHand, *aMoveGraveToRfg,
*aMoveRfgToTopLibrary, *aMoveRfgToBottomLibrary, *aMoveRfgToHand, *aMoveRfgToGrave, *aMoveRfgToTopLibrary, *aMoveRfgToBottomLibrary, *aMoveRfgToHand, *aMoveRfgToGrave,
*aViewLibrary, *aViewTopCards, *aViewGraveyard, *aViewRfg, *aViewSideboard, *aViewLibrary, *aViewTopCards, *aViewGraveyard, *aViewRfg, *aViewSideboard,
*aDrawCard, *aDrawCards, *aShuffle, *aDrawCard, *aDrawCards, *aMulligan, *aShuffle,
*aUntapAll, *aRollDie, *aCreateToken; *aUntapAll, *aRollDie, *aCreateToken;
int defaultNumberTopCards; int defaultNumberTopCards;
@ -66,6 +67,8 @@ private:
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;

View file

@ -1687,41 +1687,41 @@
<context> <context>
<name>Player</name> <name>Player</name>
<message> <message>
<location filename="../src/player.cpp" line="222"/> <location filename="../src/player.cpp" line="228"/>
<location filename="../src/player.cpp" line="226"/> <location filename="../src/player.cpp" line="232"/>
<location filename="../src/player.cpp" line="230"/> <location filename="../src/player.cpp" line="236"/>
<source>Move to &amp;top of library</source> <source>Move to &amp;top of library</source>
<translation>Oben auf die Biblio&amp;thek legen</translation> <translation>Oben auf die Biblio&amp;thek legen</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="223"/> <location filename="../src/player.cpp" line="229"/>
<location filename="../src/player.cpp" line="227"/> <location filename="../src/player.cpp" line="233"/>
<location filename="../src/player.cpp" line="231"/> <location filename="../src/player.cpp" line="237"/>
<source>Move to &amp;bottom of library</source> <source>Move to &amp;bottom of library</source>
<translation>Unter die &amp;Bibliothek legen</translation> <translation>Unter die &amp;Bibliothek legen</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="234"/> <location filename="../src/player.cpp" line="240"/>
<source>&amp;View library</source> <source>&amp;View library</source>
<translation>&amp;Zeige Bibliothek</translation> <translation>&amp;Zeige Bibliothek</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="235"/> <location filename="../src/player.cpp" line="241"/>
<source>F3</source> <source>F3</source>
<translation>F3</translation> <translation>F3</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="236"/> <location filename="../src/player.cpp" line="242"/>
<source>View &amp;top cards of library...</source> <source>View &amp;top cards of library...</source>
<translation>Zeige die oberen Kar&amp;ten der Bibliothek...</translation> <translation>Zeige die oberen Kar&amp;ten der Bibliothek...</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="215"/> <location filename="../src/player.cpp" line="221"/>
<source>&amp;View graveyard</source> <source>&amp;View graveyard</source>
<translation>&amp;Zeige Friedhof</translation> <translation>&amp;Zeige Friedhof</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="237"/> <location filename="../src/player.cpp" line="243"/>
<source>F4</source> <source>F4</source>
<translation>F4</translation> <translation>F4</translation>
</message> </message>
@ -1730,27 +1730,27 @@
<translation type="obsolete">Zeige ent&amp;fernte Karten</translation> <translation type="obsolete">Zeige ent&amp;fernte Karten</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="238"/> <location filename="../src/player.cpp" line="244"/>
<source>&amp;View sideboard</source> <source>&amp;View sideboard</source>
<translation>Zeige &amp;Sideboard</translation> <translation>Zeige &amp;Sideboard</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="217"/> <location filename="../src/player.cpp" line="223"/>
<source>Player &quot;%1&quot;</source> <source>Player &quot;%1&quot;</source>
<translation>Spieler &quot;%1&quot;</translation> <translation>Spieler &quot;%1&quot;</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="246"/> <location filename="../src/player.cpp" line="254"/>
<source>&amp;Hand</source> <source>&amp;Hand</source>
<translation>&amp;Hand</translation> <translation>&amp;Hand</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="248"/> <location filename="../src/player.cpp" line="256"/>
<source>&amp;Library</source> <source>&amp;Library</source>
<translation>Bib&amp;liothek</translation> <translation>Bib&amp;liothek</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="218"/> <location filename="../src/player.cpp" line="224"/>
<source>&amp;Graveyard</source> <source>&amp;Graveyard</source>
<translation>&amp;Friedhof</translation> <translation>&amp;Friedhof</translation>
</message> </message>
@ -1759,90 +1759,100 @@
<translation type="obsolete">Entfe&amp;rnte Karten</translation> <translation type="obsolete">Entfe&amp;rnte Karten</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="247"/> <location filename="../src/player.cpp" line="255"/>
<source>&amp;Sideboard</source> <source>&amp;Sideboard</source>
<translation>&amp;Sideboard</translation> <translation>&amp;Sideboard</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="297"/> <location filename="../src/player.cpp" line="305"/>
<source>View top cards of library</source> <source>View top cards of library</source>
<translation>Zeige die obersten Karten der Bibliothek</translation> <translation>Zeige die obersten Karten der Bibliothek</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="297"/> <location filename="../src/player.cpp" line="305"/>
<source>Number of cards:</source> <source>Number of cards:</source>
<translation>Anzahl der Karten:</translation> <translation>Anzahl der Karten:</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="239"/> <location filename="../src/player.cpp" line="245"/>
<source>&amp;Draw card</source> <source>&amp;Draw card</source>
<translation>Karte &amp;ziehen</translation> <translation>Karte &amp;ziehen</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="216"/> <location filename="../src/player.cpp" line="222"/>
<source>&amp;View exile</source> <source>&amp;View exile</source>
<translation>&amp;Zeige Exil</translation> <translation>&amp;Zeige Exil</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="219"/> <location filename="../src/player.cpp" line="225"/>
<source>&amp;Exile</source> <source>&amp;Exile</source>
<translation>&amp;Exil</translation> <translation>&amp;Exil</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="228"/> <location filename="../src/player.cpp" line="234"/>
<location filename="../src/player.cpp" line="232"/> <location filename="../src/player.cpp" line="238"/>
<source>Move to &amp;hand</source> <source>Move to &amp;hand</source>
<translation>auf die &amp;Hand nehmen</translation> <translation>auf die &amp;Hand nehmen</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="224"/> <location filename="../src/player.cpp" line="230"/>
<location filename="../src/player.cpp" line="233"/> <location filename="../src/player.cpp" line="239"/>
<source>Move to g&amp;raveyard</source> <source>Move to g&amp;raveyard</source>
<translation>auf den &amp;Friedhof legen</translation> <translation>auf den &amp;Friedhof legen</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="225"/> <location filename="../src/player.cpp" line="231"/>
<location filename="../src/player.cpp" line="229"/> <location filename="../src/player.cpp" line="235"/>
<source>Move to &amp;exile</source> <source>Move to &amp;exile</source>
<translation>ins &amp;Exil schicken</translation> <translation>ins &amp;Exil schicken</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="240"/> <location filename="../src/player.cpp" line="246"/>
<source>Ctrl+D</source> <source>Ctrl+D</source>
<translation>Ctrl+D</translation> <translation>Ctrl+D</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="241"/> <location filename="../src/player.cpp" line="247"/>
<source>D&amp;raw cards...</source> <source>D&amp;raw cards...</source>
<translation>Ka&amp;rten ziehen...</translation> <translation>Ka&amp;rten ziehen...</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="242"/> <location filename="../src/player.cpp" line="248"/>
<source>Ctrl+E</source> <source>Ctrl+E</source>
<translation>Ctrl+E</translation> <translation>Ctrl+E</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="243"/> <location filename="../src/player.cpp" line="249"/>
<source>Take &amp;mulligan...</source>
<translation type="unfinished">&amp;Mulligan nehmen...</translation>
</message>
<message>
<location filename="../src/player.cpp" line="250"/>
<source>Ctrl+M</source>
<translation type="unfinished">Ctrl+M</translation>
</message>
<message>
<location filename="../src/player.cpp" line="251"/>
<source>&amp;Shuffle</source> <source>&amp;Shuffle</source>
<translation>Mi&amp;schen</translation> <translation>Mi&amp;schen</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="244"/> <location filename="../src/player.cpp" line="252"/>
<source>Ctrl+S</source> <source>Ctrl+S</source>
<translation>Ctrl+S</translation> <translation>Ctrl+S</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="249"/> <location filename="../src/player.cpp" line="257"/>
<source>&amp;Counters</source> <source>&amp;Counters</source>
<translation>&amp;Zähler</translation> <translation>&amp;Zähler</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="251"/> <location filename="../src/player.cpp" line="259"/>
<source>&amp;Untap all permanents</source> <source>&amp;Untap all permanents</source>
<translation>&amp;Enttappe alle bleibenden Karten</translation> <translation>&amp;Enttappe alle bleibenden Karten</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="252"/> <location filename="../src/player.cpp" line="260"/>
<source>Ctrl+U</source> <source>Ctrl+U</source>
<translation>Ctrl+U</translation> <translation>Ctrl+U</translation>
</message> </message>
@ -1871,67 +1881,67 @@
<translation type="obsolete">Ctrl+L</translation> <translation type="obsolete">Ctrl+L</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="253"/> <location filename="../src/player.cpp" line="261"/>
<source>R&amp;oll die...</source> <source>R&amp;oll die...</source>
<translation>&amp;Würfeln...</translation> <translation>&amp;Würfeln...</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="254"/> <location filename="../src/player.cpp" line="262"/>
<source>Ctrl+I</source> <source>Ctrl+I</source>
<translation>Ctrl+I</translation> <translation>Ctrl+I</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="255"/> <location filename="../src/player.cpp" line="263"/>
<source>&amp;Create token...</source> <source>&amp;Create token...</source>
<translation>&amp;Token erstellen...</translation> <translation>&amp;Token erstellen...</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="256"/> <location filename="../src/player.cpp" line="264"/>
<source>Ctrl+T</source> <source>Ctrl+T</source>
<translation>Ctrl+T</translation> <translation>Ctrl+T</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="257"/> <location filename="../src/player.cpp" line="265"/>
<source>S&amp;ay</source> <source>S&amp;ay</source>
<translation>&amp;Sagen</translation> <translation>&amp;Sagen</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="276"/> <location filename="../src/player.cpp" line="284"/>
<source>F5</source> <source>F5</source>
<translation>F5</translation> <translation>F5</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="277"/> <location filename="../src/player.cpp" line="285"/>
<source>F6</source> <source>F6</source>
<translation>F6</translation> <translation>F6</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="278"/> <location filename="../src/player.cpp" line="286"/>
<source>F7</source> <source>F7</source>
<translation>F7</translation> <translation>F7</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="279"/> <location filename="../src/player.cpp" line="287"/>
<source>F8</source> <source>F8</source>
<translation>F8</translation> <translation>F8</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="280"/> <location filename="../src/player.cpp" line="288"/>
<source>F9</source> <source>F9</source>
<translation>F9</translation> <translation>F9</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="281"/> <location filename="../src/player.cpp" line="289"/>
<source>F10</source> <source>F10</source>
<translation>F10</translation> <translation>F10</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="331"/> <location filename="../src/player.cpp" line="351"/>
<source>Draw cards</source> <source>Draw cards</source>
<translation>Karten ziehen</translation> <translation>Karten ziehen</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="331"/> <location filename="../src/player.cpp" line="351"/>
<source>Number:</source> <source>Number:</source>
<translation>Anzahl:</translation> <translation>Anzahl:</translation>
</message> </message>
@ -1944,22 +1954,22 @@
<translation type="obsolete">Neue Lebenspunkte insgesamt:</translation> <translation type="obsolete">Neue Lebenspunkte insgesamt:</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="344"/> <location filename="../src/player.cpp" line="366"/>
<source>Roll die</source> <source>Roll die</source>
<translation>Würfeln</translation> <translation>Würfeln</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="344"/> <location filename="../src/player.cpp" line="366"/>
<source>Number of sides:</source> <source>Number of sides:</source>
<translation>Anzahl der Seiten:</translation> <translation>Anzahl der Seiten:</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="351"/> <location filename="../src/player.cpp" line="373"/>
<source>Create token</source> <source>Create token</source>
<translation>Token erstellen</translation> <translation>Token erstellen</translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="351"/> <location filename="../src/player.cpp" line="373"/>
<source>Name:</source> <source>Name:</source>
<translation>Name:</translation> <translation>Name:</translation>
</message> </message>