public void setSourceObject(MageObject sourceObject) { this.sourceObject = sourceObject; if (sourceObject instanceof Card) { if (name.isEmpty()) { name = sourceObject.getSubtype(null).toString(); } if (expansionSetCodeForImage.isEmpty()) { expansionSetCodeForImage = ((Card) sourceObject).getExpansionSetCode(); } } }
public void setSourceObject(MageObject sourceObject) { this.sourceObject = sourceObject; if (sourceObject instanceof Card) { if (name.isEmpty()) { name = sourceObject.getSubtype(null).toString(); } if (expansionSetCodeForImage.isEmpty()) { expansionSetCodeForImage = ((Card) sourceObject).getExpansionSetCode(); } } }
@Override public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { if (!mageObject.hasSubtype(subtype, game)) { mageObject.getSubtype(game).add(subtype); } return true; }
@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; }
@Override public boolean apply(ObjectSourcePlayer<MageObject> input, Game game) { MageObject sourceObject = game.getObject(input.getSourceId()); if (sourceObject != null) { for (SubType subType : sourceObject.getSubtype(game)) { if (subType.getSubTypeSet() == SubTypeSet.CreatureType && input.getObject().hasSubtype(subType, game)) { return true; } } } return false; }
private void setCreatureSubtype(MageObject object, SubType subtype, Game game) { if (object != null) { if (object instanceof Card) { Card card = (Card) object; setChosenSubtype( game.getState().getCreateCardAttribute(card, game).getSubtype(), subtype); } else { setChosenSubtype(object.getSubtype(game), subtype); } } }
@Override public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { if (!mageObject.hasSubtype(SubType.ILLUSION, game)) { mageObject.getSubtype(game).add(SubType.ILLUSION); } // Add directly because the created permanent is only used to copy from, so there is no need to add the ability to e.g. TriggeredAbilities mageObject.getAbilities().add(new BecomesTargetTriggeredAbility(new SacrificeSourceEffect())); //permanent.addAbility(new BecomesTargetTriggeredAbility(new SacrificeSourceEffect()), game); return true; } };
if (sublayer == SubLayer.NA) { if (targetObject.hasSubtype(fromSubType, game)) { targetObject.getSubtype(game).remove(fromSubType); if (!targetObject.hasSubtype(toSubType, game)) { targetObject.getSubtype(game).add(toSubType);
static public void becomeCreature(Permanent permanent, Game game) { if (permanent != null) { MageObject basicObject = permanent.getBasicMageObject(game); if (basicObject != null) { basicObject.getSubtype(null).remove(SubType.AURA); if (!basicObject.isCreature()) { basicObject.addCardType(CardType.CREATURE); } } permanent.getSubtype(null).remove(SubType.AURA); if (!permanent.isCreature()) { permanent.addCardType(CardType.CREATURE); } } } }
default boolean shareSubtypes(Card otherCard, Game game) { if (otherCard == null) { throw new IllegalArgumentException("Params can't be null"); } if (this.isCreature() && otherCard.isCreature()) { if (this.getAbilities().contains(ChangelingAbility.getInstance()) || this.isAllCreatureTypes() || otherCard.getAbilities().contains(ChangelingAbility.getInstance()) || otherCard.isAllCreatureTypes()) { return true; } } for (SubType subtype : this.getSubtype(game)) { if (otherCard.hasSubtype(subtype, game)) { return true; } } return false; }
return true; Iterator<SubType> cmdrSubs = commander.getSubtype(game).iterator(); while (cmdrSubs.hasNext()) { SubType sType = cmdrSubs.next();
this.subTypes = object.getSubtype(null); this.superTypes = object.getSuperType(); this.color = object.getColor(null);
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); } } }
for (SubType type : sourceObj.getSubtype(null)) { target.getSubtype(null).add(type);
for (SubType type : copyFromObject.getSubtype(game)) { permanent.getSubtype(game).add(type);