mirror of
https://github.com/magefree/mage.git
synced 2026-01-24 04:09:54 -08:00
rename classes (#10383)
This commit is contained in:
parent
d199640fb5
commit
60e488cf05
123 changed files with 356 additions and 378 deletions
|
|
@ -3,7 +3,7 @@ package mage.abilities.effects;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.ActivatedAbility;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.ModalDoubleFacesCard;
|
||||
import mage.cards.ModalDoubleFacedCard;
|
||||
import mage.cards.SplitCard;
|
||||
import mage.constants.*;
|
||||
import mage.game.Game;
|
||||
|
|
@ -94,9 +94,9 @@ public abstract class AsThoughEffectImpl extends ContinuousEffectImpl implements
|
|||
player.setCastSourceIdWithAlternateMana(leftCard.getId(), null, leftCard.getSpellAbility().getCosts());
|
||||
Card rightCard = ((SplitCard) card).getRightHalfCard();
|
||||
player.setCastSourceIdWithAlternateMana(rightCard.getId(), null, rightCard.getSpellAbility().getCosts());
|
||||
} else if (card instanceof ModalDoubleFacesCard) {
|
||||
Card leftCard = ((ModalDoubleFacesCard) card).getLeftHalfCard();
|
||||
Card rightCard = ((ModalDoubleFacesCard) card).getRightHalfCard();
|
||||
} else if (card instanceof ModalDoubleFacedCard) {
|
||||
Card leftCard = ((ModalDoubleFacedCard) card).getLeftHalfCard();
|
||||
Card rightCard = ((ModalDoubleFacedCard) card).getRightHalfCard();
|
||||
// some MDFC's are land. IE: sea gate restoration
|
||||
if (!leftCard.isLand(game)) {
|
||||
player.setCastSourceIdWithAlternateMana(leftCard.getId(), null, leftCard.getSpellAbility().getCosts());
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ import mage.game.stack.Spell;
|
|||
import mage.players.ManaPoolItem;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCardInHand;
|
||||
import mage.util.CardUtil;
|
||||
import mage.util.trace.TraceInfo;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
|
|
@ -541,7 +540,7 @@ public class ContinuousEffects implements Serializable {
|
|||
} else if (!type.needPlayCardAbility() && objectToCheck instanceof AdventureCardSpell) {
|
||||
// adventure spell uses alternative characteristics for spell/stack, all other cases must use main card
|
||||
idToCheck = ((AdventureCardSpell) objectToCheck).getMainCard().getId();
|
||||
} else if (!type.needPlayCardAbility() && objectToCheck instanceof ModalDoubleFacesCardHalf) {
|
||||
} else if (!type.needPlayCardAbility() && objectToCheck instanceof ModalDoubleFacedCardHalf) {
|
||||
// each mdf side uses own characteristics to check for playing, all other cases must use main card
|
||||
// rules:
|
||||
// "If an effect allows you to play a land or cast a spell from among a group of cards,
|
||||
|
|
@ -549,7 +548,7 @@ public class ContinuousEffects implements Serializable {
|
|||
// of that effect. For example, if Sejiri Shelter / Sejiri Glacier is in your graveyard
|
||||
// and an effect allows you to play lands from your graveyard, you could play Sejiri Glacier.
|
||||
// That effect doesn't allow you to cast Sejiri Shelter."
|
||||
idToCheck = ((ModalDoubleFacesCardHalf) objectToCheck).getMainCard().getId();
|
||||
idToCheck = ((ModalDoubleFacedCardHalf) objectToCheck).getMainCard().getId();
|
||||
} else {
|
||||
idToCheck = objectId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import mage.abilities.costs.AlternativeCostSourceAbility;
|
|||
import mage.abilities.effects.ContinuousEffectImpl;
|
||||
import mage.cards.AdventureCardSpell;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.ModalDoubleFacesCardHalf;
|
||||
import mage.cards.ModalDoubleFacedCardHalf;
|
||||
import mage.cards.SplitCardHalf;
|
||||
import mage.constants.*;
|
||||
import mage.filter.FilterCard;
|
||||
|
|
@ -89,7 +89,7 @@ enum IsBeingCastFromHandCondition implements Condition {
|
|||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
MageObject object = game.getObject(source);
|
||||
if (object instanceof SplitCardHalf || object instanceof AdventureCardSpell || object instanceof ModalDoubleFacesCardHalf) {
|
||||
if (object instanceof SplitCardHalf || object instanceof AdventureCardSpell || object instanceof ModalDoubleFacedCardHalf) {
|
||||
UUID mainCardId = ((Card) object).getMainCard().getId();
|
||||
object = game.getObject(mainCardId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import mage.abilities.costs.Costs;
|
|||
import mage.abilities.effects.ContinuousEffect;
|
||||
import mage.abilities.effects.ReplacementEffectImpl;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.ModalDoubleFacesCard;
|
||||
import mage.cards.ModalDoubleFacedCard;
|
||||
import mage.cards.SplitCard;
|
||||
import mage.constants.*;
|
||||
import mage.game.Game;
|
||||
|
|
@ -75,11 +75,11 @@ public class FlashbackAbility extends SpellAbility {
|
|||
} else if (((SplitCard) card).getRightHalfCard().getName().equals(abilityName)) {
|
||||
return ((SplitCard) card).getRightHalfCard().getSpellAbility().canActivate(playerId, game);
|
||||
}
|
||||
} else if (card instanceof ModalDoubleFacesCard) {
|
||||
if (((ModalDoubleFacesCard) card).getLeftHalfCard().getName().equals(abilityName)) {
|
||||
return ((ModalDoubleFacesCard) card).getLeftHalfCard().getSpellAbility().canActivate(playerId, game);
|
||||
} else if (((ModalDoubleFacesCard) card).getRightHalfCard().getName().equals(abilityName)) {
|
||||
return ((ModalDoubleFacesCard) card).getRightHalfCard().getSpellAbility().canActivate(playerId, game);
|
||||
} else if (card instanceof ModalDoubleFacedCard) {
|
||||
if (((ModalDoubleFacedCard) card).getLeftHalfCard().getName().equals(abilityName)) {
|
||||
return ((ModalDoubleFacedCard) card).getLeftHalfCard().getSpellAbility().canActivate(playerId, game);
|
||||
} else if (((ModalDoubleFacedCard) card).getRightHalfCard().getName().equals(abilityName)) {
|
||||
return ((ModalDoubleFacedCard) card).getRightHalfCard().getSpellAbility().canActivate(playerId, game);
|
||||
}
|
||||
}
|
||||
return card.getSpellAbility().canActivate(playerId, game);
|
||||
|
|
@ -100,11 +100,11 @@ public class FlashbackAbility extends SpellAbility {
|
|||
} else if (((SplitCard) card).getRightHalfCard().getName().equals(abilityName)) {
|
||||
spellAbilityCopy = ((SplitCard) card).getRightHalfCard().getSpellAbility().copy();
|
||||
}
|
||||
} else if (card instanceof ModalDoubleFacesCard) {
|
||||
if (((ModalDoubleFacesCard) card).getLeftHalfCard().getName().equals(abilityName)) {
|
||||
spellAbilityCopy = ((ModalDoubleFacesCard) card).getLeftHalfCard().getSpellAbility().copy();
|
||||
} else if (((ModalDoubleFacesCard) card).getRightHalfCard().getName().equals(abilityName)) {
|
||||
spellAbilityCopy = ((ModalDoubleFacesCard) card).getRightHalfCard().getSpellAbility().copy();
|
||||
} else if (card instanceof ModalDoubleFacedCard) {
|
||||
if (((ModalDoubleFacedCard) card).getLeftHalfCard().getName().equals(abilityName)) {
|
||||
spellAbilityCopy = ((ModalDoubleFacedCard) card).getLeftHalfCard().getSpellAbility().copy();
|
||||
} else if (((ModalDoubleFacedCard) card).getRightHalfCard().getName().equals(abilityName)) {
|
||||
spellAbilityCopy = ((ModalDoubleFacedCard) card).getRightHalfCard().getSpellAbility().copy();
|
||||
}
|
||||
} else {
|
||||
spellAbilityCopy = card.getSpellAbility().copy();
|
||||
|
|
|
|||
|
|
@ -232,9 +232,9 @@ public class ForetellAbility extends SpecialAction {
|
|||
ability.setAbilityName(rightHalfCard.getName());
|
||||
game.getState().addOtherAbility(rightHalfCard, ability);
|
||||
}
|
||||
} else if (card instanceof ModalDoubleFacesCard) {
|
||||
} else if (card instanceof ModalDoubleFacedCard) {
|
||||
if (foretellCost != null) {
|
||||
ModalDoubleFacesCardHalf leftHalfCard = ((ModalDoubleFacesCard) card).getLeftHalfCard();
|
||||
ModalDoubleFacedCardHalf leftHalfCard = ((ModalDoubleFacedCard) card).getLeftHalfCard();
|
||||
// some MDFC's are land IE: sea gate restoration
|
||||
if (!leftHalfCard.isLand(game)) {
|
||||
ForetellCostAbility ability = new ForetellCostAbility(foretellCost);
|
||||
|
|
@ -246,7 +246,7 @@ public class ForetellAbility extends SpecialAction {
|
|||
}
|
||||
}
|
||||
if (foretellSplitCost != null) {
|
||||
ModalDoubleFacesCardHalf rightHalfCard = ((ModalDoubleFacesCard) card).getRightHalfCard();
|
||||
ModalDoubleFacedCardHalf rightHalfCard = ((ModalDoubleFacedCard) card).getRightHalfCard();
|
||||
// some MDFC's are land IE: sea gate restoration
|
||||
if (!rightHalfCard.isLand(game)) {
|
||||
ForetellCostAbility ability = new ForetellCostAbility(foretellSplitCost);
|
||||
|
|
@ -354,11 +354,11 @@ public class ForetellAbility extends SpecialAction {
|
|||
} else if (((SplitCard) card).getRightHalfCard().getName().equals(abilityName)) {
|
||||
return ((SplitCard) card).getRightHalfCard().getSpellAbility().canActivate(playerId, game);
|
||||
}
|
||||
} else if (card instanceof ModalDoubleFacesCard) {
|
||||
if (((ModalDoubleFacesCard) card).getLeftHalfCard().getName().equals(abilityName)) {
|
||||
return ((ModalDoubleFacesCard) card).getLeftHalfCard().getSpellAbility().canActivate(playerId, game);
|
||||
} else if (((ModalDoubleFacesCard) card).getRightHalfCard().getName().equals(abilityName)) {
|
||||
return ((ModalDoubleFacesCard) card).getRightHalfCard().getSpellAbility().canActivate(playerId, game);
|
||||
} else if (card instanceof ModalDoubleFacedCard) {
|
||||
if (((ModalDoubleFacedCard) card).getLeftHalfCard().getName().equals(abilityName)) {
|
||||
return ((ModalDoubleFacedCard) card).getLeftHalfCard().getSpellAbility().canActivate(playerId, game);
|
||||
} else if (((ModalDoubleFacedCard) card).getRightHalfCard().getName().equals(abilityName)) {
|
||||
return ((ModalDoubleFacedCard) card).getRightHalfCard().getSpellAbility().canActivate(playerId, game);
|
||||
}
|
||||
} else if (card instanceof AdventureCard) {
|
||||
if (card.getMainCard().getName().equals(abilityName)) {
|
||||
|
|
@ -385,11 +385,11 @@ public class ForetellAbility extends SpecialAction {
|
|||
} else if (((SplitCard) card).getRightHalfCard().getName().equals(abilityName)) {
|
||||
spellAbilityCopy = ((SplitCard) card).getRightHalfCard().getSpellAbility().copy();
|
||||
}
|
||||
} else if (card instanceof ModalDoubleFacesCard) {
|
||||
if (((ModalDoubleFacesCard) card).getLeftHalfCard().getName().equals(abilityName)) {
|
||||
spellAbilityCopy = ((ModalDoubleFacesCard) card).getLeftHalfCard().getSpellAbility().copy();
|
||||
} else if (((ModalDoubleFacesCard) card).getRightHalfCard().getName().equals(abilityName)) {
|
||||
spellAbilityCopy = ((ModalDoubleFacesCard) card).getRightHalfCard().getSpellAbility().copy();
|
||||
} else if (card instanceof ModalDoubleFacedCard) {
|
||||
if (((ModalDoubleFacedCard) card).getLeftHalfCard().getName().equals(abilityName)) {
|
||||
spellAbilityCopy = ((ModalDoubleFacedCard) card).getLeftHalfCard().getSpellAbility().copy();
|
||||
} else if (((ModalDoubleFacedCard) card).getRightHalfCard().getName().equals(abilityName)) {
|
||||
spellAbilityCopy = ((ModalDoubleFacedCard) card).getRightHalfCard().getSpellAbility().copy();
|
||||
}
|
||||
} else if (card instanceof AdventureCard) {
|
||||
if (card.getMainCard().getName().equals(abilityName)) {
|
||||
|
|
|
|||
|
|
@ -477,10 +477,10 @@ public abstract class CardImpl extends MageObjectImpl implements Card {
|
|||
}
|
||||
|
||||
// handle half of Modal Double Faces Cards on stack
|
||||
if (stackObject == null && (this instanceof ModalDoubleFacesCard)) {
|
||||
stackObject = game.getStack().getSpell(((ModalDoubleFacesCard) this).getLeftHalfCard().getId(), false);
|
||||
if (stackObject == null && (this instanceof ModalDoubleFacedCard)) {
|
||||
stackObject = game.getStack().getSpell(((ModalDoubleFacedCard) this).getLeftHalfCard().getId(), false);
|
||||
if (stackObject == null) {
|
||||
stackObject = game.getStack().getSpell(((ModalDoubleFacesCard) this).getRightHalfCard().getId(), false);
|
||||
stackObject = game.getStack().getSpell(((ModalDoubleFacedCard) this).getRightHalfCard().getId(), false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,12 +21,12 @@ import java.util.UUID;
|
|||
/**
|
||||
* @author JayDi85
|
||||
*/
|
||||
public abstract class ModalDoubleFacesCard extends CardImpl implements CardWithHalves {
|
||||
public abstract class ModalDoubleFacedCard extends CardImpl implements CardWithHalves {
|
||||
|
||||
protected Card leftHalfCard; // main card in all zone
|
||||
protected Card rightHalfCard; // second side card, can be only in stack and battlefield zones
|
||||
|
||||
public ModalDoubleFacesCard(
|
||||
public ModalDoubleFacedCard(
|
||||
UUID ownerId, CardSetInfo setInfo,
|
||||
CardType[] typesLeft, SubType[] subTypesLeft, String costsLeft,
|
||||
String secondSideName,
|
||||
|
|
@ -40,7 +40,7 @@ public abstract class ModalDoubleFacesCard extends CardImpl implements CardWithH
|
|||
);
|
||||
}
|
||||
|
||||
public ModalDoubleFacesCard(
|
||||
public ModalDoubleFacedCard(
|
||||
UUID ownerId, CardSetInfo setInfo,
|
||||
SuperType[] superTypesLeft, CardType[] typesLeft, SubType[] subTypesLeft, String costsLeft,
|
||||
String secondSideName,
|
||||
|
|
@ -48,35 +48,35 @@ public abstract class ModalDoubleFacesCard extends CardImpl implements CardWithH
|
|||
) {
|
||||
super(ownerId, setInfo, typesLeft, costsLeft + costsRight, SpellAbilityType.MODAL);
|
||||
// main card name must be same as left side
|
||||
leftHalfCard = new ModalDoubleFacesCardHalfImpl(
|
||||
leftHalfCard = new ModalDoubleFacedCardHalfImpl(
|
||||
this.getOwnerId(), setInfo.copy(),
|
||||
superTypesLeft, typesLeft, subTypesLeft, costsLeft,
|
||||
this, SpellAbilityType.MODAL_LEFT
|
||||
);
|
||||
rightHalfCard = new ModalDoubleFacesCardHalfImpl(
|
||||
rightHalfCard = new ModalDoubleFacedCardHalfImpl(
|
||||
this.getOwnerId(), new CardSetInfo(secondSideName, setInfo),
|
||||
superTypesRight, typesRight, subTypesRight, costsRight,
|
||||
this, SpellAbilityType.MODAL_RIGHT
|
||||
);
|
||||
}
|
||||
|
||||
public ModalDoubleFacesCard(ModalDoubleFacesCard card) {
|
||||
public ModalDoubleFacedCard(ModalDoubleFacedCard card) {
|
||||
super(card);
|
||||
this.leftHalfCard = card.getLeftHalfCard().copy();
|
||||
((ModalDoubleFacesCardHalf) leftHalfCard).setParentCard(this);
|
||||
((ModalDoubleFacedCardHalf) leftHalfCard).setParentCard(this);
|
||||
this.rightHalfCard = card.rightHalfCard.copy();
|
||||
((ModalDoubleFacesCardHalf) rightHalfCard).setParentCard(this);
|
||||
((ModalDoubleFacedCardHalf) rightHalfCard).setParentCard(this);
|
||||
}
|
||||
|
||||
public ModalDoubleFacesCardHalf getLeftHalfCard() {
|
||||
return (ModalDoubleFacesCardHalf) leftHalfCard;
|
||||
public ModalDoubleFacedCardHalf getLeftHalfCard() {
|
||||
return (ModalDoubleFacedCardHalf) leftHalfCard;
|
||||
}
|
||||
|
||||
public ModalDoubleFacesCardHalf getRightHalfCard() {
|
||||
return (ModalDoubleFacesCardHalf) rightHalfCard;
|
||||
public ModalDoubleFacedCardHalf getRightHalfCard() {
|
||||
return (ModalDoubleFacedCardHalf) rightHalfCard;
|
||||
}
|
||||
|
||||
public void setParts(ModalDoubleFacesCardHalf leftHalfCard, ModalDoubleFacesCardHalf rightHalfCard) {
|
||||
public void setParts(ModalDoubleFacedCardHalf leftHalfCard, ModalDoubleFacedCardHalf rightHalfCard) {
|
||||
// for card copy only - set new parts
|
||||
this.leftHalfCard = leftHalfCard;
|
||||
leftHalfCard.setParentCard(this);
|
||||
|
|
@ -5,10 +5,10 @@ import mage.MageInt;
|
|||
/**
|
||||
* @author JayDi85
|
||||
*/
|
||||
public interface ModalDoubleFacesCardHalf extends SubCard<ModalDoubleFacesCard> {
|
||||
public interface ModalDoubleFacedCardHalf extends SubCard<ModalDoubleFacedCard> {
|
||||
|
||||
@Override
|
||||
ModalDoubleFacesCardHalf copy();
|
||||
ModalDoubleFacedCardHalf copy();
|
||||
|
||||
void setPT(int power, int toughness);
|
||||
|
||||
|
|
@ -12,14 +12,14 @@ import java.util.UUID;
|
|||
/**
|
||||
* @author JayDi85
|
||||
*/
|
||||
public class ModalDoubleFacesCardHalfImpl extends CardImpl implements ModalDoubleFacesCardHalf {
|
||||
public class ModalDoubleFacedCardHalfImpl extends CardImpl implements ModalDoubleFacedCardHalf {
|
||||
|
||||
ModalDoubleFacesCard parentCard;
|
||||
ModalDoubleFacedCard parentCard;
|
||||
|
||||
public ModalDoubleFacesCardHalfImpl(
|
||||
public ModalDoubleFacedCardHalfImpl(
|
||||
UUID ownerId, CardSetInfo setInfo,
|
||||
SuperType[] cardSuperTypes, CardType[] cardTypes, SubType[] cardSubTypes,
|
||||
String costs, ModalDoubleFacesCard parentCard, SpellAbilityType spellAbilityType
|
||||
String costs, ModalDoubleFacedCard parentCard, SpellAbilityType spellAbilityType
|
||||
) {
|
||||
super(ownerId, setInfo, cardTypes, costs, spellAbilityType);
|
||||
this.supertype.addAll(Arrays.asList(cardSuperTypes));
|
||||
|
|
@ -27,7 +27,7 @@ public class ModalDoubleFacesCardHalfImpl extends CardImpl implements ModalDoubl
|
|||
this.parentCard = parentCard;
|
||||
}
|
||||
|
||||
public ModalDoubleFacesCardHalfImpl(final ModalDoubleFacesCardHalfImpl card) {
|
||||
public ModalDoubleFacedCardHalfImpl(final ModalDoubleFacedCardHalfImpl card) {
|
||||
super(card);
|
||||
this.parentCard = card.parentCard;
|
||||
}
|
||||
|
|
@ -65,7 +65,7 @@ public class ModalDoubleFacesCardHalfImpl extends CardImpl implements ModalDoubl
|
|||
}
|
||||
|
||||
@Override
|
||||
public ModalDoubleFacesCard getMainCard() {
|
||||
public ModalDoubleFacedCard getMainCard() {
|
||||
return parentCard;
|
||||
}
|
||||
|
||||
|
|
@ -77,17 +77,17 @@ public class ModalDoubleFacesCardHalfImpl extends CardImpl implements ModalDoubl
|
|||
}
|
||||
|
||||
@Override
|
||||
public ModalDoubleFacesCardHalfImpl copy() {
|
||||
return new ModalDoubleFacesCardHalfImpl(this);
|
||||
public ModalDoubleFacedCardHalfImpl copy() {
|
||||
return new ModalDoubleFacedCardHalfImpl(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setParentCard(ModalDoubleFacesCard card) {
|
||||
public void setParentCard(ModalDoubleFacedCard card) {
|
||||
this.parentCard = card;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModalDoubleFacesCard getParentCard() {
|
||||
public ModalDoubleFacedCard getParentCard() {
|
||||
return this.parentCard;
|
||||
}
|
||||
|
||||
|
|
@ -5,7 +5,7 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.costs.mana.ManaCost;
|
||||
import mage.abilities.costs.mana.ManaCosts;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.ModalDoubleFacesCard;
|
||||
import mage.cards.ModalDoubleFacedCard;
|
||||
import mage.cards.repository.CardInfo;
|
||||
import mage.cards.repository.CardRepository;
|
||||
import mage.util.CardUtil;
|
||||
|
|
@ -35,7 +35,7 @@ public class MockCard extends CardImpl {
|
|||
protected List<String> manaCostRightStr;
|
||||
protected List<String> manaCostStr;
|
||||
protected String adventureSpellName;
|
||||
protected boolean isModalDoubleFacesCard;
|
||||
protected boolean isModalDoubleFacedCard;
|
||||
protected int manaValue;
|
||||
|
||||
public MockCard(CardInfo card) {
|
||||
|
|
@ -74,11 +74,11 @@ public class MockCard extends CardImpl {
|
|||
this.adventureSpellName = card.getAdventureSpellName();
|
||||
}
|
||||
|
||||
if (card.isModalDoubleFacesCard()) {
|
||||
ModalDoubleFacesCard mdfCard = (ModalDoubleFacesCard) card.getCard();
|
||||
if (card.isModalDoubleFacedCard()) {
|
||||
ModalDoubleFacedCard mdfCard = (ModalDoubleFacedCard) card.getCard();
|
||||
CardInfo mdfSecondSide = new CardInfo(mdfCard.getRightHalfCard());
|
||||
this.secondSideCard = new MockCard(mdfSecondSide);
|
||||
this.isModalDoubleFacesCard = true;
|
||||
this.isModalDoubleFacedCard = true;
|
||||
}
|
||||
|
||||
this.startingLoyalty = CardUtil.convertLoyaltyOrDefense(card.getStartingLoyalty());
|
||||
|
|
@ -99,7 +99,7 @@ public class MockCard extends CardImpl {
|
|||
this.manaCostRightStr = new ArrayList<>(card.manaCostRightStr);
|
||||
this.manaCostStr = new ArrayList<>(card.manaCostStr);
|
||||
this.adventureSpellName = card.adventureSpellName;
|
||||
this.isModalDoubleFacesCard = card.isModalDoubleFacesCard;
|
||||
this.isModalDoubleFacedCard = card.isModalDoubleFacedCard;
|
||||
this.manaValue = card.manaValue;
|
||||
}
|
||||
|
||||
|
|
@ -154,7 +154,7 @@ public class MockCard extends CardImpl {
|
|||
|
||||
if (adventureSpellName != null) {
|
||||
return getName() + ADVENTURE_NAME_SEPARATOR + adventureSpellName;
|
||||
} else if (isModalDoubleFacesCard) {
|
||||
} else if (isModalDoubleFacedCard) {
|
||||
return getName() + MODAL_DOUBLE_FACES_NAME_SEPARATOR + this.secondSideCard.getName();
|
||||
} else {
|
||||
return getName();
|
||||
|
|
@ -178,6 +178,6 @@ public class MockCard extends CardImpl {
|
|||
@Override
|
||||
public boolean isTransformable() {
|
||||
// must enable toggle mode in deck editor (switch between card sides);
|
||||
return super.isTransformable() || this.isModalDoubleFacesCard || this.secondSideCard != null;
|
||||
return super.isTransformable() || this.isModalDoubleFacedCard || this.secondSideCard != null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -244,7 +244,7 @@ public class CardCriteria {
|
|||
}
|
||||
|
||||
if (modalDoubleFaced != null) {
|
||||
where.eq("modalDoubleFacesCard", modalDoubleFaced);
|
||||
where.eq("modalDoubleFacedCard", modalDoubleFaced);
|
||||
clausesCount++;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -108,9 +108,9 @@ public class CardInfo {
|
|||
@DatabaseField
|
||||
protected String adventureSpellName;
|
||||
@DatabaseField
|
||||
protected boolean modalDoubleFacesCard;
|
||||
protected boolean modalDoubleFacedCard;
|
||||
@DatabaseField
|
||||
protected String modalDoubleFacesSecondSideName;
|
||||
protected String modalDoubleFacedSecondSideName;
|
||||
@DatabaseField
|
||||
protected String meldsToCardName;
|
||||
|
||||
|
|
@ -157,9 +157,9 @@ public class CardInfo {
|
|||
this.adventureSpellName = ((AdventureCard) card).getSpellCard().getName();
|
||||
}
|
||||
|
||||
if (card instanceof ModalDoubleFacesCard) {
|
||||
this.modalDoubleFacesCard = true;
|
||||
this.modalDoubleFacesSecondSideName = ((ModalDoubleFacesCard) card).getRightHalfCard().getName();
|
||||
if (card instanceof ModalDoubleFacedCard) {
|
||||
this.modalDoubleFacedCard = true;
|
||||
this.modalDoubleFacedSecondSideName = ((ModalDoubleFacedCard) card).getRightHalfCard().getName();
|
||||
}
|
||||
|
||||
this.frameStyle = card.getFrameStyle().toString();
|
||||
|
|
@ -180,9 +180,9 @@ public class CardInfo {
|
|||
List<String> manaCostLeft = ((SplitCard) card).getLeftHalfCard().getManaCostSymbols();
|
||||
List<String> manaCostRight = ((SplitCard) card).getRightHalfCard().getManaCostSymbols();
|
||||
this.setManaCosts(CardUtil.concatManaSymbols(SPLIT_MANA_SEPARATOR_FULL, manaCostLeft, manaCostRight));
|
||||
} else if (card instanceof ModalDoubleFacesCard) {
|
||||
List<String> manaCostLeft = ((ModalDoubleFacesCard) card).getLeftHalfCard().getManaCostSymbols();
|
||||
List<String> manaCostRight = ((ModalDoubleFacesCard) card).getRightHalfCard().getManaCostSymbols();
|
||||
} else if (card instanceof ModalDoubleFacedCard) {
|
||||
List<String> manaCostLeft = ((ModalDoubleFacedCard) card).getLeftHalfCard().getManaCostSymbols();
|
||||
List<String> manaCostRight = ((ModalDoubleFacedCard) card).getRightHalfCard().getManaCostSymbols();
|
||||
this.setManaCosts(CardUtil.concatManaSymbols(SPLIT_MANA_SEPARATOR_FULL, manaCostLeft, manaCostRight));
|
||||
} else if (card instanceof AdventureCard) {
|
||||
List<String> manaCostLeft = ((AdventureCard) card).getSpellCard().getManaCostSymbols();
|
||||
|
|
@ -460,12 +460,12 @@ public class CardInfo {
|
|||
return adventureSpellName;
|
||||
}
|
||||
|
||||
public boolean isModalDoubleFacesCard() {
|
||||
return modalDoubleFacesCard;
|
||||
public boolean isModalDoubleFacedCard() {
|
||||
return modalDoubleFacedCard;
|
||||
}
|
||||
|
||||
public String getModalDoubleFacesSecondSideName() {
|
||||
return modalDoubleFacesSecondSideName;
|
||||
public String getModalDoubleFacedSecondSideName() {
|
||||
return modalDoubleFacedSecondSideName;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ public enum CardRepository {
|
|||
}
|
||||
|
||||
private void addNewNames(CardInfo card, Set<String> namesList) {
|
||||
// require before call: qb.distinct().selectColumns("name", "modalDoubleFacesSecondSideName"...);
|
||||
// require before call: qb.distinct().selectColumns("name", "modalDoubleFacedSecondSideName"...);
|
||||
|
||||
// normal names
|
||||
int result = card.getName().indexOf(" // ");
|
||||
|
|
@ -111,8 +111,8 @@ public enum CardRepository {
|
|||
if (card.getSecondSideName() != null && !card.getSecondSideName().isEmpty()) {
|
||||
namesList.add(card.getSecondSideName());
|
||||
}
|
||||
if (card.getModalDoubleFacesSecondSideName() != null && !card.getModalDoubleFacesSecondSideName().isEmpty()) {
|
||||
namesList.add(card.getModalDoubleFacesSecondSideName());
|
||||
if (card.getModalDoubleFacedSecondSideName() != null && !card.getModalDoubleFacedSecondSideName().isEmpty()) {
|
||||
namesList.add(card.getModalDoubleFacedSecondSideName());
|
||||
}
|
||||
if (card.getFlipCardName() != null && !card.getFlipCardName().isEmpty()) {
|
||||
namesList.add(card.getFlipCardName());
|
||||
|
|
@ -130,7 +130,7 @@ public enum CardRepository {
|
|||
Set<String> names = new TreeSet<>();
|
||||
try {
|
||||
QueryBuilder<CardInfo, Object> qb = cardDao.queryBuilder();
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacesSecondSideName", "secondSideName", "flipCardName");
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacedSecondSideName", "secondSideName", "flipCardName");
|
||||
List<CardInfo> results = cardDao.query(qb.prepare());
|
||||
for (CardInfo card : results) {
|
||||
addNewNames(card, names);
|
||||
|
|
@ -145,7 +145,7 @@ public enum CardRepository {
|
|||
Set<String> names = new TreeSet<>();
|
||||
try {
|
||||
QueryBuilder<CardInfo, Object> qb = cardDao.queryBuilder();
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacesSecondSideName", "secondSideName", "flipCardName");
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacedSecondSideName", "secondSideName", "flipCardName");
|
||||
qb.where().not().like("types", new SelectArg('%' + CardType.LAND.name() + '%'));
|
||||
List<CardInfo> results = cardDao.query(qb.prepare());
|
||||
for (CardInfo card : results) {
|
||||
|
|
@ -162,7 +162,7 @@ public enum CardRepository {
|
|||
Set<String> names = new TreeSet<>();
|
||||
try {
|
||||
QueryBuilder<CardInfo, Object> qb = cardDao.queryBuilder();
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacesSecondSideName", "secondSideName", "flipCardName");
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacedSecondSideName", "secondSideName", "flipCardName");
|
||||
Where<CardInfo, Object> where = qb.where();
|
||||
where.and(
|
||||
where.not().like("supertypes", '%' + SuperType.BASIC.name() + '%'),
|
||||
|
|
@ -183,7 +183,7 @@ public enum CardRepository {
|
|||
Set<String> names = new TreeSet<>();
|
||||
try {
|
||||
QueryBuilder<CardInfo, Object> qb = cardDao.queryBuilder();
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacesSecondSideName", "secondSideName", "flipCardName");
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacedSecondSideName", "secondSideName", "flipCardName");
|
||||
qb.where().not().like("supertypes", new SelectArg('%' + SuperType.BASIC.name() + '%'));
|
||||
List<CardInfo> results = cardDao.query(qb.prepare());
|
||||
for (CardInfo card : results) {
|
||||
|
|
@ -200,7 +200,7 @@ public enum CardRepository {
|
|||
Set<String> names = new TreeSet<>();
|
||||
try {
|
||||
QueryBuilder<CardInfo, Object> qb = cardDao.queryBuilder();
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacesSecondSideName", "secondSideName", "flipCardName");
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacedSecondSideName", "secondSideName", "flipCardName");
|
||||
qb.where().like("types", new SelectArg('%' + CardType.CREATURE.name() + '%'));
|
||||
List<CardInfo> results = cardDao.query(qb.prepare());
|
||||
for (CardInfo card : results) {
|
||||
|
|
@ -217,7 +217,7 @@ public enum CardRepository {
|
|||
Set<String> names = new TreeSet<>();
|
||||
try {
|
||||
QueryBuilder<CardInfo, Object> qb = cardDao.queryBuilder();
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacesSecondSideName", "secondSideName", "flipCardName");
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacedSecondSideName", "secondSideName", "flipCardName");
|
||||
qb.where().like("types", new SelectArg('%' + CardType.ARTIFACT.name() + '%'));
|
||||
List<CardInfo> results = cardDao.query(qb.prepare());
|
||||
for (CardInfo card : results) {
|
||||
|
|
@ -234,7 +234,7 @@ public enum CardRepository {
|
|||
Set<String> names = new TreeSet<>();
|
||||
try {
|
||||
QueryBuilder<CardInfo, Object> qb = cardDao.queryBuilder();
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacesSecondSideName", "secondSideName", "flipCardName");
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacedSecondSideName", "secondSideName", "flipCardName");
|
||||
Where<CardInfo, Object> where = qb.where();
|
||||
where.and(
|
||||
where.not().like("types", '%' + CardType.CREATURE.name() + '%'),
|
||||
|
|
@ -254,7 +254,7 @@ public enum CardRepository {
|
|||
Set<String> names = new TreeSet<>();
|
||||
try {
|
||||
QueryBuilder<CardInfo, Object> qb = cardDao.queryBuilder();
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacesSecondSideName", "secondSideName", "flipCardName");
|
||||
qb.distinct().selectColumns("name", "modalDoubleFacedSecondSideName", "secondSideName", "flipCardName");
|
||||
Where<CardInfo, Object> where = qb.where();
|
||||
where.and(
|
||||
where.not().like("types", '%' + CardType.ARTIFACT.name() + '%'),
|
||||
|
|
@ -478,7 +478,7 @@ public enum CardRepository {
|
|||
.eq("flipCardName", new SelectArg(name)).or()
|
||||
.eq("secondSideName", new SelectArg(name)).or()
|
||||
.eq("adventureSpellName", new SelectArg(name)).or()
|
||||
.eq("modalDoubleFacesSecondSideName", new SelectArg(name));
|
||||
.eq("modalDoubleFacedSecondSideName", new SelectArg(name));
|
||||
results = cardDao.query(queryBuilder.prepare());
|
||||
} else {
|
||||
// Check that a full card was found and not a SplitCardHalf
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package mage.filter.predicate.card;
|
|||
|
||||
import mage.cards.AdventureCard;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.ModalDoubleFacesCard;
|
||||
import mage.cards.ModalDoubleFacedCard;
|
||||
import mage.cards.SplitCard;
|
||||
import mage.cards.mock.MockCard;
|
||||
import mage.constants.SubType;
|
||||
|
|
@ -53,8 +53,8 @@ public class CardTextPredicate implements Predicate<Card> {
|
|||
String fullName = input.getName();
|
||||
if (input instanceof MockCard) {
|
||||
fullName = ((MockCard) input).getFullName(true);
|
||||
} else if (input instanceof ModalDoubleFacesCard) {
|
||||
fullName = input.getName() + MockCard.MODAL_DOUBLE_FACES_NAME_SEPARATOR + ((ModalDoubleFacesCard) input).getRightHalfCard().getName();
|
||||
} else if (input instanceof ModalDoubleFacedCard) {
|
||||
fullName = input.getName() + MockCard.MODAL_DOUBLE_FACES_NAME_SEPARATOR + ((ModalDoubleFacedCard) input).getRightHalfCard().getName();
|
||||
} else if (input instanceof AdventureCard) {
|
||||
fullName = input.getName() + MockCard.ADVENTURE_NAME_SEPARATOR + ((AdventureCard) input).getSpellCard().getName();
|
||||
}
|
||||
|
|
@ -92,14 +92,14 @@ public class CardTextPredicate implements Predicate<Card> {
|
|||
}
|
||||
}
|
||||
|
||||
if (input instanceof ModalDoubleFacesCard) {
|
||||
for (String rule : ((ModalDoubleFacesCard) input).getLeftHalfCard().getRules(game)) {
|
||||
if (input instanceof ModalDoubleFacedCard) {
|
||||
for (String rule : ((ModalDoubleFacedCard) input).getLeftHalfCard().getRules(game)) {
|
||||
if (rule.toLowerCase(Locale.ENGLISH).contains(token)) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (String rule : ((ModalDoubleFacesCard) input).getRightHalfCard().getRules(game)) {
|
||||
for (String rule : ((ModalDoubleFacedCard) input).getRightHalfCard().getRules(game)) {
|
||||
if (rule.toLowerCase(Locale.ENGLISH).contains(token)) {
|
||||
found = true;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package mage.filter.predicate.card;
|
||||
|
||||
import mage.cards.Card;
|
||||
import mage.cards.ModalDoubleFacesCard;
|
||||
import mage.cards.ModalDoubleFacedCard;
|
||||
import mage.filter.predicate.Predicate;
|
||||
import mage.game.Game;
|
||||
|
||||
|
|
@ -13,7 +13,7 @@ public enum DoubleFacedCardPredicate implements Predicate<Card> {
|
|||
|
||||
@Override
|
||||
public boolean apply(Card input, Game game) {
|
||||
return input instanceof ModalDoubleFacesCard || input.getSecondCardFace() != null;
|
||||
return input instanceof ModalDoubleFacedCard || input.getSecondCardFace() != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,9 +1,6 @@
|
|||
package mage.filter.predicate.mageobject;
|
||||
|
||||
import mage.MageObject;
|
||||
import mage.cards.ModalDoubleFacesCardHalf;
|
||||
import mage.cards.SplitCardHalf;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.predicate.Predicate;
|
||||
import mage.game.Game;
|
||||
|
||||
|
|
|
|||
|
|
@ -330,13 +330,13 @@ public abstract class GameImpl implements Game {
|
|||
Card rightCard = ((SplitCard) card).getRightHalfCard();
|
||||
rightCard.setOwnerId(ownerId);
|
||||
addCardToState(rightCard);
|
||||
} else if (card instanceof ModalDoubleFacesCard) {
|
||||
} else if (card instanceof ModalDoubleFacedCard) {
|
||||
// left
|
||||
Card leftCard = ((ModalDoubleFacesCard) card).getLeftHalfCard();
|
||||
Card leftCard = ((ModalDoubleFacedCard) card).getLeftHalfCard();
|
||||
leftCard.setOwnerId(ownerId);
|
||||
addCardToState(leftCard);
|
||||
// right
|
||||
Card rightCard = ((ModalDoubleFacesCard) card).getRightHalfCard();
|
||||
Card rightCard = ((ModalDoubleFacedCard) card).getRightHalfCard();
|
||||
rightCard.setOwnerId(ownerId);
|
||||
addCardToState(rightCard);
|
||||
} else if (card instanceof AdventureCard) {
|
||||
|
|
|
|||
|
|
@ -1357,19 +1357,19 @@ public class GameState implements Serializable, Copyable<GameState> {
|
|||
copiedParts.add(rightCopied);
|
||||
// sync parts
|
||||
((SplitCard) copiedCard).setParts(leftCopied, rightCopied);
|
||||
} else if (copiedCard instanceof ModalDoubleFacesCard) {
|
||||
} else if (copiedCard instanceof ModalDoubleFacedCard) {
|
||||
// left
|
||||
ModalDoubleFacesCardHalf leftOriginal = ((ModalDoubleFacesCard) copiedCard).getLeftHalfCard();
|
||||
ModalDoubleFacesCardHalf leftCopied = leftOriginal.copy();
|
||||
ModalDoubleFacedCardHalf leftOriginal = ((ModalDoubleFacedCard) copiedCard).getLeftHalfCard();
|
||||
ModalDoubleFacedCardHalf leftCopied = leftOriginal.copy();
|
||||
prepareCardForCopy(leftOriginal, leftCopied, newController);
|
||||
copiedParts.add(leftCopied);
|
||||
// right
|
||||
ModalDoubleFacesCardHalf rightOriginal = ((ModalDoubleFacesCard) copiedCard).getRightHalfCard();
|
||||
ModalDoubleFacesCardHalf rightCopied = rightOriginal.copy();
|
||||
ModalDoubleFacedCardHalf rightOriginal = ((ModalDoubleFacedCard) copiedCard).getRightHalfCard();
|
||||
ModalDoubleFacedCardHalf rightCopied = rightOriginal.copy();
|
||||
prepareCardForCopy(rightOriginal, rightCopied, newController);
|
||||
copiedParts.add(rightCopied);
|
||||
// sync parts
|
||||
((ModalDoubleFacesCard) copiedCard).setParts(leftCopied, rightCopied);
|
||||
((ModalDoubleFacedCard) copiedCard).setParts(leftCopied, rightCopied);
|
||||
} else if (copiedCard instanceof AdventureCard) {
|
||||
// right
|
||||
AdventureCardSpell rightOriginal = ((AdventureCard) copiedCard).getSpellCard();
|
||||
|
|
|
|||
|
|
@ -83,21 +83,21 @@ public final class ZonesHandler {
|
|||
ZoneChangeInfo info = itr.next();
|
||||
if (info.event.getToZone().equals(Zone.BATTLEFIELD)) {
|
||||
Card card = game.getCard(info.event.getTargetId());
|
||||
if (card instanceof ModalDoubleFacesCard || card instanceof ModalDoubleFacesCardHalf) {
|
||||
if (card instanceof ModalDoubleFacedCard || card instanceof ModalDoubleFacedCardHalf) {
|
||||
boolean forceToMainSide = false;
|
||||
|
||||
// if effect put half mdf card to battlefield then it must be the main side only (example: return targeted half card to battle)
|
||||
if (card instanceof ModalDoubleFacesCardHalf && !source.getAbilityType().isPlayCardAbility()) {
|
||||
if (card instanceof ModalDoubleFacedCardHalf && !source.getAbilityType().isPlayCardAbility()) {
|
||||
forceToMainSide = true;
|
||||
}
|
||||
|
||||
// if effect put mdf card to battlefield then it must be main side only
|
||||
if (card instanceof ModalDoubleFacesCard) {
|
||||
if (card instanceof ModalDoubleFacedCard) {
|
||||
forceToMainSide = true;
|
||||
}
|
||||
|
||||
if (forceToMainSide) {
|
||||
info.event.setTargetId(((ModalDoubleFacesCard) card.getMainCard()).getLeftHalfCard().getId());
|
||||
info.event.setTargetId(((ModalDoubleFacedCard) card.getMainCard()).getLeftHalfCard().getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -148,10 +148,10 @@ public final class ZonesHandler {
|
|||
// meld/group cards must be independent (use can choose order)
|
||||
cardsToMove = ((MeldCard) targetCard).getHalves();
|
||||
cardsToUpdate.get(toZone).addAll(cardsToMove);
|
||||
} else if (targetCard instanceof ModalDoubleFacesCard
|
||||
|| targetCard instanceof ModalDoubleFacesCardHalf) {
|
||||
} else if (targetCard instanceof ModalDoubleFacedCard
|
||||
|| targetCard instanceof ModalDoubleFacedCardHalf) {
|
||||
// mdf cards must be moved as single object, but each half must be updated separately
|
||||
ModalDoubleFacesCard mdfCard = (ModalDoubleFacesCard) targetCard.getMainCard();
|
||||
ModalDoubleFacedCard mdfCard = (ModalDoubleFacedCard) targetCard.getMainCard();
|
||||
cardsToMove = new CardsImpl(mdfCard);
|
||||
cardsToUpdate.get(toZone).add(mdfCard);
|
||||
// example: cast left side
|
||||
|
|
@ -349,7 +349,7 @@ public final class ZonesHandler {
|
|||
Permanent permanent;
|
||||
if (card instanceof MeldCard) {
|
||||
permanent = new PermanentMeld(card, event.getPlayerId(), game);
|
||||
} else if (card instanceof ModalDoubleFacesCard) {
|
||||
} else if (card instanceof ModalDoubleFacedCard) {
|
||||
// main mdf card must be processed before that call (e.g. only halfes can be moved to battlefield)
|
||||
throw new IllegalStateException("Unexpected trying of move mdf card to battlefield instead half");
|
||||
} else if (card instanceof Permanent) {
|
||||
|
|
|
|||
|
|
@ -70,9 +70,9 @@ class WrennAndSixEmblemEffect extends ContinuousEffectImpl {
|
|||
game.getState().addOtherAbility(rightHalfCard, ability);
|
||||
}
|
||||
}
|
||||
if (card instanceof ModalDoubleFacesCard) {
|
||||
ModalDoubleFacesCardHalf leftHalfCard = ((ModalDoubleFacesCard) card).getLeftHalfCard();
|
||||
ModalDoubleFacesCardHalf rightHalfCard = ((ModalDoubleFacesCard) card).getRightHalfCard();
|
||||
if (card instanceof ModalDoubleFacedCard) {
|
||||
ModalDoubleFacedCardHalf leftHalfCard = ((ModalDoubleFacedCard) card).getLeftHalfCard();
|
||||
ModalDoubleFacedCardHalf rightHalfCard = ((ModalDoubleFacedCard) card).getRightHalfCard();
|
||||
if (leftHalfCard.isInstantOrSorcery(game)) {
|
||||
Ability ability = new RetraceAbility(leftHalfCard);
|
||||
ability.setSourceId(cardId);
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import mage.abilities.keyword.NightboundAbility;
|
|||
import mage.abilities.keyword.TransformAbility;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.LevelerCard;
|
||||
import mage.cards.ModalDoubleFacesCard;
|
||||
import mage.cards.ModalDoubleFacedCard;
|
||||
import mage.cards.SplitCard;
|
||||
import mage.constants.SpellAbilityType;
|
||||
import mage.game.Game;
|
||||
|
|
@ -41,7 +41,7 @@ public class PermanentCard extends PermanentImpl {
|
|||
// 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) {
|
||||
if (card instanceof ModalDoubleFacedCard) {
|
||||
goodForBattlefield = false;
|
||||
} else if (card instanceof SplitCard) {
|
||||
// fused spells allowed (it uses main card)
|
||||
|
|
|
|||
|
|
@ -193,8 +193,8 @@ public class Spell extends StackObjectImpl implements Card {
|
|||
+ " as Adventure spell of " + GameLog.getColoredObjectIdName(adventureCard);
|
||||
}
|
||||
|
||||
if (card instanceof ModalDoubleFacesCardHalf) {
|
||||
ModalDoubleFacesCard mdfCard = (ModalDoubleFacesCard) card.getMainCard();
|
||||
if (card instanceof ModalDoubleFacedCardHalf) {
|
||||
ModalDoubleFacedCard mdfCard = (ModalDoubleFacedCard) card.getMainCard();
|
||||
return GameLog.replaceNameByColoredName(card, getSpellAbility().toString(), mdfCard)
|
||||
+ " as mdf side of " + GameLog.getColoredObjectIdName(mdfCard);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1301,8 +1301,8 @@ public abstract class PlayerImpl implements Player, Serializable {
|
|||
game.fireEvent(landEventAfter);
|
||||
|
||||
String playText = getLogName() + " plays " + card.getLogName();
|
||||
if (card instanceof ModalDoubleFacesCardHalf) {
|
||||
ModalDoubleFacesCard mdfCard = (ModalDoubleFacesCard) card.getMainCard();
|
||||
if (card instanceof ModalDoubleFacedCardHalf) {
|
||||
ModalDoubleFacedCard mdfCard = (ModalDoubleFacedCard) card.getMainCard();
|
||||
playText = getLogName() + " plays " + GameLog.replaceNameByColoredName(card, card.getName(), mdfCard)
|
||||
+ " as MDF side of " + GameLog.getColoredObjectIdName(mdfCard);
|
||||
}
|
||||
|
|
@ -3797,8 +3797,8 @@ public abstract class PlayerImpl implements Player, Serializable {
|
|||
getPlayableFromObjectSingle(game, fromZone, mainCard.getLeftHalfCard(), mainCard.getLeftHalfCard().getAbilities(game), availableMana, output);
|
||||
getPlayableFromObjectSingle(game, fromZone, mainCard.getRightHalfCard(), mainCard.getRightHalfCard().getAbilities(game), availableMana, output);
|
||||
getPlayableFromObjectSingle(game, fromZone, mainCard, mainCard.getSharedAbilities(game), availableMana, output);
|
||||
} else if (object instanceof ModalDoubleFacesCard) {
|
||||
ModalDoubleFacesCard mainCard = (ModalDoubleFacesCard) object;
|
||||
} else if (object instanceof ModalDoubleFacedCard) {
|
||||
ModalDoubleFacedCard mainCard = (ModalDoubleFacedCard) object;
|
||||
getPlayableFromObjectSingle(game, fromZone, mainCard.getLeftHalfCard(), mainCard.getLeftHalfCard().getAbilities(game), availableMana, output);
|
||||
getPlayableFromObjectSingle(game, fromZone, mainCard.getRightHalfCard(), mainCard.getRightHalfCard().getAbilities(game), availableMana, output);
|
||||
getPlayableFromObjectSingle(game, fromZone, mainCard, mainCard.getSharedAbilities(game), availableMana, output);
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ import mage.filter.predicate.mageobject.NamePredicate;
|
|||
import mage.game.CardState;
|
||||
import mage.game.Game;
|
||||
import mage.game.GameState;
|
||||
import mage.game.command.CommandObject;
|
||||
import mage.game.command.Commander;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
|
@ -1070,8 +1069,8 @@ public final class CardUtil {
|
|||
permCard = card;
|
||||
} else if (card instanceof AdventureCard) {
|
||||
permCard = card;
|
||||
} else if (card instanceof ModalDoubleFacesCard) {
|
||||
permCard = ((ModalDoubleFacesCard) card).getLeftHalfCard();
|
||||
} else if (card instanceof ModalDoubleFacedCard) {
|
||||
permCard = ((ModalDoubleFacedCard) card).getLeftHalfCard();
|
||||
} else {
|
||||
permCard = card;
|
||||
}
|
||||
|
|
@ -1094,8 +1093,8 @@ public final class CardUtil {
|
|||
// it's ok to return one name only cause NamePredicate can find same card by first name
|
||||
if (card instanceof SplitCard) {
|
||||
return ((SplitCard) card).getLeftHalfCard().getName();
|
||||
} else if (card instanceof ModalDoubleFacesCard) {
|
||||
return ((ModalDoubleFacesCard) card).getLeftHalfCard().getName();
|
||||
} else if (card instanceof ModalDoubleFacedCard) {
|
||||
return ((ModalDoubleFacedCard) card).getLeftHalfCard().getName();
|
||||
} else {
|
||||
return card.getName();
|
||||
}
|
||||
|
|
@ -1384,9 +1383,9 @@ public final class CardUtil {
|
|||
}
|
||||
|
||||
// handle MDFC
|
||||
if (card instanceof ModalDoubleFacesCard) {
|
||||
ModalDoubleFacesCardHalf leftHalfCard = ((ModalDoubleFacesCard) card).getLeftHalfCard();
|
||||
ModalDoubleFacesCardHalf rightHalfCard = ((ModalDoubleFacesCard) card).getRightHalfCard();
|
||||
if (card instanceof ModalDoubleFacedCard) {
|
||||
ModalDoubleFacedCardHalf leftHalfCard = ((ModalDoubleFacedCard) card).getLeftHalfCard();
|
||||
ModalDoubleFacedCardHalf rightHalfCard = ((ModalDoubleFacedCard) card).getRightHalfCard();
|
||||
if (manaCost != null) {
|
||||
// some MDFC cards are lands. IE: sea gate restoration
|
||||
if (!leftHalfCard.isLand(game)) {
|
||||
|
|
@ -1442,9 +1441,9 @@ public final class CardUtil {
|
|||
game.getState().setValue("PlayFromNotOwnHandZone" + leftHalfCard.getId(), null);
|
||||
game.getState().setValue("PlayFromNotOwnHandZone" + rightHalfCard.getId(), null);
|
||||
}
|
||||
if (card instanceof ModalDoubleFacesCard) {
|
||||
ModalDoubleFacesCardHalf leftHalfCard = ((ModalDoubleFacesCard) card).getLeftHalfCard();
|
||||
ModalDoubleFacesCardHalf rightHalfCard = ((ModalDoubleFacesCard) card).getRightHalfCard();
|
||||
if (card instanceof ModalDoubleFacedCard) {
|
||||
ModalDoubleFacedCardHalf leftHalfCard = ((ModalDoubleFacedCard) card).getLeftHalfCard();
|
||||
ModalDoubleFacedCardHalf rightHalfCard = ((ModalDoubleFacedCard) card).getRightHalfCard();
|
||||
game.getState().setValue("PlayFromNotOwnHandZone" + leftHalfCard.getId(), null);
|
||||
game.getState().setValue("PlayFromNotOwnHandZone" + rightHalfCard.getId(), null);
|
||||
}
|
||||
|
|
@ -1582,8 +1581,8 @@ public final class CardUtil {
|
|||
res.add(mainCard);
|
||||
res.add(mainCard.getLeftHalfCard());
|
||||
res.add(mainCard.getRightHalfCard());
|
||||
} else if (object instanceof ModalDoubleFacesCard || object instanceof ModalDoubleFacesCardHalf) {
|
||||
ModalDoubleFacesCard mainCard = (ModalDoubleFacesCard) ((Card) object).getMainCard();
|
||||
} else if (object instanceof ModalDoubleFacedCard || object instanceof ModalDoubleFacedCardHalf) {
|
||||
ModalDoubleFacedCard mainCard = (ModalDoubleFacedCard) ((Card) object).getMainCard();
|
||||
res.add(mainCard);
|
||||
res.add(mainCard.getLeftHalfCard());
|
||||
res.add(mainCard.getRightHalfCard());
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import mage.abilities.effects.Effect;
|
|||
import mage.abilities.mana.*;
|
||||
import mage.cards.AdventureCard;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.ModalDoubleFacesCard;
|
||||
import mage.cards.ModalDoubleFacedCard;
|
||||
import mage.cards.SplitCard;
|
||||
import mage.choices.Choice;
|
||||
import mage.constants.ColoredManaSymbol;
|
||||
|
|
@ -631,8 +631,8 @@ public final class ManaUtil {
|
|||
secondSide = ((SplitCard) card).getRightHalfCard();
|
||||
} else if (card instanceof AdventureCard) {
|
||||
secondSide = ((AdventureCard) card).getSpellCard();
|
||||
} else if (card instanceof ModalDoubleFacesCard) {
|
||||
secondSide = ((ModalDoubleFacesCard) card).getRightHalfCard();
|
||||
} else if (card instanceof ModalDoubleFacedCard) {
|
||||
secondSide = ((ModalDoubleFacedCard) card).getRightHalfCard();
|
||||
} else {
|
||||
secondSide = card.getSecondCardFace();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue