News:

A forum for users of LackeyCCG

Main Menu

New card back functionality

Started by Trevor, August 29, 2011, 06:14:29 AM

Previous topic - Next topic

Trevor

I've been reworking how alternate card backs are handled.

There are really 3 ways alternate card backs are used.

1. Cards with unique card backs (e.g., hero cards in wow)
2. Cards with a secondary card back (e.g., vtes crypt cards, or munchkin cards)
3. Cards with an alternate card back but special rules when you can see the alternate side. (e.g., the new magic cards in innistrad)

When I added alternate card backs initially, I was only thinking about the case where you had truly unique card backs (type 1) instead of an alternate kind of card back (type 2). So as a result, I assumed that if you could "see" the back of a card, you should know what that card is (i.e., it's text would be visible), but that would give you more info than you should have with type 2. As a quick fix, I treated everything as if it were type 2.

To make a long story short, I am giving plugin makers a lot more control over exactly how card backs are visible, and when they should be visible. I'll give more specifics later.

Cyrus

Are you essentially going to make it so that cards can have an alternate face as well? If you did that, the new magic cards could be programmed to work even better than they will in real life. They'd always have the same mtg back, but would have 2 switchable faces that could be changed with a right click function or possibly hotkey.

Trevor

There's a lot of ways different CCGs use and handle a different card back, and I am going to try to accommodate all of them. Rather than 2 fronts, I think it's more appropriate to say that the card has 2 different sides, but the custom back isn't visible unless it is on the table.

innuendo

i know on the table covers 90% of plays, but what about if the card is revealed in general?  like in hand or while searching the deck?

Trevor

Quote from: innuendo on August 30, 2011, 08:14:56 PM
i know on the table covers 90% of plays, but what about if the card is revealed in general?  like in hand or while searching the deck?
It depends what you mean by "revealed". The way it works right now is you see the alternate card back always when you would see the back of the card, but you don't get any more information. In some kinds of games, like wow hero cards for example, you should see more info, such as the card's name.

Essentially, I want to compile a list of all ways existing CCGs (or CCGs that might come along) use alternate card backs, and I want to make sure I support them all.

Crovack

This is probably beyond what's reasonable, but it is worth pointing out that in M:tG new "double sided" cards could still need to have the default magic back displayed if they were ever played morphed.  This may not be a scenario that needs to be supported, but it felt worth bringing up while you're looking to address it.
An option (off the top of my head) could include allowing cards to have an "alternate face" option.  Cards would by default remain the same, but a card could be flipped between "default face, alternate face, default back" which would mean in terms of the new M:tG set "normal card, transformed card, normal M:tG cardback".
I assume you could set it up to simply reference a cardname2, cardname_b, etc or whatever slight modification was needed to the card and could be put in the same folder.

innuendo

I think alternate face is the simplest way to get this functionality, at least in mtg's case.

I think something where you don't even have to specify it int he setinfo.txt wouldbe nice.

lackey assumes that the card image name specified int he setinfo.txt is face 1, example would be "thisisacard.jpg"
and then if there is a "thisisacard.face2.jpg" than lackey will know the card has two faces.

Not sure lackey can parse the available images that way, but it seems doable and would slide in nicely without having to come up with some fancy new use of the card image coloumn in the setinfo.txt, which is already being asked to do a lot!

Crovack

Quote from: innuendo on August 31, 2011, 12:03:47 PM
I think alternate face is the simplest way to get this functionality, at least in mtg's case.

I think something where you don't even have to specify it int he setinfo.txt wouldbe nice.

lackey assumes that the card image name specified int he setinfo.txt is face 1, example would be "thisisacard.jpg"
and then if there is a "thisisacard.face2.jpg" than lackey will know the card has two faces.

Not sure lackey can parse the available images that way, but it seems doable and would slide in nicely without having to come up with some fancy new use of the card image coloumn in the setinfo.txt, which is already being asked to do a lot!
It shouldn't need to.  He could just have the "Flip to alternate face" option always available, and if you attempt to flip it and there is no "thiscard.face2.jpg", then it simply won't flip.  Easier (I'd imagine) to write a catch in that just checked if it was there when you tried to flip it, than to scan your system for images on every single card you use.

Picks-at-Flies

The trouble is we are actually talking about two different things that need to be handled by the same code.

a) Alternate card backs (Rage, VTES, LoFR, Munchkin)
# Applies at all times in all zones
# Preview typically visible to owner and not opponents.
# Preview only shows card face when visible (not the back).

b) Two sided/flip cards (Magic and Rage, again)
# I think Trevor's idea of the flip side only being visible in play is a good one.  The Vampire board game is the only exception I can think of where that would be a problem, and that's an alternate card back anyway.
# Visible to all players all the time
# Preview shows current side.

I suspect for most games you could simply toggle between the two as appropriate - I think only Rage uses both.  A sneaky way around that would be to have a <alternate card back> tag in plugininfo, and Lackey behave differently for cards using that as the flip-side. 

I found a work-around for Rage (under the current system which is effectively the second option above), which is to make the more common 'sept' cards have the alternate back, since with very few exceptions they are always played face up.

NotDomo

Hopefully this isn't necro-ing a thread I shouldn't, but this seems to be the right one. XD

I'm making a plugin for a CCG with unique card backs where when I play a card (card standing), I should see the front, while the opponent sees the back.

Either an option to have the two players see those different sides or a hotkey to see the card back (separate view for each player) would be appreciated.
On a related note, if my first option is possible, a function to have standing vs. flat on separate cards would be great.

Thank you,
!Domo

Trevor

Quote from: NotDomo on June 21, 2012, 11:35:37 AM
Hopefully this isn't necro-ing a thread I shouldn't, but this seems to be the right one. XD

I'm making a plugin for a CCG with unique card backs where when I play a card (card standing), I should see the front, while the opponent sees the back.

Either an option to have the two players see those different sides or a hotkey to see the card back (separate view for each player) would be appreciated.
On a related note, if my first option is possible, a function to have standing vs. flat on separate cards would be great.

Thank you,
!Domo
I really just through in the ability to have cards stand as a sort of last minute thing. I don't think people really use it and I considered removing it just to simplify things. I haven't tested it much. I suppose how it ought to work is for the same image that would be seen were things to be flat would be seen by all players. This isn't completely realistic because a standing card should be viewed differently depending on what side of the table you are on. If you are reporting this behavior as a bug, it is actually the intended way, despite it not be realistic.

As far as an option to control the standing of individual cards, I suppose that might be a good idea.

NotDomo

I'm not reporting it as a bug per se; It was more like a request for useful features for the CCG I'm implementing. I guess my perception of the functionality is different than your original reason for implementing it.

www.becomemagi.com if you're interested in seeing where I'm coming from. =)