[CMM] Implement Lazotep Sliver

This commit is contained in:
theelk801 2023-07-21 20:08:15 -04:00
parent 5b95d75842
commit 564a24f7a3
4 changed files with 100 additions and 1 deletions

View file

@ -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);
}
}

View file

@ -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));

View file

@ -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");
}
}

View file

@ -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);
}
}