diff --git a/cockatrice/cockatrice.pro b/cockatrice/cockatrice.pro index eb7f0978e..b61e59e01 100644 --- a/cockatrice/cockatrice.pro +++ b/cockatrice/cockatrice.pro @@ -10,6 +10,7 @@ QT += network svg HEADERS += src/counter.h \ src/dlg_creategame.h \ src/dlg_connect.h \ + src/dlg_create_token.h \ src/gamesmodel.h \ src/client.h \ src/window_main.h \ @@ -64,6 +65,7 @@ HEADERS += src/counter.h \ SOURCES += src/counter.cpp \ src/dlg_creategame.cpp \ src/dlg_connect.cpp \ + src/dlg_create_token.cpp \ src/client.cpp \ src/main.cpp \ src/window_main.cpp \ diff --git a/cockatrice/src/abstractcarditem.cpp b/cockatrice/src/abstractcarditem.cpp index ec220f0d3..7f8cc6511 100644 --- a/cockatrice/src/abstractcarditem.cpp +++ b/cockatrice/src/abstractcarditem.cpp @@ -53,48 +53,47 @@ void AbstractCardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * } else { QFont f("Serif"); f.setStyleHint(QFont::Serif); - f.setPixelSize(11); + f.setPixelSize(12); painter->setFont(f); - painter->setBrush(QColor(230, 230, 230)); - qDebug() <<"COLORS:::::" << info->getColors(); - QString color; - QPen pen; - if(!info->getColors().empty()) - { - color = info->getColors().first(); - if(color == "B") - painter->setBrush(QColor(0,0,0)); - if(color == "U") - painter->setBrush(QColor(0,140,180)); - if(color == "W") - painter->setBrush(QColor(255,250,140)); - if(color == "R") - painter->setBrush(QColor(230,0,0)); - if(color == "G") - painter->setBrush(QColor(0,160,0)); - if(info->getColors().size() > 1) - { - painter->setBrush(QColor(250,190,30)); - color = "M"; // Multicolor - } - - } + QString colorStr; + if (!color.isEmpty()) + colorStr = color; + else if (info->getColors().size() > 1) + colorStr = "m"; + else + colorStr = info->getColors().first().toLower(); - painter->setPen(Qt::black); + QColor bgColor; + QColor textColor = Qt::white; + if (colorStr == "b") + bgColor = QColor(0, 0, 0); + else if (colorStr == "u") + bgColor = QColor(0, 140, 180); + else if (colorStr == "w") { + bgColor = QColor(255, 250, 140); + textColor = Qt::black; + } else if (colorStr == "r") + bgColor = QColor(230, 0, 0); + else if (colorStr == "g") + bgColor = QColor(0, 160, 0); + else if (colorStr == "m") { + bgColor = QColor(250, 190, 30); + textColor = Qt::black; + } else { + bgColor = QColor(230, 230, 230); + textColor = Qt::black; + } + painter->setBrush(bgColor); + QPen pen(Qt::black); + painter->setPen(pen); painter->drawRect(QRectF(0.5, 0.5, CARD_WIDTH - 1, CARD_HEIGHT - 1)); pen.setWidth(3); painter->setPen(pen); painter->drawRect(QRectF(3, 3, CARD_WIDTH - 6, CARD_HEIGHT - 6)); - painter->setPen(Qt::white); - if(color == "W" || color == "" || color == "M") - painter->setPen(Qt::black); + painter->setPen(textColor); painter->drawText(QRectF(5, 5, CARD_WIDTH - 15, CARD_HEIGHT - 15), Qt::AlignTop | Qt::AlignLeft | Qt::TextWordWrap, name); - if(info->getCardType().contains("Creature")) - { - painter->drawText(QRectF(CARD_WIDTH - 40, CARD_HEIGHT - 25, 30, 30), Qt::AlignTop | Qt::AlignRight | Qt::TextWordWrap, info->getPowTough()); - } } painter->restore(); @@ -115,6 +114,12 @@ void AbstractCardItem::setName(const QString &_name) update(); } +void AbstractCardItem::setColor(const QString &_color) +{ + color = _color; + update(); +} + void AbstractCardItem::setTapped(bool _tapped) { tapped = _tapped; diff --git a/cockatrice/src/abstractcarditem.h b/cockatrice/src/abstractcarditem.h index 5f69b453c..35e9efda5 100644 --- a/cockatrice/src/abstractcarditem.h +++ b/cockatrice/src/abstractcarditem.h @@ -21,6 +21,7 @@ protected: CardInfo *info; QString name; bool tapped; + QString color; private slots: void pixmapUpdated(); signals: @@ -35,6 +36,8 @@ public: CardInfo *getInfo() const { return info; } QString getName() const { return name; } void setName(const QString &_name = QString()); + QString getColor() const { return color; } + void setColor(const QString &_color); bool getTapped() const { return tapped; } void setTapped(bool _tapped); void processHoverEvent(); diff --git a/cockatrice/src/messagelogwidget.cpp b/cockatrice/src/messagelogwidget.cpp index 3f546c81b..f8f5a9194 100644 --- a/cockatrice/src/messagelogwidget.cpp +++ b/cockatrice/src/messagelogwidget.cpp @@ -202,9 +202,9 @@ void MessageLogWidget::logMoveCard(Player *player, QString cardName, CardZone *s append(finalStr.arg(sanitizeHtml(player->getName())).arg(cardStr).arg(fromStr).arg(newX)); } -void MessageLogWidget::logCreateToken(Player *player, QString cardName) +void MessageLogWidget::logCreateToken(Player *player, QString cardName, QString pt) { - append(tr("%1 creates token: %2.").arg(sanitizeHtml(player->getName())).arg(QString("%1").arg(sanitizeHtml(cardName)))); + append(tr("%1 creates token: %2 (%3).").arg(sanitizeHtml(player->getName())).arg(QString("%1").arg(sanitizeHtml(cardName))).arg(sanitizeHtml(pt))); } void MessageLogWidget::logCreateArrow(Player *player, Player *startPlayer, QString startCard, Player *targetPlayer, QString targetCard) @@ -319,7 +319,7 @@ void MessageLogWidget::connectToPlayer(Player *player) connect(player, SIGNAL(logShuffle(Player *)), this, SLOT(logShuffle(Player *))); connect(player, SIGNAL(logRollDie(Player *, int, int)), this, SLOT(logRollDie(Player *, int, int))); connect(player, SIGNAL(logCreateArrow(Player *, Player *, QString, Player *, QString)), this, SLOT(logCreateArrow(Player *, Player *, QString, Player *, QString))); - connect(player, SIGNAL(logCreateToken(Player *, QString)), this, SLOT(logCreateToken(Player *, QString))); + connect(player, SIGNAL(logCreateToken(Player *, QString, QString)), this, SLOT(logCreateToken(Player *, QString, QString))); connect(player, SIGNAL(logSetCounter(Player *, QString, int, int)), this, SLOT(logSetCounter(Player *, QString, int, int))); connect(player, SIGNAL(logSetCardCounter(Player *, QString, int, int, int)), this, SLOT(logSetCardCounter(Player *, QString, int, int, int))); connect(player, SIGNAL(logSetTapped(Player *, QString, bool)), this, SLOT(logSetTapped(Player *, QString, bool))); diff --git a/cockatrice/src/messagelogwidget.h b/cockatrice/src/messagelogwidget.h index 1e51c85cb..de2f5a918 100644 --- a/cockatrice/src/messagelogwidget.h +++ b/cockatrice/src/messagelogwidget.h @@ -39,7 +39,7 @@ public slots: void logRollDie(Player *player, int sides, int roll); void logDrawCards(Player *player, int number); void logMoveCard(Player *player, QString cardName, CardZone *startZone, int oldX, CardZone *targetZone, int newX); - void logCreateToken(Player *player, QString cardName); + void logCreateToken(Player *player, QString cardName, QString pt); void logCreateArrow(Player *player, Player *startPlayer, QString startCard, Player *targetPlayer, QString targetCard); void logSetCardCounter(Player *player, QString cardName, int counterId, int value, int oldValue); void logSetTapped(Player *player, QString cardName, bool tapped); diff --git a/cockatrice/src/player.cpp b/cockatrice/src/player.cpp index 86c6f8ecf..fe5ddb7dc 100644 --- a/cockatrice/src/player.cpp +++ b/cockatrice/src/player.cpp @@ -14,6 +14,7 @@ #include "protocol_items.h" #include "gamescene.h" #include "settingscache.h" +#include "dlg_create_token.h" #include #include #include @@ -182,6 +183,10 @@ Player::Player(const QString &_name, int _id, bool _local, Client *_client, TabG aCreateToken = new QAction(this); connect(aCreateToken, SIGNAL(triggered()), this, SLOT(actCreateToken())); + aCreateAnotherToken = new QAction(this); + connect(aCreateAnotherToken, SIGNAL(triggered()), this, SLOT(actCreateAnotherToken())); + aCreateAnotherToken->setEnabled(false); + playerMenu->addSeparator(); countersMenu = playerMenu->addMenu(QString()); playerMenu->addSeparator(); @@ -190,6 +195,7 @@ Player::Player(const QString &_name, int _id, bool _local, Client *_client, TabG playerMenu->addAction(aRollDie); playerMenu->addSeparator(); playerMenu->addAction(aCreateToken); + playerMenu->addAction(aCreateAnotherToken); playerMenu->addSeparator(); sayMenu = playerMenu->addMenu(QString()); initSayMenu(); @@ -264,6 +270,7 @@ Player::Player(const QString &_name, int _id, bool _local, Client *_client, TabG countersMenu = 0; sbMenu = 0; cardMenu = 0; + aCreateAnotherToken = 0; } rearrangeZones(); @@ -376,6 +383,8 @@ void Player::retranslateUi() aRollDie->setShortcut(tr("Ctrl+I")); aCreateToken->setText(tr("&Create token...")); aCreateToken->setShortcut(tr("Ctrl+T")); + aCreateAnotherToken->setText(tr("C&reate another token")); + aCreateAnotherToken->setShortcut(tr("Ctrl+G")); sayMenu->setTitle(tr("S&ay")); QMapIterator counterIterator(counters); @@ -491,9 +500,22 @@ void Player::actRollDie() void Player::actCreateToken() { - QString cardname = QInputDialog::getText(0, tr("Create token"), tr("Name:")); - if (!cardname.isEmpty()) - sendGameCommand(new Command_CreateToken(-1, "table", cardname, QString(), -1, 0)); + DlgCreateToken dlg; + if (!dlg.exec()) + return; + + lastTokenName = dlg.getName(); + lastTokenColor = dlg.getColor(); + lastTokenPT = dlg.getPT(); + lastTokenAnnotation = dlg.getAnnotation(); + aCreateAnotherToken->setEnabled(true); + + sendGameCommand(new Command_CreateToken(-1, "table", dlg.getName(), dlg.getColor(), dlg.getPT(), dlg.getAnnotation(), -1, 0)); +} + +void Player::actCreateAnotherToken() +{ + sendGameCommand(new Command_CreateToken(-1, "table", lastTokenName, lastTokenColor, lastTokenPT, lastTokenAnnotation, -1, 0)); } void Player::actSayMessage() @@ -566,8 +588,11 @@ void Player::eventCreateToken(Event_CreateToken *event) return; CardItem *card = new CardItem(this, event->getCardName(), event->getCardId()); + card->setColor(event->getColor()); + card->setPT(event->getPt()); + card->setAnnotation(event->getAnnotation()); - emit logCreateToken(this, card->getName()); + emit logCreateToken(this, card->getName(), card->getPT()); zone->addCard(card, true, event->getX(), event->getY()); } diff --git a/cockatrice/src/player.h b/cockatrice/src/player.h index ae69497d8..a563fa538 100644 --- a/cockatrice/src/player.h +++ b/cockatrice/src/player.h @@ -49,7 +49,7 @@ signals: void logShuffle(Player *player); void logRollDie(Player *player, int sides, int roll); void logCreateArrow(Player *player, Player *startPlayer, QString startCard, Player *targetPlayer, QString targetCard); - void logCreateToken(Player *player, QString cardName); + void logCreateToken(Player *player, QString cardName, QString pt); void logDrawCards(Player *player, int number); void logMoveCard(Player *player, QString cardName, CardZone *startZone, int oldX, CardZone *targetZone, int newX); void logSetCardCounter(Player *player, QString cardName, int counterId, int value, int oldValue); @@ -66,6 +66,7 @@ public slots: void actUntapAll(); void actRollDie(); void actCreateToken(); + void actCreateAnotherToken(); void actShuffle(); void actDrawCard(); void actDrawCards(); @@ -96,7 +97,7 @@ private: *aMoveRfgToTopLibrary, *aMoveRfgToBottomLibrary, *aMoveRfgToHand, *aMoveRfgToGrave, *aViewLibrary, *aViewTopCards, *aViewGraveyard, *aViewRfg, *aViewSideboard, *aDrawCard, *aDrawCards, *aMulligan, *aShuffle, - *aUntapAll, *aRollDie, *aCreateToken; + *aUntapAll, *aRollDie, *aCreateToken, *aCreateAnotherToken; typedef void (Player::*CardMenuHandler)(CardItem *card); QHash cardMenuHandlers; @@ -115,6 +116,7 @@ private: void actMoveToExile(CardItem *card); int defaultNumberTopCards; + QString lastTokenName, lastTokenColor, lastTokenPT, lastTokenAnnotation; QString name; int id; bool active; diff --git a/common/protocol_datastructures.cpp b/common/protocol_datastructures.cpp index 92c9a55d3..854a6533a 100644 --- a/common/protocol_datastructures.cpp +++ b/common/protocol_datastructures.cpp @@ -39,7 +39,7 @@ ServerInfo_CardCounter::ServerInfo_CardCounter(int _id, int _value) insertItem(new SerializableItem_Int("value", _value)); } -ServerInfo_Card::ServerInfo_Card(int _id, const QString &_name, int _x, int _y, bool _tapped, bool _attacking, const QString &_pt, const QString &_annotation, const QList &_counters) +ServerInfo_Card::ServerInfo_Card(int _id, const QString &_name, int _x, int _y, bool _tapped, bool _attacking, const QString &_color, const QString &_pt, const QString &_annotation, const QList &_counters) : SerializableItem_Map("card") { insertItem(new SerializableItem_Int("id", _id)); @@ -48,6 +48,7 @@ ServerInfo_Card::ServerInfo_Card(int _id, const QString &_name, int _x, int _y, insertItem(new SerializableItem_Int("y", _y)); insertItem(new SerializableItem_Bool("tapped", _tapped)); insertItem(new SerializableItem_Bool("attacking", _attacking)); + insertItem(new SerializableItem_String("color", _color)); insertItem(new SerializableItem_String("pt", _pt)); insertItem(new SerializableItem_String("annotation", _annotation)); diff --git a/common/protocol_datastructures.h b/common/protocol_datastructures.h index 3266ecdcd..3e9488ca5 100644 --- a/common/protocol_datastructures.h +++ b/common/protocol_datastructures.h @@ -62,7 +62,7 @@ public: class ServerInfo_Card : public SerializableItem_Map { public: - ServerInfo_Card(int _id = -1, const QString &_name = QString(), int _x = -1, int _y = -1, bool _tapped = false, bool _attacking = false, const QString &_pt = QString(), const QString &_annotation = QString(), const QList &_counterList = QList()); + ServerInfo_Card(int _id = -1, const QString &_name = QString(), int _x = -1, int _y = -1, bool _tapped = false, bool _attacking = false, const QString &_color = QString(), const QString &_pt = QString(), const QString &_annotation = QString(), const QList &_counterList = QList()); static SerializableItem *newItem() { return new ServerInfo_Card; } int getId() const { return static_cast(itemMap.value("id"))->getData(); } QString getName() const { return static_cast(itemMap.value("name"))->getData(); } @@ -70,6 +70,7 @@ public: int getY() const { return static_cast(itemMap.value("y"))->getData(); } bool getTapped() const { return static_cast(itemMap.value("tapped"))->getData(); } bool getAttacking() const { return static_cast(itemMap.value("attacking"))->getData(); } + QString getColor() const { return static_cast(itemMap.value("color"))->getData(); } QString getPT() const { return static_cast(itemMap.value("pt"))->getData(); } QString getAnnotation() const { return static_cast(itemMap.value("annotation"))->getData(); } QList getCounters() const { return typecastItemList(); } diff --git a/common/protocol_items.cpp b/common/protocol_items.cpp index 57ac1aeb9..33f32133a 100644 --- a/common/protocol_items.cpp +++ b/common/protocol_items.cpp @@ -114,12 +114,14 @@ Command_MoveCard::Command_MoveCard(int _gameId, const QString &_startZone, int _ insertItem(new SerializableItem_Bool("face_down", _faceDown)); insertItem(new SerializableItem_Bool("tapped", _tapped)); } -Command_CreateToken::Command_CreateToken(int _gameId, const QString &_zone, const QString &_cardName, const QString &_pt, int _x, int _y) +Command_CreateToken::Command_CreateToken(int _gameId, const QString &_zone, const QString &_cardName, const QString &_color, const QString &_pt, const QString &_annotation, int _x, int _y) : GameCommand("create_token", _gameId) { insertItem(new SerializableItem_String("zone", _zone)); insertItem(new SerializableItem_String("card_name", _cardName)); + insertItem(new SerializableItem_String("color", _color)); insertItem(new SerializableItem_String("pt", _pt)); + insertItem(new SerializableItem_String("annotation", _annotation)); insertItem(new SerializableItem_Int("x", _x)); insertItem(new SerializableItem_Int("y", _y)); } @@ -255,13 +257,15 @@ Event_MoveCard::Event_MoveCard(int _playerId, int _cardId, const QString &_cardN insertItem(new SerializableItem_Int("new_card_id", _newCardId)); insertItem(new SerializableItem_Bool("face_down", _faceDown)); } -Event_CreateToken::Event_CreateToken(int _playerId, const QString &_zone, int _cardId, const QString &_cardName, const QString &_pt, int _x, int _y) +Event_CreateToken::Event_CreateToken(int _playerId, const QString &_zone, int _cardId, const QString &_cardName, const QString &_color, const QString &_pt, const QString &_annotation, int _x, int _y) : GameEvent("create_token", _playerId) { insertItem(new SerializableItem_String("zone", _zone)); insertItem(new SerializableItem_Int("card_id", _cardId)); insertItem(new SerializableItem_String("card_name", _cardName)); + insertItem(new SerializableItem_String("color", _color)); insertItem(new SerializableItem_String("pt", _pt)); + insertItem(new SerializableItem_String("annotation", _annotation)); insertItem(new SerializableItem_Int("x", _x)); insertItem(new SerializableItem_Int("y", _y)); } diff --git a/common/protocol_items.dat b/common/protocol_items.dat index 1fbb8f866..afedf7924 100644 --- a/common/protocol_items.dat +++ b/common/protocol_items.dat @@ -19,7 +19,7 @@ 2:roll_die:i,sides 2:draw_cards:i,number 2:move_card:s,start_zone:i,card_id:s,target_zone:i,x:i,y:b,face_down:b,tapped -2:create_token:s,zone:s,card_name:s,pt:i,x:i,y +2:create_token:s,zone:s,card_name:s,color:s,pt:s,annotation:i,x:i,y 2:create_arrow:i,start_player_id:s,start_zone:i,start_card_id:i,target_player_id:s,target_zone:i,target_card_id:c,color 2:delete_arrow:i,arrow_id 2:set_card_attr:s,zone:i,card_id:s,attr_name:s,attr_value @@ -41,7 +41,7 @@ 3:shuffle 3:roll_die:i,sides:i,value 3:move_card:i,card_id:s,card_name:s,start_zone:i,position:s,target_zone:i,x:i,y:i,new_card_id:b,face_down -3:create_token:s,zone:i,card_id:s,card_name:s,pt:i,x:i,y +3:create_token:s,zone:i,card_id:s,card_name:s,color:s,pt:s,annotation:i,x:i,y 3:delete_arrow:i,arrow_id 3:set_card_attr:s,zone:i,card_id:s,attr_name:s,attr_value 3:set_card_counter:s,zone:i,card_id:i,counter_id:i,counter_value diff --git a/common/protocol_items.h b/common/protocol_items.h index 94d1a653b..a8fe773ac 100644 --- a/common/protocol_items.h +++ b/common/protocol_items.h @@ -182,10 +182,12 @@ public: class Command_CreateToken : public GameCommand { Q_OBJECT public: - Command_CreateToken(int _gameId = -1, const QString &_zone = QString(), const QString &_cardName = QString(), const QString &_pt = QString(), int _x = -1, int _y = -1); + Command_CreateToken(int _gameId = -1, const QString &_zone = QString(), const QString &_cardName = QString(), const QString &_color = QString(), const QString &_pt = QString(), const QString &_annotation = QString(), int _x = -1, int _y = -1); QString getZone() const { return static_cast(itemMap.value("zone"))->getData(); }; QString getCardName() const { return static_cast(itemMap.value("card_name"))->getData(); }; + QString getColor() const { return static_cast(itemMap.value("color"))->getData(); }; QString getPt() const { return static_cast(itemMap.value("pt"))->getData(); }; + QString getAnnotation() const { return static_cast(itemMap.value("annotation"))->getData(); }; int getX() const { return static_cast(itemMap.value("x"))->getData(); }; int getY() const { return static_cast(itemMap.value("y"))->getData(); }; static SerializableItem *newItem() { return new Command_CreateToken; } @@ -389,11 +391,13 @@ public: class Event_CreateToken : public GameEvent { Q_OBJECT public: - Event_CreateToken(int _playerId = -1, const QString &_zone = QString(), int _cardId = -1, const QString &_cardName = QString(), const QString &_pt = QString(), int _x = -1, int _y = -1); + Event_CreateToken(int _playerId = -1, const QString &_zone = QString(), int _cardId = -1, const QString &_cardName = QString(), const QString &_color = QString(), const QString &_pt = QString(), const QString &_annotation = QString(), int _x = -1, int _y = -1); QString getZone() const { return static_cast(itemMap.value("zone"))->getData(); }; int getCardId() const { return static_cast(itemMap.value("card_id"))->getData(); }; QString getCardName() const { return static_cast(itemMap.value("card_name"))->getData(); }; + QString getColor() const { return static_cast(itemMap.value("color"))->getData(); }; QString getPt() const { return static_cast(itemMap.value("pt"))->getData(); }; + QString getAnnotation() const { return static_cast(itemMap.value("annotation"))->getData(); }; int getX() const { return static_cast(itemMap.value("x"))->getData(); }; int getY() const { return static_cast(itemMap.value("y"))->getData(); }; static SerializableItem *newItem() { return new Event_CreateToken; } diff --git a/common/server_card.cpp b/common/server_card.cpp index 451dd0f99..a82a85399 100644 --- a/common/server_card.cpp +++ b/common/server_card.cpp @@ -20,7 +20,7 @@ #include "server_card.h" Server_Card::Server_Card(QString _name, int _id, int _coord_x, int _coord_y) - : id(_id), coord_x(_coord_x), coord_y(_coord_y), name(_name), tapped(false), attacking(false), facedown(false), pt(QString()), annotation(QString()), doesntUntap(false) + : id(_id), coord_x(_coord_x), coord_y(_coord_y), name(_name), tapped(false), attacking(false), facedown(false), color(QString()), pt(QString()), annotation(QString()), doesntUntap(false) { } @@ -36,6 +36,7 @@ void Server_Card::resetState() setTapped(false); setAttacking(false); setFaceDown(false); + setColor(QString()); setPT(QString()); setAnnotation(QString()); setDoesntUntap(false); @@ -51,6 +52,8 @@ bool Server_Card::setAttribute(const QString &aname, const QString &avalue, bool setAttacking(avalue == "1"); } else if (aname == "facedown") { setFaceDown(avalue == "1"); + } else if (aname == "color") { + setColor(avalue); } else if (aname == "pt") { setPT(avalue); } else if (aname == "annotation") { diff --git a/common/server_card.h b/common/server_card.h index 0b62780c7..1edeefeef 100644 --- a/common/server_card.h +++ b/common/server_card.h @@ -35,6 +35,7 @@ private: bool tapped; bool attacking; bool facedown; + QString color; QString pt; QString annotation; bool doesntUntap; @@ -54,6 +55,7 @@ public: bool getTapped() const { return tapped; } bool getAttacking() const { return attacking; } bool getFaceDown() const { return facedown; } + QString getColor() const { return color; } QString getPT() const { return pt; } QString getAnnotation() const { return annotation; } bool getDoesntUntap() const { return doesntUntap; } @@ -65,6 +67,7 @@ public: void setTapped(bool _tapped) { tapped = _tapped; } void setAttacking(bool _attacking) { attacking = _attacking; } void setFaceDown(bool _facedown) { facedown = _facedown; } + void setColor(const QString &_color) { color = _color; } void setPT(const QString &_pt) { pt = _pt; } void setAnnotation(const QString &_annotation) { annotation = _annotation; } void setDoesntUntap(bool _doesntUntap) { doesntUntap = _doesntUntap; } diff --git a/common/server_game.cpp b/common/server_game.cpp index 4a8f8b5db..5eb620d09 100644 --- a/common/server_game.cpp +++ b/common/server_game.cpp @@ -283,7 +283,7 @@ QList Server_Game::getGameState(Server_Player *playerWhosAs cardCounterList.append(new ServerInfo_CardCounter(cardCounterIterator.key(), cardCounterIterator.value())); } - cardList.append(new ServerInfo_Card(card->getId(), displayedName, card->getX(), card->getY(), card->getTapped(), card->getAttacking(), card->getPT(), card->getAnnotation(), cardCounterList)); + cardList.append(new ServerInfo_Card(card->getId(), displayedName, card->getX(), card->getY(), card->getTapped(), card->getAttacking(), card->getColor(), card->getPT(), card->getAnnotation(), cardCounterList)); } } zoneList.append(new ServerInfo_Zone(zone->getName(), zone->getType(), zone->hasCoords(), zone->cards.size(), cardList)); diff --git a/common/server_protocolhandler.cpp b/common/server_protocolhandler.cpp index 2fb08dcc3..4d69a9993 100644 --- a/common/server_protocolhandler.cpp +++ b/common/server_protocolhandler.cpp @@ -609,7 +609,6 @@ ResponseCode Server_ProtocolHandler::cmdCreateToken(Command_CreateToken *cmd, Co if (!game->getGameStarted()) return RespGameNotStarted; - // powtough wird erst mal ignoriert Server_CardZone *zone = player->getZones().value(cmd->getZone()); if (!zone) return RespNameNotFound; @@ -624,8 +623,12 @@ ResponseCode Server_ProtocolHandler::cmdCreateToken(Command_CreateToken *cmd, Co y = 0; Server_Card *card = new Server_Card(cmd->getCardName(), player->newCardId(), x, y); + card->setPT(cmd->getPt()); + card->setColor(cmd->getColor()); + card->setAnnotation(cmd->getAnnotation()); + zone->insertCard(card, x, y); - game->sendGameEvent(new Event_CreateToken(player->getPlayerId(), zone->getName(), card->getId(), card->getName(), cmd->getPt(), x, y)); + game->sendGameEvent(new Event_CreateToken(player->getPlayerId(), zone->getName(), card->getId(), card->getName(), cmd->getColor(), cmd->getPt(), cmd->getAnnotation(), x, y)); return RespOk; } @@ -898,7 +901,7 @@ ResponseCode Server_ProtocolHandler::cmdDumpZone(Command_DumpZone *cmd, CommandC cardCounterIterator.next(); cardCounterList.append(new ServerInfo_CardCounter(cardCounterIterator.key(), cardCounterIterator.value())); } - respCardList.append(new ServerInfo_Card(card->getId(), displayedName, card->getX(), card->getY(), card->getTapped(), card->getAttacking(), card->getPT(), card->getAnnotation(), cardCounterList)); + respCardList.append(new ServerInfo_Card(card->getId(), displayedName, card->getX(), card->getY(), card->getTapped(), card->getAttacking(), card->getColor(), card->getPT(), card->getAnnotation(), cardCounterList)); } } if (zone->getType() == HiddenZone) {