[FDN] Implement Skyknight Squire

This commit is contained in:
ciaccona007 2024-11-02 00:00:22 -04:00
parent 4eff968367
commit 3a6d3df5e0
2 changed files with 69 additions and 0 deletions

View file

@ -0,0 +1,68 @@
package mage.cards.s;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.SourceHasCounterCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.AddCardSubTypeSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author ciaccona007
*/
public final class SkyknightSquire extends CardImpl {
private static final Condition condition = new SourceHasCounterCondition(CounterType.P1P1, 3);
public SkyknightSquire(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}");
this.subtype.add(SubType.CAT);
this.subtype.add(SubType.SCOUT);
this.power = new MageInt(1);
this.toughness = new MageInt(1);
// Whenever another creature you control enters, put a +1/+1 counter on this creature.
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(Zone.BATTLEFIELD,
new AddCountersSourceEffect(CounterType.P1P1.createInstance()),
StaticFilters.FILTER_ANOTHER_CREATURE, false));
// As long as this creature has three or more +1/+1 counters on it, it has flying and is a Knight in addition to its other types.
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(
FlyingAbility.getInstance(), Duration.WhileOnBattlefield
), condition, "as long as this creature has " +
"three or more +1/+1 counters on it, it has flying"
));
ability.addEffect(new ConditionalContinuousEffect(
new AddCardSubTypeSourceEffect(Duration.WhileOnBattlefield, true, SubType.KNIGHT),
condition, "and is an Knight in addition to its other types"
));
this.addAbility(ability);
}
private SkyknightSquire(final SkyknightSquire card) {
super(card);
}
@Override
public SkyknightSquire copy() {
return new SkyknightSquire(this);
}
}

View file

@ -377,6 +377,7 @@ public final class Foundations extends ExpansionSet {
cards.add(new SetCardInfo("Simic Guildgate", 695, Rarity.COMMON, mage.cards.s.SimicGuildgate.class));
cards.add(new SetCardInfo("Sire of Seven Deaths", 1, Rarity.MYTHIC, mage.cards.s.SireOfSevenDeaths.class));
cards.add(new SetCardInfo("Skeleton Archer", 526, Rarity.COMMON, mage.cards.s.SkeletonArcher.class));
cards.add(new SetCardInfo("Skyknight Squire", 23, Rarity.RARE, mage.cards.s.SkyknightSquire.class));
cards.add(new SetCardInfo("Skyraker Giant", 547, Rarity.COMMON, mage.cards.s.SkyrakerGiant.class));
cards.add(new SetCardInfo("Skyship Buccaneer", 50, Rarity.UNCOMMON, mage.cards.s.SkyshipBuccaneer.class));
cards.add(new SetCardInfo("Slagstorm", 207, Rarity.RARE, mage.cards.s.Slagstorm.class));