mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
[TDC] Implement Betor, Ancetor's Voice
This commit is contained in:
parent
65129a9d0a
commit
5060f2504a
3 changed files with 101 additions and 0 deletions
99
Mage.Sets/src/mage/cards/b/BetorAncestorsVoice.java
Normal file
99
Mage.Sets/src/mage/cards/b/BetorAncestorsVoice.java
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.dynamicvalue.common.ControllerGainedLifeCount;
|
||||
import mage.abilities.dynamicvalue.common.ControllerLostLifeCount;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
||||
import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.predicate.ObjectSourcePlayer;
|
||||
import mage.filter.predicate.ObjectSourcePlayerPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.target.common.TargetCardInGraveyard;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.targetpointer.SecondTargetPointer;
|
||||
import mage.watchers.common.PlayerGainedLifeWatcher;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Grath
|
||||
*/
|
||||
public final class BetorAncestorsVoice extends CardImpl {
|
||||
|
||||
final private static FilterCard filter
|
||||
= new FilterCard("creature card with mana value less than or equal to the amount of life you lost this turn");
|
||||
|
||||
static {
|
||||
filter.add(CardType.CREATURE.getPredicate());
|
||||
filter.add(BetorPredicate.instance);
|
||||
}
|
||||
|
||||
public BetorAncestorsVoice(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{B}{G}");
|
||||
|
||||
this.supertype.add(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.SPIRIT);
|
||||
this.subtype.add(SubType.DRAGON);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Lifelink
|
||||
this.addAbility(LifelinkAbility.getInstance());
|
||||
|
||||
// At the beginning of your end step, put a number of +1/+1 counters on up to one other target creature you
|
||||
// control equal to the amount of life you gained this turn. Return up to one target creature card with mana
|
||||
// value less than or equal to the amount of life you lost this turn from your graveyard to the battlefield.
|
||||
Ability ability = new BeginningOfEndStepTriggeredAbility(
|
||||
new AddCountersTargetEffect(CounterType.P1P1.createInstance(), ControllerGainedLifeCount.instance)
|
||||
.setText("put a number of +1/+1 counters on up to one other target creature you " +
|
||||
"control equal to the amount of life you gained this turn.")
|
||||
);
|
||||
ability.addTarget(new TargetControlledCreaturePermanent(0, 1, StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL, false));
|
||||
ability.addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect().setTargetPointer(new SecondTargetPointer())
|
||||
.setText("Return up to one target creature card with mana value less than or equal to the amount of " +
|
||||
"life you lost this turn from your graveyard to the battlefield."));
|
||||
ability.addTarget(new TargetCardInGraveyard(0, 1, filter));
|
||||
ability.addHint(ControllerGainedLifeCount.getHint());
|
||||
ability.addHint(ControllerLostLifeCount.getHint());
|
||||
this.addAbility(ability, new PlayerGainedLifeWatcher());
|
||||
}
|
||||
|
||||
private BetorAncestorsVoice(final BetorAncestorsVoice card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BetorAncestorsVoice copy() {
|
||||
return new BetorAncestorsVoice(this);
|
||||
}
|
||||
}
|
||||
|
||||
enum BetorPredicate implements ObjectSourcePlayerPredicate<MageObject> {
|
||||
instance;
|
||||
|
||||
@Override
|
||||
public boolean apply(ObjectSourcePlayer<MageObject> input, Game game) {
|
||||
return input.getObject().getManaValue() <= ControllerLostLifeCount.instance.calculate(game, input.getSource(), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "mana value less than or equal to the amount of life you lost this turn";
|
||||
}
|
||||
}
|
||||
|
|
@ -19,6 +19,7 @@ public final class TarkirDragonstormCommander extends ExpansionSet {
|
|||
super("Tarkir: Dragonstorm Commander", "TDC", ExpansionSet.buildDate(2025, 4, 11), SetType.SUPPLEMENTAL);
|
||||
this.hasBasicLands = false;
|
||||
|
||||
cards.add(new SetCardInfo("Betor, Ancestor's Voice", 1, Rarity.MYTHIC, mage.cards.b.BetorAncestorsVoice.class));
|
||||
cards.add(new SetCardInfo("Teval, the Balanced Scale", 8, Rarity.MYTHIC, mage.cards.t.TevalTheBalancedScale.class));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57207,3 +57207,4 @@ Shiko, Paragon of the Way|Tarkir: Dragonstorm|223|M|{2}{U}{R}{W}|Legendary Creat
|
|||
Skirmish Rhino|Tarkir: Dragonstorm|224|U|{W}{B}{G}|Creature - Rhino|3|4|Trample$When this creature enters, each opponent loses 2 life and you gain 2 life.|
|
||||
Mox Jasper|Tarkir: Dragonstorm|246|M|{0}|Legendary Artifact|||{T}: Add one mana of any color. Activate only if you control a Dragon.|
|
||||
Teval, the Balanced Scale|Tarkir: Dragonstorm Commander|8|M|{1}{B}{G}{U}|Legendary Creature - Spirit Dragon|4|4|Flying$Whenever Teval attacks, mill three cards. Then you may return a land card from your graveyard to the battlefield tapped.$Whenever one or more cards leave your graveyard, create a 2/2 black Zombie Druid creature token.|
|
||||
Betor, Ancestor's Voice|Tarkir: Dragonstorm Commander|1|M|{2}{W}{B}{G}|Legendary Creature - Spirit Dragon|3|5|Flying, lifelink$At the beginning of your end step, put a number of +1/+1 counters on up to one other target creature you control equal to the amount of life you gained this turn. Return up to one target creature card with mana value less than or equal to the amount of life you lost this turn from your graveyard to the battlefield.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue