@Override public SubTypeList getSubtype(Game game) { return sourceObject.getSubtype(game); }
private String setRule(Cost cost, Card card) { StringBuilder sb = new StringBuilder("Embalm ").append(cost.getText()); sb.append(" <i>(").append(cost.getText()); sb.append(", Exile this card from your graveyard: Create a token that's a copy of it, except it's a white Zombie "); for (SubType subtype : card.getSubtype(null)) { sb.append(subtype).append(" "); } sb.append(" with no mana cost. Embalm only as a sorcery.)</i>"); return sb.toString(); } }
private String setRule(Cost cost, Card card) { StringBuilder sb = new StringBuilder("Eternalize ").append(cost.getText()); sb.append(" <i>(").append(cost.getText()); sb.append(", Exile this card from your graveyard: Create a token that's a copy of it, except it's a 4/4 black Zombie "); for (SubType subtype : card.getSubtype(null)) { sb.append(subtype).append(" "); } sb.append(" with no mana cost. Eternalize only as a sorcery.)</i>"); return sb.toString(); } }
@Override public SubTypeList getSubtype(Game game) { if (this.getSpellAbility() instanceof BestowAbility) { SubTypeList subtypes = card.getSubtype(game); if (!subtypes.contains(SubType.AURA)) { // do it only once subtypes.add(SubType.AURA); } return subtypes; } return card.getSubtype(game); }
private static String getCardTypeLine(Game game, Card card) { StringBuilder sbType = new StringBuilder(); for (SuperType superType : card.getSuperType()) { sbType.append(superType).append(' '); } for (CardType cardType : card.getCardType()) { sbType.append(cardType.toString()).append(' '); } if (!card.getSubtype(game).isEmpty()) { sbType.append("- "); for (SubType subType : card.getSubtype(game)) { sbType.append(subType).append(' '); } } return sbType.toString(); }
public CardAttribute(Card card, Game game) { color = card.getColor(null).copy(); subtype = new SubTypeList(); subtype.addAll(card.getSubtype(game)); }
public MageScoredCard(Card card, List<ColoredManaSymbol> allowedColors, RateCallback cardRater) { this.card = card; int type; if (card.isCreature()) { type = 10; } else if (card.getSubtype(null).contains(SubType.EQUIPMENT)) { type = 8; } else if (card.getSubtype(null).contains(SubType.AURA)) { type = 5; } else if (card.isInstant()) { type = 7; } else { type = 6; } this.score = // 5*card.getValue() + // not possible now 3 * cardRater.rateCard(card) + // 3*card.getRemoval() + // not possible now type + getManaCostScore(card, allowedColors); }
for (SubType subType : input.getSubtype(game)) { if (subType.toString().equalsIgnoreCase(token)) { found = true;
@Override public boolean hasSubtype(SubType subtype, Game game) { if (this.getSpellAbility() instanceof BestowAbility) { // workaround for Bestow (don't like it) SubTypeList subtypes = card.getSubtype(game); if (!subtypes.contains(SubType.AURA)) { // do it only once subtypes.add(SubType.AURA); } if (subtypes.contains(subtype)) { return true; } } return card.hasSubtype(subtype, game); }
} else if (card.isCreature()) { type = 10; } else if (card.getSubtype(null).contains(SubType.EQUIPMENT)) { type = 8; } else if (card.getSubtype(null).contains(SubType.AURA)) { type = 5; } else if (card.isInstant()) {
Player opponent = game.getPlayer(opponentId); for (Card card : opponent.getGraveyard().getCards(game)) { if (card != null && card.getCardType().contains(CardType.CREATURE) && !card.getSubtype(game).isEmpty()) { if (choice.getChoices().contains(card.getSubtype(game).get(0).toString())) { choice.setChoice(card.getSubtype(game).get(0).toString()); break; if (card != null && card.getCardType().contains(CardType.CREATURE) && !card.getSubtype(game).isEmpty()) { if (choice.getChoices().contains(card.getSubtype(game).get(0).toString())) { choice.setChoice(card.getSubtype(game).get(0).toString()); break; for (UUID cardId : this.getLibrary().getCardList()) { Card card = game.getCard(cardId); if (card != null && card.getCardType().contains(CardType.CREATURE) && !card.getSubtype(game).isEmpty()) { if (choice.getChoices().contains(card.getSubtype(game).get(0).toString())) { choice.setChoice(card.getSubtype(game).get(0).toString()); break;
@Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { Permanent permanent = game.getPermanent(source.getSourceId()); if (permanent != null) { if (!permanent.getImprinted().isEmpty()) { List<UUID> imprinted = permanent.getImprinted(); if (imprinted == null || imprinted.isEmpty()) { return false; } Card card = game.getCard(imprinted.get(imprinted.size() - 1)); if (card != null && card.isCreature()) { switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { permanent.getSubtype(game).addAll(card.getSubtype(game)); } break; case PTChangingEffects_7: if (sublayer == SubLayer.SetPT_7b) { permanent.getPower().setValue(card.getPower().getValue()); permanent.getToughness().setValue(card.getToughness().getValue()); } } return true; } } } return false; }
if (landCard != null) { if (landTypes.isEmpty()) { landTypes.addAll(landCard.getSubtype(game)); } else { landTypes.removeIf(next -> !landCard.hasSubtype(next, game));
this.setSubtypes(card.getSubtype(null).stream().map(SubType::toString).collect(Collectors.toList())); this.setSuperTypes(card.getSuperType()); this.setManaCosts(card.getManaCost().getSymbols());
for (SubType subtype : card.getSubtype(game)) { if (prowlWatcher.hasSubtypeMadeCombatDamage(ability.getControllerId(), subtype)) { canProwl = true;
this.subtype.addAll(card.getSubtype(game)); this.isAllCreatureTypes = card.isAllCreatureTypes(); this.supertype.clear();
if (!card.getSubtype(game).contains(SubType.AURA)) { card.getSubtype(game).add(SubType.AURA); card.addCardType(CardType.CREATURE); card.getSubtype(game).remove(SubType.AURA); if (permanent instanceof PermanentCard) { ((PermanentCard) permanent).getCard().addCardType(CardType.CREATURE); ((PermanentCard) permanent).getCard().getSubtype(game).remove(SubType.AURA); return true;
if (enchantment.getSubtype(game).contains(SubType.AURA)) { boolean canTarget = false; for (Target target : enchantment.getSpellAbility().getTargets()) {
for (SubType type : sourceCard.getSubtype(game)) { permanent.getSubtype(game).add(type);
for (SubType type : card.getSubtype(game)) { if (!permanent.hasSubtype(type, game)) { permanent.getSubtype(game).add(type);