mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
[WHO] Implement Fugitive of the Judoon (#13467)
This commit is contained in:
parent
508c534884
commit
eac265f4f7
6 changed files with 157 additions and 4 deletions
|
|
@ -2183,6 +2183,7 @@ public class ScryfallImageSupportTokens {
|
|||
// WHO
|
||||
put("WHO/Alien", "https://api.scryfall.com/cards/twho/2?format=image");
|
||||
put("WHO/Alien Insect", "https://api.scryfall.com/cards/twho/19/en?format=image");
|
||||
put("WHO/Alien Rhino", "https://api.scryfall.com/cards/twho/3/en?format=image");
|
||||
put("WHO/Alien Salamander", "https://api.scryfall.com/cards/twho/16?format=image");
|
||||
put("WHO/Alien Warrior", "https://api.scryfall.com/cards/twho/14?format=image");
|
||||
put("WHO/Beast", "https://api.scryfall.com/cards/twho/17?format=image");
|
||||
|
|
@ -2196,7 +2197,8 @@ public class ScryfallImageSupportTokens {
|
|||
put("WHO/Food/2", "https://api.scryfall.com/cards/twho/26?format=image");
|
||||
put("WHO/Food/3", "https://api.scryfall.com/cards/twho/27?format=image");
|
||||
put("WHO/Horse", "https://api.scryfall.com/cards/twho/4/en?format=image");
|
||||
put("WHO/Human", "https://api.scryfall.com/cards/twho/5?format=image");
|
||||
put("WHO/Human/1", "https://api.scryfall.com/cards/twho/6/en?format=image");
|
||||
put("WHO/Human/2", "https://api.scryfall.com/cards/twho/5/en?format=image");
|
||||
put("WHO/Human Noble", "https://api.scryfall.com/cards/twho/7/en?format=image");
|
||||
put("WHO/Mark of the Rani", "https://api.scryfall.com/cards/twho/15?format=image");
|
||||
put("WHO/Soldier", "https://api.scryfall.com/cards/twho/8?format=image");
|
||||
|
|
|
|||
82
Mage.Sets/src/mage/cards/f/FugitiveOfTheJudoon.java
Normal file
82
Mage.Sets/src/mage/cards/f/FugitiveOfTheJudoon.java
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
package mage.cards.f;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.common.SagaAbility;
|
||||
import mage.abilities.costs.CompositeCost;
|
||||
import mage.abilities.costs.common.ExileTargetCost;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.DoIfCostPaid;
|
||||
import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect;
|
||||
import mage.abilities.effects.keyword.InvestigateEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SagaChapter;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterControlledArtifactPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.game.permanent.token.AlienRhinoToken;
|
||||
import mage.game.permanent.token.Human11WithWard2Token;
|
||||
import mage.target.common.TargetCardInLibrary;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author padfoothelix
|
||||
*/
|
||||
public final class FugitiveOfTheJudoon extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("a Doctor card");
|
||||
private static final FilterControlledPermanent filterHuman = new FilterControlledPermanent(SubType.HUMAN,"a Human you control");
|
||||
private static final FilterControlledArtifactPermanent filterArtifact = new FilterControlledArtifactPermanent("an artifact you control");
|
||||
|
||||
static {
|
||||
filter.add(SubType.DOCTOR.getPredicate());
|
||||
}
|
||||
|
||||
public FugitiveOfTheJudoon(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{G}");
|
||||
|
||||
this.subtype.add(SubType.SAGA);
|
||||
|
||||
// (As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)
|
||||
SagaAbility sagaAbility = new SagaAbility(this);
|
||||
|
||||
// I -- Create a 1/1 white Human creature token with ward {2} and a 4/4 white Alien Rhino creature token.
|
||||
sagaAbility.addChapterEffect(
|
||||
this, SagaChapter.CHAPTER_I,
|
||||
new CreateTokenEffect(new Human11WithWard2Token()).withAdditionalTokens(new AlienRhinoToken())
|
||||
);
|
||||
|
||||
// II -- Investigate.
|
||||
sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_II, new InvestigateEffect());
|
||||
|
||||
// III -- You may exile a Human you control and an artifact you control. If you do, search your library for a Doctor card, put it onto the battlefield, then shuffle.
|
||||
sagaAbility.addChapterEffect(
|
||||
this, SagaChapter.CHAPTER_III,
|
||||
new DoIfCostPaid(
|
||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)),
|
||||
new CompositeCost(
|
||||
new ExileTargetCost(new TargetControlledPermanent(1, 1, filterHuman, true)),
|
||||
new ExileTargetCost(new TargetControlledPermanent(1, 1, filterArtifact, true)),
|
||||
"exile a Human you control and an artifact you control"
|
||||
),
|
||||
"Exile a Human and an artifact ?"
|
||||
)
|
||||
);
|
||||
|
||||
this.addAbility(sagaAbility);
|
||||
|
||||
}
|
||||
|
||||
private FugitiveOfTheJudoon(final FugitiveOfTheJudoon card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FugitiveOfTheJudoon copy() {
|
||||
return new FugitiveOfTheJudoon(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -376,8 +376,8 @@ public final class DoctorWho extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Frostboil Snarl", 282, Rarity.RARE, mage.cards.f.FrostboilSnarl.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Frostboil Snarl", 498, Rarity.RARE, mage.cards.f.FrostboilSnarl.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Frostboil Snarl", 873, Rarity.RARE, mage.cards.f.FrostboilSnarl.class, NON_FULL_USE_VARIOUS));
|
||||
//cards.add(new SetCardInfo("Fugitive of the Judoon", 103, Rarity.RARE, mage.cards.f.FugitiveOfTheJudoon.class, NON_FULL_USE_VARIOUS));
|
||||
//cards.add(new SetCardInfo("Fugitive of the Judoon", 708, Rarity.RARE, mage.cards.f.FugitiveOfTheJudoon.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Fugitive of the Judoon", 103, Rarity.RARE, mage.cards.f.FugitiveOfTheJudoon.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Fugitive of the Judoon", 708, Rarity.RARE, mage.cards.f.FugitiveOfTheJudoon.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Furycalm Snarl", 1090, Rarity.RARE, mage.cards.f.FurycalmSnarl.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Furycalm Snarl", 283, Rarity.RARE, mage.cards.f.FurycalmSnarl.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Furycalm Snarl", 499, Rarity.RARE, mage.cards.f.FurycalmSnarl.class, NON_FULL_USE_VARIOUS));
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
package mage.game.permanent.token;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.PreventDamageToSourceEffect;
|
||||
import mage.abilities.keyword.VanishingAbility;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
|
||||
/**
|
||||
* @author padfoothelix
|
||||
*/
|
||||
public final class AlienRhinoToken extends TokenImpl {
|
||||
|
||||
public AlienRhinoToken() {
|
||||
super("Alien Rhino Token", "4/4 white Alien Rhino creature token");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setWhite(true);
|
||||
subtype.add(SubType.ALIEN);
|
||||
subtype.add(SubType.RHINO);
|
||||
power = new MageInt(4);
|
||||
toughness = new MageInt(4);
|
||||
}
|
||||
|
||||
private AlienRhinoToken(final AlienRhinoToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AlienRhinoToken copy() {
|
||||
return new AlienRhinoToken(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package mage.game.permanent.token;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.keyword.WardAbility;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
|
||||
/**
|
||||
* @author padfoothelix
|
||||
*/
|
||||
public final class Human11WithWard2Token extends TokenImpl {
|
||||
|
||||
public Human11WithWard2Token() {
|
||||
super("Human Token", "1/1 white Human creature token with ward {2}");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setWhite(true);
|
||||
subtype.add(SubType.HUMAN);
|
||||
power = new MageInt(1);
|
||||
toughness = new MageInt(1);
|
||||
this.addAbility(new WardAbility(new GenericManaCost(2)));
|
||||
}
|
||||
|
||||
private Human11WithWard2Token(final Human11WithWard2Token token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Human11WithWard2Token copy() {
|
||||
return new Human11WithWard2Token(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -2235,6 +2235,7 @@
|
|||
# WHO
|
||||
|Generate|TOK:WHO|Alien|||AlienToken|
|
||||
|Generate|TOK:WHO|Alien Insect|||AlienInsectToken|
|
||||
|Generate|TOK:WHO|Alien Rhino|||AlienRhinoToken|
|
||||
|Generate|TOK:WHO|Alien Salamander|||AlienSalamanderToken|
|
||||
|Generate|TOK:WHO|Alien Warrior|||AlienWarriorToken|
|
||||
|Generate|TOK:WHO|Beast|||BeastToken|
|
||||
|
|
@ -2248,7 +2249,8 @@
|
|||
|Generate|TOK:WHO|Food|2||FoodToken|
|
||||
|Generate|TOK:WHO|Food|3||FoodToken|
|
||||
|Generate|TOK:WHO|Horse|||TheGirlInTheFireplaceHorseToken|
|
||||
|Generate|TOK:WHO|Human|||TheEleventhHourToken|
|
||||
|Generate|TOK:WHO|Human|1||Human11WithWard2Token|
|
||||
|Generate|TOK:WHO|Human|2||TheEleventhHourToken|
|
||||
|Generate|TOK:WHO|Human Noble|||TheGirlInTheFireplaceHumanNobleToken|
|
||||
|Generate|TOK:WHO|Mark of the Rani|||MarkOfTheRaniToken|
|
||||
|Generate|TOK:WHO|Soldier|||SoldierToken|
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue