this.color.setBlack(true);
// {tap}, Exile two cards from your graveyard: Draw a card.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new TapSourceCost());
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(2, new FilterCard("cards from your graveyard"))));
this.addAbility(ability);
// If damage would be dealt to you, prevent that damage. Exile a card from your graveyard for each 1 damage prevented this way.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new PreventAllDamageToControllerEffect()));
// When there are no cards in your graveyard, you lose the game.
this.addAbility(new ImmortalCoilAbility());