mirror of
https://github.com/correl/mage.git
synced 2024-12-25 03:00:15 +00:00
[CMR] Implemented Rakshasa Debaser
This commit is contained in:
parent
d672df550b
commit
de4958a725
6 changed files with 73 additions and 19 deletions
|
@ -24,7 +24,7 @@ public final class GravenAbomination extends CardImpl {
|
|||
private static final FilterCard filter = new FilterCard("card from defending player's graveyard");
|
||||
|
||||
static {
|
||||
filter.add(new DefendingPlayerOwnsCardPredicate());
|
||||
filter.add(DefendingPlayerOwnsCardPredicate.instance);
|
||||
}
|
||||
|
||||
public GravenAbomination(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
62
Mage.Sets/src/mage/cards/r/RakshasaDebaser.java
Normal file
62
Mage.Sets/src/mage/cards/r/RakshasaDebaser.java
Normal file
|
@ -0,0 +1,62 @@
|
|||
package mage.cards.r;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
|
||||
import mage.abilities.keyword.EncoreAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.predicate.permanent.DefendingPlayerOwnsCardPredicate;
|
||||
import mage.target.common.TargetCardInGraveyard;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class RakshasaDebaser extends CardImpl {
|
||||
|
||||
private static final FilterCard filter
|
||||
= new FilterCreatureCard("creature card from defending player's graveyard");
|
||||
|
||||
static {
|
||||
filter.add(DefendingPlayerOwnsCardPredicate.instance);
|
||||
}
|
||||
|
||||
private static final String rule
|
||||
= "put target creature card from defending player's graveyard onto the battlefield under your control";
|
||||
|
||||
public RakshasaDebaser(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}{B}");
|
||||
|
||||
this.subtype.add(SubType.CAT);
|
||||
this.subtype.add(SubType.DEMON);
|
||||
this.power = new MageInt(6);
|
||||
this.toughness = new MageInt(6);
|
||||
|
||||
// Whenever Rakshasa Debaser attacks, put target creature card from defending player's graveyard onto the battlefield under your control.
|
||||
Ability ability = new AttacksTriggeredAbility(
|
||||
new ReturnFromGraveyardToBattlefieldTargetEffect().setText(rule), false
|
||||
);
|
||||
ability.addTarget(new TargetCardInGraveyard());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Encore {6}{B}{B}
|
||||
this.addAbility(new EncoreAbility(new ManaCostsImpl<>("{6}{B}{B}")));
|
||||
}
|
||||
|
||||
private RakshasaDebaser(final RakshasaDebaser card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RakshasaDebaser copy() {
|
||||
return new RakshasaDebaser(this);
|
||||
}
|
||||
}
|
|
@ -1,29 +1,21 @@
|
|||
package mage.cards.r;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.AttacksAndIsNotBlockedTriggeredAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.continuous.AssignNoCombatDamageSourceEffect;
|
||||
import mage.cards.Card;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.cards.Cards;
|
||||
import mage.cards.CardsImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.cards.*;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.predicate.permanent.DefendingPlayerOwnsCardPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCardInGraveyard;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class RysorianBadger extends CardImpl {
|
||||
|
@ -31,7 +23,7 @@ public final class RysorianBadger extends CardImpl {
|
|||
private static final FilterCreatureCard filter = new FilterCreatureCard("creature cards from defending player's graveyard");
|
||||
|
||||
static {
|
||||
filter.add(new DefendingPlayerOwnsCardPredicate());
|
||||
filter.add(DefendingPlayerOwnsCardPredicate.instance);
|
||||
}
|
||||
|
||||
public RysorianBadger(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -158,6 +158,7 @@ public final class CommanderLegends extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Radiant, Serra Archangel", 40, Rarity.UNCOMMON, mage.cards.r.RadiantSerraArchangel.class));
|
||||
cards.add(new SetCardInfo("Raise the Alarm", 41, Rarity.COMMON, mage.cards.r.RaiseTheAlarm.class));
|
||||
cards.add(new SetCardInfo("Rakdos, Lord of Riots", 532, Rarity.MYTHIC, mage.cards.r.RakdosLordOfRiots.class));
|
||||
cards.add(new SetCardInfo("Rakshasa Debaser", 146, Rarity.RARE, mage.cards.r.RakshasaDebaser.class));
|
||||
cards.add(new SetCardInfo("Ramos, Dragon Engine", 545, Rarity.MYTHIC, mage.cards.r.RamosDragonEngine.class));
|
||||
cards.add(new SetCardInfo("Ravos, Soultender", 533, Rarity.MYTHIC, mage.cards.r.RavosSoultender.class));
|
||||
cards.add(new SetCardInfo("Rebbec, Architect of Ascension", 42, Rarity.UNCOMMON, mage.cards.r.RebbecArchitectOfAscension.class));
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.filter.predicate.permanent;
|
||||
|
||||
import mage.cards.Card;
|
||||
|
@ -7,10 +6,10 @@ import mage.filter.predicate.ObjectSourcePlayerPredicate;
|
|||
import mage.game.Game;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author TheElk801
|
||||
*/
|
||||
public class DefendingPlayerOwnsCardPredicate implements ObjectSourcePlayerPredicate<ObjectSourcePlayer<Card>> {
|
||||
public enum DefendingPlayerOwnsCardPredicate implements ObjectSourcePlayerPredicate<ObjectSourcePlayer<Card>> {
|
||||
instance;
|
||||
|
||||
@Override
|
||||
public boolean apply(ObjectSourcePlayer<Card> input, Game game) {
|
||||
|
@ -19,6 +18,6 @@ public class DefendingPlayerOwnsCardPredicate implements ObjectSourcePlayerPredi
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Another";
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39373,7 +39373,7 @@ Opposition Agent|Commander Legends|141|R|{2}{B}|Creature - Human Rogue|3|2|Flash
|
|||
Phyrexian Rager|Commander Legends|142|C|{2}{B}|Creature - Horror|2|2|When Phyrexian Rager enters the battlefield, you draw a card and you lose 1 life.|
|
||||
Plague Reaver|Commander Legends|143|R|{2}{B}|Creature - Beast|6|5|At the beginning of your end step, sacrifice each other creature you control.$Discard two cards, Sacrifice Plague Reaver: Choose target opponent. Return Plague Reaver to the battlefield under that player's control at the beginning of their next upkeep.|
|
||||
Profane Transfusion|Commander Legends|145|M|{6}{B}{B}{B}|Sorcery|||Two target players exchange life totals. You create an X/X colorless Horror artifact creature token, where X is the difference between those players' life totals.|
|
||||
Rakshada Debaser|Commander Legends|146|R|{4}{B}{B}|Creature - Cat Demon|6|6|Whenever Rakshada Debaser attacks, put target card from defending player's graveyard onto the battlefield under your control.$Encore {6}{B}{B}|
|
||||
Rakshasa Debaser|Commander Legends|146|R|{4}{B}{B}|Creature - Cat Demon|6|6|Whenever Rakshasa Debaser attacks, put target creature card from defending player's graveyard onto the battlefield under your control.$Encore {6}{B}{B}|
|
||||
Sanitarium Skeleton|Commander Legends|148|C|{B}|Creature - Skeleton|1|2|{2}{B}: Return Sanitarium Skeleton from your graveyard to your hand.|
|
||||
Sengir, the Dark Baron|Commander Legends|149|R|{4}{B}{B}|Legendary Creature - Vampire Noble|4|4|Flying$Whenever another creature dies, put two +1/+1 counters on Sengir, the Dark Baron.$Whenever another player loses the game, you gain life equal to that player's life total as the turn began.$Partner|
|
||||
Szat's Will|Commander Legends|152|R|{4}{B}|Instant|||Choose one. If you control a commander as you cast this spell, you may choose both.$• Each opponent sacrifices a creature they control with the greatest power.$• Exile all cards from all opponents' graveyards, then create X 0/1 black Thrull creature tokens, where X is the greatest power among creature cards exiled this way.|
|
||||
|
|
Loading…
Reference in a new issue