mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
Refactor so mobile game can determine whether card can be flipped
This commit is contained in:
@@ -499,4 +499,48 @@ public class CardDetailUtil {
|
||||
}
|
||||
return area.toString();
|
||||
}
|
||||
|
||||
public static boolean isCardFlippable(Card card) {
|
||||
return card.isDoubleFaced() || card.isFlipCard() || card.isFaceDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* Card characteristic state machine.
|
||||
* <p>
|
||||
* Given a card and a state in terms of {@code CardCharacteristicName} this
|
||||
* will determine whether there is a valid alternate {@code CardCharacteristicName}
|
||||
* state for that card.
|
||||
*
|
||||
* @param card the {@code Card}
|
||||
* @param currentState not necessarily {@code card.getCurState()}
|
||||
* @return the alternate {@code CardCharacteristicName} state or default if not applicable
|
||||
*/
|
||||
public static CardCharacteristicName getAlternateState(final Card card, CardCharacteristicName currentState) {
|
||||
// Default. Most cards will only ever have an "Original" state represented by a single image.
|
||||
CardCharacteristicName alternateState = CardCharacteristicName.Original;
|
||||
|
||||
if (card.isDoubleFaced()) {
|
||||
if (currentState == CardCharacteristicName.Original) {
|
||||
alternateState = CardCharacteristicName.Transformed;
|
||||
}
|
||||
}
|
||||
else if (card.isFlipCard()) {
|
||||
if (currentState == CardCharacteristicName.Original) {
|
||||
alternateState = CardCharacteristicName.Flipped;
|
||||
}
|
||||
}
|
||||
else if (card.isFaceDown()) {
|
||||
if (currentState == CardCharacteristicName.Original) {
|
||||
alternateState = CardCharacteristicName.FaceDown;
|
||||
}
|
||||
else if (GuiBase.getInterface().mayShowCard(card)) {
|
||||
alternateState = CardCharacteristicName.Original;
|
||||
}
|
||||
else {
|
||||
alternateState = currentState;
|
||||
}
|
||||
}
|
||||
|
||||
return alternateState;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user