mirror of
https://github.com/correl/mage.git
synced 2024-12-26 03:00:11 +00:00
[SNC] Implemented Jaxis, the Troublemaker
This commit is contained in:
parent
47726ebbea
commit
2b00797cff
5 changed files with 123 additions and 2 deletions
94
Mage.Sets/src/mage/cards/j/JaxisTheTroublemaker.java
Normal file
94
Mage.Sets/src/mage/cards/j/JaxisTheTroublemaker.java
Normal file
|
@ -0,0 +1,94 @@
|
|||
package mage.cards.j;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.costs.common.DiscardCardCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.CreateTokenCopyTargetEffect;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.keyword.BlitzAbility;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class JaxisTheTroublemaker extends CardImpl {
|
||||
|
||||
public JaxisTheTroublemaker(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
|
||||
|
||||
this.addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.WARRIOR);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// {R}, {T}, Discard a card: Create a token that's a copy of another target creature you control. It gains haste and "When this creature dies, draw a card." Sacrifice it at the beginning of the next end step. Activate only as a sorcery.
|
||||
Ability ability = new ActivateAsSorceryActivatedAbility(
|
||||
new JaxisTheTroublemakerEffect(), new ManaCostsImpl<>("{R}")
|
||||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new DiscardCardCost());
|
||||
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Blitz {1}{R}
|
||||
this.addAbility(new BlitzAbility("{1}{R}"));
|
||||
}
|
||||
|
||||
private JaxisTheTroublemaker(final JaxisTheTroublemaker card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JaxisTheTroublemaker copy() {
|
||||
return new JaxisTheTroublemaker(this);
|
||||
}
|
||||
}
|
||||
|
||||
class JaxisTheTroublemakerEffect extends OneShotEffect {
|
||||
|
||||
JaxisTheTroublemakerEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "create a token that's a copy of another target creature you control. It gains haste and " +
|
||||
"\"When this creature dies, draw a card.\" Sacrifice it at the beginning of the next end step";
|
||||
}
|
||||
|
||||
private JaxisTheTroublemakerEffect(final JaxisTheTroublemakerEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JaxisTheTroublemakerEffect copy() {
|
||||
return new JaxisTheTroublemakerEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
CreateTokenCopyTargetEffect effect = new CreateTokenCopyTargetEffect();
|
||||
effect.addAdditionalAbilities(
|
||||
HasteAbility.getInstance(),
|
||||
new DiesSourceTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(1)
|
||||
).setTriggerPhrase("When this creature dies, ")
|
||||
);
|
||||
effect.apply(game, source);
|
||||
effect.sacrificeTokensCreatedAtNextEndStep(game, source);
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -12,7 +12,8 @@ import java.util.List;
|
|||
*/
|
||||
public final class NewCapennaCommander extends ExpansionSet {
|
||||
|
||||
private static final List<String> unfinished = Arrays.asList("Kros, Defense Contractor", "Perrie, the Pulveriser");
|
||||
private static final List<String> unfinished = Arrays.asList("Henzie \"Toolbox\" Torre", "Kros, Defense Contractor", "Perrie, the Pulveriser");
|
||||
|
||||
private static final NewCapennaCommander instance = new NewCapennaCommander();
|
||||
|
||||
public static NewCapennaCommander getInstance() {
|
||||
|
|
|
@ -12,7 +12,7 @@ import java.util.List;
|
|||
*/
|
||||
public final class StreetsOfNewCapenna extends ExpansionSet {
|
||||
|
||||
private static final List<String> unfinished = Arrays.asList("Disciplined Duelist", "Elspeth Resplendent", "Falco Spara, Pactweaver");
|
||||
private static final List<String> unfinished = Arrays.asList("Disciplined Duelist", "Elspeth Resplendent", "Falco Spara, Pactweaver", "Jaxis, the Troublemaker");
|
||||
|
||||
private static final StreetsOfNewCapenna instance = new StreetsOfNewCapenna();
|
||||
|
||||
|
@ -47,6 +47,7 @@ public final class StreetsOfNewCapenna extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Halo Fountain", 15, Rarity.MYTHIC, mage.cards.h.HaloFountain.class));
|
||||
cards.add(new SetCardInfo("Incriminate", 84, Rarity.COMMON, mage.cards.i.Incriminate.class));
|
||||
cards.add(new SetCardInfo("Island", 264, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Jaxis, the Troublemaker", 112, Rarity.RARE, mage.cards.j.JaxisTheTroublemaker.class));
|
||||
cards.add(new SetCardInfo("Jetmir's Garden", 250, Rarity.RARE, mage.cards.j.JetmirsGarden.class));
|
||||
cards.add(new SetCardInfo("Jetmir, Nexus of Revels", 193, Rarity.MYTHIC, mage.cards.j.JetmirNexusOfRevels.class));
|
||||
cards.add(new SetCardInfo("Join the Maestros", 85, Rarity.COMMON, mage.cards.j.JoinTheMaestros.class));
|
||||
|
|
24
Mage/src/main/java/mage/abilities/keyword/BlitzAbility.java
Normal file
24
Mage/src/main/java/mage/abilities/keyword/BlitzAbility.java
Normal file
|
@ -0,0 +1,24 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.abilities.StaticAbility;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public class BlitzAbility extends StaticAbility {
|
||||
|
||||
public BlitzAbility(String manaString) {
|
||||
// TODO: Implement this
|
||||
super(Zone.ALL, null);
|
||||
}
|
||||
|
||||
private BlitzAbility(final BlitzAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlitzAbility copy() {
|
||||
return new BlitzAbility(this);
|
||||
}
|
||||
}
|
|
@ -6,6 +6,7 @@ Assist|new|
|
|||
Basic landcycling|cost|
|
||||
Battle cry|new|
|
||||
Bestow|card, manaString|
|
||||
Blitz|manaString|
|
||||
Bloodthirst|number|
|
||||
Bushido|number|
|
||||
Buyback|manaString|
|
||||
|
|
Loading…
Reference in a new issue