[40K] Implemented Old One Eye

This commit is contained in:
Evan Kranzler 2022-09-13 08:44:43 -04:00
parent 668410dd21
commit 9b70a0ee6f
3 changed files with 99 additions and 0 deletions

View file

@ -0,0 +1,65 @@
package mage.cards.o;
import mage.MageInt;
import mage.abilities.common.BeginningOfPreCombatMainTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.DiscardTargetCost;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.DoIfCostPaid;
import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.StaticFilters;
import mage.game.permanent.token.TyranidToken;
import mage.target.common.TargetCardInHand;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class OldOneEye extends CardImpl {
public OldOneEye(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{R}");
this.addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.TYRANID);
this.power = new MageInt(6);
this.toughness = new MageInt(6);
// Trample
this.addAbility(TrampleAbility.getInstance());
// Other creatures you control have trample.
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
TrampleAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURES, true
)));
// When Old One Eye enters the battlefield, create a 5/5 green Tyranid creature token.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new TyranidToken())));
// Fast Healing -- At the beginning of your precombat main phase, you may discard two cards. If you do, return Old One Eye from your graveyard to your hand.
this.addAbility(new BeginningOfPreCombatMainTriggeredAbility(
Zone.GRAVEYARD,
new DoIfCostPaid(
new ReturnSourceFromGraveyardToHandEffect(),
new DiscardTargetCost(new TargetCardInHand(2, StaticFilters.FILTER_CARD_CARDS))
), TargetController.YOU, false, false
).withFlavorWord("Fast Healing"));
}
private OldOneEye(final OldOneEye card) {
super(card);
}
@Override
public OldOneEye copy() {
return new OldOneEye(this);
}
}

View file

@ -31,6 +31,7 @@ public final class Warhammer40000 extends ExpansionSet {
cards.add(new SetCardInfo("Imotekh the Stormlord", 5, Rarity.MYTHIC, mage.cards.i.ImotekhTheStormlord.class));
cards.add(new SetCardInfo("Inquisitor Greyfax", 3, Rarity.MYTHIC, mage.cards.i.InquisitorGreyfax.class));
cards.add(new SetCardInfo("Noise Marine", 82, Rarity.UNCOMMON, mage.cards.n.NoiseMarine.class));
cards.add(new SetCardInfo("Old One Eye", 96, Rarity.RARE, mage.cards.o.OldOneEye.class));
cards.add(new SetCardInfo("Sol Ring", 249, Rarity.UNCOMMON, mage.cards.s.SolRing.class));
cards.add(new SetCardInfo("Szarekh, the Silent King", 1, Rarity.MYTHIC, mage.cards.s.SzarekhTheSilentKing.class));
}

View file

@ -0,0 +1,33 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author TheElk801
*/
public final class TyranidToken extends TokenImpl {
public TyranidToken() {
super("Tyranid Token", "5/5 green Tyranid creature token");
cardType.add(CardType.CREATURE);
color.setGreen(true);
subtype.add(SubType.TYRANID);
power = new MageInt(5);
toughness = new MageInt(5);
availableImageSetCodes.addAll(Arrays.asList("40K"));
}
public TyranidToken(final TyranidToken token) {
super(token);
}
@Override
public TyranidToken copy() {
return new TyranidToken(this);
}
}