parent
c0bd7db658
commit
4c2a553f03
7 changed files with 38 additions and 12 deletions
|
@ -86,12 +86,16 @@ void MessageLogWidget::logLeaveSpectator(QString name)
|
||||||
appendHtml(tr("%1 is not watching the game any more.").arg(sanitizeHtml(name)));
|
appendHtml(tr("%1 is not watching the game any more.").arg(sanitizeHtml(name)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageLogWidget::logDeckSelect(Player *player, QString deckHash)
|
void MessageLogWidget::logDeckSelect(Player *player, QString deckHash, int sideboardSize)
|
||||||
{
|
{
|
||||||
if (isFemale(player))
|
const char* gender = isFemale(player) ? "female" : "male";
|
||||||
appendHtml(tr("%1 has loaded a deck (%2).", "female").arg(sanitizeHtml(player->getName())).arg(deckHash));
|
if (sideboardSize < 0)
|
||||||
|
appendHtml(tr("%1 has loaded a deck (%2).", gender).arg(sanitizeHtml(player->getName())).arg(deckHash));
|
||||||
else
|
else
|
||||||
appendHtml(tr("%1 has loaded a deck (%2).", "male").arg(sanitizeHtml(player->getName())).arg(deckHash));
|
appendHtml(tr("%1 has loaded a deck with (%2) sideboard cards (%3).", gender).
|
||||||
|
arg(sanitizeHtml(player->getName())).
|
||||||
|
arg(sideboardSize).
|
||||||
|
arg(deckHash));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageLogWidget::logReadyStart(Player *player)
|
void MessageLogWidget::logReadyStart(Player *player)
|
||||||
|
|
|
@ -48,7 +48,7 @@ public slots:
|
||||||
void logKicked();
|
void logKicked();
|
||||||
void logJoinSpectator(QString name);
|
void logJoinSpectator(QString name);
|
||||||
void logLeaveSpectator(QString name);
|
void logLeaveSpectator(QString name);
|
||||||
void logDeckSelect(Player *player, QString deckHash);
|
void logDeckSelect(Player *player, QString deckHash, int sideboardSize);
|
||||||
void logReadyStart(Player *player);
|
void logReadyStart(Player *player);
|
||||||
void logNotReadyStart(Player *player);
|
void logNotReadyStart(Player *player);
|
||||||
void logSetSideboardLock(Player *player, bool locked);
|
void logSetSideboardLock(Player *player, bool locked);
|
||||||
|
|
|
@ -1012,7 +1012,10 @@ void TabGame::eventPlayerPropertiesChanged(const Event_PlayerPropertiesChanged &
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case GameEventContext::DECK_SELECT: {
|
case GameEventContext::DECK_SELECT: {
|
||||||
messageLog->logDeckSelect(player, QString::fromStdString(context.GetExtension(Context_DeckSelect::ext).deck_hash()));
|
Context_DeckSelect deckSelect = context.GetExtension(Context_DeckSelect::ext);
|
||||||
|
messageLog->logDeckSelect(player,
|
||||||
|
QString::fromStdString(deckSelect.deck_hash()),
|
||||||
|
deckSelect.sideboard_size());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case GameEventContext::SET_SIDEBOARD_LOCK: {
|
case GameEventContext::SET_SIDEBOARD_LOCK: {
|
||||||
|
|
|
@ -633,6 +633,21 @@ QStringList DeckList::getCardList() const
|
||||||
return result.toList();
|
return result.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int DeckList::getSideboardSize() const
|
||||||
|
{
|
||||||
|
int size = 0;
|
||||||
|
for (int i = 0; i < root->size(); ++i) {
|
||||||
|
InnerDecklistNode *node = dynamic_cast<InnerDecklistNode *>(root->at(i));
|
||||||
|
if (node->getName() != "side")
|
||||||
|
continue;
|
||||||
|
for (int j = 0; j < node->size(); j++) {
|
||||||
|
DecklistCardNode *card = dynamic_cast<DecklistCardNode *>(node->at(j));
|
||||||
|
size += card->getNumber();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
DecklistCardNode *DeckList::addCard(const QString &cardName, const QString &zoneName)
|
DecklistCardNode *DeckList::addCard(const QString &cardName, const QString &zoneName)
|
||||||
{
|
{
|
||||||
InnerDecklistNode *zoneNode = dynamic_cast<InnerDecklistNode *>(root->findChild(zoneName));
|
InnerDecklistNode *zoneNode = dynamic_cast<InnerDecklistNode *>(root->findChild(zoneName));
|
||||||
|
|
|
@ -161,6 +161,8 @@ public:
|
||||||
bool isEmpty() const { return root->isEmpty() && name.isEmpty() && comments.isEmpty() && sideboardPlans.isEmpty(); }
|
bool isEmpty() const { return root->isEmpty() && name.isEmpty() && comments.isEmpty() && sideboardPlans.isEmpty(); }
|
||||||
QStringList getCardList() const;
|
QStringList getCardList() const;
|
||||||
|
|
||||||
|
int getSideboardSize() const;
|
||||||
|
|
||||||
QString getDeckHash() const { return deckHash; }
|
QString getDeckHash() const { return deckHash; }
|
||||||
void updateDeckHash();
|
void updateDeckHash();
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
import "game_event_context.proto";
|
import "game_event_context.proto";
|
||||||
|
|
||||||
message Context_DeckSelect {
|
message Context_DeckSelect {
|
||||||
extend GameEventContext {
|
extend GameEventContext {
|
||||||
optional Context_DeckSelect ext = 1002;
|
optional Context_DeckSelect ext = 1002;
|
||||||
}
|
}
|
||||||
optional string deck_hash = 1;
|
optional string deck_hash = 1;
|
||||||
|
optional int32 sideboard_size = 2 [default = -1];
|
||||||
}
|
}
|
||||||
|
|
|
@ -657,6 +657,7 @@ Response::ResponseCode Server_Player::cmdDeckSelect(const Command_DeckSelect &cm
|
||||||
|
|
||||||
Context_DeckSelect context;
|
Context_DeckSelect context;
|
||||||
context.set_deck_hash(deck->getDeckHash().toStdString());
|
context.set_deck_hash(deck->getDeckHash().toStdString());
|
||||||
|
context.set_sideboard_size(deck->getSideboardSize());
|
||||||
ges.setGameEventContext(context);
|
ges.setGameEventContext(context);
|
||||||
|
|
||||||
Response_DeckDownload *re = new Response_DeckDownload;
|
Response_DeckDownload *re = new Response_DeckDownload;
|
||||||
|
|
Loading…
Reference in a new issue