add the amount of cards logged to the reveal cards event (#3516)
* add the amount of cards logged to the reveal cards event sets cardname to the amount for the call if not 1 for the fromstr only add braces for single line statements * zach cleanup
This commit is contained in:
parent
ed70099e36
commit
495e232c22
4 changed files with 47 additions and 30 deletions
|
@ -457,9 +457,11 @@ void MessageLogWidget::logRevealCards(Player *player,
|
|||
int cardId,
|
||||
QString cardName,
|
||||
Player *otherPlayer,
|
||||
bool faceDown)
|
||||
bool faceDown,
|
||||
int amount)
|
||||
{
|
||||
QPair<QString, QString> temp = getFromStr(zone, cardName, cardId, false);
|
||||
// getFromStr uses cardname.empty() to check if it should contain the start zone, it's not actually used
|
||||
QPair<QString, QString> temp = getFromStr(zone, amount == 1 ? cardName : QString::number(amount), cardId, false);
|
||||
bool cardNameContainsStartZone = false;
|
||||
if (!temp.first.isEmpty()) {
|
||||
cardNameContainsStartZone = true;
|
||||
|
@ -468,52 +470,57 @@ void MessageLogWidget::logRevealCards(Player *player,
|
|||
QString fromStr = temp.second;
|
||||
|
||||
QString cardStr;
|
||||
if (cardNameContainsStartZone)
|
||||
if (cardNameContainsStartZone) {
|
||||
cardStr = cardName;
|
||||
else if (cardName.isEmpty())
|
||||
cardStr = tr("a card");
|
||||
else
|
||||
} else if (cardName.isEmpty()) {
|
||||
cardStr = tr("%1 card(s)", "a card for singular, %1 cards for plural", amount)
|
||||
.arg("<font color=\"blue\">" + QString::number(amount) + "</font>");
|
||||
} else {
|
||||
cardStr = cardLink(cardName);
|
||||
|
||||
}
|
||||
if (cardId == -1) {
|
||||
if (otherPlayer)
|
||||
if (otherPlayer) {
|
||||
appendHtmlServerMessage(tr("%1 reveals %2 to %3.")
|
||||
.arg(sanitizeHtml(player->getName()))
|
||||
.arg(zone->getTranslatedName(true, CaseRevealZone))
|
||||
.arg(sanitizeHtml(otherPlayer->getName())));
|
||||
else
|
||||
} else {
|
||||
appendHtmlServerMessage(tr("%1 reveals %2.")
|
||||
.arg(sanitizeHtml(player->getName()))
|
||||
.arg(zone->getTranslatedName(true, CaseRevealZone)));
|
||||
}
|
||||
} else if (cardId == -2) {
|
||||
if (otherPlayer)
|
||||
if (otherPlayer) {
|
||||
appendHtmlServerMessage(tr("%1 randomly reveals %2%3 to %4.")
|
||||
.arg(sanitizeHtml(player->getName()))
|
||||
.arg(cardStr)
|
||||
.arg(fromStr)
|
||||
.arg(sanitizeHtml(otherPlayer->getName())));
|
||||
else
|
||||
} else {
|
||||
appendHtmlServerMessage(
|
||||
tr("%1 randomly reveals %2%3.").arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr));
|
||||
}
|
||||
} else {
|
||||
if (faceDown && player == otherPlayer) {
|
||||
if (cardName.isEmpty())
|
||||
if (cardName.isEmpty()) {
|
||||
appendHtmlServerMessage(
|
||||
tr("%1 peeks at face down card #%2.").arg(sanitizeHtml(player->getName())).arg(cardId));
|
||||
else
|
||||
} else {
|
||||
appendHtmlServerMessage(tr("%1 peeks at face down card #%2: %3.")
|
||||
.arg(sanitizeHtml(player->getName()))
|
||||
.arg(cardId)
|
||||
.arg(cardStr));
|
||||
} else if (otherPlayer)
|
||||
}
|
||||
} else if (otherPlayer) {
|
||||
appendHtmlServerMessage(tr("%1 reveals %2%3 to %4.")
|
||||
.arg(sanitizeHtml(player->getName()))
|
||||
.arg(cardStr)
|
||||
.arg(fromStr)
|
||||
.arg(sanitizeHtml(otherPlayer->getName())));
|
||||
else
|
||||
} else {
|
||||
appendHtmlServerMessage(
|
||||
tr("%1 reveals %2%3.").arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -787,8 +794,8 @@ void MessageLogWidget::connectToPlayer(Player *player)
|
|||
connect(player, SIGNAL(logStopDumpZone(Player *, CardZone *)), this, SLOT(logStopDumpZone(Player *, CardZone *)));
|
||||
connect(player, SIGNAL(logDrawCards(Player *, int)), this, SLOT(logDrawCards(Player *, int)));
|
||||
connect(player, SIGNAL(logUndoDraw(Player *, QString)), this, SLOT(logUndoDraw(Player *, QString)));
|
||||
connect(player, SIGNAL(logRevealCards(Player *, CardZone *, int, QString, Player *, bool)), this,
|
||||
SLOT(logRevealCards(Player *, CardZone *, int, QString, Player *, bool)));
|
||||
connect(player, SIGNAL(logRevealCards(Player *, CardZone *, int, QString, Player *, bool, int)), this,
|
||||
SLOT(logRevealCards(Player *, CardZone *, int, QString, Player *, bool, int)));
|
||||
connect(player, SIGNAL(logAlwaysRevealTopCard(Player *, CardZone *, bool)), this,
|
||||
SLOT(logAlwaysRevealTopCard(Player *, CardZone *, bool)));
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ private:
|
|||
const QString stackConstant() const;
|
||||
|
||||
QString sanitizeHtml(QString dirty) const;
|
||||
QString cardLink(const QString cardName) const;
|
||||
QString cardLink(QString cardName) const;
|
||||
QPair<QString, QString> getFromStr(CardZone *zone, QString cardName, int position, bool ownerChange) const;
|
||||
|
||||
public slots:
|
||||
|
@ -83,8 +83,13 @@ public slots:
|
|||
void logMulligan(Player *player, int number);
|
||||
void logReplayStarted(int gameId);
|
||||
void logReadyStart(Player *player);
|
||||
void
|
||||
logRevealCards(Player *player, CardZone *zone, int cardId, QString cardName, Player *otherPlayer, bool faceDown);
|
||||
void logRevealCards(Player *player,
|
||||
CardZone *zone,
|
||||
int cardId,
|
||||
QString cardName,
|
||||
Player *otherPlayer,
|
||||
bool faceDown,
|
||||
int amount);
|
||||
void logRollDie(Player *player, int sides, int roll);
|
||||
void logSay(Player *player, QString message);
|
||||
void logSetActivePhase(int phase);
|
||||
|
@ -108,7 +113,7 @@ public:
|
|||
MessageLogWidget(const TabSupervisor *_tabSupervisor,
|
||||
const UserlistProxy *_userlistProxy,
|
||||
TabGame *_game,
|
||||
QWidget *parent = 0);
|
||||
QWidget *parent = nullptr);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1830,14 +1830,14 @@ void Player::eventRevealCards(const Event_RevealCards &event)
|
|||
}
|
||||
|
||||
if (peeking) {
|
||||
for (auto i : cardList) {
|
||||
QString cardName = QString::fromStdString(i->name());
|
||||
CardItem *card = zone->getCard(i->id(), QString());
|
||||
if (!card) {
|
||||
for (auto &card : cardList) {
|
||||
QString cardName = QString::fromStdString(card->name());
|
||||
CardItem *cardItem = zone->getCard(card->id(), QString());
|
||||
if (!cardItem) {
|
||||
continue;
|
||||
}
|
||||
card->setName(cardName);
|
||||
emit logRevealCards(this, zone, i->id(), cardName, this, true);
|
||||
cardItem->setName(cardName);
|
||||
emit logRevealCards(this, zone, card->id(), cardName, this, true, 1);
|
||||
}
|
||||
} else {
|
||||
bool showZoneView = true;
|
||||
|
@ -1854,7 +1854,7 @@ void Player::eventRevealCards(const Event_RevealCards &event)
|
|||
static_cast<GameScene *>(scene())->addRevealedZoneView(this, zone, cardList, event.grant_write_access());
|
||||
}
|
||||
|
||||
emit logRevealCards(this, zone, event.card_id(), cardName, otherPlayer, false);
|
||||
emit logRevealCards(this, zone, event.card_id(), cardName, otherPlayer, false, cardList.size());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -127,8 +127,13 @@ signals:
|
|||
void logSetAnnotation(Player *player, CardItem *card, QString newAnnotation);
|
||||
void logDumpZone(Player *player, CardZone *zone, int numberCards);
|
||||
void logStopDumpZone(Player *player, CardZone *zone);
|
||||
void
|
||||
logRevealCards(Player *player, CardZone *zone, int cardId, QString cardName, Player *otherPlayer, bool faceDown);
|
||||
void logRevealCards(Player *player,
|
||||
CardZone *zone,
|
||||
int cardId,
|
||||
QString cardName,
|
||||
Player *otherPlayer,
|
||||
bool faceDown,
|
||||
int amount);
|
||||
void logAlwaysRevealTopCard(Player *player, CardZone *zone, bool reveal);
|
||||
|
||||
void sizeChanged();
|
||||
|
|
Loading…
Reference in a new issue