From be2883ff012e9aae9fd6c748e2d54c77c1af94eb Mon Sep 17 00:00:00 2001 From: Skagra42 Date: Sun, 26 Jul 2026 12:14:15 -0600 Subject: [PATCH] Progress. --- cockatrice/src/client/settings/shortcuts_settings.h | 3 +++ cockatrice/src/game/board/card_state.h | 1 + cockatrice/src/game_graphics/board/card_item.h | 5 +++++ cockatrice/src/game_graphics/player/menu/card_menu.cpp | 4 ++++ cockatrice/src/game_graphics/player/menu/card_menu.h | 2 +- 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/cockatrice/src/client/settings/shortcuts_settings.h b/cockatrice/src/client/settings/shortcuts_settings.h index 45e2c4fca..8ec6da63a 100644 --- a/cockatrice/src/client/settings/shortcuts_settings.h +++ b/cockatrice/src/client/settings/shortcuts_settings.h @@ -504,6 +504,9 @@ private: {"Player/aDoesntUntap", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Toggle Skip Untapping"), parseSequenceString("Alt+U"), ShortcutGroup::Playing_Area)}, + {"Player/aDoesntUntapOnce", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Toggle Skip Untapping Once"), + parseSequenceString(""), + ShortcutGroup::Playing_Area)}, {"Player/aFlip", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Turn Card Over"), parseSequenceString("Alt+F"), ShortcutGroup::Playing_Area)}, diff --git a/cockatrice/src/game/board/card_state.h b/cockatrice/src/game/board/card_state.h index 0498b1aa2..6d13030e8 100644 --- a/cockatrice/src/game/board/card_state.h +++ b/cockatrice/src/game/board/card_state.h @@ -16,6 +16,7 @@ private: QString annotation; QString pt; bool doesntUntap = false; + bool doesntUntapOnce = false; bool destroyOnZoneChange = false; CardItem *attachedTo = nullptr; diff --git a/cockatrice/src/game_graphics/board/card_item.h b/cockatrice/src/game_graphics/board/card_item.h index 8efcd085d..7d22c16e1 100644 --- a/cockatrice/src/game_graphics/board/card_item.h +++ b/cockatrice/src/game_graphics/board/card_item.h @@ -105,6 +105,11 @@ public: return state->getDoesntUntap(); } void setDoesntUntap(bool _doesntUntap); + [[nodiscard]] bool getDoesntUntapOnce() const + { + return state->getDoesntUntapOnce(); + } + void setDoesntUntapOnce(bool _doesntUntapOnce); [[nodiscard]] QString getPT() const { return state->getPT(); diff --git a/cockatrice/src/game_graphics/player/menu/card_menu.cpp b/cockatrice/src/game_graphics/player/menu/card_menu.cpp index aa94c3be7..fdf4bb50f 100644 --- a/cockatrice/src/game_graphics/player/menu/card_menu.cpp +++ b/cockatrice/src/game_graphics/player/menu/card_menu.cpp @@ -73,6 +73,7 @@ CardMenu::CardMenu(PlayerGraphicsItem *_player, const CardItem *_card, bool _sho // Actions using invoke (type dispatch, need selection) aTap = makeAction(this, invoke(cmTap)); aDoesntUntap = makeAction(this, invoke(cmDoesntUntap), /*checkable=*/true, card && card->getDoesntUntap()); + aDoesntUntapOnce = makeAction(this, invoke(cmDoesntUntapOnce), /*checkable=*/true, card && card->getDoesntUntapOnce()); aFlip = makeAction(this, invoke(cmFlip)); aPeek = makeAction(this, invoke(cmPeek)); aClone = makeAction(this, invoke(cmClone)); @@ -196,6 +197,7 @@ void CardMenu::createTableMenu(bool canModifyCard) addAction(aTap); addAction(aDoesntUntap); + addAction(aDoesntUntapOnce); addAction(aFlip); if (card->getFaceDown()) { addAction(aPeek); @@ -491,6 +493,7 @@ void CardMenu::retranslateUi() //: Turn sideways or back again aTap->setText(tr("&Tap / Untap")); aDoesntUntap->setText(tr("Skip &untapping")); + aDoesntUntapOnce->setText(tr("Skip &untapping once")); //: Turn face up/face down aFlip->setText(tr("T&urn Over")); // Only the user facing names in client got renamed to "turn over" // All code and proto bits are still unchanged (flip) for compatibility reasons @@ -529,6 +532,7 @@ void CardMenu::setShortcutsActive() aTap->setShortcuts(shortcuts.getShortcut("Player/aTap")); aDoesntUntap->setShortcuts(shortcuts.getShortcut("Player/aDoesntUntap")); + aDoesntUntapOnce->setShortcuts(shortcuts.getShortcut("Player/aDoesntUntapOnce")); aFlip->setShortcuts(shortcuts.getShortcut("Player/aFlip")); aPeek->setShortcuts(shortcuts.getShortcut("Player/aPeek")); aClone->setShortcuts(shortcuts.getShortcut("Player/aClone")); diff --git a/cockatrice/src/game_graphics/player/menu/card_menu.h b/cockatrice/src/game_graphics/player/menu/card_menu.h index d67ef3876..e6bb8616b 100644 --- a/cockatrice/src/game_graphics/player/menu/card_menu.h +++ b/cockatrice/src/game_graphics/player/menu/card_menu.h @@ -37,7 +37,7 @@ public: QAction *aClone; QAction *aSelectAll, *aSelectRow, *aSelectColumn; QAction *aDrawArrow; - QAction *aTap, *aDoesntUntap; + QAction *aTap, *aDoesntUntap, *aDoesntUntapOnce; QAction *aFlip, *aPeek; QAction *aAttach, *aUnattach; QAction *aSetAnnotation;