Search in sources :

Example 1 with VigilanceAbility

use of mage.abilities.keyword.VigilanceAbility in project mage by magefree.

the class GainAbilitiesTest method test_AttachmentSingleton.

@Test
public void test_AttachmentSingleton() {
    // {2}{W}
    // Enchanted creature gets +2/+2.
    // Enchanted creature has vigilance as long as you control a black or green permanent.
    addCard(Zone.HAND, playerA, "Abzan Runemark@attach", 2);
    addCard(Zone.BATTLEFIELD, playerA, "Plains", 6);
    // 
    // 2/2
    addCard(Zone.BATTLEFIELD, playerA, "Balduvian Bears@bear", 1);
    // attach all
    castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "@attach.1", "@bear");
    castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "@attach.2", "@bear");
    waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
    checkAbility("after", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "@bear", VigilanceAbility.class, true);
    setStrictChooseMode(true);
    setStopAt(1, PhaseStep.BEGIN_COMBAT);
    execute();
    assertAllCommandsUsed();
    Permanent permanent = getPermanent("Balduvian Bears");
    Assert.assertEquals("must have only 1 singleton ability instance from two attachments", 1, permanent.getAbilities(currentGame).stream().filter(a -> a instanceof VigilanceAbility).count());
}
Also used : Permanent(mage.game.permanent.Permanent) VigilanceAbility(mage.abilities.keyword.VigilanceAbility) Test(org.junit.Test)

Example 2 with VigilanceAbility

use of mage.abilities.keyword.VigilanceAbility in project mage by magefree.

the class CairnWandererTest method TestCairnWandererEffect.

/*
     * Testing: As long as a creature card with flying is in a graveyard, 
     * {this} has flying. The same is true for fear, first strike, 
     * double strike, deathtouch, haste, landwalk, lifelink, protection, 
     * reach, trample, shroud, and vigilance.
     */
@Test
public void TestCairnWandererEffect() {
    addCard(Zone.BATTLEFIELD, playerA, "Cairn Wanderer");
    // Testing FlyingAbility.
    addCard(Zone.GRAVEYARD, playerA, "Lantern Kami");
    // Testing FearAbility.
    addCard(Zone.GRAVEYARD, playerA, "Prickly Boggart");
    // Testing FirstStrikeAbility.
    addCard(Zone.GRAVEYARD, playerA, "Serra Zealot");
    // Testing DoubleStrikeAbility.
    addCard(Zone.GRAVEYARD, playerA, "Fencing Ace");
    // Testing DeathtouchAbility.
    addCard(Zone.GRAVEYARD, playerA, "Typhoid Rats");
    // Testing HasteAbility.
    addCard(Zone.GRAVEYARD, playerB, "Raging Goblin");
    // Testing LandwalkAbility.
    addCard(Zone.GRAVEYARD, playerB, "Zodiac Rooster");
    // Testing LifelinkAbility.
    addCard(Zone.GRAVEYARD, playerB, "Trained Caracal");
    // Testing ProtectionAbility.
    addCard(Zone.GRAVEYARD, playerB, "Progenitus");
    // Testing ReachAbility.
    addCard(Zone.GRAVEYARD, playerB, "Tree Monkey");
    // Testing TrampleAbility.
    addCard(Zone.GRAVEYARD, playerB, "Defiant Elf");
    // Testing ShroudAbility.
    addCard(Zone.GRAVEYARD, playerB, "Elvish Lookout");
    // Testing VigilanceAbility.
    addCard(Zone.GRAVEYARD, playerB, "Veteran Cavalier");
    execute();
    List<Ability> abilities = new ArrayList<>();
    abilities.add(FlyingAbility.getInstance());
    abilities.add(FearAbility.getInstance());
    abilities.add(FirstStrikeAbility.getInstance());
    abilities.add(DoubleStrikeAbility.getInstance());
    abilities.add(DeathtouchAbility.getInstance());
    abilities.add(HasteAbility.getInstance());
    abilities.add(LifelinkAbility.getInstance());
    abilities.add(ReachAbility.getInstance());
    abilities.add(ShroudAbility.getInstance());
    abilities.add(TrampleAbility.getInstance());
    abilities.add(VigilanceAbility.getInstance());
    assertAbilities(playerA, "Cairn Wanderer", abilities);
    assertAbility(playerA, "Cairn Wanderer", new PlainswalkAbility(), true);
    // Progenitus - protection from everything.
    assertAbility(playerA, "Cairn Wanderer", new ProtectionAbility(new FilterCard("everything")), true);
}
Also used : HasteAbility(mage.abilities.keyword.HasteAbility) LifelinkAbility(mage.abilities.keyword.LifelinkAbility) ReachAbility(mage.abilities.keyword.ReachAbility) DeathtouchAbility(mage.abilities.keyword.DeathtouchAbility) VigilanceAbility(mage.abilities.keyword.VigilanceAbility) DoubleStrikeAbility(mage.abilities.keyword.DoubleStrikeAbility) FirstStrikeAbility(mage.abilities.keyword.FirstStrikeAbility) PlainswalkAbility(mage.abilities.keyword.PlainswalkAbility) TrampleAbility(mage.abilities.keyword.TrampleAbility) FlyingAbility(mage.abilities.keyword.FlyingAbility) FearAbility(mage.abilities.keyword.FearAbility) ProtectionAbility(mage.abilities.keyword.ProtectionAbility) ShroudAbility(mage.abilities.keyword.ShroudAbility) Ability(mage.abilities.Ability) FilterCard(mage.filter.FilterCard) PlainswalkAbility(mage.abilities.keyword.PlainswalkAbility) ArrayList(java.util.ArrayList) ProtectionAbility(mage.abilities.keyword.ProtectionAbility) Test(org.junit.Test)

Aggregations

VigilanceAbility (mage.abilities.keyword.VigilanceAbility)2 Test (org.junit.Test)2 ArrayList (java.util.ArrayList)1 Ability (mage.abilities.Ability)1 DeathtouchAbility (mage.abilities.keyword.DeathtouchAbility)1 DoubleStrikeAbility (mage.abilities.keyword.DoubleStrikeAbility)1 FearAbility (mage.abilities.keyword.FearAbility)1 FirstStrikeAbility (mage.abilities.keyword.FirstStrikeAbility)1 FlyingAbility (mage.abilities.keyword.FlyingAbility)1 HasteAbility (mage.abilities.keyword.HasteAbility)1 LifelinkAbility (mage.abilities.keyword.LifelinkAbility)1 PlainswalkAbility (mage.abilities.keyword.PlainswalkAbility)1 ProtectionAbility (mage.abilities.keyword.ProtectionAbility)1 ReachAbility (mage.abilities.keyword.ReachAbility)1 ShroudAbility (mage.abilities.keyword.ShroudAbility)1 TrampleAbility (mage.abilities.keyword.TrampleAbility)1 FilterCard (mage.filter.FilterCard)1 Permanent (mage.game.permanent.Permanent)1