From 08f41aaeae5051837273fcdd3ab79b65aa4fb04a Mon Sep 17 00:00:00 2001 From: Hanmac Date: Mon, 1 Aug 2016 08:04:49 +0000 Subject: [PATCH] Card: add getAlternateStateName, which can be used to transform something in its alternate state --- .../src/main/java/forge/game/card/Card.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 198f3882e5b..ae9f80de96d 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -309,31 +309,39 @@ public class Card extends GameEntity implements Comparable { public CardState getCurrentState() { return currentState; } - public CardState getAlternateState() { + + public CardStateName getAlternateStateName() { if (hasAlternateState()) { if (isSplitCard()) { if (currentStateName == CardStateName.RightSplit) { - return states.get(CardStateName.LeftSplit); + return CardStateName.LeftSplit; } else { - return states.get(CardStateName.RightSplit); + return CardStateName.RightSplit; } } else if (isFlipCard() && currentStateName != CardStateName.Flipped) { - return states.get(CardStateName.Flipped); + return CardStateName.Flipped; } else if (isDoubleFaced() && currentStateName != CardStateName.Transformed) { - return states.get(CardStateName.Transformed); + return CardStateName.Transformed; } else if (this.isMeldable() && currentStateName != CardStateName.Meld) { - return states.get(CardStateName.Meld); + return CardStateName.Meld; } else { - return states.get(CardStateName.Original); + return CardStateName.Original; } } else if (isFaceDown()) { - return states.get(CardStateName.Original); + return CardStateName.Original; + } + return null; + } + + public CardState getAlternateState() { + if (hasAlternateState() || isFaceDown()) { + return states.get(getAlternateStateName()); } return null; }