If you have a Hamlet, Watchtower, and Tunnel in hand, you should be able to do this:
Play Hamlet.
Discard Tunnel for +1 action, revealing Tunnel to gain a Gold, revealing Watchtower to put the Gold on top of your deck.
Discard Watchtower for +1 buy.
However, in the current UI the behavior is:
Play Hamlet.
Select "both" to discard two cards.
Select Tunnel and Watchtower.
Reveal Tunnel to gain a Gold. There is no prompt to reveal Watchtower, so you can't topdeck the Gold.
This happens because the Hamlet UI does not really follow the card rules, where each discard is a separate step. Instead it asks:
Discard for Action
Discard for Buy
Both
Don't Discard
(I'd suggest prompting as follows to adhere to the rules and still be reasonably convenient:
First prompt:
Discard for Action
Discard for Buy
Don't Discard
Second prompt, only appears if you selected "Discard for Action":
Discard for Buy
Don't Discard
So if you want to discard twice, you can pick Discard for Action the first time, then Discard for Buy the second time.)
Play Hamlet.
Discard Tunnel for +1 action, revealing Tunnel to gain a Gold, revealing Watchtower to put the Gold on top of your deck.
Discard Watchtower for +1 buy.
However, in the current UI the behavior is:
Play Hamlet.
Select "both" to discard two cards.
Select Tunnel and Watchtower.
Reveal Tunnel to gain a Gold. There is no prompt to reveal Watchtower, so you can't topdeck the Gold.
This happens because the Hamlet UI does not really follow the card rules, where each discard is a separate step. Instead it asks:
Discard for Action
Discard for Buy
Both
Don't Discard
(I'd suggest prompting as follows to adhere to the rules and still be reasonably convenient:
First prompt:
Discard for Action
Discard for Buy
Don't Discard
Second prompt, only appears if you selected "Discard for Action":
Discard for Buy
Don't Discard
So if you want to discard twice, you can pick Discard for Action the first time, then Discard for Buy the second time.)