Cockatrice / Cockatrice

A cross-platform virtual tabletop for multiplayer card games
https://cockatrice.github.io
GNU General Public License v2.0
1.54k stars 449 forks source link

Annotations for cards in hand #2568

Closed EntropiaFox closed 4 years ago

EntropiaFox commented 7 years ago

OS: Windows 10

Cockatrice version: ef7670a (2017-03-31)


I've been wondering how feasible it would be to implement annotations to cards in hand. Here's a little bit of context: currently I'm working on making a conversion of Shadowverse for Cockatrice. I've already gotten a card database and it'd seem like most things can be kept track of, except for one: spellboosts.

In this game, one of the possible factions (Runecraft) has as their unique ability to boost the rest of their cards in hand whenever you play a spell. These boosts improve such cards in some perceptible way: reducing their cost, increasing their effectiveness or attributes. Of course, the original game keeps track of this automatically, but one possible way to do so in Cockatrice is to simply allow for card annotations in cards you have in hand, visible only for you. Now, I understand this feature doesn't make as much sense for MtG-like games, but it'd be good for completeness sake, and if the underlying work wouldn't be large enough, I could even do it myself.

Daenyth commented 7 years ago

I think this is for the moment infeasible given the current game engine model.

Can you elaborate on what the boosts mean and when they apply? Maybe we can at least come up with a design to enhance the model.

Of course, the original game keeps track of this automatically

I am curious about one thing - is this an online game only? Cockatrice aims to be your digital kitchen tabletop. If the game can't be played physically, it might not align with our roadmap. If it can, I do want to come up with a way to support it, even if implementing that design might not happen for a long time.

EntropiaFox commented 7 years ago

Can you elaborate on what the boosts mean and when they apply? Maybe we can at least come up with a design to enhance the model.

The boosts apply to all cards in hand with a particular trait (Spellboost) whenever a certain type of card (Spell) is played. For every spell, each card in hand gets a Spellboost point, keeping them until said card is played or discarded. Any newly drawn cards start with a Spellboost counter of zero, so if I draw Card B and have card A with 3 spellboosts, then I play a Spell, Card A will have 4 spellboosts and Card B will have one.

I am curious about one thing - is this an online game only?

It is at the moment being played online, although the devs themselves use physical cards for playtesting and I have successfully played it physically as well- Spellboosts are the only mechanic that do not translate well to Cockatrice as everything else can be kept track of with Cockatrice's existing counters and tokens (Shadows for every time a creature is destroyed, evolution points and play points can be represented using Mana, Countdowns can be represented using a custom counter attached to a card, and evolution can be managed using the <related> property, so the evolution card is attached to the original card. Likewise, any cards that bring other cards into play may also be linked using <related>) and even more complex mechanics like the Apocalypse deck that replaces your current deck whenever you summon Prince of Darkness can be achieved through the use of the sideboard.

Daenyth commented 7 years ago

That mechanic sounds like a nightmare to manage on paper without cheating or accidental confusion.

I'll think it over and see if there's a reasonable way to approach this

EntropiaFox commented 7 years ago

Yeah, I suppose some amount of implicit trust is needed for that particular mechanic. A compromise I managed to achieve was to "play" the spellboosted cards face down and give them counters. It's not ideal, as my opponent knows I have spellboosted cards, but at the very least they don't know which cards are they until I choose to actually play them.

A more generalized version of such a feature is to simply allow cards in hand to have counters and annotations assigned as if they were in play, letting them to "carry over" when shown.

Daenyth commented 7 years ago

Yes, I think that's the way to handle it. It's awkward because you don't really get a view of your opponent's hand - positioning is meaningless etc

On Wed, Apr 5, 2017 at 12:32 PM EntropiaFox notifications@github.com wrote:

Yeah, I suppose some amount of implicit trust is needed for that particular mechanic. A compromise I managed to achieve was to play the spellboosted cards face down and give them counters. It's not ideal, as my opponent knows I have spellboosted cards, but at the very least they don't know which cards are they until I choose to actually play them.

A more generalized version of such a feature is to simply allow cards in hand to have counters and annotations assigned as if they were in play, letting them to "carry over" when shown.

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/Cockatrice/Cockatrice/issues/2568#issuecomment-291918955, or mute the thread https://github.com/notifications/unsubscribe-auth/AAA5NLZSY_peKNhnXUJ3zZVEKxXbVp3mks5rs8IHgaJpZM4MzwKT .

ZeldaZach commented 4 years ago

Kinda Dupe of #3278