Card Deck Challenge- Input Needed

I would like to get your suggestions and/or corrections on a set of card decks that I’m building. I will explain what I want and outline what my approach is.

I have a deck of 80 cards. Each of the cards is unique. There is no need to track any shared properties between them (e.g suits, colors, etc.). The deck does not have to be visible during play. Let’s call this deck the Card Pool.

What I want

  1. I want to create a new deck of 40 cards from the Card Pool. The selection should be random. It should happen at the same time. The cards should be face down. Let’s call this deck the Action Deck.

  2. The 40 cards are revealed one at a time, face up, when moved to a discard deck. [Discard Deck]

  3. From time to time, an event will occur in the Action Deck that requires X number of cards to be randomly drawn from the Action Deck at the same time. These cards need to then be revealed one at a time to the Discard Deck-- just as if they had been in the Action Deck. These cards could be sent to a new deck called the Event Deck.

  4. Once all of the 40 cards are discarded (from the Action Deck or the Event Deck), they will reside in the Discard Deck. Occasionally, the last card of the Action Deck (or Event Deck, if it’s the 40th card) requires an additional random card to resolve an action. I would like to be able to draw one of the cards from the Discard Deck at random, face up, to resolve the action.

  5. Once the 1st 40 cards have been discarded, I’d like to repeat the process with the remaining 40 cards in the Card Pool.

  6. When all 80 cards are in the Discard Deck, I’d like to send them back to the Card Pool and repeat the process.

My approach

  1. To create the Card Pool, I was thinking of creating a button(?) tab(?) in the toolbar that would open a window with the deck. I think I can create the deck so that it sends 40 cards at the same time to the Action Deck. I’m unsure if there are any challenges in doing this correctly.

  2. In another module, I’ve already created a way of sending the Action Deck cards to the Discard Deck. I will review this procedure and repeat. I am confident I can do this.

  3. I know I can create a rule(?) in the Action Deck that allows me to select X cards at random. I’m not sure if I can send those cards to a new deck, the Event Deck, if I already have individual cards going to the Discard Deck. How do I resolve this?

This may require putting and action button on the Event Deck to trigger the selection of X cards-- or too complicated?

  1. Is it possible to draw random cards from the Discard Deck? Can I make it something I can right-click to reveal in a menu?

  2. If I can figure out #1, there shouldn’t be any problem sending the remaining 40 cards from the Card Pool to the Action Deck.

  3. This should also be straightforward. Instead of sending them back to the Action Deck (as in my other module), it should be possible to designate the Card Pool instead.

Thank you for your ideas! I’m happy to provide progress reports.

An Update:

  1. I’ve created the Card Pool with 80 cards and it looks like I’ve been able to set it up so that I can send 40 cards at a time to the Action Deck.

  2. It’s possible to draw 1 card at a time, face up, and move it to the Discard Deck.

  3. I haven’t figured out how to send X cards from the Action Deck to the Event Deck, face down. Do I add a property to the original 80 cards? Do I create an event button that triggers the action? This is the next thing I’d like to figure out…

Every card needs a Return to Deck trait for every deck they could possibly be sent to. Make sure this trait has no Menu Command entry (i.e., it will listen for the keystroke but this command won’t appear on a right-click).

Then you need a bunch of Global Key Commands. How many you need depends in part on this snippet:

However many different values of X exist, that’s how many different GKCs you’ll need. Every GKC has an option to “Apply to this number of pieces in a deck”. So if there’s something that can cause 3 cards to come off your deck at once, you’ll need a GKC configured for that. I would strongly recommend using named keystrokes so you don’t wind up in CTRL-ALT key combo hell trying to keep everything straight in your mind. Once all your GKCs exist, you can bind them to Action Buttons that live on the board, or are put into a menu in the toolbar.

One place you could look for the rough outlines of the approach is the Pax Porfiriana module, where I put in a set of GKCs to speed construction of the draw deck (there are 4 special cards that have be shuffled in to 4 of the 6 piles that the standard cards get separated into when building the deck).

Thank you for this.

I’ll take a look at the module and the creation of GKCs for the varying number of cards needed (from 1-10).

Here’s where I am on my Action #3:

Following Joel’s suggestion, I’ve put 3 Send to Location traits on my Card Prototype to cover the 3 locations these cards might go to-- Action Deck, Discard Deck and Event Deck.

On the topic of the 10 GKCs (for the 10 different # of cards that could be drawn), I have a question about where to put them. Do I assign the GKC to the Action Deck, where they will be drawn from or a general GKC?

I’m going to try the GKC Deck option first.

Then I will create some Action Buttons and test…

I think I found an easier answer!

I setup the Event deck as following: multiple=false, face down=always, new cards face up=true, re-shuffle=never, option to send cards back to the Action deck.

This setup means that the cards moved from the Action Deck to the Event Deck stay face down. I can move as many as I need and then reveal them face up to the Discard Deck one at a time.

On point #4, I’ve decided to take the path of least resistance regarding drawing a random card from the Discard Deck.

I’ve added a d6 to the toolbar. I’ll use the roll to select a random card from the top of the Discard Deck.

Points #5 and 6 already work.

Thank you for your help!

From what I can see, you should use reshuffle always, not never.
This does not mean the deck is rebuilt, but that each time a card is drawn, it is random.
Plus if you undo the last move after a card is drawn, and draw again, there’s a very little it’s the same one.

Then a Deck Global Key Command may be associated with 40 cards to be drawn, with a fixed number of cards.
Its Global Command is one of your cards Prototype Trait.

The triggered action this GC acts on will be a Send to Location.
As you want the cards to be seen and discarded 1 by 1, I would use a specific map to show all the cards … probably stacked.
The stack would be defined with no vertical offset, and an horizontal offset of the width of the card.
So you see all of them.
You can then preempt any action on that map (or only to the owner, if you prefer), and then discard all of them at once.
40 cards is a lot to show on 1 single row … maybe you can build a grid, but that might become complex.
I would probably code the original GK to trigger 4 actions, 1 for 10 cards, sent to a defined row on that secondary map.

If you’re curious about multiple decks, maps, action/no action, based on owner/not owner … you can drop an eye to Module:Terraforming_Mars; There are plenty of prototypes there and GKC to play with.
The proto are all defined at the end, making it easier when you want to reedit them all :slight_smile:

Thank you for the input! I’ll have to check out the work you’ve done.

I’m still wondering what you mean by : selection should happen at the same time … then card are revealed 1 by 1.
What do you want ?

  • An action to be clicked to flip the card that was drawed face down ?
  • A delay of 1s between each card ?
    Then you say you want the cards to be sent to discard ? Automaticaly ? For all cards ? Should it execute actions, or do you want a player to be able to prevent that card from behind discarded ?
    It might be more explicit if you told us what you want to do, or why you want these cards to be drawed, displayed, then discarded. Where is the interaction here ?

Let’s see if I can help.

In a physical game, you flip the cards from the Action Deck to the Discard Deck one at a time. Easy to emulate.

From time to time, an Event is triggered based on the card from the Action Deck. In the physical game, you’d count out X number of cards and hold them face down in your hand (or in a separate pile). You would then turn them over one at a time as if they were a second Action Deck. I think I found a way to do this without GKCs.

It’s all about how I set up the Event Deck. If the default deck is for the cards to be face down, whenever I count X number of cards into the Event Deck, they will be face down and I can turn them over one by one to the Discard Deck (which is by default, face up). An easy workaround that I’m happy with.