mirror of
https://github.com/correl/mage.git
synced 2025-01-12 19:25:44 +00:00
[AFR] Implemented Zariel, Archduke of Avernus
This commit is contained in:
parent
3299641ad4
commit
f9bf84e6f6
4 changed files with 123 additions and 1 deletions
60
Mage.Sets/src/mage/cards/z/ZarielArchdukeOfAvernus.java
Normal file
60
Mage.Sets/src/mage/cards/z/ZarielArchdukeOfAvernus.java
Normal file
|
@ -0,0 +1,60 @@
|
|||
package mage.cards.z;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.LoyaltyAbility;
|
||||
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.GetEmblemEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.command.emblems.ZarielArchdukeOfAvernusEmblem;
|
||||
import mage.game.permanent.token.DevilToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class ZarielArchdukeOfAvernus extends CardImpl {
|
||||
|
||||
public ZarielArchdukeOfAvernus(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{2}{R}{R}");
|
||||
|
||||
this.addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.ZARIEL);
|
||||
this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(4));
|
||||
|
||||
// +1: Creatures you control get +1/+0 and gain haste until end of turn.
|
||||
Ability ability = new LoyaltyAbility(new BoostControlledEffect(
|
||||
1, 0, Duration.EndOfTurn
|
||||
).setText("creatures you control get +1/+0"), 1);
|
||||
ability.addEffect(new GainAbilityControlledEffect(
|
||||
HasteAbility.getInstance(), Duration.EndOfTurn,
|
||||
StaticFilters.FILTER_PERMANENT_CREATURES
|
||||
).setText("and gain haste until end of turn"));
|
||||
this.addAbility(ability);
|
||||
|
||||
// 0: Create a 1/1 red Devil creature token with "When this creature dies, it deals 1 damage to any target."
|
||||
this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new DevilToken()), 0));
|
||||
|
||||
// −6: You get an emblem with "At the end of the first combat phase on your turn, untap target creature you control. After this phase, there is an additional combat phase."
|
||||
this.addAbility(new LoyaltyAbility(new GetEmblemEffect(new ZarielArchdukeOfAvernusEmblem()), -6));
|
||||
}
|
||||
|
||||
private ZarielArchdukeOfAvernus(final ZarielArchdukeOfAvernus card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZarielArchdukeOfAvernus copy() {
|
||||
return new ZarielArchdukeOfAvernus(this);
|
||||
}
|
||||
}
|
|
@ -269,6 +269,7 @@ public final class AdventuresInTheForgottenRealms extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Yuan-Ti Fang-Blade", 128, Rarity.COMMON, mage.cards.y.YuanTiFangBlade.class));
|
||||
cards.add(new SetCardInfo("Yuan-Ti Malison", 86, Rarity.RARE, mage.cards.y.YuanTiMalison.class));
|
||||
cards.add(new SetCardInfo("Zalto, Fire Giant Duke", 171, Rarity.RARE, mage.cards.z.ZaltoFireGiantDuke.class));
|
||||
cards.add(new SetCardInfo("Zariel, Archduke of Avernus", 172, Rarity.MYTHIC, mage.cards.z.ZarielArchdukeOfAvernus.class));
|
||||
cards.add(new SetCardInfo("Zombie Ogre", 129, Rarity.COMMON, mage.cards.z.ZombieOgre.class));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -467,7 +467,8 @@ public enum SubType {
|
|||
XENAGOS("Xenagos", SubTypeSet.PlaneswalkerType),
|
||||
YANGGU("Yanggu", SubTypeSet.PlaneswalkerType),
|
||||
YANLING("Yanling", SubTypeSet.PlaneswalkerType),
|
||||
YODA("Yoda", SubTypeSet.PlaneswalkerType, true); // Star Wars
|
||||
YODA("Yoda", SubTypeSet.PlaneswalkerType, true), // Star Wars,
|
||||
ZARIEL("Zariel", SubTypeSet.PlaneswalkerType);
|
||||
|
||||
public static class SubTypePredicate implements Predicate<MageObject> {
|
||||
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
package mage.game.command.emblems;
|
||||
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.common.AdditionalCombatPhaseEffect;
|
||||
import mage.abilities.effects.common.UntapTargetEffect;
|
||||
import mage.constants.TurnPhase;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.command.Emblem;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class ZarielArchdukeOfAvernusEmblem extends Emblem {
|
||||
|
||||
// −6: You get an emblem with "At the end of the first combat phase on your turn, untap target creature you control. After this phase, there is an additional combat phase."
|
||||
public ZarielArchdukeOfAvernusEmblem() {
|
||||
this.setName("Emblem Zariel");
|
||||
this.setExpansionSetCodeForImage("AFR");
|
||||
this.getAbilities().add(new ZarielArchdukeOfAvernusEmblemAbility());
|
||||
}
|
||||
}
|
||||
|
||||
class ZarielArchdukeOfAvernusEmblemAbility extends TriggeredAbilityImpl {
|
||||
|
||||
ZarielArchdukeOfAvernusEmblemAbility() {
|
||||
super(Zone.COMMAND, new UntapTargetEffect());
|
||||
this.addEffect(new AdditionalCombatPhaseEffect());
|
||||
this.addTarget(new TargetControlledCreaturePermanent());
|
||||
}
|
||||
|
||||
private ZarielArchdukeOfAvernusEmblemAbility(final ZarielArchdukeOfAvernusEmblemAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZarielArchdukeOfAvernusEmblemAbility copy() {
|
||||
return new ZarielArchdukeOfAvernusEmblemAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkEventType(GameEvent event, Game game) {
|
||||
return event.getType() == GameEvent.EventType.END_COMBAT_STEP_PRE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return game.isActivePlayer(getControllerId())
|
||||
&& game.getTurn().getPhase(TurnPhase.COMBAT).getCount() == 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "At the end of the first combat phase on your turn, untap target creature you control. " +
|
||||
"After this phase, there is an additional combat phase.";
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue