diff --git a/Mage.Sets/src/mage/cards/l/LazotepSliver.java b/Mage.Sets/src/mage/cards/l/LazotepSliver.java new file mode 100644 index 00000000000..177cac6e646 --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LazotepSliver.java @@ -0,0 +1,60 @@ +package mage.cards.l; + +import mage.MageInt; +import mage.abilities.common.DiesCreatureTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.effects.keyword.AmassEffect; +import mage.abilities.keyword.AfflictAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.filter.FilterPermanent; +import mage.filter.StaticFilters; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.permanent.TokenPredicate; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class LazotepSliver extends CardImpl { + + private static final FilterPermanent filter + = new FilterControlledPermanent(SubType.SLIVER, "a nontoken Sliver you control"); + + static { + filter.add(TokenPredicate.FALSE); + } + + public LazotepSliver(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); + + this.subtype.add(SubType.ZOMBIE); + this.subtype.add(SubType.SLIVER); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // Sliver creatures you control have afflict 2. + this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect( + new AfflictAbility(2), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_SLIVERS + ).setText("Sliver creatures you control have afflict 2"))); + + // Whenever a nontoken Sliver you control dies, amass Slivers 2. + this.addAbility(new DiesCreatureTriggeredAbility( + new AmassEffect(2, SubType.SLIVER), false, filter + )); + } + + private LazotepSliver(final LazotepSliver card) { + super(card); + } + + @Override + public LazotepSliver copy() { + return new LazotepSliver(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CommanderMasters.java b/Mage.Sets/src/mage/sets/CommanderMasters.java index b9b7a867bf7..17cf7d44fce 100644 --- a/Mage.Sets/src/mage/sets/CommanderMasters.java +++ b/Mage.Sets/src/mage/sets/CommanderMasters.java @@ -239,6 +239,7 @@ public final class CommanderMasters extends ExpansionSet { cards.add(new SetCardInfo("Kykar, Wind's Fury", 343, Rarity.RARE, mage.cards.k.KykarWindsFury.class)); cards.add(new SetCardInfo("Land Tax", 37, Rarity.MYTHIC, mage.cards.l.LandTax.class)); cards.add(new SetCardInfo("Lavabelly Sliver", 927, Rarity.UNCOMMON, mage.cards.l.LavabellySliver.class)); + cards.add(new SetCardInfo("Lazotep Sliver", 733, Rarity.RARE, mage.cards.l.LazotepSliver.class)); cards.add(new SetCardInfo("Lifeblood Hydra", 303, Rarity.RARE, mage.cards.l.LifebloodHydra.class)); cards.add(new SetCardInfo("Lightning Greaves", 398, Rarity.UNCOMMON, mage.cards.l.LightningGreaves.class)); cards.add(new SetCardInfo("Lorthos, the Tidemaker", 103, Rarity.RARE, mage.cards.l.LorthosTheTidemaker.class)); diff --git a/Mage/src/main/java/mage/abilities/effects/keyword/AmassEffect.java b/Mage/src/main/java/mage/abilities/effects/keyword/AmassEffect.java index 1092ab8d2b0..e2e441f8bc9 100644 --- a/Mage/src/main/java/mage/abilities/effects/keyword/AmassEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/keyword/AmassEffect.java @@ -12,8 +12,10 @@ import mage.filter.common.FilterControlledPermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.permanent.token.OrcArmyToken; +import mage.game.permanent.token.SliverArmyToken; import mage.game.permanent.token.Token; import mage.game.permanent.token.ZombieArmyToken; +import mage.game.permanent.token.custom.CreatureToken; import mage.players.Player; import mage.target.Target; import mage.target.TargetPermanent; @@ -64,9 +66,14 @@ public class AmassEffect extends OneShotEffect { switch (subType) { case ORC: return new OrcArmyToken(); - default: case ZOMBIE: return new ZombieArmyToken(); + case SLIVER: + return new SliverArmyToken(); + default: + return new CreatureToken( + 0, 0, "", subType, SubType.ARMY + ).withColor("B"); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/SliverArmyToken.java b/Mage/src/main/java/mage/game/permanent/token/SliverArmyToken.java new file mode 100644 index 00000000000..b51caab06a0 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/SliverArmyToken.java @@ -0,0 +1,31 @@ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.constants.CardType; +import mage.constants.SubType; + +/** + * @author TheElk801 + */ +public final class SliverArmyToken extends TokenImpl { + + public SliverArmyToken() { + super("Sliver Army Token", "0/0 black Sliver Army creature token"); + + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add(SubType.SLIVER); + subtype.add(SubType.ARMY); + power = new MageInt(0); + toughness = new MageInt(0); + } + + private SliverArmyToken(final SliverArmyToken token) { + super(token); + } + + @Override + public SliverArmyToken copy() { + return new SliverArmyToken(this); + } +}