Improved interactions between pay X and other effects;

This commit is contained in:
Oleg Agafonov 2019-06-21 11:40:52 +04:00
commit bb1c9c072c
20 changed files with 1051 additions and 2 deletions

View file

@ -0,0 +1,33 @@
package mage.game.command.emblems;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterControlledPermanent;
import mage.game.command.Emblem;
/**
* @author TheElk801
*/
public final class MuYanlingSkyDancerEmblem extends Emblem {
private static final FilterPermanent filter
= new FilterControlledPermanent(SubType.ISLAND, "Islands you control");
// "Islands you control have '{T}: Draw a card'."
public MuYanlingSkyDancerEmblem() {
this.setName("Emblem Yanling");
this.getAbilities().add(new SimpleStaticAbility(
Zone.COMMAND,
new GainAbilityControlledEffect(new SimpleActivatedAbility(
new DrawCardSourceControllerEffect(1), new TapSourceCost()
), Duration.EndOfGame, filter)
));
}
}

View file

@ -0,0 +1,28 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.abilities.keyword.FlyingAbility;
import mage.constants.CardType;
import mage.constants.SubType;
public final class MuYanlingSkyDancerToken extends TokenImpl {
public MuYanlingSkyDancerToken() {
super("Elemental Bird", "4/4 blue Elemental Bird creature token with flying");
cardType.add(CardType.CREATURE);
color.setBlue(true);
subtype.add(SubType.ELEMENTAL);
subtype.add(SubType.BIRD);
power = new MageInt(4);
toughness = new MageInt(4);
addAbility(FlyingAbility.getInstance());
}
private MuYanlingSkyDancerToken(final MuYanlingSkyDancerToken token) {
super(token);
}
public MuYanlingSkyDancerToken copy() {
return new MuYanlingSkyDancerToken(this);
}
}

View file

@ -499,7 +499,7 @@ public final class ManaUtil {
}
/**
* all ability/effect code with "new GenericManaCost" must be replaced by createManaCost call
* all ability/effect code with "= new GenericManaCost" must be replaced by createManaCost call
*/
public static ManaCost createManaCost(int genericManaCount, boolean payAsX) {
if (payAsX) {