diff --git a/cockatrice/src/player.cpp b/cockatrice/src/player.cpp index 30654430..27d1b099 100644 --- a/cockatrice/src/player.cpp +++ b/cockatrice/src/player.cpp @@ -224,6 +224,8 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, bool _judge, T connect(aShuffle, SIGNAL(triggered()), this, SLOT(actShuffle())); aMulligan = new QAction(this); connect(aMulligan, SIGNAL(triggered()), this, SLOT(actMulligan())); + aMoveTopToPlay = new QAction(this); + connect(aMoveTopToPlay, SIGNAL(triggered()), this, SLOT(actMoveTopCardToPlay())); aMoveTopToPlayFaceDown = new QAction(this); connect(aMoveTopToPlayFaceDown, SIGNAL(triggered()), this, SLOT(actMoveTopCardToPlayFaceDown())); aMoveTopCardToGraveyard = new QAction(this); @@ -274,6 +276,7 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, bool _judge, T playerLists.append(mRevealTopCard = libraryMenu->addMenu(QString())); libraryMenu->addAction(aAlwaysRevealTopCard); libraryMenu->addSeparator(); + libraryMenu->addAction(aMoveTopToPlay); libraryMenu->addAction(aMoveTopToPlayFaceDown); libraryMenu->addAction(aMoveTopCardToBottom); libraryMenu->addAction(aMoveBottomCardToGrave); @@ -687,6 +690,7 @@ void Player::retranslateUi() aUndoDraw->setText(tr("&Undo last draw")); aMulligan->setText(tr("Take &mulligan")); aShuffle->setText(tr("&Shuffle")); + aMoveTopToPlay->setText(tr("Play top card")); aMoveTopToPlayFaceDown->setText(tr("Play top card &face down")); aMoveTopCardToGraveyard->setText(tr("Move top card to grave&yard")); aMoveTopCardToExile->setText(tr("Move top card to e&xile")); @@ -856,6 +860,7 @@ void Player::setShortcutsActive() aCreateToken->setShortcut(shortcuts.getSingleShortcut("Player/aCreateToken")); aCreateAnotherToken->setShortcut(shortcuts.getSingleShortcut("Player/aCreateAnotherToken")); aAlwaysRevealTopCard->setShortcut(shortcuts.getSingleShortcut("Player/aAlwaysRevealTopCard")); + aMoveTopToPlay->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopToPlay")); aMoveTopToPlayFaceDown->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopToPlayFaceDown")); aMoveTopCardToGraveyard->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopCardToGraveyard")); aMoveTopCardsToGraveyard->setShortcut(shortcuts.getSingleShortcut("Player/aMoveTopCardsToGraveyard")); @@ -882,6 +887,7 @@ void Player::setShortcutsInactive() aCreateToken->setShortcut(QKeySequence()); aCreateAnotherToken->setShortcut(QKeySequence()); aAlwaysRevealTopCard->setShortcut(QKeySequence()); + aMoveTopToPlay->setShortcut(QKeySequence()); aMoveTopToPlayFaceDown->setShortcut(QKeySequence()); aMoveTopCardToGraveyard->setShortcut(QKeySequence()); aMoveTopCardsToGraveyard->setShortcut(QKeySequence()); @@ -1147,6 +1153,20 @@ void Player::actMoveTopCardToBottom() sendGameCommand(cmd); } +void Player::actMoveTopCardToPlay() +{ + Command_MoveCard cmd; + cmd.set_start_zone("deck"); + CardToMove *cardToMove = cmd.mutable_cards_to_move()->add_card(); + cardToMove->set_card_id(0); + cmd.set_target_player_id(getId()); + cmd.set_target_zone("stack"); + cmd.set_x(-1); + cmd.set_y(0); + + sendGameCommand(cmd); +} + void Player::actMoveTopCardToPlayFaceDown() { Command_MoveCard cmd; diff --git a/cockatrice/src/player.h b/cockatrice/src/player.h index cf994a70..703c7c21 100644 --- a/cockatrice/src/player.h +++ b/cockatrice/src/player.h @@ -149,6 +149,7 @@ public slots: void actDrawCards(); void actUndoDraw(); void actMulligan(); + void actMoveTopCardToPlay(); void actMoveTopCardToPlayFaceDown(); void actMoveTopCardToGrave(); void actMoveTopCardToExile(); @@ -214,8 +215,9 @@ private: *aMoveRfgToBottomLibrary, *aMoveRfgToHand, *aMoveRfgToGrave, *aViewHand, *aViewLibrary, *aViewTopCards, *aAlwaysRevealTopCard, *aOpenDeckInDeckEditor, *aMoveTopCardToGraveyard, *aMoveTopCardToExile, *aMoveTopCardsToGraveyard, *aMoveTopCardsToExile, *aMoveTopCardToBottom, *aViewGraveyard, *aViewRfg, - *aViewSideboard, *aDrawCard, *aDrawCards, *aUndoDraw, *aMulligan, *aShuffle, *aMoveTopToPlayFaceDown, - *aUntapAll, *aRollDie, *aCreateToken, *aCreateAnotherToken, *aCardMenu, *aMoveBottomCardToGrave; + *aViewSideboard, *aDrawCard, *aDrawCards, *aUndoDraw, *aMulligan, *aShuffle, *aMoveTopToPlay, + *aMoveTopToPlayFaceDown, *aUntapAll, *aRollDie, *aCreateToken, *aCreateAnotherToken, *aCardMenu, + *aMoveBottomCardToGrave; QList aAddCounter, aSetCounter, aRemoveCounter; QAction *aPlay, *aPlayFacedown, *aHide, *aTap, *aDoesntUntap, *aAttach, *aUnattach, *aDrawArrow, *aSetPT, *aResetPT, diff --git a/cockatrice/src/shortcutssettings.h b/cockatrice/src/shortcutssettings.h index 55cf1280..68b9bbcb 100644 --- a/cockatrice/src/shortcutssettings.h +++ b/cockatrice/src/shortcutssettings.h @@ -456,6 +456,9 @@ private: {"Player/aMoveToTopLibrary", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Top of library"), parseSequenceString(""), ShortcutGroup::Move_selected)}, + {"Player/aMoveTopToPlay", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Play on stack"), + parseSequenceString("Ctrl+Y"), + ShortcutGroup::Move_selected)}, {"Player/aMoveTopToPlayFaceDown", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Play face down"), parseSequenceString("Ctrl+Shift+E"), ShortcutGroup::Move_selected)},