Skip to content

Commit

Permalink
[WHO] Implement Cult of Skaro
Browse files Browse the repository at this point in the history
  • Loading branch information
theelk801 committed Oct 13, 2023
1 parent ad29594 commit bdf6aa5
Show file tree
Hide file tree
Showing 3 changed files with 104 additions and 0 deletions.
70 changes: 70 additions & 0 deletions Mage.Sets/src/mage/cards/c/CultOfSkaro.java
Original file line number Diff line number Diff line change
@@ -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);
}
}
1 change: 1 addition & 0 deletions Mage.Sets/src/mage/sets/DoctorWho.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ private DoctorWho() {
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));
Expand Down
33 changes: 33 additions & 0 deletions Mage/src/main/java/mage/game/permanent/token/DalekToken.java
Original file line number Diff line number Diff line change
@@ -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);
}
}

0 comments on commit bdf6aa5

Please sign in to comment.