mirror of
https://github.com/magefree/mage.git
synced 2025-12-23 03:51:58 -08:00
[MID] Implemented Brutal Cathar / Moonrage Brute
This commit is contained in:
parent
887cbe8ca1
commit
ce0c6fa34e
3 changed files with 149 additions and 0 deletions
99
Mage.Sets/src/mage/cards/b/BrutalCathar.java
Normal file
99
Mage.Sets/src/mage/cards/b/BrutalCathar.java
Normal file
|
|
@ -0,0 +1,99 @@
|
||||||
|
package mage.cards.b;
|
||||||
|
|
||||||
|
import mage.MageInt;
|
||||||
|
import mage.abilities.TriggeredAbilityImpl;
|
||||||
|
import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility;
|
||||||
|
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
|
||||||
|
import mage.abilities.effects.common.ExileUntilSourceLeavesEffect;
|
||||||
|
import mage.abilities.keyword.DayboundAbility;
|
||||||
|
import mage.abilities.keyword.TransformAbility;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.constants.Zone;
|
||||||
|
import mage.game.Game;
|
||||||
|
import mage.game.events.GameEvent;
|
||||||
|
import mage.game.permanent.Permanent;
|
||||||
|
import mage.target.common.TargetOpponentsCreaturePermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public final class BrutalCathar extends CardImpl {
|
||||||
|
|
||||||
|
public BrutalCathar(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}");
|
||||||
|
|
||||||
|
this.subtype.add(SubType.HUMAN);
|
||||||
|
this.subtype.add(SubType.SOLDIER);
|
||||||
|
this.subtype.add(SubType.WEREWOLF);
|
||||||
|
this.power = new MageInt(2);
|
||||||
|
this.toughness = new MageInt(2);
|
||||||
|
this.transformable = true;
|
||||||
|
this.secondSideCardClazz = mage.cards.m.MoonrageBrute.class;
|
||||||
|
|
||||||
|
// When this creature enters the battlefield or transforms into Brutal Cathar, exile target creature an opponent controls until this creature leaves the battlefield.
|
||||||
|
this.addAbility(new BrutalCatharTriggeredAbility());
|
||||||
|
|
||||||
|
// Daybound
|
||||||
|
this.addAbility(new TransformAbility());
|
||||||
|
this.addAbility(DayboundAbility.getInstance());
|
||||||
|
}
|
||||||
|
|
||||||
|
private BrutalCathar(final BrutalCathar card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BrutalCathar copy() {
|
||||||
|
return new BrutalCathar(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class BrutalCatharTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
|
public BrutalCatharTriggeredAbility() {
|
||||||
|
super(Zone.BATTLEFIELD, new ExileUntilSourceLeavesEffect("creature an opponent controls"), false);
|
||||||
|
this.addTarget(new TargetOpponentsCreaturePermanent());
|
||||||
|
this.addEffect(new CreateDelayedTriggeredAbilityEffect(new OnLeaveReturnExiledToBattlefieldAbility()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public BrutalCatharTriggeredAbility(final BrutalCatharTriggeredAbility ability) {
|
||||||
|
super(ability);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BrutalCatharTriggeredAbility copy() {
|
||||||
|
return new BrutalCatharTriggeredAbility(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean checkEventType(GameEvent event, Game game) {
|
||||||
|
return event.getType() == GameEvent.EventType.TRANSFORMED
|
||||||
|
|| event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean checkTrigger(GameEvent event, Game game) {
|
||||||
|
if (!event.getTargetId().equals(this.getSourceId())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
switch (event.getType()) {
|
||||||
|
case TRANSFORMED:
|
||||||
|
Permanent permanent = getSourcePermanentIfItStillExists(game);
|
||||||
|
return permanent != null && !permanent.isTransformed();
|
||||||
|
case ENTERS_THE_BATTLEFIELD:
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getRule() {
|
||||||
|
return "When this creature enters the battlefield or transforms into {this}, " +
|
||||||
|
"exile target creature an opponent controls until this creature leaves the battlefield.";
|
||||||
|
}
|
||||||
|
}
|
||||||
48
Mage.Sets/src/mage/cards/m/MoonrageBrute.java
Normal file
48
Mage.Sets/src/mage/cards/m/MoonrageBrute.java
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
package mage.cards.m;
|
||||||
|
|
||||||
|
import mage.MageInt;
|
||||||
|
import mage.abilities.costs.common.PayLifeCost;
|
||||||
|
import mage.abilities.keyword.FirstStrikeAbility;
|
||||||
|
import mage.abilities.keyword.NightboundAbility;
|
||||||
|
import mage.abilities.keyword.WardAbility;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public final class MoonrageBrute extends CardImpl {
|
||||||
|
|
||||||
|
public MoonrageBrute(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
||||||
|
|
||||||
|
this.subtype.add(SubType.WEREWOLF);
|
||||||
|
this.power = new MageInt(3);
|
||||||
|
this.toughness = new MageInt(3);
|
||||||
|
this.color.setRed(true);
|
||||||
|
this.transformable = true;
|
||||||
|
this.nightCard = true;
|
||||||
|
|
||||||
|
// First strike
|
||||||
|
this.addAbility(FirstStrikeAbility.getInstance());
|
||||||
|
|
||||||
|
// Ward—Pay 3 life.
|
||||||
|
this.addAbility(new WardAbility(new PayLifeCost(3)));
|
||||||
|
|
||||||
|
// Nightbound
|
||||||
|
this.addAbility(NightboundAbility.getInstance());
|
||||||
|
}
|
||||||
|
|
||||||
|
private MoonrageBrute(final MoonrageBrute card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MoonrageBrute copy() {
|
||||||
|
return new MoonrageBrute(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -62,6 +62,7 @@ public final class InnistradMidnightHunt extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Briarbridge Tracker", 172, Rarity.RARE, mage.cards.b.BriarbridgeTracker.class));
|
cards.add(new SetCardInfo("Briarbridge Tracker", 172, Rarity.RARE, mage.cards.b.BriarbridgeTracker.class));
|
||||||
cards.add(new SetCardInfo("Brimstone Vandal", 130, Rarity.COMMON, mage.cards.b.BrimstoneVandal.class));
|
cards.add(new SetCardInfo("Brimstone Vandal", 130, Rarity.COMMON, mage.cards.b.BrimstoneVandal.class));
|
||||||
cards.add(new SetCardInfo("Brood Weaver", 173, Rarity.UNCOMMON, mage.cards.b.BroodWeaver.class));
|
cards.add(new SetCardInfo("Brood Weaver", 173, Rarity.UNCOMMON, mage.cards.b.BroodWeaver.class));
|
||||||
|
cards.add(new SetCardInfo("Brutal Cathar", 7, Rarity.RARE, mage.cards.b.BrutalCathar.class));
|
||||||
cards.add(new SetCardInfo("Burly Breaker", 174, Rarity.UNCOMMON, mage.cards.b.BurlyBreaker.class));
|
cards.add(new SetCardInfo("Burly Breaker", 174, Rarity.UNCOMMON, mage.cards.b.BurlyBreaker.class));
|
||||||
cards.add(new SetCardInfo("Burn Down the House", 131, Rarity.RARE, mage.cards.b.BurnDownTheHouse.class));
|
cards.add(new SetCardInfo("Burn Down the House", 131, Rarity.RARE, mage.cards.b.BurnDownTheHouse.class));
|
||||||
cards.add(new SetCardInfo("Burn the Accursed", 132, Rarity.COMMON, mage.cards.b.BurnTheAccursed.class));
|
cards.add(new SetCardInfo("Burn the Accursed", 132, Rarity.COMMON, mage.cards.b.BurnTheAccursed.class));
|
||||||
|
|
@ -195,6 +196,7 @@ public final class InnistradMidnightHunt extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Mask of Griselbrand", 111, Rarity.RARE, mage.cards.m.MaskOfGriselbrand.class));
|
cards.add(new SetCardInfo("Mask of Griselbrand", 111, Rarity.RARE, mage.cards.m.MaskOfGriselbrand.class));
|
||||||
cards.add(new SetCardInfo("Memory Deluge", 62, Rarity.RARE, mage.cards.m.MemoryDeluge.class));
|
cards.add(new SetCardInfo("Memory Deluge", 62, Rarity.RARE, mage.cards.m.MemoryDeluge.class));
|
||||||
cards.add(new SetCardInfo("Might of the Old Ways", 189, Rarity.COMMON, mage.cards.m.MightOfTheOldWays.class));
|
cards.add(new SetCardInfo("Might of the Old Ways", 189, Rarity.COMMON, mage.cards.m.MightOfTheOldWays.class));
|
||||||
|
cards.add(new SetCardInfo("Moonrage Brute", 7, Rarity.RARE, mage.cards.m.MoonrageBrute.class));
|
||||||
cards.add(new SetCardInfo("Moonsilver Key", 255, Rarity.UNCOMMON, mage.cards.m.MoonsilverKey.class));
|
cards.add(new SetCardInfo("Moonsilver Key", 255, Rarity.UNCOMMON, mage.cards.m.MoonsilverKey.class));
|
||||||
cards.add(new SetCardInfo("Moonveil Regent", 149, Rarity.MYTHIC, mage.cards.m.MoonveilRegent.class));
|
cards.add(new SetCardInfo("Moonveil Regent", 149, Rarity.MYTHIC, mage.cards.m.MoonveilRegent.class));
|
||||||
cards.add(new SetCardInfo("Morbid Opportunist", 113, Rarity.UNCOMMON, mage.cards.m.MorbidOpportunist.class));
|
cards.add(new SetCardInfo("Morbid Opportunist", 113, Rarity.UNCOMMON, mage.cards.m.MorbidOpportunist.class));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue