Cardshifter / Cardshifter

A flexible and highly moddable Trading Card Game
Apache License 2.0
71 stars 19 forks source link

Select cards in hand at beginning of game #159

Open Phrancis opened 9 years ago

Phrancis commented 9 years ago

This would be a feature that could potentially replace the randomness of mulligan with something more strategic and interesting. I see it as a 2-part feature request:

  1. From the lobby, instead of (or in addition to) selecting a Game Type, the inviting player would choose a number of cards (between 0-5) each player can choose into their hand when the game begins.
  2. After loading a deck, before the game begins, the deck would be displayed on a screen letting the player choose the number of cards decided to be allowed into their hand. Then the game begins, filling the remainder of the cards in hand at random (totaling to 5 cards in hand).

Related: In chatOn Q&A

Zomis commented 9 years ago

If/When this is implemented, I feel that it needs to be coded in a flexible way. We still want the game moddable, right? And we don't want to implement 100 different variants of this (at least not I). So I feel that a "one code fits all" solution is desirable here.

Phrancis commented 9 years ago

I can relate to the sentiment, however I'm not exactly sure how this could be applied, in practical terms. Do you have any suggestions?

One thought I had was that, perhaps in the lobby screen, a player selects which mod they want to play (of which there most likely will be only one, at least for the foreseeable future) which then brings up any rules specific to that mod, so it would mostly be a matter of enabling/disabling certain features for mods. Does that make any sense?

Zomis commented 9 years ago

Yes, that makes sense, and is how it would have to be done. We would then have to make generic code and a generic GUI form for different kinds of settings, such as IntSetting, BooleanSetting, etc. These settings should have a name and a range limit for allowed values (0 - 5 for example), and then in the GUI they are displayed with their name and a GUI component for adjusting them, such as checkbox or number spinner.

As for inside the game, that could either be part of the ConfigComponent for players (as the Deck - DeckConfig - is right now), which means that we would have to make a GUI for that as well (or find a way to re-use the Deck editor). Or, it could be chosen as the first action of playing the actual game, as we need to support the Magic: The Gathering ability "Scry" in the future, where you see a number of cards and choose which ones to put on your hand and which ones to put in your deck.

Either way, I can only say that it will take quite a bit of time to add this, especially if it is to be done 'right'.