[WHO] Implement Cult of Skaro

This commit is contained in:
theelk801 2023-10-13 09:12:40 -04:00
parent ad29594c56
commit bdf6aa5379
3 changed files with 104 additions and 0 deletions

View file

@ -0,0 +1,70 @@
package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeOpponentsEffect;
import mage.abilities.effects.common.counter.AddCountersAllEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.constants.TargetController;
import mage.counters.CounterType;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterArtifactCreaturePermanent;
import mage.game.permanent.token.DalekToken;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class CultOfSkaro extends CardImpl {
private static final FilterPermanent filter = new FilterArtifactCreaturePermanent("artifact creature you control");
static {
filter.add(TargetController.YOU.getControllerPredicate());
}
public CultOfSkaro(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{1}{U}{B}{R}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.DALEK);
this.power = new MageInt(4);
this.toughness = new MageInt(4);
// Whenever Cult of Skaro attacks, choose one at random --
// * Thay -- Put a +1/+1 counter on each artifact creature you control.
Ability ability = new AttacksTriggeredAbility(
new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter)
).withFirstModeFlavorWord("Thay");
ability.getModes().setRandom(true);
// * Caan -- Draw two cards.
ability.addMode(new Mode(new DrawCardSourceControllerEffect(2)).withFlavorWord("Caan"));
// * Sec -- Create a 3/3 black Dalek artifact creature token with menace.
ability.addMode(new Mode(new CreateTokenEffect(new DalekToken())).withFlavorWord("Sec"));
// * Jast -- Each opponent loses 4 life.
ability.addMode(new Mode(new LoseLifeOpponentsEffect(4)).withFlavorWord("Jast"));
this.addAbility(ability);
}
private CultOfSkaro(final CultOfSkaro card) {
super(card);
}
@Override
public CultOfSkaro copy() {
return new CultOfSkaro(this);
}
}

View file

@ -49,6 +49,7 @@ public final class DoctorWho extends ExpansionSet {
cards.add(new SetCardInfo("Creeping Tar Pit", 267, Rarity.RARE, mage.cards.c.CreepingTarPit.class));
cards.add(new SetCardInfo("Crisis of Conscience", 17, Rarity.RARE, mage.cards.c.CrisisOfConscience.class));
cards.add(new SetCardInfo("Crumbling Necropolis", 268, Rarity.UNCOMMON, mage.cards.c.CrumblingNecropolis.class));
cards.add(new SetCardInfo("Cult of Skaro", 117, Rarity.RARE, mage.cards.c.CultOfSkaro.class));
cards.add(new SetCardInfo("Cultivate", 230, Rarity.COMMON, mage.cards.c.Cultivate.class));
cards.add(new SetCardInfo("Cursed Mirror", 226, Rarity.RARE, mage.cards.c.CursedMirror.class));
cards.add(new SetCardInfo("Cyberman Patrol", 174, Rarity.UNCOMMON, mage.cards.c.CybermanPatrol.class));

View file

@ -0,0 +1,33 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.abilities.keyword.MenaceAbility;
import mage.constants.CardType;
import mage.constants.SubType;
/**
* @author TheElk801
*/
public final class DalekToken extends TokenImpl {
public DalekToken() {
super("Dalek Token", "3/3 black Dalek artifact creature token with menace");
cardType.add(CardType.ARTIFACT);
cardType.add(CardType.CREATURE);
color.setBlack(true);
subtype.add(SubType.DALEK);
power = new MageInt(3);
toughness = new MageInt(3);
addAbility(new MenaceAbility(false));
}
private DalekToken(final DalekToken token) {
super(token);
}
@Override
public DalekToken copy() {
return new DalekToken(this);
}
}