@Override public boolean apply(StackObject input, Game game) { if (input instanceof StackAbility) { StackAbility ability = (StackAbility) input; return ability.getSourceObject(game).isArtifact(); } return false; }
@Override public boolean applies(Ability abilityToModify, Ability source, Game game) { if (abilityToModify instanceof SpellAbility) { MageObject sourceObject = abilityToModify.getSourceObject(game); if (sourceObject != null && sourceObject.isArtifact()) { return true; } } return false; }
@Override public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) { if (!mageObject.isArtifact()) { mageObject.addCardType(CardType.ARTIFACT); } return true; }
@Override public boolean apply(Game game, Ability source) { MageObject object = game.getObject(source.getSourceId()); if (object != null && object.isArtifact()) { return true; } return false; } }
@Override public boolean apply(Game game, Ability source) { if (source instanceof SpellAbility) { MageObject object = game.getObject(source.getSourceId()); if (object != null && object.isArtifact()) { return true; } } return false; }
@Override public boolean apply(Game game, Ability source) { MageObject object = game.getObject(source.getSourceId()); return (object != null && object.isArtifact()); } }
@Override public boolean apply(Game game, Ability source) { MageObject object = game.getObject(source.getSourceId()); return object != null && object.isArtifact(); } }
@Override public boolean apply(Game game, Ability source) { if (source != null && source.getAbilityType() == AbilityType.ACTIVATED) { MageObject object = game.getObject(source.getSourceId()); if (object != null && object.isArtifact()) { return true; } } return false; }
default boolean isPermanent() { return isCreature() || isArtifact() || isPlaneswalker() || isEnchantment() || isLand(); }
@Override public boolean apply(StackObject input, Game game) { if (input instanceof StackAbility && ((StackAbility) input).getAbilityType() == AbilityType.ACTIVATED) { MageObject sourceObject = ((StackAbility) input).getSourceObject(game); if (sourceObject != null) { return (sourceObject.isArtifact() || sourceObject.isEnchantment() || sourceObject.isCreature() || sourceObject.isLand()); } } return false; } }