diff --git a/cockatrice/src/messagelogwidget.cpp b/cockatrice/src/messagelogwidget.cpp
index 1b9b610f..232a21db 100644
--- a/cockatrice/src/messagelogwidget.cpp
+++ b/cockatrice/src/messagelogwidget.cpp
@@ -362,15 +362,19 @@ void MessageLogWidget::logMoveCard(Player *player,
}
}
-void MessageLogWidget::logDrawCards(Player *player, int number)
+void MessageLogWidget::logDrawCards(Player *player, int number, bool deckIsEmpty)
{
soundEngine->playSound("draw_card");
if (currentContext == MessageContext_Mulligan) {
logMulligan(player, number);
} else {
- appendHtmlServerMessage(tr("%1 draws %2 card(s).", "", number)
- .arg(sanitizeHtml(player->getName()))
- .arg("" + QString::number(number) + ""));
+ if (deckIsEmpty && number == 0) {
+ appendHtmlServerMessage(tr("%1 tries to draw from an empty library").arg(sanitizeHtml(player->getName())));
+ } else {
+ appendHtmlServerMessage(tr("%1 draws %2 card(s).", "", number)
+ .arg(sanitizeHtml(player->getName()))
+ .arg("" + QString::number(number) + ""));
+ }
}
}
@@ -817,7 +821,7 @@ void MessageLogWidget::connectToPlayer(Player *player)
SLOT(logAttachCard(Player *, QString, Player *, QString)));
connect(player, SIGNAL(logUnattachCard(Player *, QString)), this, SLOT(logUnattachCard(Player *, QString)));
connect(player, SIGNAL(logDumpZone(Player *, CardZone *, int)), this, SLOT(logDumpZone(Player *, CardZone *, int)));
- connect(player, SIGNAL(logDrawCards(Player *, int)), this, SLOT(logDrawCards(Player *, int)));
+ connect(player, SIGNAL(logDrawCards(Player *, int, bool)), this, SLOT(logDrawCards(Player *, int, bool)));
connect(player, SIGNAL(logUndoDraw(Player *, QString)), this, SLOT(logUndoDraw(Player *, QString)));
connect(player, SIGNAL(logRevealCards(Player *, CardZone *, int, QString, Player *, bool, int)), this,
SLOT(logRevealCards(Player *, CardZone *, int, QString, Player *, bool, int)));
diff --git a/cockatrice/src/messagelogwidget.h b/cockatrice/src/messagelogwidget.h
index 7769e098..f74a071a 100644
--- a/cockatrice/src/messagelogwidget.h
+++ b/cockatrice/src/messagelogwidget.h
@@ -56,7 +56,7 @@ public slots:
void logCreateToken(Player *player, QString cardName, QString pt);
void logDeckSelect(Player *player, QString deckHash, int sideboardSize);
void logDestroyCard(Player *player, QString cardName);
- void logDrawCards(Player *player, int number);
+ void logDrawCards(Player *player, int number, bool deckIsEmpty);
void logDumpZone(Player *player, CardZone *zone, int numberCards);
void logFlipCard(Player *player, QString cardName, bool faceDown);
void logGameClosed();
diff --git a/cockatrice/src/player.cpp b/cockatrice/src/player.cpp
index 52326ea8..b44c0ea0 100644
--- a/cockatrice/src/player.cpp
+++ b/cockatrice/src/player.cpp
@@ -2216,7 +2216,7 @@ void Player::eventDrawCards(const Event_DrawCards &event)
hand->reorganizeCards();
deck->reorganizeCards();
- emit logDrawCards(this, event.number());
+ emit logDrawCards(this, event.number(), deck->getCards().size() == 0);
}
void Player::eventRevealCards(const Event_RevealCards &event)
diff --git a/cockatrice/src/player.h b/cockatrice/src/player.h
index a76e8621..d4e50401 100644
--- a/cockatrice/src/player.h
+++ b/cockatrice/src/player.h
@@ -120,7 +120,7 @@ signals:
QString targetCard,
bool _playerTarget);
void logCreateToken(Player *player, QString cardName, QString pt);
- void logDrawCards(Player *player, int number);
+ void logDrawCards(Player *player, int number, bool deckIsEmpty);
void logUndoDraw(Player *player, QString cardName);
void logMoveCard(Player *player, CardItem *card, CardZone *startZone, int oldX, CardZone *targetZone, int newX);
void logFlipCard(Player *player, QString cardName, bool faceDown);