Some minor changes to SplitCard.

This commit is contained in:
LevelX2 2013-05-03 08:38:11 +02:00
parent e904f9e6ff
commit 8bc21a7c1c

View file

@ -51,7 +51,7 @@ import mage.watchers.Watcher;
public abstract class SplitCard<T extends SplitCard<T>> extends CardImpl<T> { public abstract class SplitCard<T extends SplitCard<T>> extends CardImpl<T> {
public enum ActiveCardHalf { public enum ActiveCardHalf {
NONE, LEFT, RIGHT NONE, LEFT, RIGHT, BOTH
} }
private Card leftHalfCard; private Card leftHalfCard;
private Card rightHalfCard; private Card rightHalfCard;
@ -67,8 +67,8 @@ public abstract class SplitCard<T extends SplitCard<T>> extends CardImpl<T> {
public SplitCard(SplitCard card) { public SplitCard(SplitCard card) {
super(card); super(card);
this.leftHalfCard = card.leftHalfCard; this.leftHalfCard = card.leftHalfCard.copy();
this.rightHalfCard = card.rightHalfCard; this.rightHalfCard = card.rightHalfCard.copy();
this.activeCardHalf = card.activeCardHalf; this.activeCardHalf = card.activeCardHalf;
} }
@ -104,16 +104,19 @@ public abstract class SplitCard<T extends SplitCard<T>> extends CardImpl<T> {
@Override @Override
public boolean cast(Game game, Constants.Zone fromZone, SpellAbility ability, UUID controllerId) { public boolean cast(Game game, Constants.Zone fromZone, SpellAbility ability, UUID controllerId) {
if (super.cast(game, fromZone, ability, controllerId)) { if (this.getAbilities().contains(ability)) {
if (leftHalfCard.getAbilities().contains(ability)) { activeCardHalf = ActiveCardHalf.BOTH;
} else if (leftHalfCard.getAbilities().contains(ability)) {
activeCardHalf = ActiveCardHalf.LEFT; activeCardHalf = ActiveCardHalf.LEFT;
} else if (rightHalfCard.getAbilities().contains(ability)) { } else if (rightHalfCard.getAbilities().contains(ability)) {
activeCardHalf = ActiveCardHalf.RIGHT; activeCardHalf = ActiveCardHalf.RIGHT;
} else { } else {
activeCardHalf = ActiveCardHalf.NONE; activeCardHalf = ActiveCardHalf.NONE;
} }
if (super.cast(game, fromZone, ability, controllerId)) {
return true; return true;
} }
activeCardHalf = ActiveCardHalf.NONE;
return false; return false;
} }