mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
[FIN] Implement Cid, Timeless Artificer
This commit is contained in:
parent
54d7401bd6
commit
6533e2b03c
4 changed files with 85 additions and 0 deletions
82
Mage.Sets/src/mage/cards/c/CidTimelessArtificer.java
Normal file
82
Mage.Sets/src/mage/cards/c/CidTimelessArtificer.java
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
package mage.cards.c;
|
||||||
|
|
||||||
|
import mage.MageInt;
|
||||||
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
|
import mage.abilities.dynamicvalue.AdditiveDynamicValue;
|
||||||
|
import mage.abilities.dynamicvalue.DynamicValue;
|
||||||
|
import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount;
|
||||||
|
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||||
|
import mage.abilities.effects.common.InfoEffect;
|
||||||
|
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||||
|
import mage.abilities.hint.Hint;
|
||||||
|
import mage.abilities.hint.ValueHint;
|
||||||
|
import mage.abilities.keyword.CyclingAbility;
|
||||||
|
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.FilterCard;
|
||||||
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
|
import mage.filter.predicate.Predicates;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public final class CidTimelessArtificer extends CardImpl {
|
||||||
|
|
||||||
|
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent();
|
||||||
|
private static final FilterCard filter2 = new FilterCard();
|
||||||
|
|
||||||
|
static {
|
||||||
|
filter.add(Predicates.or(
|
||||||
|
CardType.ARTIFACT.getPredicate(),
|
||||||
|
SubType.HERO.getPredicate()
|
||||||
|
));
|
||||||
|
filter2.add(SubType.ARTIFICER.getPredicate());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final DynamicValue xValue = new AdditiveDynamicValue(
|
||||||
|
new PermanentsOnBattlefieldCount(new FilterControlledPermanent(SubType.ARTIFICER)),
|
||||||
|
new CardsInControllerGraveyardCount(filter2)
|
||||||
|
);
|
||||||
|
private static final Hint hint = new ValueHint(
|
||||||
|
"Artificers you control and Artificer cards in your graveyard", xValue
|
||||||
|
);
|
||||||
|
|
||||||
|
public CidTimelessArtificer(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{U}");
|
||||||
|
|
||||||
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
|
this.subtype.add(SubType.HUMAN);
|
||||||
|
this.subtype.add(SubType.ARTIFICER);
|
||||||
|
this.power = new MageInt(4);
|
||||||
|
this.toughness = new MageInt(4);
|
||||||
|
|
||||||
|
// Artifact creatures and Heroes you control get +1/+1 for each Artificer you control and each Artificer card in your graveyard.
|
||||||
|
this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(
|
||||||
|
xValue, xValue, Duration.WhileOnBattlefield, filter, false
|
||||||
|
).setText("artifact creatures and Heroes you control get +1/+1 " +
|
||||||
|
"for each Artificer you control and each Artificer card in your graveyard")).addHint(hint));
|
||||||
|
|
||||||
|
// A deck can have any number of cards named Cid, Timeless Artificer.
|
||||||
|
this.getSpellAbility().addEffect(new InfoEffect("a deck can have any number of cards named Cid, Timeless Artificer"));
|
||||||
|
|
||||||
|
// Cycling {W}{U}
|
||||||
|
this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{W}{U}")));
|
||||||
|
}
|
||||||
|
|
||||||
|
private CidTimelessArtificer(final CidTimelessArtificer card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CidTimelessArtificer copy() {
|
||||||
|
return new CidTimelessArtificer(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -23,6 +23,7 @@ public final class FinalFantasy extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Adventurer's Inn", 271, Rarity.COMMON, mage.cards.a.AdventurersInn.class));
|
cards.add(new SetCardInfo("Adventurer's Inn", 271, Rarity.COMMON, mage.cards.a.AdventurersInn.class));
|
||||||
cards.add(new SetCardInfo("Black Mage's Rod", 90, Rarity.COMMON, mage.cards.b.BlackMagesRod.class));
|
cards.add(new SetCardInfo("Black Mage's Rod", 90, Rarity.COMMON, mage.cards.b.BlackMagesRod.class));
|
||||||
cards.add(new SetCardInfo("Chaos, the Endless", 221, Rarity.UNCOMMON, mage.cards.c.ChaosTheEndless.class));
|
cards.add(new SetCardInfo("Chaos, the Endless", 221, Rarity.UNCOMMON, mage.cards.c.ChaosTheEndless.class));
|
||||||
|
cards.add(new SetCardInfo("Cid, Timeless Artificer", 216, Rarity.UNCOMMON, mage.cards.c.CidTimelessArtificer.class));
|
||||||
cards.add(new SetCardInfo("Cloud, Planet's Champion", 552, Rarity.MYTHIC, mage.cards.c.CloudPlanetsChampion.class));
|
cards.add(new SetCardInfo("Cloud, Planet's Champion", 552, Rarity.MYTHIC, mage.cards.c.CloudPlanetsChampion.class));
|
||||||
cards.add(new SetCardInfo("Commune with Beavers", 102, Rarity.COMMON, mage.cards.c.CommuneWithBeavers.class));
|
cards.add(new SetCardInfo("Commune with Beavers", 102, Rarity.COMMON, mage.cards.c.CommuneWithBeavers.class));
|
||||||
cards.add(new SetCardInfo("Cooking Campsite", 31, Rarity.UNCOMMON, mage.cards.c.CookingCampsite.class));
|
cards.add(new SetCardInfo("Cooking Campsite", 31, Rarity.UNCOMMON, mage.cards.c.CookingCampsite.class));
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,7 @@ public abstract class DeckValidator implements Serializable {
|
||||||
maxCopiesMap.put("Templar Knight", Integer.MAX_VALUE);
|
maxCopiesMap.put("Templar Knight", Integer.MAX_VALUE);
|
||||||
maxCopiesMap.put("Hare Apparent", Integer.MAX_VALUE);
|
maxCopiesMap.put("Hare Apparent", Integer.MAX_VALUE);
|
||||||
maxCopiesMap.put("Tempest Hawk", Integer.MAX_VALUE);
|
maxCopiesMap.put("Tempest Hawk", Integer.MAX_VALUE);
|
||||||
|
maxCopiesMap.put("Cid, Timeless Artificer", Integer.MAX_VALUE);
|
||||||
maxCopiesMap.put("Once More with Feeling", 1);
|
maxCopiesMap.put("Once More with Feeling", 1);
|
||||||
maxCopiesMap.put("Seven Dwarves", 7);
|
maxCopiesMap.put("Seven Dwarves", 7);
|
||||||
maxCopiesMap.put("Nazgul", 9);
|
maxCopiesMap.put("Nazgul", 9);
|
||||||
|
|
|
||||||
|
|
@ -57198,6 +57198,7 @@ Shinryu, Transcendent Rival|Final Fantasy|127|R||Legendary Creature - Human Nobl
|
||||||
Zell Dincht|Final Fantasy|170|R|{2}{R}|Legendary Creature - Human Monk|0|3|You may play an additional land on each of your turns.$Zell Dincht gets +1/+0 for each land you control.$At the beginning of your end step, return a land you control to its owner's hand.|
|
Zell Dincht|Final Fantasy|170|R|{2}{R}|Legendary Creature - Human Monk|0|3|You may play an additional land on each of your turns.$Zell Dincht gets +1/+0 for each land you control.$At the beginning of your end step, return a land you control to its owner's hand.|
|
||||||
Jumbo Cactuar|Final Fantasy|191|R|{5}{G}{G}|Creature - Plant|1|7|10,000 Needles -- Whenever this creature attacks, it gets +9999/+0 until end of turn.|
|
Jumbo Cactuar|Final Fantasy|191|R|{5}{G}{G}|Creature - Plant|1|7|10,000 Needles -- Whenever this creature attacks, it gets +9999/+0 until end of turn.|
|
||||||
Sazh's Chocobo|Final Fantasy|200|U|{G}|Creature - Bird|0|1|Landfall -- Whenever a land you control enters, put a +1/+1 counter on this creature.|
|
Sazh's Chocobo|Final Fantasy|200|U|{G}|Creature - Bird|0|1|Landfall -- Whenever a land you control enters, put a +1/+1 counter on this creature.|
|
||||||
|
Cid, Timeless Artificer|Final Fantasy|216|U|{2}{W}{U}|Legendary Creature - Human Artificer|4|4|Artifact creatures and Heroes you control get +1/+1 for each Artificer you control and each Artificer card in your graveyard.$A deck can have any number of cards named Cid, Timeless Artificer.$Cycling {W}{U}|
|
||||||
Emet-Selch, Unsundered|Final Fantasy|218|M|{1}{U}{B}|Legendary Creature - Elder Wizard|2|4|Vigilance$Whenever Emet-Selch enters or attacks, draw a card, then discard a card.$At the beginning of your upkeep, if there are fourteen or more cards in your graveyard, you may transform Emet-Selch.|
|
Emet-Selch, Unsundered|Final Fantasy|218|M|{1}{U}{B}|Legendary Creature - Elder Wizard|2|4|Vigilance$Whenever Emet-Selch enters or attacks, draw a card, then discard a card.$At the beginning of your upkeep, if there are fourteen or more cards in your graveyard, you may transform Emet-Selch.|
|
||||||
Hades, Sorcerer of Eld|Final Fantasy|218|M||Legendary Creature - Avatar|6|6|Vigilance$Echo of the Lost -- During your turn, you may play cards from your graveyard.$If a card or token would be put into your graveyard from anywhere, exile it instead.|
|
Hades, Sorcerer of Eld|Final Fantasy|218|M||Legendary Creature - Avatar|6|6|Vigilance$Echo of the Lost -- During your turn, you may play cards from your graveyard.$If a card or token would be put into your graveyard from anywhere, exile it instead.|
|
||||||
Garland, Knight of Cornelia|Final Fantasy|221|U|{B}{R}|Legendary Creature - Human Knight|3|2|Whenever you cast a noncreature spell, surveil 1.${3}{B}{B}{R}{R}: Return this card from your graveyard to the battlefield transformed. Activate only as a sorcery.|
|
Garland, Knight of Cornelia|Final Fantasy|221|U|{B}{R}|Legendary Creature - Human Knight|3|2|Whenever you cast a noncreature spell, surveil 1.${3}{B}{B}{R}{R}: Return this card from your graveyard to the battlefield transformed. Activate only as a sorcery.|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue