forked from External/mage
[FIN] Implement Louisoix's Sacrifice
This commit is contained in:
parent
32f7584033
commit
bdd3c3e17c
2 changed files with 64 additions and 0 deletions
63
Mage.Sets/src/mage/cards/l/LouisoixsSacrifice.java
Normal file
63
Mage.Sets/src/mage/cards/l/LouisoixsSacrifice.java
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
package mage.cards.l;
|
||||
|
||||
import mage.abilities.costs.CompositeCost;
|
||||
import mage.abilities.costs.common.SacrificeTargetCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.common.CounterTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.FilterStackObject;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.predicate.Predicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.stack.Spell;
|
||||
import mage.game.stack.StackObject;
|
||||
import mage.target.TargetStackObject;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class LouisoixsSacrifice extends CardImpl {
|
||||
|
||||
private static final FilterStackObject filter
|
||||
= new FilterStackObject("activated ability, triggered ability, or noncreature spell");
|
||||
|
||||
static {
|
||||
filter.add(LouisoixsSacrificePredicate.instance);
|
||||
}
|
||||
|
||||
public LouisoixsSacrifice(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{U}");
|
||||
|
||||
// As an additional cost to cast this spell, sacrifice a legendary creature or pay {2}.
|
||||
this.getSpellAbility().addCost(new CompositeCost(
|
||||
new SacrificeTargetCost(StaticFilters.FILTER_CREATURE_LEGENDARY),
|
||||
new GenericManaCost(2), "sacrifice a legendary creature or pay {2}"
|
||||
));
|
||||
|
||||
// Counter target activated ability, triggered ability, or noncreature spell.
|
||||
this.getSpellAbility().addEffect(new CounterTargetEffect());
|
||||
this.getSpellAbility().addTarget(new TargetStackObject(filter));
|
||||
}
|
||||
|
||||
private LouisoixsSacrifice(final LouisoixsSacrifice card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LouisoixsSacrifice copy() {
|
||||
return new LouisoixsSacrifice(this);
|
||||
}
|
||||
}
|
||||
|
||||
enum LouisoixsSacrificePredicate implements Predicate<StackObject> {
|
||||
instance;
|
||||
|
||||
@Override
|
||||
public boolean apply(StackObject input, Game game) {
|
||||
return !(input instanceof Spell) || !input.isCreature(game);
|
||||
}
|
||||
}
|
||||
|
|
@ -274,6 +274,7 @@ public final class FinalFantasy extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Lion Heart", 261, Rarity.UNCOMMON, mage.cards.l.LionHeart.class));
|
||||
cards.add(new SetCardInfo("Locke Cole", 234, Rarity.UNCOMMON, mage.cards.l.LockeCole.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Locke Cole", 499, Rarity.UNCOMMON, mage.cards.l.LockeCole.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Louisoix's Sacrifice", 59, Rarity.RARE, mage.cards.l.LouisoixsSacrifice.class));
|
||||
cards.add(new SetCardInfo("Machinist's Arsenal", 23, Rarity.RARE, mage.cards.m.MachinistsArsenal.class));
|
||||
cards.add(new SetCardInfo("Magitek Armor", 24, Rarity.UNCOMMON, mage.cards.m.MagitekArmor.class));
|
||||
cards.add(new SetCardInfo("Magitek Infantry", 25, Rarity.COMMON, mage.cards.m.MagitekInfantry.class));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue