this.expansionSetCode = "BOK";
this.subtype.add("Arcane");
this.color.setBlack(true);
// You may exile a black card with converted mana cost X from your hand rather than pay Sickening Shoal's mana cost.
FilterOwnedCard filter = new FilterOwnedCard("a black card with converted mana cost X from your hand");
filter.add(new ColorPredicate(ObjectColor.BLACK));
filter.add(Predicates.not(new CardIdPredicate(this.getId()))); // the exile cost can never be paid with the card itself
this.addAbility(new AlternativeCostSourceAbility(new ExileFromHandCost(new TargetCardInHand(filter))));
// Target creature gets -X/-X until end of turn.
DynamicValue x = new SignInversionDynamicValue(new ExileFromHandCostCardConvertedMana());
this.getSpellAbility().addEffect(new BoostTargetEffect(x, x, Duration.EndOfTurn, true));