mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-15 11:38:49 -07:00
Make undo draw failure visible in chat (#6889)
* [Server][Game] Make undo draw failure visible in chat * genericize the proto
This commit is contained in:
parent
762f36335e
commit
cb2ca152b7
8 changed files with 54 additions and 0 deletions
|
|
@ -803,6 +803,12 @@ void MessageLogWidget::logUndoDraw(Player *player, QString cardName)
|
|||
}
|
||||
}
|
||||
|
||||
void MessageLogWidget::logUndoDrawFailed(Player *player)
|
||||
{
|
||||
appendHtmlServerMessage(
|
||||
tr("%1 failed to undo their last draw.").arg(sanitizeHtml(player->getPlayerInfo()->getName())));
|
||||
}
|
||||
|
||||
void MessageLogWidget::setContextJudgeName(QString name)
|
||||
{
|
||||
messagePrefix = QString("<span style=\"color:black\">");
|
||||
|
|
@ -836,6 +842,7 @@ void MessageLogWidget::connectToPlayerEventHandler(PlayerEventHandler *playerEve
|
|||
connect(playerEventHandler, &PlayerEventHandler::logDumpZone, this, &MessageLogWidget::logDumpZone);
|
||||
connect(playerEventHandler, &PlayerEventHandler::logDrawCards, this, &MessageLogWidget::logDrawCards);
|
||||
connect(playerEventHandler, &PlayerEventHandler::logUndoDraw, this, &MessageLogWidget::logUndoDraw);
|
||||
connect(playerEventHandler, &PlayerEventHandler::logUndoDrawFailed, this, &MessageLogWidget::logUndoDrawFailed);
|
||||
connect(playerEventHandler, &PlayerEventHandler::logRevealCards, this, &MessageLogWidget::logRevealCards);
|
||||
connect(playerEventHandler, &PlayerEventHandler::logAlwaysRevealTopCard, this,
|
||||
&MessageLogWidget::logAlwaysRevealTopCard);
|
||||
|
|
|
|||
|
|
@ -99,6 +99,7 @@ public slots:
|
|||
void logSpectatorSay(const ServerInfo_User &spectator, QString message);
|
||||
void logUnattachCard(Player *player, QString cardName);
|
||||
void logUndoDraw(Player *player, QString cardName);
|
||||
void logUndoDrawFailed(Player *player);
|
||||
void setContextJudgeName(QString player);
|
||||
void appendHtmlServerMessage(const QString &html,
|
||||
bool optionalIsBold = false,
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
#include <libcockatrice/protocol/pb/event_draw_cards.pb.h>
|
||||
#include <libcockatrice/protocol/pb/event_dump_zone.pb.h>
|
||||
#include <libcockatrice/protocol/pb/event_flip_card.pb.h>
|
||||
#include <libcockatrice/protocol/pb/event_game_log_notice.pb.h>
|
||||
#include <libcockatrice/protocol/pb/event_game_say.pb.h>
|
||||
#include <libcockatrice/protocol/pb/event_move_card.pb.h>
|
||||
#include <libcockatrice/protocol/pb/event_reveal_cards.pb.h>
|
||||
|
|
@ -581,6 +582,18 @@ void PlayerEventHandler::eventChangeZoneProperties(const Event_ChangeZonePropert
|
|||
}
|
||||
}
|
||||
|
||||
void PlayerEventHandler::eventGameLogNotice(const Event_GameLogNotice &event)
|
||||
{
|
||||
Event_GameLogNotice::NoticeType type = event.notice_type();
|
||||
switch (type) {
|
||||
case Event_GameLogNotice::UNDO_DRAW_FAILED:
|
||||
emit logUndoDrawFailed(player);
|
||||
break;
|
||||
default:
|
||||
qWarning() << "Received Event_GameLogNotice with unknown noticeType: " << type;
|
||||
}
|
||||
}
|
||||
|
||||
void PlayerEventHandler::processGameEvent(GameEvent::GameEventType type,
|
||||
const GameEvent &event,
|
||||
const GameEventContext &context,
|
||||
|
|
@ -644,6 +657,9 @@ void PlayerEventHandler::processGameEvent(GameEvent::GameEventType type,
|
|||
case GameEvent::CHANGE_ZONE_PROPERTIES:
|
||||
eventChangeZoneProperties(event.GetExtension(Event_ChangeZoneProperties::ext));
|
||||
break;
|
||||
case GameEvent::GAME_LOG_NOTICE:
|
||||
eventGameLogNotice(event.GetExtension(Event_GameLogNotice::ext));
|
||||
break;
|
||||
default: {
|
||||
qWarning() << "unhandled game event" << type;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@ class Event_SetCardAttr;
|
|||
class Event_SetCardCounter;
|
||||
class Event_SetCounter;
|
||||
class Event_Shuffle;
|
||||
class Event_GameLogNotice;
|
||||
|
||||
class PlayerEventHandler : public QObject
|
||||
{
|
||||
|
||||
|
|
@ -52,6 +54,7 @@ signals:
|
|||
void logCreateToken(Player *player, QString cardName, QString pt, bool faceDown);
|
||||
void logDrawCards(Player *player, int number, bool deckIsEmpty);
|
||||
void logUndoDraw(Player *player, QString cardName);
|
||||
void logUndoDrawFailed(Player *player);
|
||||
void logMoveCard(Player *player,
|
||||
CardItem *card,
|
||||
CardZoneLogic *startZone,
|
||||
|
|
@ -108,6 +111,7 @@ public:
|
|||
void eventDrawCards(const Event_DrawCards &event);
|
||||
void eventRevealCards(const Event_RevealCards &event, EventProcessingOptions options);
|
||||
void eventChangeZoneProperties(const Event_ChangeZoneProperties &event);
|
||||
void eventGameLogNotice(const Event_GameLogNotice &event);
|
||||
|
||||
private:
|
||||
Player *player;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue