default void addCardType(CardType cardType) { getCardType().add(cardType); }
default boolean isLand() { return getCardType().contains(CardType.LAND); }
default boolean isSorcery() { return getCardType().contains(CardType.SORCERY); }
@Override public boolean apply(MageObject input, Game game) { return input.getCardType().contains(cardType); }
default boolean isCreature() { return getCardType().contains(CardType.CREATURE); }
default boolean isPlaneswalker() { return getCardType().contains(CardType.PLANESWALKER); }
default void addCardTypes(EnumSet<CardType> cardType) { getCardType().addAll(cardType); }
default boolean isArtifact() { return getCardType().contains(CardType.ARTIFACT); }
default boolean isEnchantment() { return getCardType().contains(CardType.ENCHANTMENT); }
default boolean isInstant() { return getCardType().contains(CardType.INSTANT); }
/** * Checks whether two cards share card types. * * @param otherCard * @return */ default boolean shareTypes(Card otherCard) { if (otherCard == null) { throw new IllegalArgumentException("Params can't be null"); } for (CardType type : getCardType()) { if (otherCard.getCardType().contains(type)) { return true; } } return false; }
default boolean isHistoric() { return getCardType().contains(CardType.ARTIFACT) || getSuperType().contains(SuperType.LEGENDARY) || hasSubtype(SubType.SAGA, null); }
@Override public boolean applies(GameEvent event, Ability source, Game game) { if (super.applies(event, source, game)) { if (game.getObject(event.getSourceId()).getCardType().contains(cardType)) { if (event.getTargetId().equals(source.getSourceId())) { return true; } } } return false; } }
@Override public boolean applies(GameEvent event, Ability source, Game game) { if (super.applies(event, source, game)) { if (game.getObject(event.getSourceId()).getCardType().contains(cardType)){ if (event.getTargetId().equals(source.getSourceId())) { return true; } } } return false; } }
@Override public boolean apply(Game game, Ability source) { if (!source.getTargets().isEmpty()) { MageObject mageObject = game.getObject(source.getFirstTarget()); if (mageObject != null) { return mageObject.getCardType().contains(cardType); } } return false; } }
@Override public boolean replaceEvent(GameEvent event, Ability source, Game game) { Permanent bestowPermanent = game.getPermanentEntering(source.getSourceId()); if (bestowPermanent != null) { if (bestowPermanent.hasSubtype(SubType.AURA, game)) { MageObject basicObject = bestowPermanent.getBasicMageObject(game); if (basicObject != null && !basicObject.getSubtype(null).contains(SubType.AURA)) { basicObject.getSubtype(null).add(SubType.AURA); basicObject.getCardType().remove(CardType.CREATURE); } } } return false; }
score += mageObject.getAbilities().getAvailableActivatedManaAbilities(Zone.BATTLEFIELD, game).size(); score += mageObject.getAbilities().getActivatedAbilities(Zone.BATTLEFIELD).size(); if (!mageObject.getCardType().contains(CardType.LAND)) { score += 2; } else if (mageObject.getCardType().contains(CardType.CREATURE)) { score += 2;
@Override public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) { if (source.isControlledBy(affectedControllerId) && source.isControlledBy(game.getOwnerId(objectId)) // only from your graveyard && affectedControllerId.equals(game.getActivePlayerId()) // only during your turns (e.g. prevent flash creatures) && Zone.GRAVEYARD.equals(game.getState().getZone(objectId))) { MuldrothaTheGravetideWatcher watcher = game.getState().getWatcher(MuldrothaTheGravetideWatcher.class); MageObject mageObject = game.getObject(objectId); if (mageObject != null && watcher != null) { for (CardType cardType : mageObject.getCardType()) { if (cardType.isPermanentType()) { MageObjectReference mor = new MageObjectReference(source.getSourceObject(game), game); if (!watcher.permanentTypePlayedFromGraveyard(mor, cardType)) { return true; } } } } } return false; } }
public static void setPermanentToFaceDownCreature(MageObject mageObject) { mageObject.getPower().modifyBaseValue(2); mageObject.getToughness().modifyBaseValue(2); mageObject.getAbilities().clear(); mageObject.getColor(null).setColor(new ObjectColor()); mageObject.setName(""); mageObject.getCardType().clear(); mageObject.addCardType(CardType.CREATURE); mageObject.getSubtype(null).clear(); mageObject.getSuperType().clear(); mageObject.getManaCost().clear(); if (mageObject instanceof Permanent) { ((Permanent) mageObject).setExpansionSetCode(""); ((Permanent) mageObject).setRarity(Rarity.SPECIAL); } } }
target.getManaCost().add(sourceObj.getManaCost()); target.getCardType().clear(); for (CardType type : sourceObj.getCardType()) { target.addCardType(type);