Implement Aeon Engine (#8804)

Co-authored-by: teskogi <tojile7269@yeafam.com>
This commit is contained in:
teskogi 2022-05-25 13:33:28 -07:00 committed by GitHub
parent 015cdf3136
commit 7ec94425df
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 238 additions and 3 deletions

View file

@ -0,0 +1,65 @@
package mage.cards.a;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.ExileSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.OneShotEffect;
import mage.cards.*;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.game.Game;
import mage.game.GameState;
import mage.players.PlayerList;
/**
*
* @author azra1l <algee2005@gmail.com>
*/
public final class AeonEngine extends CardImpl {
public AeonEngine(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}");
// Aeon Engine enters the battlefield tapped.
this.addAbility(new EntersBattlefieldTappedAbility());
// {T}, Exile Aeon Engine: Reverse the game’s turn order. (For example, if play had proceeded clockwise around the table, it now goes counterclockwise.)
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AeonEngineEffect(), new TapSourceCost());
ability.addCost(new ExileSourceCost());
this.addAbility(ability);
}
public AeonEngine(final AeonEngine card) {
super(card);
}
@Override
public AeonEngine copy() {
return new AeonEngine(this);
}
}
class AeonEngineEffect extends OneShotEffect {
public AeonEngineEffect() {
super(Outcome.Benefit);
this.staticText = "Reverse the game turn order.";
}
public AeonEngineEffect(final AeonEngineEffect effect) {
super(effect);
}
public AeonEngineEffect copy() {
return new AeonEngineEffect(this);
}
public boolean apply(Game game, Ability source) {
game.getState().setReverseTurnOrder(true);
return true;
}
}

View file

@ -20,6 +20,7 @@ public final class Commander2019Edition extends ExpansionSet {
this.blockName = "Command Zone";
cards.add(new SetCardInfo("Ainok Survivalist", 156, Rarity.COMMON, mage.cards.a.AinokSurvivalist.class));
cards.add(new SetCardInfo("Aeon Engine", 52, Rarity.RARE, mage.cards.a.AeonEngine.class));
cards.add(new SetCardInfo("Akoum Refuge", 226, Rarity.UNCOMMON, mage.cards.a.AkoumRefuge.class));
cards.add(new SetCardInfo("Alchemist's Greeting", 133, Rarity.COMMON, mage.cards.a.AlchemistsGreeting.class));
cards.add(new SetCardInfo("Angel of Sanctions", 61, Rarity.MYTHIC, mage.cards.a.AngelOfSanctions.class));