public LilianaDeathsMajesty(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{3}{B}{B}"); this.addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.LILIANA); //Starting Loyalty: 5 this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(5)); // +1: Create a 2/2 black Zombie creature token. Put the top two cards of your library into your graveyard. LoyaltyAbility ability = new LoyaltyAbility(new CreateTokenEffect(new ZombieToken()), 1); ability.addEffect(new PutTopCardOfLibraryIntoGraveControllerEffect(2)); this.addAbility(ability); // -3: Return target creature card from your graveyard to the battlefield. That creature is a black Zombie in addition to its other colors and types. ability = new LoyaltyAbility(new BecomesBlackZombieAdditionEffect() // because the effect has to be active for triggered effects that e.g. check if the creature entering is a Zombie, the continuous effect needs to be added before the card moving effect is applied .setText(""), -3); ability.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)); ability.addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect() .setText("Return target creature card from your graveyard to the battlefield. That creature is a black Zombie in addition to its other colors and types")); this.addAbility(ability); // -7: Destroy all non-Zombie creatures. ability = new LoyaltyAbility(new DestroyAllEffect(filter), -7); this.addAbility(ability); }