mirror of
https://github.com/correl/mage.git
synced 2025-01-12 19:25:44 +00:00
Implemented [DMU] Ratadrabik of Urborg (#9447)
This commit is contained in:
parent
09b069ceb2
commit
c17bc148f3
2 changed files with 111 additions and 0 deletions
110
Mage.Sets/src/mage/cards/r/RatadrabikOfUrborg.java
Normal file
110
Mage.Sets/src/mage/cards/r/RatadrabikOfUrborg.java
Normal file
|
@ -0,0 +1,110 @@
|
|||
package mage.cards.r;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DiesCreatureTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.CreateTokenCopyTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
|
||||
import mage.constants.*;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.keyword.WardAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author rockydirtbag
|
||||
*/
|
||||
public final class RatadrabikOfUrborg extends CardImpl {
|
||||
|
||||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Zombies you control");
|
||||
|
||||
private static final FilterControlledCreaturePermanent filter2 = new FilterControlledCreaturePermanent("another legendary creature you control");
|
||||
|
||||
static {
|
||||
filter.add(SubType.ZOMBIE.getPredicate());
|
||||
filter2.add(SuperType.LEGENDARY.getPredicate());
|
||||
filter2.add(AnotherPredicate.instance);
|
||||
}
|
||||
|
||||
public RatadrabikOfUrborg(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{B}");
|
||||
|
||||
this.addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.ZOMBIE);
|
||||
this.subtype.add(SubType.WIZARD);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Vigilance
|
||||
this.addAbility(VigilanceAbility.getInstance());
|
||||
|
||||
// Ward {2}
|
||||
this.addAbility(new WardAbility(new ManaCostsImpl<>("{2}")));
|
||||
|
||||
// Other zombies you control have vigilance.
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(
|
||||
VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, filter, true
|
||||
)));
|
||||
|
||||
// Whenever another legendary creature you control dies, create a token that's a copy of that creature,
|
||||
// except it's not legendary and it's a 2/2 black Zombie in addition to its other colors and types.
|
||||
this.addAbility(new DiesCreatureTriggeredAbility(new RatadrabikOfUrborgEffect(),false, filter2, true));
|
||||
|
||||
}
|
||||
|
||||
private RatadrabikOfUrborg(final RatadrabikOfUrborg card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RatadrabikOfUrborg copy() {
|
||||
return new RatadrabikOfUrborg(this);
|
||||
}
|
||||
}
|
||||
|
||||
class RatadrabikOfUrborgEffect extends OneShotEffect {
|
||||
|
||||
public RatadrabikOfUrborgEffect() {
|
||||
super(Outcome.PutCreatureInPlay);
|
||||
this.staticText = "create a token that's a copy of that creature, " +
|
||||
"except it's not legendary and it's a 2/2 black Zombie in addition to its other colors and types.";
|
||||
}
|
||||
|
||||
public RatadrabikOfUrborgEffect(final RatadrabikOfUrborgEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RatadrabikOfUrborgEffect copy() {
|
||||
return new RatadrabikOfUrborgEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
Permanent copyFrom = targetPointer.getFirstTargetPermanentOrLKI(game, source);
|
||||
if(controller == null || copyFrom == null) {
|
||||
return false;
|
||||
}
|
||||
CreateTokenCopyTargetEffect effect = new CreateTokenCopyTargetEffect(controller.getId(), null, false,1,false,false,null,2,2,false);
|
||||
effect.setAdditionalSubType(SubType.ZOMBIE);
|
||||
effect.setIsntLegendary(true);
|
||||
effect.setTargetPointer(new FixedTarget(copyFrom.getId(),game));
|
||||
ObjectColor colors = copyFrom.getColor();
|
||||
effect.setOnlyColor(colors.union(new ObjectColor("B")));
|
||||
effect.apply(game, source);
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -179,6 +179,7 @@ public final class DominariaUnited extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Radiant Grove", 253, Rarity.COMMON, mage.cards.r.RadiantGrove.class));
|
||||
cards.add(new SetCardInfo("Raff, Weatherlight Stalwart", 212, Rarity.UNCOMMON, mage.cards.r.RaffWeatherlightStalwart.class));
|
||||
cards.add(new SetCardInfo("Ragefire Hellkite", 285, Rarity.RARE, mage.cards.r.RagefireHellkite.class));
|
||||
cards.add(new SetCardInfo("Ratadrabik of Urborg", 213, Rarity.RARE, mage.cards.r.RatadrabikOfUrborg.class));
|
||||
cards.add(new SetCardInfo("Relic of Legends", 236, Rarity.UNCOMMON, mage.cards.r.RelicOfLegends.class));
|
||||
cards.add(new SetCardInfo("Resolute Reinforcements", 29, Rarity.UNCOMMON, mage.cards.r.ResoluteReinforcements.class));
|
||||
cards.add(new SetCardInfo("Rith, Liberated Primeval", 214, Rarity.MYTHIC, mage.cards.r.RithLiberatedPrimeval.class));
|
||||
|
|
Loading…
Reference in a new issue