mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-30 18:43:55 -07:00
Event context for mulligans, German translation
This commit is contained in:
parent
0c1c0fcb56
commit
808d2a3c01
17 changed files with 1228 additions and 954 deletions
|
|
@ -126,7 +126,8 @@ void MessageLogWidget::logSpectatorSay(QString spectatorName, QString message)
|
|||
void MessageLogWidget::logShuffle(Player *player)
|
||||
{
|
||||
soundEngine->shuffle();
|
||||
append(tr("%1 shuffles his library.").arg(sanitizeHtml(player->getName())));
|
||||
if (currentContext != MessageContext_Mulligan)
|
||||
append(tr("%1 shuffles his library.").arg(sanitizeHtml(player->getName())));
|
||||
}
|
||||
|
||||
void MessageLogWidget::logRollDie(Player *player, int sides, int roll)
|
||||
|
|
@ -136,8 +137,12 @@ void MessageLogWidget::logRollDie(Player *player, int sides, int roll)
|
|||
|
||||
void MessageLogWidget::logDrawCards(Player *player, int number)
|
||||
{
|
||||
soundEngine->draw();
|
||||
append(tr("%1 draws %n card(s).", "", number).arg(sanitizeHtml(player->getName())));
|
||||
if (currentContext == MessageContext_Mulligan)
|
||||
mulliganPlayer = player;
|
||||
else {
|
||||
soundEngine->draw();
|
||||
append(tr("%1 draws %n card(s).", "", number).arg(sanitizeHtml(player->getName())));
|
||||
}
|
||||
}
|
||||
|
||||
void MessageLogWidget::logUndoDraw(Player *player, QString cardName)
|
||||
|
|
@ -251,10 +256,20 @@ void MessageLogWidget::logMoveCard(Player *player, CardItem *card, CardZone *sta
|
|||
LogMoveCard attributes = {player, card, card->getName(), startZone, oldX, targetZone, newX};
|
||||
if (currentContext == MessageContext_MoveCard)
|
||||
moveCardQueue.append(attributes);
|
||||
else if (currentContext == MessageContext_Mulligan)
|
||||
mulliganPlayer = player;
|
||||
else
|
||||
doMoveCard(attributes);
|
||||
}
|
||||
|
||||
void MessageLogWidget::logMulligan(Player *player, int number)
|
||||
{
|
||||
if (number > -1)
|
||||
append(tr("%1 takes a mulligan to %n.", "", number).arg(sanitizeHtml(player->getName())));
|
||||
else
|
||||
append(tr("%1 draws his initial hand.").arg(sanitizeHtml(player->getName())));
|
||||
}
|
||||
|
||||
void MessageLogWidget::logFlipCard(Player *player, QString cardName, bool faceDown)
|
||||
{
|
||||
if (faceDown)
|
||||
|
|
@ -451,6 +466,10 @@ void MessageLogWidget::containerProcessingStarted(GameEventContext *_context)
|
|||
{
|
||||
if (qobject_cast<Context_MoveCard *>(_context))
|
||||
currentContext = MessageContext_MoveCard;
|
||||
else if (qobject_cast<Context_Mulligan *>(_context)) {
|
||||
currentContext = MessageContext_Mulligan;
|
||||
mulliganNumber = static_cast<Context_Mulligan *>(_context)->getNumber();
|
||||
}
|
||||
}
|
||||
|
||||
void MessageLogWidget::containerProcessingDone()
|
||||
|
|
@ -461,6 +480,9 @@ void MessageLogWidget::containerProcessingDone()
|
|||
moveCardQueue.clear();
|
||||
moveCardPT.clear();
|
||||
moveCardTapped.clear();
|
||||
} else if (currentContext == MessageContext_Mulligan) {
|
||||
logMulligan(mulliganPlayer, mulliganNumber);
|
||||
mulliganNumber = 0;
|
||||
}
|
||||
|
||||
currentContext = MessageContext_None;
|
||||
|
|
|
|||
|
|
@ -27,16 +27,20 @@ struct LogMoveCard {
|
|||
class MessageLogWidget : public QTextEdit {
|
||||
Q_OBJECT
|
||||
private:
|
||||
enum MessageContext { MessageContext_None, MessageContext_MoveCard };
|
||||
enum MessageContext { MessageContext_None, MessageContext_MoveCard, MessageContext_Mulligan };
|
||||
|
||||
CardInfoWidget *infoWidget;
|
||||
QString sanitizeHtml(QString dirty) const;
|
||||
QPair<QString, QString> getFromStr(CardZone *zone, QString cardName, int position) const;
|
||||
QString getCardNameUnderMouse(const QPoint &pos) const;
|
||||
MessageContext currentContext;
|
||||
|
||||
QList<LogMoveCard> moveCardQueue;
|
||||
QMap<CardItem *, QString> moveCardPT;
|
||||
QMap<CardItem *, bool> moveCardTapped;
|
||||
|
||||
Player *mulliganPlayer;
|
||||
int mulliganNumber;
|
||||
signals:
|
||||
void cardNameHovered(QString cardName);
|
||||
void showCardInfoPopup(QPoint pos, QString cardName);
|
||||
|
|
@ -68,6 +72,7 @@ public slots:
|
|||
void logUndoDraw(Player *player, QString cardName);
|
||||
void doMoveCard(LogMoveCard &attributes);
|
||||
void logMoveCard(Player *player, CardItem *card, CardZone *startZone, int oldX, CardZone *targetZone, int newX);
|
||||
void logMulligan(Player *player, int number);
|
||||
void logFlipCard(Player *player, QString cardName, bool faceDown);
|
||||
void logDestroyCard(Player *player, QString cardName);
|
||||
void logAttachCard(Player *player, QString cardName, Player *targetPlayer, QString targetCardName);
|
||||
|
|
|
|||
|
|
@ -891,8 +891,7 @@ void Player::eventMoveCard(Event_MoveCard *event, GameEventContext *context)
|
|||
if (context)
|
||||
switch (context->getItemId()) {
|
||||
case ItemId_Context_UndoDraw: emit logUndoDraw(this, card->getName()); break;
|
||||
case ItemId_Context_MoveCard: emit logMoveCard(this, card, startZone, logPosition, targetZone, logX);
|
||||
default: ;
|
||||
default: emit logMoveCard(this, card, startZone, logPosition, targetZone, logX);
|
||||
}
|
||||
else
|
||||
emit logMoveCard(this, card, startZone, logPosition, targetZone, logX);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue