mirror of
https://github.com/correl/mage.git
synced 2024-11-15 11:09:30 +00:00
[VOW] Implemented Sanguine Statuette
This commit is contained in:
parent
887e7a644e
commit
950aacd6fc
3 changed files with 62 additions and 1 deletions
56
Mage.Sets/src/mage/cards/s/SanguineStatuette.java
Normal file
56
Mage.Sets/src/mage/cards/s/SanguineStatuette.java
Normal file
|
@ -0,0 +1,56 @@
|
|||
package mage.cards.s;
|
||||
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SacrificePermanentTriggeredAbility;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
|
||||
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.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.permanent.TokenPredicate;
|
||||
import mage.game.permanent.token.BloodToken;
|
||||
import mage.game.permanent.token.custom.CreatureToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class SanguineStatuette extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter = new FilterControlledPermanent(SubType.BLOOD, "a Blood token");
|
||||
|
||||
static {
|
||||
filter.add(TokenPredicate.TRUE);
|
||||
}
|
||||
|
||||
public SanguineStatuette(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}{R}");
|
||||
|
||||
// When Sanguine Statuette enters the battlefield, create a Blood token.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new BloodToken())));
|
||||
|
||||
// Whenever you sacrifice a Blood token, you may have Sanguine Statuette become a 3/3 Vampire artifact creature with haste until end of turn.
|
||||
this.addAbility(new SacrificePermanentTriggeredAbility(new BecomesCreatureSourceEffect(
|
||||
new CreatureToken(3, 3, "3/3 Vampire artifact creature with haste")
|
||||
.withType(CardType.ARTIFACT)
|
||||
.withSubType(SubType.VAMPIRE)
|
||||
.withAbility(HasteAbility.getInstance()),
|
||||
"", Duration.EndOfTurn
|
||||
), filter, false, true));
|
||||
}
|
||||
|
||||
private SanguineStatuette(final SanguineStatuette card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SanguineStatuette copy() {
|
||||
return new SanguineStatuette(this);
|
||||
}
|
||||
}
|
|
@ -153,6 +153,7 @@ public final class InnistradCrimsonVow extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Rot-Tide Gargantua", 129, Rarity.COMMON, mage.cards.r.RotTideGargantua.class));
|
||||
cards.add(new SetCardInfo("Runebound Wolf", 176, Rarity.UNCOMMON, mage.cards.r.RuneboundWolf.class));
|
||||
cards.add(new SetCardInfo("Sanctify", 33, Rarity.COMMON, mage.cards.s.Sanctify.class));
|
||||
cards.add(new SetCardInfo("Sanguine Statuette", 177, Rarity.UNCOMMON, mage.cards.s.SanguineStatuette.class));
|
||||
cards.add(new SetCardInfo("Savage Packmate", 234, Rarity.UNCOMMON, mage.cards.s.SavagePackmate.class));
|
||||
cards.add(new SetCardInfo("Sawblade Slinger", 217, Rarity.UNCOMMON, mage.cards.s.SawbladeSlinger.class));
|
||||
cards.add(new SetCardInfo("Scattered Thoughts", 74, Rarity.COMMON, mage.cards.s.ScatteredThoughts.class));
|
||||
|
|
|
@ -27,7 +27,11 @@ public class SacrificePermanentTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
public SacrificePermanentTriggeredAbility(Effect effect, FilterPermanent filter, boolean setTargetPointer) {
|
||||
super(Zone.BATTLEFIELD, effect);
|
||||
this(effect, filter, setTargetPointer, false);
|
||||
}
|
||||
|
||||
public SacrificePermanentTriggeredAbility(Effect effect, FilterPermanent filter, boolean setTargetPointer, boolean optional) {
|
||||
super(Zone.BATTLEFIELD, effect, optional);
|
||||
setLeavesTheBattlefieldTrigger(true);
|
||||
this.filter = filter;
|
||||
this.setTargetPointer = setTargetPointer;
|
||||
|
|
Loading…
Reference in a new issue