mirror of
https://github.com/magefree/mage.git
synced 2026-01-26 21:29:17 -08:00
[DFT] Implement Adrenaline Jockey
This commit is contained in:
parent
c0ccbe2a2b
commit
c082edd663
3 changed files with 70 additions and 0 deletions
62
Mage.Sets/src/mage/cards/a/AdrenalineJockey.java
Normal file
62
Mage.Sets/src/mage/cards/a/AdrenalineJockey.java
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.ActivateAbilityTriggeredAbility;
|
||||
import mage.abilities.common.SpellCastAllTriggeredAbility;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SetTargetPointer;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.FilterStackObject;
|
||||
import mage.filter.predicate.other.ExhaustAbilityPredicate;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class AdrenalineJockey extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a spell, if it's not their turn");
|
||||
private static final FilterStackObject filter2 = new FilterStackObject("an exhaust ability");
|
||||
|
||||
static {
|
||||
filter.add(TargetController.INACTIVE.getControllerPredicate());
|
||||
filter2.add(ExhaustAbilityPredicate.instance);
|
||||
}
|
||||
|
||||
public AdrenalineJockey(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}");
|
||||
|
||||
this.subtype.add(SubType.MINOTAUR);
|
||||
this.subtype.add(SubType.PILOT);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Whenever a player casts a spell, if it's not their turn, this creature deals 4 damage to them.
|
||||
this.addAbility(new SpellCastAllTriggeredAbility(
|
||||
new DamageTargetEffect(4, true, "them"),
|
||||
filter, false, SetTargetPointer.PLAYER
|
||||
));
|
||||
|
||||
// Whenever you activate an exhaust ability, put a +1/+1 counter on this creature.
|
||||
this.addAbility(new ActivateAbilityTriggeredAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance()), filter2, SetTargetPointer.NONE
|
||||
));
|
||||
}
|
||||
|
||||
private AdrenalineJockey(final AdrenalineJockey card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AdrenalineJockey copy() {
|
||||
return new AdrenalineJockey(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -22,6 +22,7 @@ public final class Aetherdrift extends ExpansionSet {
|
|||
this.hasBoosters = false; // temporary
|
||||
|
||||
cards.add(new SetCardInfo("Aatchik, Emerald Radian", 187, Rarity.RARE, mage.cards.a.AatchikEmeraldRadian.class));
|
||||
cards.add(new SetCardInfo("Adrenaline Jockey", 112, Rarity.UNCOMMON, mage.cards.a.AdrenalineJockey.class));
|
||||
cards.add(new SetCardInfo("Aether Syphon", 38, Rarity.UNCOMMON, mage.cards.a.AetherSyphon.class));
|
||||
cards.add(new SetCardInfo("Aetherjacket", 230, Rarity.COMMON, mage.cards.a.Aetherjacket.class));
|
||||
cards.add(new SetCardInfo("Afterburner Expert", 150, Rarity.RARE, mage.cards.a.AfterburnerExpert.class));
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import java.util.UUID;
|
|||
public enum TargetController {
|
||||
|
||||
ACTIVE,
|
||||
INACTIVE,
|
||||
ANY,
|
||||
YOU,
|
||||
NOT_YOU,
|
||||
|
|
@ -85,6 +86,8 @@ public enum TargetController {
|
|||
return card.isOwnedBy(input.getSource().getFirstTarget());
|
||||
case ACTIVE:
|
||||
return card.isOwnedBy(game.getActivePlayerId());
|
||||
case INACTIVE:
|
||||
return !card.isOwnedBy(game.getActivePlayerId());
|
||||
case MONARCH:
|
||||
return card.isOwnedBy(game.getMonarchId());
|
||||
case ANY:
|
||||
|
|
@ -130,6 +133,8 @@ public enum TargetController {
|
|||
return player.getId().equals(input.getSource().getFirstTarget());
|
||||
case ACTIVE:
|
||||
return game.isActivePlayer(player.getId());
|
||||
case INACTIVE:
|
||||
return !game.isActivePlayer(player.getId());
|
||||
case MONARCH:
|
||||
return player.getId().equals(game.getMonarchId());
|
||||
default:
|
||||
|
|
@ -168,6 +173,8 @@ public enum TargetController {
|
|||
return !object.isControlledBy(playerId);
|
||||
case ACTIVE:
|
||||
return object.isControlledBy(game.getActivePlayerId());
|
||||
case INACTIVE:
|
||||
return !object.isControlledBy(game.getActivePlayerId());
|
||||
case ENCHANTED:
|
||||
Permanent permanent = input.getSource().getSourcePermanentIfItStillExists(game);
|
||||
return permanent != null && input.getObject().isControlledBy(permanent.getAttachedTo());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue