forked from External/mage
Test framework: added support to put mdf cards on battlefield by cheats or unit tests;
This commit is contained in:
parent
be77ecea84
commit
4b9de96a6b
7 changed files with 111 additions and 49 deletions
|
|
@ -8,15 +8,20 @@ import mage.abilities.costs.mana.ManaCosts;
|
|||
import mage.abilities.keyword.TransformAbility;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.LevelerCard;
|
||||
import mage.cards.ModalDoubleFacesCard;
|
||||
import mage.cards.SplitCard;
|
||||
import mage.constants.SpellAbilityType;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.ZoneChangeEvent;
|
||||
import mage.util.CardUtil;
|
||||
|
||||
import javax.annotation.processing.SupportedSourceVersion;
|
||||
import javax.lang.model.SourceVersion;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Static permanent on the battlefield. There are possible multiple permanents per one card,
|
||||
* so be carefull for targets (ids are different) and ZCC (zcc is static for permanent).
|
||||
*
|
||||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
@SupportedSourceVersion(SourceVersion.RELEASE_8)
|
||||
|
|
@ -31,6 +36,22 @@ public class PermanentCard extends PermanentImpl {
|
|||
public PermanentCard(Card card, UUID controllerId, Game game) {
|
||||
super(card.getId(), card.getOwnerId(), controllerId, card.getName());
|
||||
|
||||
// usage check: you must put to play only real card's part
|
||||
// if you use it in test code then call CardUtil.getDefaultCardSideForBattlefield for default side
|
||||
// it's a basic check and still allows to create permanent from instant or sorcery
|
||||
boolean goodForBattlefield = true;
|
||||
if (card instanceof ModalDoubleFacesCard) {
|
||||
goodForBattlefield = false;
|
||||
} else if (card instanceof SplitCard) {
|
||||
// fused spells allowed (it uses main card)
|
||||
if (card.getSpellAbility() != null && !card.getSpellAbility().getSpellAbilityType().equals(SpellAbilityType.SPLIT_FUSED)) {
|
||||
goodForBattlefield = false;
|
||||
}
|
||||
}
|
||||
if (!goodForBattlefield) {
|
||||
throw new IllegalArgumentException("ERROR, can't create permanent card from split or mdf: " + card.getName());
|
||||
}
|
||||
|
||||
this.card = card;
|
||||
this.zoneChangeCounter = card.getZoneChangeCounter(game); // local value already set to the raised number
|
||||
init(card, game);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue