From 5e38214675a16ba703feb9769447b74e897e7afa Mon Sep 17 00:00:00 2001 From: Rob Blanckaert Date: Sun, 3 Feb 2019 02:33:38 -0800 Subject: [PATCH] Playing a tableRow 3 card from the stack puts it to grave. (#3547) * Playing a tableRow 3 card from the stack puts it to grave. * move to top by resetting pos * Zach touch Signed-off-by: Zach Halpern --- cockatrice/src/player.cpp | 15 +++++++++++---- cockatrice/src/player.h | 4 ++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/cockatrice/src/player.cpp b/cockatrice/src/player.cpp index 802b6628..6d5c2c33 100644 --- a/cockatrice/src/player.cpp +++ b/cockatrice/src/player.cpp @@ -2052,14 +2052,21 @@ void Player::playCard(CardItem *card, bool faceDown, bool tapped) if (!info) { return; } - if (!faceDown && ((!settingsCache->getPlayToStack() && info->getTableRow() == 3) || - ((settingsCache->getPlayToStack() && info->getTableRow() != 0) && - card->getZone()->getName().toStdString() != "stack"))) { + + int tableRow = info->getTableRow(); + bool playToStack = settingsCache->getPlayToStack(); + QString currentZone = card->getZone()->getName(); + if (currentZone == "stack" && tableRow == 3) { + cmd.set_target_zone("grave"); + cmd.set_x(0); + cmd.set_y(0); + } else if (!faceDown && + ((!playToStack && tableRow == 3) || ((playToStack && tableRow != 0) && currentZone != "stack"))) { cmd.set_target_zone("stack"); cmd.set_x(0); cmd.set_y(0); } else { - int tableRow = faceDown ? 2 : info->getTableRow(); + tableRow = faceDown ? 2 : info->getTableRow(); QPoint gridPoint = QPoint(-1, TableZone::clampValidTableRow(2 - tableRow)); cardToMove->set_face_down(faceDown); cardToMove->set_pt(info->getPowTough().toStdString()); diff --git a/cockatrice/src/player.h b/cockatrice/src/player.h index cb897dbc..0eac23f8 100644 --- a/cockatrice/src/player.h +++ b/cockatrice/src/player.h @@ -40,7 +40,7 @@ class CommandContainer; class GameCommand; class GameEvent; class GameEventContext; -class Event_ConnectionStateChanged; +// class Event_ConnectionStateChanged; class Event_GameSay; class Event_Shuffle; class Event_RollDie; @@ -265,7 +265,7 @@ private: void initSayMenu(); - void eventConnectionStateChanged(const Event_ConnectionStateChanged &event); + // void eventConnectionStateChanged(const Event_ConnectionStateChanged &event); void eventGameSay(const Event_GameSay &event); void eventShuffle(const Event_Shuffle &event); void eventRollDie(const Event_RollDie &event);