From e64953521178784129635cc46ab69bcb1d4a2b38 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Mon, 27 Apr 2015 23:02:45 +0200 Subject: [PATCH] Add "play top card face down" menu entry to library; fix #762 --- cockatrice/src/player.cpp | 24 +++++++++++++++++++++--- cockatrice/src/player.h | 5 +++-- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/cockatrice/src/player.cpp b/cockatrice/src/player.cpp index 0b02c4db..0a851de5 100644 --- a/cockatrice/src/player.cpp +++ b/cockatrice/src/player.cpp @@ -229,8 +229,10 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, TabGame *_pare connect(aUndoDraw, SIGNAL(triggered()), this, SLOT(actUndoDraw())); aShuffle = new QAction(this); connect(aShuffle, SIGNAL(triggered()), this, SLOT(actShuffle())); - aMulligan = new QAction(this); - connect(aMulligan, SIGNAL(triggered()), this, SLOT(actMulligan())); + aMulligan = new QAction(this); + connect(aMulligan, SIGNAL(triggered()), this, SLOT(actMulligan())); + aMoveTopToPlayFaceDown = new QAction(this); + connect(aMoveTopToPlayFaceDown, SIGNAL(triggered()), this, SLOT(actMoveTopCardToPlayFaceDown())); aMoveTopCardsToGrave = new QAction(this); connect(aMoveTopCardsToGrave, SIGNAL(triggered()), this, SLOT(actMoveTopCardsToGrave())); aMoveTopCardsToExile = new QAction(this); @@ -274,11 +276,11 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, TabGame *_pare playerLists.append(mRevealTopCard = libraryMenu->addMenu(QString())); libraryMenu->addAction(aAlwaysRevealTopCard); libraryMenu->addSeparator(); + libraryMenu->addAction(aMoveTopToPlayFaceDown); libraryMenu->addAction(aMoveTopCardToBottom); libraryMenu->addAction(aMoveBottomCardToGrave); libraryMenu->addSeparator(); libraryMenu->addAction(aMoveTopCardsToGrave); - libraryMenu->addSeparator(); libraryMenu->addAction(aMoveTopCardsToExile); libraryMenu->addSeparator(); libraryMenu->addAction(aOpenDeckInDeckEditor); @@ -631,6 +633,7 @@ void Player::retranslateUi() aUndoDraw->setText(tr("&Undo last draw")); aMulligan->setText(tr("Take &mulligan")); aShuffle->setText(tr("&Shuffle")); + aMoveTopToPlayFaceDown->setText(tr("Play top card &face down")); aMoveTopCardsToGrave->setText(tr("Move top cards to &graveyard...")); aMoveTopCardsToExile->setText(tr("Move top cards to &exile...")); aMoveTopCardToBottom->setText(tr("Put top card on &bottom")); @@ -953,6 +956,21 @@ void Player::actMoveTopCardToBottom() sendGameCommand(cmd); } +void Player::actMoveTopCardToPlayFaceDown() +{ + Command_MoveCard cmd; + cmd.set_start_zone("deck"); + CardToMove *cardToMove = cmd.mutable_cards_to_move()->add_card(); + cardToMove->set_card_id(0); + cardToMove->set_face_down(true); + cmd.set_target_player_id(getId()); + cmd.set_target_zone("table"); + cmd.set_x(-1); + cmd.set_y(0); + + sendGameCommand(cmd); +} + void Player::actMoveBottomCardToGrave() { CardZone *zone = zones.value("deck"); Command_MoveCard cmd; diff --git a/cockatrice/src/player.h b/cockatrice/src/player.h index cb05d878..1fed2b10 100644 --- a/cockatrice/src/player.h +++ b/cockatrice/src/player.h @@ -116,7 +116,8 @@ public slots: void actDrawCard(); void actDrawCards(); void actUndoDraw(); - void actMulligan(); + void actMulligan(); + void actMoveTopCardToPlayFaceDown(); void actMoveTopCardsToGrave(); void actMoveTopCardsToExile(); void actMoveTopCardToBottom(); @@ -169,7 +170,7 @@ private: *aMoveRfgToTopLibrary, *aMoveRfgToBottomLibrary, *aMoveRfgToHand, *aMoveRfgToGrave, *aViewLibrary, *aViewTopCards, *aAlwaysRevealTopCard, *aOpenDeckInDeckEditor, *aMoveTopCardsToGrave, *aMoveTopCardsToExile, *aMoveTopCardToBottom, *aViewGraveyard, *aViewRfg, *aViewSideboard, - *aDrawCard, *aDrawCards, *aUndoDraw, *aMulligan, *aShuffle, + *aDrawCard, *aDrawCards, *aUndoDraw, *aMulligan, *aShuffle, *aMoveTopToPlayFaceDown, *aUntapAll, *aRollDie, *aCreateToken, *aCreateAnotherToken, *aCardMenu, *aMoveBottomCardToGrave;