Add "Random card from graveyard" (#2652)
This commit is contained in:
parent
df211748ca
commit
7c1a18da5e
2 changed files with 27 additions and 3 deletions
|
@ -287,6 +287,15 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, TabGame *_pare
|
||||||
|
|
||||||
graveMenu = playerMenu->addMenu(QString());
|
graveMenu = playerMenu->addMenu(QString());
|
||||||
graveMenu->addAction(aViewGraveyard);
|
graveMenu->addAction(aViewGraveyard);
|
||||||
|
|
||||||
|
if (local) {
|
||||||
|
mRevealRandomGraveyardCard = graveMenu->addMenu(QString());
|
||||||
|
QAction *newAction = mRevealRandomGraveyardCard->addAction(QString());
|
||||||
|
newAction->setData(-1);
|
||||||
|
connect(newAction, SIGNAL(triggered()), this, SLOT(actRevealRandomGraveyardCard()));
|
||||||
|
allPlayersActions.append(newAction);
|
||||||
|
mRevealRandomGraveyardCard->addSeparator();
|
||||||
|
}
|
||||||
grave->setMenu(graveMenu, aViewGraveyard);
|
grave->setMenu(graveMenu, aViewGraveyard);
|
||||||
|
|
||||||
rfgMenu = playerMenu->addMenu(QString());
|
rfgMenu = playerMenu->addMenu(QString());
|
||||||
|
@ -533,7 +542,7 @@ void Player::playerListActionTriggered()
|
||||||
cmd.set_zone_name("hand");
|
cmd.set_zone_name("hand");
|
||||||
else if (menu == mRevealRandomHandCard) {
|
else if (menu == mRevealRandomHandCard) {
|
||||||
cmd.set_zone_name("hand");
|
cmd.set_zone_name("hand");
|
||||||
cmd.set_card_id(-2);
|
cmd.set_card_id(RANDOM_CARD_FROM_ZONE);
|
||||||
} else
|
} else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -655,6 +664,7 @@ void Player::retranslateUi()
|
||||||
handMenu->setTitle(tr("&Hand"));
|
handMenu->setTitle(tr("&Hand"));
|
||||||
mRevealHand->setTitle(tr("&Reveal hand to..."));
|
mRevealHand->setTitle(tr("&Reveal hand to..."));
|
||||||
mRevealRandomHandCard->setTitle(tr("Reveal r&andom card to..."));
|
mRevealRandomHandCard->setTitle(tr("Reveal r&andom card to..."));
|
||||||
|
mRevealRandomGraveyardCard->setTitle(tr("Reveal random card to..."));
|
||||||
sbMenu->setTitle(tr("&Sideboard"));
|
sbMenu->setTitle(tr("&Sideboard"));
|
||||||
libraryMenu->setTitle(tr("&Library"));
|
libraryMenu->setTitle(tr("&Library"));
|
||||||
countersMenu->setTitle(tr("&Counters"));
|
countersMenu->setTitle(tr("&Counters"));
|
||||||
|
@ -892,6 +902,18 @@ void Player::actViewGraveyard()
|
||||||
static_cast<GameScene *>(scene())->toggleZoneView(this, "grave", -1);
|
static_cast<GameScene *>(scene())->toggleZoneView(this, "grave", -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Player::actRevealRandomGraveyardCard()
|
||||||
|
{
|
||||||
|
Command_RevealCards cmd;
|
||||||
|
QAction *action = static_cast<QAction *>(sender());
|
||||||
|
const int otherPlayerId = action->data().toInt();
|
||||||
|
if (otherPlayerId != -1)
|
||||||
|
cmd.set_player_id(otherPlayerId);
|
||||||
|
cmd.set_zone_name("grave");
|
||||||
|
cmd.set_card_id(RANDOM_CARD_FROM_ZONE);
|
||||||
|
sendGameCommand(cmd);
|
||||||
|
}
|
||||||
|
|
||||||
void Player::actViewRfg()
|
void Player::actViewRfg()
|
||||||
{
|
{
|
||||||
static_cast<GameScene *>(scene())->toggleZoneView(this, "rfg", -1);
|
static_cast<GameScene *>(scene())->toggleZoneView(this, "rfg", -1);
|
||||||
|
|
|
@ -127,6 +127,7 @@ public slots:
|
||||||
void actViewTopCards();
|
void actViewTopCards();
|
||||||
void actAlwaysRevealTopCard();
|
void actAlwaysRevealTopCard();
|
||||||
void actViewGraveyard();
|
void actViewGraveyard();
|
||||||
|
void actRevealRandomGraveyardCard();
|
||||||
void actViewRfg();
|
void actViewRfg();
|
||||||
void actViewSideboard();
|
void actViewSideboard();
|
||||||
|
|
||||||
|
@ -165,7 +166,7 @@ private slots:
|
||||||
private:
|
private:
|
||||||
TabGame *game;
|
TabGame *game;
|
||||||
QMenu *playerMenu, *handMenu, *moveHandMenu, *graveMenu, *moveGraveMenu, *rfgMenu, *moveRfgMenu, *libraryMenu, *sbMenu, *countersMenu, *sayMenu, *createPredefinedTokenMenu,
|
QMenu *playerMenu, *handMenu, *moveHandMenu, *graveMenu, *moveGraveMenu, *rfgMenu, *moveRfgMenu, *libraryMenu, *sbMenu, *countersMenu, *sayMenu, *createPredefinedTokenMenu,
|
||||||
*mRevealLibrary, *mRevealTopCard, *mRevealHand, *mRevealRandomHandCard;
|
*mRevealLibrary, *mRevealTopCard, *mRevealHand, *mRevealRandomHandCard, *mRevealRandomGraveyardCard;
|
||||||
QList<QMenu *> playerLists;
|
QList<QMenu *> playerLists;
|
||||||
QList<QAction *> allPlayersActions;
|
QList<QAction *> allPlayersActions;
|
||||||
QAction *aMoveHandToTopLibrary, *aMoveHandToBottomLibrary, *aMoveHandToGrave, *aMoveHandToRfg,
|
QAction *aMoveHandToTopLibrary, *aMoveHandToBottomLibrary, *aMoveHandToGrave, *aMoveHandToRfg,
|
||||||
|
@ -247,7 +248,8 @@ private:
|
||||||
public:
|
public:
|
||||||
static const int counterAreaWidth = 55;
|
static const int counterAreaWidth = 55;
|
||||||
enum CardMenuActionType { cmTap, cmUntap, cmDoesntUntap, cmFlip, cmPeek, cmClone, cmMoveToTopLibrary, cmMoveToBottomLibrary, cmMoveToHand, cmMoveToGraveyard, cmMoveToExile };
|
enum CardMenuActionType { cmTap, cmUntap, cmDoesntUntap, cmFlip, cmPeek, cmClone, cmMoveToTopLibrary, cmMoveToBottomLibrary, cmMoveToHand, cmMoveToGraveyard, cmMoveToExile };
|
||||||
|
enum CardsToReveal {RANDOM_CARD_FROM_ZONE = -2};
|
||||||
|
|
||||||
enum { Type = typeOther };
|
enum { Type = typeOther };
|
||||||
int type() const { return Type; }
|
int type() const { return Type; }
|
||||||
QRectF boundingRect() const;
|
QRectF boundingRect() const;
|
||||||
|
|
Loading…
Reference in a new issue